Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native linux VST support #6048

Merged
merged 24 commits into from
Mar 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f5be314
First attempt to load native linux vst in vestige.
akimaze Jun 6, 2021
3f56bd6
Use mutex for UI message processing.
akimaze Jun 6, 2021
3cd740a
More fixes to native linux vst support.
akimaze Jun 9, 2021
da0d335
Support plugin window size change.
akimaze Jun 9, 2021
8a808b2
Longer sleep in ui loop to safe CPU.
akimaze Jun 9, 2021
58c405c
Remove some debug messages, pull out timespec out of the loop.
akimaze Jun 12, 2021
d0d9a4d
Remove redundant blank line at the end of a code block.
akimaze Jun 12, 2021
55de77a
Fix more formating issues.
akimaze Jun 12, 2021
33551ad
Fix more formating issues.
akimaze Jun 12, 2021
3240482
Small fix to load TyrellN6.64.so
akimaze Jun 12, 2021
70210b9
Fix segfault when plugins have no GUI
DomClark Feb 21, 2022
8424f29
Enable dragging SO files from file browser
DomClark Feb 23, 2022
be81321
Split executable type from PE machine type
DomClark Feb 23, 2022
d4cd07d
Use `_WIN32` macro where appropriate
DomClark Feb 23, 2022
f9f80b7
Tweak CMake code slightly
DomClark Feb 23, 2022
6e168e2
Fix trailing whitespace and typos
DomClark Feb 24, 2022
74ceb2c
Adjust platform-specific scoping slightly
DomClark Feb 24, 2022
789ccd1
Fix thread exit memory leak
DomClark Feb 24, 2022
b8589e7
Remove superfluous plugin exit mechanism
DomClark Feb 25, 2022
d5721dc
Merge remote-tracking branch 'upstream/master' into pr-6048
DomClark Feb 25, 2022
2acb1e0
Fix build after master merge
DomClark Feb 25, 2022
fd72546
Replace `NULL` with `nullptr`
DomClark Feb 25, 2022
6b4c151
Fix formatting
DomClark Feb 25, 2022
e71c737
Fix typo and author information
DomClark Feb 26, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions include/RemotePlugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
#include <string>
#include <cassert>


#if !(defined(LMMS_HAVE_SYS_IPC_H) && defined(LMMS_HAVE_SEMAPHORE_H))
#define SYNC_WITH_SHM_FIFO
#define USE_QT_SEMAPHORES
Expand Down Expand Up @@ -440,6 +439,7 @@ enum RemoteMessageIDs
IdSavePresetFile,
IdLoadPresetFile,
IdDebugMessage,
IdIdle,
IdUserBase = 64
} ;

Expand Down Expand Up @@ -1000,7 +1000,6 @@ class RemotePluginClient : public RemotePluginBase

sample_rate_t m_sampleRate;
fpp_t m_bufferSize;

} ;

#endif
Expand Down
4 changes: 4 additions & 0 deletions include/aeffectx.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
#include <type_traits>

// Calling convention
#ifdef _WIN32
#define VST_CALL_CONV __cdecl
#else
#define VST_CALL_CONV
#endif

template<typename T>
constexpr int32_t CCONST(T a, T b, T c, T d)
Expand Down
7 changes: 7 additions & 0 deletions plugins/vestige/vestige.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,11 @@ Plugin::Descriptor Q_DECL_EXPORT vestige_plugin_descriptor =
0x0100,
Plugin::Instrument,
new PluginPixmapLoader( "logo" ),
#ifdef LMMS_BUILD_LINUX
"dll,so",
#else
"dll",
#endif
nullptr,
} ;

Expand Down Expand Up @@ -682,6 +686,9 @@ void VestigeInstrumentView::openPlugin()
QStringList types;
types << tr( "DLL-files (*.dll)" )
<< tr( "EXE-files (*.exe)" )
#ifdef LMMS_BUILD_LINUX
<< tr( "SO-files (*.so)" )
#endif
;
ofd.setNameFilters( types );

Expand Down
8 changes: 8 additions & 0 deletions plugins/vst_base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ INCLUDE(ExternalProject)
# These variables are not meant to be used normally, except packaging
SET(REMOTE_VST_PLUGIN_FILEPATH_32 "32/RemoteVstPlugin32" CACHE STRING "Relative file path to RemoteVstPlugin32")
SET(REMOTE_VST_PLUGIN_FILEPATH_64 "RemoteVstPlugin64" CACHE STRING "Relative file path to RemoteVstPlugin64")
IF(LMMS_BUILD_LINUX)
SET(NATIVE_LINUX_REMOTE_VST_PLUGIN_FILEPATH_64 "NativeLinuxRemoteVstPlugin64"
CACHE STRING "Relative file path to NativeLinuxRemoteVstPlugin64")
ENDIF()

ADD_SUBDIRECTORY(vstbase)

Expand Down Expand Up @@ -48,3 +52,7 @@ ENDIF()
IF(WANT_VST_64)
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin64.cmake")
ENDIF()

IF(LMMS_BUILD_LINUX)
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/NativeLinuxRemoteVstPlugin64.cmake")
ENDIF()
11 changes: 11 additions & 0 deletions plugins/vst_base/NativeLinuxRemoteVstPlugin64.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
IF(LMMS_BUILD_LINUX)
ExternalProject_Add(NativeLinuxRemoteVstPlugin64
"${EXTERNALPROJECT_ARGS}"
CMAKE_ARGS
"${EXTERNALPROJECT_CMAKE_ARGS}"
"-DCMAKE_CXX_FLAGS=-m64 -DNATIVE_LINUX_VST"
"-DCMAKE_C_FLAGS=-DNATIVE_LINUX_VST"
)
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../NativeLinuxRemoteVstPlugin64" DESTINATION "${PLUGIN_DIR}")
ENDIF()

Loading