From a5e97f65d68cc0611104fd94682ff5ed6ee4b374 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 12 Aug 2014 17:29:07 +0100 Subject: [PATCH] More bridge stuff --- Makefile | 11 +- source/bridges-plugin/Makefile | 14 +- source/modules/jackbridge/JackBridge.hpp | 260 ++++++++++------------ source/modules/jackbridge/JackBridge1.cpp | 109 ++------- source/modules/jackbridge/JackBridge2.cpp | 9 - source/modules/jackbridge/Makefile | 78 ++----- 6 files changed, 175 insertions(+), 306 deletions(-) diff --git a/Makefile b/Makefile index c4f999a0c..51d9b21f2 100644 --- a/Makefile +++ b/Makefile @@ -74,9 +74,6 @@ source/backend/carla_%_plugin.a: .FORCE source/backend/carla_%.a: .FORCE $(MAKE) -C source/backend/$* ../carla_$*.a -source/modules/jackbridge-%: .FORCE - $(MAKE) -C source/modules/jackbridge ../jackbridge-$* - source/modules/%.qt4.a: .FORCE $(MAKE) -C source/modules/$* ../$*.qt4.a @@ -204,7 +201,7 @@ posix64: $(LIBS_POSIX64) # -------------------------------------------------------------- # Binaries (win32) -LIBS_WIN32 += source/modules/jackbridge-win32.dll +LIBS_WIN32 += source/modules/jackbridge.win32e.a LIBS_WIN32 += source/modules/juce_audio_basics.win32.a LIBS_WIN32 += source/modules/juce_audio_processors.win32.a LIBS_WIN32 += source/modules/juce_core.win32.a @@ -222,7 +219,7 @@ win32: $(LIBS_WIN32) # -------------------------------------------------------------- # Binaries (win64) -LIBS_WIN64 += source/modules/jackbridge-win64.dll +LIBS_WIN64 += source/modules/jackbridge.win64e.a LIBS_WIN64 += source/modules/juce_audio_basics.win64.a LIBS_WIN64 += source/modules/juce_audio_processors.win64.a LIBS_WIN64 += source/modules/juce_core.win64.a @@ -242,11 +239,11 @@ win64: $(LIBS_WIN64) wine32: $(MAKE) -C source/modules/jackbridge wine32 - cp -f source/modules/jackbridge-wine32.dll.so bin/jackbridge-win32.dll + cp -f source/modules/jackbridge-wine32.dll.so bin/jackbridge-wine32.dll wine64: $(MAKE) -C source/modules/jackbridge wine64 - cp -f source/modules/jackbridge-wine64.dll.so bin/jackbridge-win64.dll + cp -f source/modules/jackbridge-wine64.dll.so bin/jackbridge-wine64.dll # -------------------------------------------------------------- # Resources diff --git a/source/bridges-plugin/Makefile b/source/bridges-plugin/Makefile index 6805383c1..15db6a5a6 100644 --- a/source/bridges-plugin/Makefile +++ b/source/bridges-plugin/Makefile @@ -63,10 +63,10 @@ endif # -------------------------------------------------------------- # Plugin bridges (Windows) -WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) -DJACKBRIDGE_EXPORTING_LATER +WIN_BUILD_FLAGS = $(BUILD_PLUGIN_FLAGS) WIN_32BIT_FLAGS = $(32BIT_FLAGS) WIN_64BIT_FLAGS = $(64BIT_FLAGS) -WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) -L../modules +WIN_LINK_FLAGS = $(LINK_PLUGIN_FLAGS) # -------------------------------------------------------------- # Plugin bridges (Native) @@ -328,6 +328,7 @@ OBJS_WIN32 += \ # libs LIBS_WIN32 = \ + ../modules/jackbridge.win32e.a \ ../modules/lilv.win32.a \ ../modules/rtmempool.win32.a @@ -340,8 +341,8 @@ LIBS_WIN32 += \ ../modules/juce_graphics.win32.a \ ../modules/juce_gui_basics.win32.a -../../bin/carla-bridge-win32.exe: $(OBJS_WIN32) $(LIBS_WIN32) ../modules/jackbridge-win32.dll - $(CXX) $(OBJS_WIN32) $(LIBS_START) $(LIBS_WIN32) $(LIBS_END) $(WIN_LINK_FLAGS) $(WIN_32BIT_FLAGS) -ljackbridge-win32 -o $@ +../../bin/carla-bridge-win32.exe: $(OBJS_WIN32) $(LIBS_WIN32) + $(CXX) $(OBJS_WIN32) $(LIBS_START) $(LIBS_WIN32) $(LIBS_END) $(WIN_LINK_FLAGS) $(WIN_32BIT_FLAGS) -o $@ %__win32.o: %.cpp $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_32BIT_FLAGS) -DBRIDGE_PLUGIN -c -o $@ @@ -383,6 +384,7 @@ OBJS_WIN64 += \ # libs LIBS_WIN64 = \ + ../modules/jackbridge.win64e.a \ ../modules/lilv.win64.a \ ../modules/rtmempool.win64.a @@ -395,8 +397,8 @@ LIBS_WIN64 += \ ../modules/juce_graphics.win64.a \ ../modules/juce_gui_basics.win64.a -../../bin/carla-bridge-win64.exe: $(OBJS_WIN64) $(LIBS_WIN64) ../modules/jackbridge-win64.dll - $(CXX) $(OBJS_WIN64) $(LIBS_START) $(LIBS_WIN64) $(LIBS_END) $(WIN_LINK_FLAGS) $(WIN_64BIT_FLAGS) -ljackbridge-win64 -o $@ +../../bin/carla-bridge-win64.exe: $(OBJS_WIN64) $(LIBS_WIN64) + $(CXX) $(OBJS_WIN64) $(LIBS_START) $(LIBS_WIN64) $(LIBS_END) $(WIN_LINK_FLAGS) $(WIN_64BIT_FLAGS) -o $@ %__win64.o: %.cpp $(CXX) $< $(WIN_BUILD_FLAGS) $(WIN_64BIT_FLAGS) -DBRIDGE_PLUGIN -c -o $@ diff --git a/source/modules/jackbridge/JackBridge.hpp b/source/modules/jackbridge/JackBridge.hpp index b5ba19d7b..55f287b22 100644 --- a/source/modules/jackbridge/JackBridge.hpp +++ b/source/modules/jackbridge/JackBridge.hpp @@ -31,22 +31,6 @@ #include "CarlaDefines.h" -#if defined(JACKBRIDGE_EXPORTING) -# if defined(CARLA_OS_WIN) && ! defined(__WINE__) -# define JACKBRIDGE_EXPORT extern "C" __declspec (dllexport) -# else -# define JACKBRIDGE_EXPORT extern "C" __attribute__ ((visibility("default"))) -# endif -#elif defined(JACKBRIDGE_EXPORTING_LATER) -# if defined(CARLA_OS_WIN) && ! defined(__WINE__) -# define JACKBRIDGE_EXPORT extern "C" __declspec (dllimport) -# else -# define JACKBRIDGE_EXPORT extern "C" -# endif -#else -# define JACKBRIDGE_EXPORT -#endif - #ifdef JACKBRIDGE_DIRECT # include # include @@ -290,127 +274,127 @@ typedef void (*JackPropertyChangeCallback)(jack_uuid_t subject, const char* key, #endif // ! JACKBRIDGE_DIRECT -JACKBRIDGE_EXPORT bool jackbridge_is_ok(void) noexcept; - -JACKBRIDGE_EXPORT void jackbridge_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* proto_ptr); -JACKBRIDGE_EXPORT const char* jackbridge_get_version_string(void); - -JACKBRIDGE_EXPORT jack_client_t* jackbridge_client_open(const char* client_name, jack_options_t options, jack_status_t* status); -JACKBRIDGE_EXPORT bool jackbridge_client_close(jack_client_t* client); - -JACKBRIDGE_EXPORT int jackbridge_client_name_size(void); -JACKBRIDGE_EXPORT char* jackbridge_get_client_name(jack_client_t* client); - -JACKBRIDGE_EXPORT char* jackbridge_get_uuid_for_client_name(jack_client_t* client, const char* name); -JACKBRIDGE_EXPORT char* jackbridge_get_client_name_by_uuid(jack_client_t* client, const char* uuid); - -JACKBRIDGE_EXPORT bool jackbridge_activate(jack_client_t* client); -JACKBRIDGE_EXPORT bool jackbridge_deactivate(jack_client_t* client); -JACKBRIDGE_EXPORT bool jackbridge_is_realtime(jack_client_t* client); - -JACKBRIDGE_EXPORT bool jackbridge_set_thread_init_callback(jack_client_t* client, JackThreadInitCallback thread_init_callback, void* arg); -JACKBRIDGE_EXPORT void jackbridge_on_shutdown(jack_client_t* client, JackShutdownCallback shutdown_callback, void* arg); -JACKBRIDGE_EXPORT void jackbridge_on_info_shutdown(jack_client_t* client, JackInfoShutdownCallback shutdown_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_process_callback(jack_client_t* client, JackProcessCallback process_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_freewheel_callback(jack_client_t* client, JackFreewheelCallback freewheel_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback bufsize_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback srate_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_client_registration_callback(jack_client_t* client, JackClientRegistrationCallback registration_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_port_registration_callback(jack_client_t* client, JackPortRegistrationCallback registration_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_port_rename_callback(jack_client_t* client, JackPortRenameCallback rename_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_port_connect_callback(jack_client_t* client, JackPortConnectCallback connect_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_graph_order_callback(jack_client_t* client, JackGraphOrderCallback graph_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_xrun_callback(jack_client_t* client, JackXRunCallback xrun_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_latency_callback(jack_client_t* client, JackLatencyCallback latency_callback, void* arg); - -JACKBRIDGE_EXPORT bool jackbridge_set_freewheel(jack_client_t* client, bool onoff); -JACKBRIDGE_EXPORT bool jackbridge_set_buffer_size(jack_client_t* client, jack_nframes_t nframes); - -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_sample_rate(jack_client_t* client); -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_buffer_size(jack_client_t* client); -JACKBRIDGE_EXPORT float jackbridge_cpu_load(jack_client_t* client); - -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_register(jack_client_t* client, const char* port_name, const char* port_type, ulong flags, ulong buffer_size); -JACKBRIDGE_EXPORT bool jackbridge_port_unregister(jack_client_t* client, jack_port_t* port); -JACKBRIDGE_EXPORT void* jackbridge_port_get_buffer(jack_port_t* port, jack_nframes_t nframes); - -JACKBRIDGE_EXPORT const char* jackbridge_port_name(const jack_port_t* port); -JACKBRIDGE_EXPORT jack_uuid_t jackbridge_port_uuid(const jack_port_t* port); -JACKBRIDGE_EXPORT const char* jackbridge_port_short_name(const jack_port_t* port); -JACKBRIDGE_EXPORT int jackbridge_port_flags(const jack_port_t* port); -JACKBRIDGE_EXPORT const char* jackbridge_port_type(const jack_port_t* port); -JACKBRIDGE_EXPORT bool jackbridge_port_is_mine(const jack_client_t* client, const jack_port_t* port); -JACKBRIDGE_EXPORT int jackbridge_port_connected(const jack_port_t* port); -JACKBRIDGE_EXPORT bool jackbridge_port_connected_to(const jack_port_t* port, const char* port_name); -JACKBRIDGE_EXPORT const char** jackbridge_port_get_connections(const jack_port_t* port); -JACKBRIDGE_EXPORT const char** jackbridge_port_get_all_connections(const jack_client_t* client, const jack_port_t* port); - -JACKBRIDGE_EXPORT bool jackbridge_port_set_name(jack_port_t* port, const char* port_name); -JACKBRIDGE_EXPORT bool jackbridge_port_set_alias(jack_port_t* port, const char* alias); -JACKBRIDGE_EXPORT bool jackbridge_port_unset_alias(jack_port_t* port, const char* alias); -JACKBRIDGE_EXPORT int jackbridge_port_get_aliases(const jack_port_t* port, char* const aliases[2]); - -JACKBRIDGE_EXPORT bool jackbridge_port_request_monitor(jack_port_t* port, bool onoff); -JACKBRIDGE_EXPORT bool jackbridge_port_request_monitor_by_name(jack_client_t* client, const char* port_name, bool onoff); -JACKBRIDGE_EXPORT bool jackbridge_port_ensure_monitor(jack_port_t* port, bool onoff); -JACKBRIDGE_EXPORT bool jackbridge_port_monitoring_input(jack_port_t* port); - -JACKBRIDGE_EXPORT bool jackbridge_connect(jack_client_t* client, const char* source_port, const char* destination_port); -JACKBRIDGE_EXPORT bool jackbridge_disconnect(jack_client_t* client, const char* source_port, const char* destination_port); -JACKBRIDGE_EXPORT bool jackbridge_port_disconnect(jack_client_t* client, jack_port_t* port); - -JACKBRIDGE_EXPORT int jackbridge_port_name_size(void); -JACKBRIDGE_EXPORT int jackbridge_port_type_size(void); -JACKBRIDGE_EXPORT size_t jackbridge_port_type_get_buffer_size(jack_client_t* client, const char* port_type); - -JACKBRIDGE_EXPORT void jackbridge_port_get_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range); -JACKBRIDGE_EXPORT void jackbridge_port_set_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range); -JACKBRIDGE_EXPORT bool jackbridge_recompute_total_latencies(jack_client_t* client); - -JACKBRIDGE_EXPORT const char** jackbridge_get_ports(jack_client_t* client, const char* port_name_pattern, const char* type_name_pattern, ulong flags); -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_by_name(jack_client_t* client, const char* port_name); -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_by_id(jack_client_t* client, jack_port_id_t port_id); - -JACKBRIDGE_EXPORT void jackbridge_free(void* ptr); - -JACKBRIDGE_EXPORT uint32_t jackbridge_midi_get_event_count(void* port_buffer); -JACKBRIDGE_EXPORT bool jackbridge_midi_event_get(jack_midi_event_t* event, void* port_buffer, uint32_t event_index); -JACKBRIDGE_EXPORT void jackbridge_midi_clear_buffer(void* port_buffer); -JACKBRIDGE_EXPORT bool jackbridge_midi_event_write(void* port_buffer, jack_nframes_t time, const jack_midi_data_t* data, size_t data_size); -JACKBRIDGE_EXPORT jack_midi_data_t* jackbridge_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size); - -JACKBRIDGE_EXPORT bool jackbridge_release_timebase(jack_client_t* client); -JACKBRIDGE_EXPORT bool jackbridge_set_sync_callback(jack_client_t* client, JackSyncCallback sync_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_set_sync_timeout(jack_client_t* client, jack_time_t timeout); -JACKBRIDGE_EXPORT bool jackbridge_set_timebase_callback(jack_client_t* client, bool conditional, JackTimebaseCallback timebase_callback, void* arg); -JACKBRIDGE_EXPORT bool jackbridge_transport_locate(jack_client_t* client, jack_nframes_t frame); - -JACKBRIDGE_EXPORT jack_transport_state_t jackbridge_transport_query(const jack_client_t* client, jack_position_t* pos); -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_current_transport_frame(const jack_client_t* client); - -JACKBRIDGE_EXPORT bool jackbridge_transport_reposition(jack_client_t* client, const jack_position_t* pos); -JACKBRIDGE_EXPORT void jackbridge_transport_start(jack_client_t* client); -JACKBRIDGE_EXPORT void jackbridge_transport_stop(jack_client_t* client); - -JACKBRIDGE_EXPORT bool jackbridge_set_property(jack_client_t* client, jack_uuid_t subject, const char* key, const char* value, const char* type); -JACKBRIDGE_EXPORT bool jackbridge_get_property(jack_uuid_t subject, const char* key, char** value, char** type); -JACKBRIDGE_EXPORT void jackbridge_free_description(jack_description_t* desc, bool free_description_itself); -JACKBRIDGE_EXPORT bool jackbridge_get_properties(jack_uuid_t subject, jack_description_t* desc); -JACKBRIDGE_EXPORT bool jackbridge_get_all_properties(jack_description_t** descs); -JACKBRIDGE_EXPORT bool jackbridge_remove_property(jack_client_t* client, jack_uuid_t subject, const char* key); -JACKBRIDGE_EXPORT int jackbridge_remove_properties(jack_client_t* client, jack_uuid_t subject); -JACKBRIDGE_EXPORT bool jackbridge_remove_all_properties(jack_client_t* client); -JACKBRIDGE_EXPORT bool jackbridge_set_property_change_callback(jack_client_t* client, JackPropertyChangeCallback callback, void* arg); - -JACKBRIDGE_EXPORT bool jackbridge_sem_init(void* sem) noexcept; -JACKBRIDGE_EXPORT bool jackbridge_sem_destroy(void* sem) noexcept; -JACKBRIDGE_EXPORT bool jackbridge_sem_post(void* sem) noexcept; -JACKBRIDGE_EXPORT bool jackbridge_sem_timedwait(void* sem, int secs) noexcept; - -JACKBRIDGE_EXPORT bool jackbridge_shm_is_valid(const void* shm) noexcept; -JACKBRIDGE_EXPORT void jackbridge_shm_init(void* shm) noexcept; -JACKBRIDGE_EXPORT void jackbridge_shm_attach(void* shm, const char* name) noexcept; -JACKBRIDGE_EXPORT void jackbridge_shm_close(void* shm) noexcept; -JACKBRIDGE_EXPORT void* jackbridge_shm_map(void* shm, size_t size) noexcept; +bool jackbridge_is_ok() noexcept; + +void jackbridge_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* proto_ptr); +const char* jackbridge_get_version_string(); + +jack_client_t* jackbridge_client_open(const char* client_name, jack_options_t options, jack_status_t* status); +bool jackbridge_client_close(jack_client_t* client); + +int jackbridge_client_name_size(); +char* jackbridge_get_client_name(jack_client_t* client); + +char* jackbridge_get_uuid_for_client_name(jack_client_t* client, const char* name); +char* jackbridge_get_client_name_by_uuid(jack_client_t* client, const char* uuid); + +bool jackbridge_activate(jack_client_t* client); +bool jackbridge_deactivate(jack_client_t* client); +bool jackbridge_is_realtime(jack_client_t* client); + +bool jackbridge_set_thread_init_callback(jack_client_t* client, JackThreadInitCallback thread_init_callback, void* arg); +void jackbridge_on_shutdown(jack_client_t* client, JackShutdownCallback shutdown_callback, void* arg); +void jackbridge_on_info_shutdown(jack_client_t* client, JackInfoShutdownCallback shutdown_callback, void* arg); +bool jackbridge_set_process_callback(jack_client_t* client, JackProcessCallback process_callback, void* arg); +bool jackbridge_set_freewheel_callback(jack_client_t* client, JackFreewheelCallback freewheel_callback, void* arg); +bool jackbridge_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback bufsize_callback, void* arg); +bool jackbridge_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback srate_callback, void* arg); +bool jackbridge_set_client_registration_callback(jack_client_t* client, JackClientRegistrationCallback registration_callback, void* arg); +bool jackbridge_set_port_registration_callback(jack_client_t* client, JackPortRegistrationCallback registration_callback, void* arg); +bool jackbridge_set_port_rename_callback(jack_client_t* client, JackPortRenameCallback rename_callback, void* arg); +bool jackbridge_set_port_connect_callback(jack_client_t* client, JackPortConnectCallback connect_callback, void* arg); +bool jackbridge_set_graph_order_callback(jack_client_t* client, JackGraphOrderCallback graph_callback, void* arg); +bool jackbridge_set_xrun_callback(jack_client_t* client, JackXRunCallback xrun_callback, void* arg); +bool jackbridge_set_latency_callback(jack_client_t* client, JackLatencyCallback latency_callback, void* arg); + +bool jackbridge_set_freewheel(jack_client_t* client, bool onoff); +bool jackbridge_set_buffer_size(jack_client_t* client, jack_nframes_t nframes); + +jack_nframes_t jackbridge_get_sample_rate(jack_client_t* client); +jack_nframes_t jackbridge_get_buffer_size(jack_client_t* client); +float jackbridge_cpu_load(jack_client_t* client); + +jack_port_t* jackbridge_port_register(jack_client_t* client, const char* port_name, const char* port_type, ulong flags, ulong buffer_size); +bool jackbridge_port_unregister(jack_client_t* client, jack_port_t* port); +void* jackbridge_port_get_buffer(jack_port_t* port, jack_nframes_t nframes); + +const char* jackbridge_port_name(const jack_port_t* port); +jack_uuid_t jackbridge_port_uuid(const jack_port_t* port); +const char* jackbridge_port_short_name(const jack_port_t* port); +int jackbridge_port_flags(const jack_port_t* port); +const char* jackbridge_port_type(const jack_port_t* port); +bool jackbridge_port_is_mine(const jack_client_t* client, const jack_port_t* port); +int jackbridge_port_connected(const jack_port_t* port); +bool jackbridge_port_connected_to(const jack_port_t* port, const char* port_name); +const char** jackbridge_port_get_connections(const jack_port_t* port); +const char** jackbridge_port_get_all_connections(const jack_client_t* client, const jack_port_t* port); + +bool jackbridge_port_set_name(jack_port_t* port, const char* port_name); +bool jackbridge_port_set_alias(jack_port_t* port, const char* alias); +bool jackbridge_port_unset_alias(jack_port_t* port, const char* alias); +int jackbridge_port_get_aliases(const jack_port_t* port, char* const aliases[2]); + +bool jackbridge_port_request_monitor(jack_port_t* port, bool onoff); +bool jackbridge_port_request_monitor_by_name(jack_client_t* client, const char* port_name, bool onoff); +bool jackbridge_port_ensure_monitor(jack_port_t* port, bool onoff); +bool jackbridge_port_monitoring_input(jack_port_t* port); + +bool jackbridge_connect(jack_client_t* client, const char* source_port, const char* destination_port); +bool jackbridge_disconnect(jack_client_t* client, const char* source_port, const char* destination_port); +bool jackbridge_port_disconnect(jack_client_t* client, jack_port_t* port); + +int jackbridge_port_name_size(); +int jackbridge_port_type_size(); +size_t jackbridge_port_type_get_buffer_size(jack_client_t* client, const char* port_type); + +void jackbridge_port_get_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range); +void jackbridge_port_set_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range); +bool jackbridge_recompute_total_latencies(jack_client_t* client); + +const char** jackbridge_get_ports(jack_client_t* client, const char* port_name_pattern, const char* type_name_pattern, ulong flags); +jack_port_t* jackbridge_port_by_name(jack_client_t* client, const char* port_name); +jack_port_t* jackbridge_port_by_id(jack_client_t* client, jack_port_id_t port_id); + +void jackbridge_free(void* ptr); + +uint32_t jackbridge_midi_get_event_count(void* port_buffer); +bool jackbridge_midi_event_get(jack_midi_event_t* event, void* port_buffer, uint32_t event_index); +void jackbridge_midi_clear_buffer(void* port_buffer); +bool jackbridge_midi_event_write(void* port_buffer, jack_nframes_t time, const jack_midi_data_t* data, size_t data_size); +jack_midi_data_t* jackbridge_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size); + +bool jackbridge_release_timebase(jack_client_t* client); +bool jackbridge_set_sync_callback(jack_client_t* client, JackSyncCallback sync_callback, void* arg); +bool jackbridge_set_sync_timeout(jack_client_t* client, jack_time_t timeout); +bool jackbridge_set_timebase_callback(jack_client_t* client, bool conditional, JackTimebaseCallback timebase_callback, void* arg); +bool jackbridge_transport_locate(jack_client_t* client, jack_nframes_t frame); + +jack_transport_state_t jackbridge_transport_query(const jack_client_t* client, jack_position_t* pos); +jack_nframes_t jackbridge_get_current_transport_frame(const jack_client_t* client); + +bool jackbridge_transport_reposition(jack_client_t* client, const jack_position_t* pos); +void jackbridge_transport_start(jack_client_t* client); +void jackbridge_transport_stop(jack_client_t* client); + +bool jackbridge_set_property(jack_client_t* client, jack_uuid_t subject, const char* key, const char* value, const char* type); +bool jackbridge_get_property(jack_uuid_t subject, const char* key, char** value, char** type); +void jackbridge_free_description(jack_description_t* desc, bool free_description_itself); +bool jackbridge_get_properties(jack_uuid_t subject, jack_description_t* desc); +bool jackbridge_get_all_properties(jack_description_t** descs); +bool jackbridge_remove_property(jack_client_t* client, jack_uuid_t subject, const char* key); +int jackbridge_remove_properties(jack_client_t* client, jack_uuid_t subject); +bool jackbridge_remove_all_properties(jack_client_t* client); +bool jackbridge_set_property_change_callback(jack_client_t* client, JackPropertyChangeCallback callback, void* arg); + +bool jackbridge_sem_init(void* sem) noexcept; +bool jackbridge_sem_destroy(void* sem) noexcept; +bool jackbridge_sem_post(void* sem) noexcept; +bool jackbridge_sem_timedwait(void* sem, int secs) noexcept; + +bool jackbridge_shm_is_valid(const void* shm) noexcept; +void jackbridge_shm_init(void* shm) noexcept; +void jackbridge_shm_attach(void* shm, const char* name) noexcept; +void jackbridge_shm_close(void* shm) noexcept; +void* jackbridge_shm_map(void* shm, size_t size) noexcept; #endif // JACKBRIDGE_HPP_INCLUDED diff --git a/source/modules/jackbridge/JackBridge1.cpp b/source/modules/jackbridge/JackBridge1.cpp index a6f32c98f..955fddd77 100644 --- a/source/modules/jackbridge/JackBridge1.cpp +++ b/source/modules/jackbridge/JackBridge1.cpp @@ -170,6 +170,7 @@ struct JackBridge { jacksym_set_port_registration_callback set_port_registration_callback_ptr; jacksym_set_port_rename_callback set_port_rename_callback_ptr; jacksym_set_port_connect_callback set_port_connect_callback_ptr; + jacksym_set_graph_order_callback set_graph_order_callback_ptr; jacksym_set_xrun_callback set_xrun_callback_ptr; jacksym_set_latency_callback set_latency_callback_ptr; @@ -277,6 +278,7 @@ struct JackBridge { set_port_registration_callback_ptr(nullptr), set_port_rename_callback_ptr(nullptr), set_port_connect_callback_ptr(nullptr), + set_graph_order_callback_ptr(nullptr), set_xrun_callback_ptr(nullptr), set_latency_callback_ptr(nullptr), set_freewheel_ptr(nullptr), @@ -394,6 +396,7 @@ struct JackBridge { LIB_SYMBOL(set_port_registration_callback) LIB_SYMBOL(set_port_rename_callback) LIB_SYMBOL(set_port_connect_callback) + LIB_SYMBOL(set_graph_order_callback) LIB_SYMBOL(set_xrun_callback) LIB_SYMBOL(set_latency_callback) @@ -502,7 +505,6 @@ static const JackBridge& getBridgeInstance() noexcept // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_is_ok(void) noexcept { #if defined(JACKBRIDGE_DUMMY) @@ -516,7 +518,6 @@ bool jackbridge_is_ok(void) noexcept // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT void jackbridge_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* proto_ptr) { #if defined(JACKBRIDGE_DUMMY) @@ -536,7 +537,6 @@ void jackbridge_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* *proto_ptr = 0; } -JACKBRIDGE_EXPORT const char* jackbridge_get_version_string(void) { #if defined(JACKBRIDGE_DUMMY) @@ -551,13 +551,14 @@ const char* jackbridge_get_version_string(void) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT jack_client_t* jackbridge_client_open(const char* client_name, jack_options_t options, jack_status_t* status) { #if defined(JACKBRIDGE_DUMMY) #elif defined(JACKBRIDGE_DIRECT) return jack_client_open(client_name, options, status); #else + carla_stdout("client_open AFTER %p 0x%x %p", client_name, options, status); + if (getBridgeInstance().client_open_ptr != nullptr) return getBridgeInstance().client_open_ptr(client_name, options, status); #endif @@ -566,7 +567,6 @@ jack_client_t* jackbridge_client_open(const char* client_name, jack_options_t op return nullptr; } -JACKBRIDGE_EXPORT bool jackbridge_client_close(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -581,7 +581,6 @@ bool jackbridge_client_close(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT int jackbridge_client_name_size(void) { #if defined(JACKBRIDGE_DUMMY) @@ -594,7 +593,6 @@ int jackbridge_client_name_size(void) return 0; } -JACKBRIDGE_EXPORT char* jackbridge_get_client_name(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -609,7 +607,6 @@ char* jackbridge_get_client_name(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT char* jackbridge_get_uuid_for_client_name(jack_client_t* client, const char* name) { #if defined(JACKBRIDGE_DUMMY) @@ -622,7 +619,6 @@ char* jackbridge_get_uuid_for_client_name(jack_client_t* client, const char* nam return nullptr; } -JACKBRIDGE_EXPORT char* jackbridge_get_client_name_by_uuid(jack_client_t* client, const char* uuid) { #if defined(JACKBRIDGE_DUMMY) @@ -637,7 +633,6 @@ char* jackbridge_get_client_name_by_uuid(jack_client_t* client, const char* uuid // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_activate(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -650,7 +645,6 @@ bool jackbridge_activate(jack_client_t* client) return false; } -JACKBRIDGE_EXPORT bool jackbridge_deactivate(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -663,7 +657,6 @@ bool jackbridge_deactivate(jack_client_t* client) return false; } -JACKBRIDGE_EXPORT bool jackbridge_is_realtime(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -678,7 +671,6 @@ bool jackbridge_is_realtime(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_set_thread_init_callback(jack_client_t* client, JackThreadInitCallback thread_init_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -691,7 +683,6 @@ bool jackbridge_set_thread_init_callback(jack_client_t* client, JackThreadInitCa return false; } -JACKBRIDGE_EXPORT void jackbridge_on_shutdown(jack_client_t* client, JackShutdownCallback shutdown_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -703,7 +694,6 @@ void jackbridge_on_shutdown(jack_client_t* client, JackShutdownCallback shutdown #endif } -JACKBRIDGE_EXPORT void jackbridge_on_info_shutdown(jack_client_t* client, JackInfoShutdownCallback shutdown_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -715,7 +705,6 @@ void jackbridge_on_info_shutdown(jack_client_t* client, JackInfoShutdownCallback #endif } -JACKBRIDGE_EXPORT bool jackbridge_set_process_callback(jack_client_t* client, JackProcessCallback process_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -728,7 +717,6 @@ bool jackbridge_set_process_callback(jack_client_t* client, JackProcessCallback return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_freewheel_callback(jack_client_t* client, JackFreewheelCallback freewheel_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -741,7 +729,6 @@ bool jackbridge_set_freewheel_callback(jack_client_t* client, JackFreewheelCallb return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback bufsize_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -754,7 +741,6 @@ bool jackbridge_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCa return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback srate_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -767,7 +753,6 @@ bool jackbridge_set_sample_rate_callback(jack_client_t* client, JackSampleRateCa return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_client_registration_callback(jack_client_t* client, JackClientRegistrationCallback registration_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -780,7 +765,6 @@ bool jackbridge_set_client_registration_callback(jack_client_t* client, JackClie return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_port_registration_callback(jack_client_t* client, JackPortRegistrationCallback registration_callback, void *arg) { #if defined(JACKBRIDGE_DUMMY) @@ -793,20 +777,20 @@ bool jackbridge_set_port_registration_callback(jack_client_t* client, JackPortRe return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_port_rename_callback(jack_client_t* client, JackPortRenameCallback rename_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) #elif defined(JACKBRIDGE_DIRECT) return (jack_set_port_rename_callback(client, rename_callback, arg) == 0); #else + if (getBridgeInstance().get_version_string_ptr != nullptr) // don't use this on JACK1 + return false; if (getBridgeInstance().set_port_rename_callback_ptr != nullptr) return (getBridgeInstance().set_port_rename_callback_ptr(client, rename_callback, arg) == 0); #endif return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_port_connect_callback(jack_client_t* client, JackPortConnectCallback connect_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -819,7 +803,18 @@ bool jackbridge_set_port_connect_callback(jack_client_t* client, JackPortConnect return false; } -JACKBRIDGE_EXPORT +bool jackbridge_set_graph_order_callback(jack_client_t* client, JackGraphOrderCallback graph_callback, void* arg) +{ +#if defined(JACKBRIDGE_DUMMY) +#elif defined(JACKBRIDGE_DIRECT) + return (jack_set_graph_order_callback(client, graph_callback, arg) == 0); +#else + if (getBridgeInstance().set_graph_order_callback_ptr != nullptr) + return (getBridgeInstance().set_graph_order_callback_ptr(client, graph_callback, arg) == 0); +#endif + return false; +} + bool jackbridge_set_xrun_callback(jack_client_t* client, JackXRunCallback xrun_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -832,7 +827,6 @@ bool jackbridge_set_xrun_callback(jack_client_t* client, JackXRunCallback xrun_c return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_latency_callback(jack_client_t* client, JackLatencyCallback latency_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -847,7 +841,6 @@ bool jackbridge_set_latency_callback(jack_client_t* client, JackLatencyCallback // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_set_freewheel(jack_client_t* client, bool onoff) { #if defined(JACKBRIDGE_DUMMY) @@ -860,7 +853,6 @@ bool jackbridge_set_freewheel(jack_client_t* client, bool onoff) return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_buffer_size(jack_client_t* client, jack_nframes_t nframes) { #if defined(JACKBRIDGE_DUMMY) @@ -875,7 +867,6 @@ bool jackbridge_set_buffer_size(jack_client_t* client, jack_nframes_t nframes) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_sample_rate(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -888,7 +879,6 @@ jack_nframes_t jackbridge_get_sample_rate(jack_client_t* client) return 0; } -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_buffer_size(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -901,7 +891,6 @@ jack_nframes_t jackbridge_get_buffer_size(jack_client_t* client) return 0; } -JACKBRIDGE_EXPORT float jackbridge_cpu_load(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -916,7 +905,6 @@ float jackbridge_cpu_load(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_register(jack_client_t* client, const char* port_name, const char* port_type, ulong flags, ulong buffer_size) { #if defined(JACKBRIDGE_DUMMY) @@ -929,7 +917,6 @@ jack_port_t* jackbridge_port_register(jack_client_t* client, const char* port_na return nullptr; } -JACKBRIDGE_EXPORT bool jackbridge_port_unregister(jack_client_t* client, jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -942,7 +929,6 @@ bool jackbridge_port_unregister(jack_client_t* client, jack_port_t* port) return false; } -JACKBRIDGE_EXPORT void* jackbridge_port_get_buffer(jack_port_t* port, jack_nframes_t nframes) { #if defined(JACKBRIDGE_DUMMY) @@ -957,7 +943,6 @@ void* jackbridge_port_get_buffer(jack_port_t* port, jack_nframes_t nframes) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT const char* jackbridge_port_name(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -970,7 +955,6 @@ const char* jackbridge_port_name(const jack_port_t* port) return nullptr; } -JACKBRIDGE_EXPORT jack_uuid_t jackbridge_port_uuid(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -983,7 +967,6 @@ jack_uuid_t jackbridge_port_uuid(const jack_port_t* port) return 0; } -JACKBRIDGE_EXPORT const char* jackbridge_port_short_name(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -996,7 +979,6 @@ const char* jackbridge_port_short_name(const jack_port_t* port) return nullptr; } -JACKBRIDGE_EXPORT int jackbridge_port_flags(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1009,7 +991,6 @@ int jackbridge_port_flags(const jack_port_t* port) return 0x0; } -JACKBRIDGE_EXPORT const char* jackbridge_port_type(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1022,7 +1003,6 @@ const char* jackbridge_port_type(const jack_port_t* port) return nullptr; } -JACKBRIDGE_EXPORT bool jackbridge_port_is_mine(const jack_client_t* client, const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1035,7 +1015,6 @@ bool jackbridge_port_is_mine(const jack_client_t* client, const jack_port_t* por return false; } -JACKBRIDGE_EXPORT int jackbridge_port_connected(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1048,7 +1027,6 @@ int jackbridge_port_connected(const jack_port_t* port) return 0; } -JACKBRIDGE_EXPORT bool jackbridge_port_connected_to(const jack_port_t* port, const char* port_name) { #if defined(JACKBRIDGE_DUMMY) @@ -1061,7 +1039,6 @@ bool jackbridge_port_connected_to(const jack_port_t* port, const char* port_name return false; } -JACKBRIDGE_EXPORT const char** jackbridge_port_get_connections(const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1074,7 +1051,6 @@ const char** jackbridge_port_get_connections(const jack_port_t* port) return nullptr; } -JACKBRIDGE_EXPORT const char** jackbridge_port_get_all_connections(const jack_client_t* client, const jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1089,20 +1065,20 @@ const char** jackbridge_port_get_all_connections(const jack_client_t* client, co // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_port_set_name(jack_port_t* port, const char* port_name) { #if defined(JACKBRIDGE_DUMMY) #elif defined(JACKBRIDGE_DIRECT) return (jack_port_set_name(port, port_name) == 0); #else + if (getBridgeInstance().get_version_string_ptr != nullptr) // don't use this on JACK1 + return false; if (getBridgeInstance().port_set_name_ptr != nullptr) return (getBridgeInstance().port_set_name_ptr(port, port_name) == 0); #endif return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_set_alias(jack_port_t* port, const char* alias) { #if defined(JACKBRIDGE_DUMMY) @@ -1115,7 +1091,6 @@ bool jackbridge_port_set_alias(jack_port_t* port, const char* alias) return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_unset_alias(jack_port_t* port, const char* alias) { #if defined(JACKBRIDGE_DUMMY) @@ -1128,7 +1103,6 @@ bool jackbridge_port_unset_alias(jack_port_t* port, const char* alias) return false; } -JACKBRIDGE_EXPORT int jackbridge_port_get_aliases(const jack_port_t* port, char* const aliases[2]) { #if defined(JACKBRIDGE_DUMMY) @@ -1143,7 +1117,6 @@ int jackbridge_port_get_aliases(const jack_port_t* port, char* const aliases[2]) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_port_request_monitor(jack_port_t* port, bool onoff) { #if defined(JACKBRIDGE_DUMMY) @@ -1156,7 +1129,6 @@ bool jackbridge_port_request_monitor(jack_port_t* port, bool onoff) return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_request_monitor_by_name(jack_client_t* client, const char* port_name, bool onoff) { #if defined(JACKBRIDGE_DUMMY) @@ -1169,7 +1141,6 @@ bool jackbridge_port_request_monitor_by_name(jack_client_t* client, const char* return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_ensure_monitor(jack_port_t* port, bool onoff) { #if defined(JACKBRIDGE_DUMMY) @@ -1182,7 +1153,6 @@ bool jackbridge_port_ensure_monitor(jack_port_t* port, bool onoff) return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_monitoring_input(jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1197,7 +1167,6 @@ bool jackbridge_port_monitoring_input(jack_port_t* port) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_connect(jack_client_t* client, const char* source_port, const char* destination_port) { #if defined(JACKBRIDGE_DUMMY) @@ -1210,7 +1179,6 @@ bool jackbridge_connect(jack_client_t* client, const char* source_port, const ch return false; } -JACKBRIDGE_EXPORT bool jackbridge_disconnect(jack_client_t* client, const char* source_port, const char* destination_port) { #if defined(JACKBRIDGE_DUMMY) @@ -1223,7 +1191,6 @@ bool jackbridge_disconnect(jack_client_t* client, const char* source_port, const return false; } -JACKBRIDGE_EXPORT bool jackbridge_port_disconnect(jack_client_t* client, jack_port_t* port) { #if defined(JACKBRIDGE_DUMMY) @@ -1238,7 +1205,6 @@ bool jackbridge_port_disconnect(jack_client_t* client, jack_port_t* port) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT int jackbridge_port_name_size(void) { #if defined(JACKBRIDGE_DUMMY) @@ -1251,7 +1217,6 @@ int jackbridge_port_name_size(void) return 0; } -JACKBRIDGE_EXPORT int jackbridge_port_type_size(void) { #if defined(JACKBRIDGE_DUMMY) @@ -1264,7 +1229,6 @@ int jackbridge_port_type_size(void) return 0; } -JACKBRIDGE_EXPORT size_t jackbridge_port_type_get_buffer_size(jack_client_t* client, const char* port_type) { #if defined(JACKBRIDGE_DUMMY) @@ -1279,7 +1243,6 @@ size_t jackbridge_port_type_get_buffer_size(jack_client_t* client, const char* p // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT void jackbridge_port_get_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range) { #if defined(JACKBRIDGE_DUMMY) @@ -1293,7 +1256,6 @@ void jackbridge_port_get_latency_range(jack_port_t* port, jack_latency_callback_ range->max = 0; } -JACKBRIDGE_EXPORT void jackbridge_port_set_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range) { #if defined(JACKBRIDGE_DUMMY) @@ -1305,7 +1267,6 @@ void jackbridge_port_set_latency_range(jack_port_t* port, jack_latency_callback_ #endif } -JACKBRIDGE_EXPORT bool jackbridge_recompute_total_latencies(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1320,7 +1281,6 @@ bool jackbridge_recompute_total_latencies(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT const char** jackbridge_get_ports(jack_client_t* client, const char* port_name_pattern, const char* type_name_pattern, ulong flags) { #if defined(JACKBRIDGE_DUMMY) @@ -1333,7 +1293,6 @@ const char** jackbridge_get_ports(jack_client_t* client, const char* port_name_p return nullptr; } -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_by_name(jack_client_t* client, const char* port_name) { #if defined(JACKBRIDGE_DUMMY) @@ -1346,7 +1305,6 @@ jack_port_t* jackbridge_port_by_name(jack_client_t* client, const char* port_nam return nullptr; } -JACKBRIDGE_EXPORT jack_port_t* jackbridge_port_by_id(jack_client_t* client, jack_port_id_t port_id) { #if defined(JACKBRIDGE_DUMMY) @@ -1361,7 +1319,6 @@ jack_port_t* jackbridge_port_by_id(jack_client_t* client, jack_port_id_t port_id // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT void jackbridge_free(void* ptr) { #if defined(JACKBRIDGE_DUMMY) @@ -1378,7 +1335,6 @@ void jackbridge_free(void* ptr) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT uint32_t jackbridge_midi_get_event_count(void* port_buffer) { #if defined(JACKBRIDGE_DUMMY) @@ -1391,7 +1347,6 @@ uint32_t jackbridge_midi_get_event_count(void* port_buffer) return 0; } -JACKBRIDGE_EXPORT bool jackbridge_midi_event_get(jack_midi_event_t* event, void* port_buffer, uint32_t event_index) { #if defined(JACKBRIDGE_DUMMY) @@ -1404,7 +1359,6 @@ bool jackbridge_midi_event_get(jack_midi_event_t* event, void* port_buffer, uint return false; } -JACKBRIDGE_EXPORT void jackbridge_midi_clear_buffer(void* port_buffer) { #if defined(JACKBRIDGE_DUMMY) @@ -1416,7 +1370,6 @@ void jackbridge_midi_clear_buffer(void* port_buffer) #endif } -JACKBRIDGE_EXPORT bool jackbridge_midi_event_write(void* port_buffer, jack_nframes_t time, const jack_midi_data_t* data, size_t data_size) { #if defined(JACKBRIDGE_DUMMY) @@ -1429,7 +1382,6 @@ bool jackbridge_midi_event_write(void* port_buffer, jack_nframes_t time, const j return false; } -JACKBRIDGE_EXPORT jack_midi_data_t* jackbridge_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size) { #if defined(JACKBRIDGE_DUMMY) @@ -1444,7 +1396,6 @@ jack_midi_data_t* jackbridge_midi_event_reserve(void* port_buffer, jack_nframes_ // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_release_timebase(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1457,7 +1408,6 @@ bool jackbridge_release_timebase(jack_client_t* client) return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_sync_callback(jack_client_t* client, JackSyncCallback sync_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -1470,7 +1420,6 @@ bool jackbridge_set_sync_callback(jack_client_t* client, JackSyncCallback sync_c return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_sync_timeout(jack_client_t* client, jack_time_t timeout) { #if defined(JACKBRIDGE_DUMMY) @@ -1483,7 +1432,6 @@ bool jackbridge_set_sync_timeout(jack_client_t* client, jack_time_t timeout) return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_timebase_callback(jack_client_t* client, bool conditional, JackTimebaseCallback timebase_callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) @@ -1496,7 +1444,6 @@ bool jackbridge_set_timebase_callback(jack_client_t* client, bool conditional, J return false; } -JACKBRIDGE_EXPORT bool jackbridge_transport_locate(jack_client_t* client, jack_nframes_t frame) { #if defined(JACKBRIDGE_DUMMY) @@ -1509,7 +1456,6 @@ bool jackbridge_transport_locate(jack_client_t* client, jack_nframes_t frame) return false; } -JACKBRIDGE_EXPORT jack_transport_state_t jackbridge_transport_query(const jack_client_t* client, jack_position_t* pos) { #if defined(JACKBRIDGE_DUMMY) @@ -1528,7 +1474,6 @@ jack_transport_state_t jackbridge_transport_query(const jack_client_t* client, j return JackTransportStopped; } -JACKBRIDGE_EXPORT jack_nframes_t jackbridge_get_current_transport_frame(const jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1541,7 +1486,6 @@ jack_nframes_t jackbridge_get_current_transport_frame(const jack_client_t* clien return 0; } -JACKBRIDGE_EXPORT bool jackbridge_transport_reposition(jack_client_t* client, const jack_position_t* pos) { #if defined(JACKBRIDGE_DUMMY) @@ -1554,7 +1498,6 @@ bool jackbridge_transport_reposition(jack_client_t* client, const jack_position_ return false; } -JACKBRIDGE_EXPORT void jackbridge_transport_start(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1566,7 +1509,6 @@ void jackbridge_transport_start(jack_client_t* client) #endif } -JACKBRIDGE_EXPORT void jackbridge_transport_stop(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1580,7 +1522,6 @@ void jackbridge_transport_stop(jack_client_t* client) // ----------------------------------------------------------------------------- -JACKBRIDGE_EXPORT bool jackbridge_set_property(jack_client_t* client, jack_uuid_t subject, const char* key, const char* value, const char* type) { #if defined(JACKBRIDGE_DUMMY) @@ -1593,7 +1534,6 @@ bool jackbridge_set_property(jack_client_t* client, jack_uuid_t subject, const c return false; } -JACKBRIDGE_EXPORT bool jackbridge_get_property(jack_uuid_t subject, const char* key, char** value, char** type) { #if defined(JACKBRIDGE_DUMMY) @@ -1606,7 +1546,6 @@ bool jackbridge_get_property(jack_uuid_t subject, const char* key, char** value, return false; } -JACKBRIDGE_EXPORT void jackbridge_free_description(jack_description_t* desc, bool free_description_itself) { #if defined(JACKBRIDGE_DUMMY) @@ -1618,7 +1557,6 @@ void jackbridge_free_description(jack_description_t* desc, bool free_description #endif } -JACKBRIDGE_EXPORT bool jackbridge_get_properties(jack_uuid_t subject, jack_description_t* desc) { #if defined(JACKBRIDGE_DUMMY) @@ -1631,7 +1569,6 @@ bool jackbridge_get_properties(jack_uuid_t subject, jack_description_t* desc) return false; } -JACKBRIDGE_EXPORT bool jackbridge_get_all_properties(jack_description_t** descs) { #if defined(JACKBRIDGE_DUMMY) @@ -1644,7 +1581,6 @@ bool jackbridge_get_all_properties(jack_description_t** descs) return false; } -JACKBRIDGE_EXPORT bool jackbridge_remove_property(jack_client_t* client, jack_uuid_t subject, const char* key) { #if defined(JACKBRIDGE_DUMMY) @@ -1657,7 +1593,6 @@ bool jackbridge_remove_property(jack_client_t* client, jack_uuid_t subject, cons return false; } -JACKBRIDGE_EXPORT int jackbridge_remove_properties(jack_client_t* client, jack_uuid_t subject) { #if defined(JACKBRIDGE_DUMMY) @@ -1670,7 +1605,6 @@ int jackbridge_remove_properties(jack_client_t* client, jack_uuid_t subject) return 0; } -JACKBRIDGE_EXPORT bool jackbridge_remove_all_properties(jack_client_t* client) { #if defined(JACKBRIDGE_DUMMY) @@ -1683,7 +1617,6 @@ bool jackbridge_remove_all_properties(jack_client_t* client) return false; } -JACKBRIDGE_EXPORT bool jackbridge_set_property_change_callback(jack_client_t* client, JackPropertyChangeCallback callback, void* arg) { #if defined(JACKBRIDGE_DUMMY) diff --git a/source/modules/jackbridge/JackBridge2.cpp b/source/modules/jackbridge/JackBridge2.cpp index e686d443a..5c4ca6da2 100644 --- a/source/modules/jackbridge/JackBridge2.cpp +++ b/source/modules/jackbridge/JackBridge2.cpp @@ -35,7 +35,6 @@ extern "C" { // TODO - check noexcept on OSX -JACKBRIDGE_EXPORT bool jackbridge_sem_init(void* sem) noexcept { #if defined(JACKBRIDGE_DUMMY) @@ -60,7 +59,6 @@ bool jackbridge_sem_init(void* sem) noexcept #endif } -JACKBRIDGE_EXPORT bool jackbridge_sem_destroy(void* sem) noexcept { #if defined(JACKBRIDGE_DUMMY) @@ -72,7 +70,6 @@ bool jackbridge_sem_destroy(void* sem) noexcept #endif } -JACKBRIDGE_EXPORT bool jackbridge_sem_post(void* sem) noexcept { #ifdef JACKBRIDGE_DUMMY @@ -87,7 +84,6 @@ bool jackbridge_sem_post(void* sem) noexcept #endif } -JACKBRIDGE_EXPORT bool jackbridge_sem_timedwait(void* sem, int secs) noexcept { CARLA_SAFE_ASSERT_RETURN(secs > 0, false); @@ -119,7 +115,6 @@ bool jackbridge_sem_timedwait(void* sem, int secs) noexcept #endif } -JACKBRIDGE_EXPORT bool jackbridge_shm_is_valid(const void* shm) noexcept { CARLA_SAFE_ASSERT_RETURN(shm != nullptr, false); @@ -130,7 +125,6 @@ bool jackbridge_shm_is_valid(const void* shm) noexcept #endif } -JACKBRIDGE_EXPORT void jackbridge_shm_init(void* shm) noexcept { CARLA_SAFE_ASSERT_RETURN(shm != nullptr,); @@ -140,7 +134,6 @@ void jackbridge_shm_init(void* shm) noexcept #endif } -JACKBRIDGE_EXPORT void jackbridge_shm_attach(void* shm, const char* name) noexcept { CARLA_SAFE_ASSERT_RETURN(shm != nullptr,); @@ -150,7 +143,6 @@ void jackbridge_shm_attach(void* shm, const char* name) noexcept #endif } -JACKBRIDGE_EXPORT void jackbridge_shm_close(void* shm) noexcept { CARLA_SAFE_ASSERT_RETURN(shm != nullptr,); @@ -160,7 +152,6 @@ void jackbridge_shm_close(void* shm) noexcept #endif } -JACKBRIDGE_EXPORT void* jackbridge_shm_map(void* shm, size_t size) noexcept { CARLA_SAFE_ASSERT_RETURN(shm != nullptr, nullptr); diff --git a/source/modules/jackbridge/Makefile b/source/modules/jackbridge/Makefile index 556cf6265..37909d650 100644 --- a/source/modules/jackbridge/Makefile +++ b/source/modules/jackbridge/Makefile @@ -25,18 +25,13 @@ OBJS_posix64 = JackBridge1.cpp.posix64.o JackBridge2.cpp.posix64.o OBJS_win32 = JackBridge1.cpp.win32.o JackBridge2.cpp.win32.o OBJS_win64 = JackBridge1.cpp.win64.o JackBridge2.cpp.win64.o -OBJS_posix32d = JackBridge1.cpp.posix32d.o JackBridge2.cpp.posix32d.o -OBJS_posix64d = JackBridge1.cpp.posix64d.o JackBridge2.cpp.posix64d.o -OBJS_win32d = JackBridge1.cpp.win32d.o JackBridge2.cpp.win32d.o -OBJS_win64d = JackBridge1.cpp.win64d.o JackBridge2.cpp.win64d.o +OBJS_posix32e = JackBridgeExport.cpp.posix32e.o +OBJS_posix64e = JackBridgeExport.cpp.posix64e.o +OBJS_win64e = JackBridgeExport.cpp.win64e.o +OBJS_win32e = JackBridgeExport.cpp.win32e.o -OBJS_posix32e = JackBridgeExport.cpp.posix32.o -OBJS_posix64e = JackBridgeExport.cpp.posix64.o -OBJS_win64e = JackBridgeExport.cpp.win64.o -OBJS_win32e = JackBridgeExport.cpp.win32.o - -OBJS_wine32 = JackBridge1.cpp.wine32.o JackBridge2.cpp.wine32.o -OBJS_wine64 = JackBridge1.cpp.wine64.o JackBridge2.cpp.wine64.o +OBJS_wine32 = JackBridge1.cpp.wine32.o JackBridge2.cpp.wine32.o JackBridge3.cpp.wine32.o +OBJS_wine64 = JackBridge1.cpp.wine64.o JackBridge2.cpp.wine64.o JackBridge3.cpp.wine64.o # -------------------------------------------------------------- @@ -105,25 +100,25 @@ debug: # -------------------------------------------------------------- -../jackbridge-posix32e.so: $(OBJS_posix32e) - $(CXX) $^ -shared $(LINK_FLAGS) $(32BIT_FLAGS) -o $@ +../jackbridge-wine32.dll.so: $(OBJS_wine32) JackBridgeExport.def + $(WINECXX) $^ -shared $(WINE_32BIT_FLAGS) $(WINE_LINK_FLAGS) -o $@ -../jackbridge-posix64e.so: $(OBJS_posix64e) - $(CXX) $^ -shared $(LINK_FLAGS) $(64BIT_FLAGS) -o $@ +../jackbridge-wine64.dll.so: $(OBJS_wine64) JackBridgeExport.def + $(WINECXX) $^ -shared $(WINE_64BIT_FLAGS) $(WINE_LINK_FLAGS) -o $@ # -------------------------------------------------------------- -../jackbridge-win32.dll: $(OBJS_win32d) - $(CXX) $^ -shared $(LINK_FLAGS) -Wl,--output-def,$@.def,--out-implib,$@.a -o $@ +JackBridge1.cpp.o: JackBridge1.cpp JackBridge.hpp + $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ -../jackbridge-win64.dll: $(OBJS_win64d) - $(CXX) $^ -shared $(LINK_FLAGS) -Wl,--output-def,$@.def,--out-implib,$@.a -o $@ +JackBridge2.cpp.o: JackBridge2.cpp JackBridge.hpp + $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ -../jackbridge-wine32.dll.so: $(OBJS_wine32) ../jackbridge-win32.dll.def - $(WINECXX) $^ -shared $(WINE_32BIT_FLAGS) $(WINE_LINK_FLAGS) -o $@ +JackBridgeExport.cpp.%32e.o: JackBridgeExport.cpp JackBridgeExport.hpp JackBridge.hpp + $(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -fpermissive -c -o $@ -../jackbridge-wine64.dll.so: $(OBJS_wine64) ../jackbridge-win64.dll.def - $(WINECXX) $^ -shared $(WINE_64BIT_FLAGS) $(WINE_LINK_FLAGS) -o $@ +JackBridgeExport.cpp.%64e.o: JackBridgeExport.cpp JackBridgeExport.hpp JackBridge.hpp + $(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -fpermissive -c -o $@ # -------------------------------------------------------------- @@ -141,43 +136,10 @@ debug: # -------------------------------------------------------------- -%.posix32d.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -DJACKBRIDGE_DUMMY -DJACKBRIDGE_EXPORTING -Wno-unused-parameter -c -o $@ - -%.posix64d.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -DJACKBRIDGE_DUMMY -DJACKBRIDGE_EXPORTING -Wno-unused-parameter -c -o $@ - -%.win64d.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -DJACKBRIDGE_DUMMY -DJACKBRIDGE_EXPORTING -Wno-unused-parameter -c -o $@ - -%.win32d.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -DJACKBRIDGE_DUMMY -DJACKBRIDGE_EXPORTING -Wno-unused-parameter -c -o $@ - -# -------------------------------------------------------------- - -%.posix32e.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@ - -%.posix64e.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@ - -%.win64e.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@ - -%.win32e.o: % - $(CXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@ - -# -------------------------------------------------------------- - %.wine32.o: % - $(WINECXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -DJACKBRIDGE_EXPORTING -c -o $@ + $(WINECXX) $< $(BUILD_CXX_FLAGS) $(32BIT_FLAGS) -c -o $@ %.wine64.o: % - $(WINECXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -DJACKBRIDGE_EXPORTING -c -o $@ - -# -------------------------------------------------------------- - -JackBridge%.cpp.o: JackBridge%.cpp JackBridge.hpp - $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ + $(WINECXX) $< $(BUILD_CXX_FLAGS) $(64BIT_FLAGS) -c -o $@ # --------------------------------------------------------------