diff --git a/source/libjack/libjack.cpp b/source/libjack/libjack.cpp index c42ff9100..bcbccb764 100644 --- a/source/libjack/libjack.cpp +++ b/source/libjack/libjack.cpp @@ -665,139 +665,13 @@ CARLA_BACKEND_END_NAMESPACE // -------------------------------------------------------------------------------------------------------------------- -CARLA_BACKEND_USE_NAMESPACE +#include "jackbridge/JackBridge2.cpp" +#include "CarlaBridgeUtils.cpp" // -------------------------------------------------------------------------------------------------------------------- +// TODO -CARLA_EXPORT -void jack_set_error_function(void (*func)(const char *)) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - (void)func; -} - -CARLA_EXPORT -int jack_set_sync_callback(jack_client_t* client, JackSyncCallback /*callback*/, void* /*arg*/) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - // TODO - - return 0; -} - -CARLA_EXPORT -int jack_set_timebase_callback(jack_client_t* client, int, JackTimebaseCallback, void*) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - // TODO - - return EBUSY; -} - -CARLA_EXPORT -int jack_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback /*callback*/, void* /*arg*/) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - // TODO - - return 0; -} - -CARLA_EXPORT -int jack_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback /*callback*/, void* /*arg*/) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - // TODO - - return 0; -} - -CARLA_EXPORT -int jack_set_client_registration_callback(jack_client_t* client, JackClientRegistrationCallback, void*) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - - return 0; -} - -CARLA_EXPORT -int jack_set_port_registration_callback(jack_client_t* client, JackPortRegistrationCallback, void*) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - return 0; -} - -CARLA_EXPORT -int jack_set_port_connect_callback(jack_client_t* client, JackPortConnectCallback, void*) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - return 0; -} - -CARLA_EXPORT -int jack_set_graph_order_callback(jack_client_t* client, JackGraphOrderCallback, void*) -{ - carla_stdout("CarlaJackClient :: %s", __FUNCTION__); - - CarlaJackClient* const jclient = (CarlaJackClient*)client; - CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); - - const JackClientState& jstate(jclient->fState); - CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); - - return 0; -} +CARLA_BACKEND_USE_NAMESPACE CARLA_EXPORT int jack_client_real_time_priority(jack_client_t*) @@ -808,8 +682,3 @@ int jack_client_real_time_priority(jack_client_t*) } // -------------------------------------------------------------------------------------------------------------------- - -#include "jackbridge/JackBridge2.cpp" -#include "CarlaBridgeUtils.cpp" - -// -------------------------------------------------------------------------------------------------------------------- diff --git a/source/libjack/libjack.hpp b/source/libjack/libjack.hpp index 0e3601f6d..93b92a672 100644 --- a/source/libjack/libjack.hpp +++ b/source/libjack/libjack.hpp @@ -145,6 +145,10 @@ struct JackClientState { } }; +// TODO JackServerState, with only bufsize, srate and tranport +// TODO add JackServerState ptr to JackClientState +// TODO each client gets its own JackClientState struct + class CarlaJackClient : public juce::Thread { public: diff --git a/source/libjack/libjack_callbacks.cpp b/source/libjack/libjack_callbacks.cpp index 4e7bb101e..13a0e6602 100644 --- a/source/libjack/libjack_callbacks.cpp +++ b/source/libjack/libjack_callbacks.cpp @@ -67,34 +67,99 @@ int jack_set_process_callback(jack_client_t* client, JackProcessCallback callbac // JackFreewheelCallback freewheel_callback, // void *arg) JACK_OPTIONAL_WEAK_EXPORT; -// int jack_set_buffer_size_callback (jack_client_t *client, -// JackBufferSizeCallback bufsize_callback, -// void *arg) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +int jack_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback /*callback*/, void* /*arg*/) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + // TODO -// int jack_set_sample_rate_callback (jack_client_t *client, -// JackSampleRateCallback srate_callback, -// void *arg) JACK_OPTIONAL_WEAK_EXPORT; + return 0; +} -// int jack_set_client_registration_callback (jack_client_t *client, -// JackClientRegistrationCallback -// registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +int jack_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback /*callback*/, void* /*arg*/) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); -// int jack_set_port_registration_callback (jack_client_t *client, -// JackPortRegistrationCallback -// registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); -// int jack_set_port_connect_callback (jack_client_t *client, -// JackPortConnectCallback -// connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; + // TODO + + return 0; +} + +CARLA_EXPORT +int jack_set_client_registration_callback(jack_client_t* client, JackClientRegistrationCallback, void*) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + + return 0; +} + +CARLA_EXPORT +int jack_set_port_registration_callback(jack_client_t* client, JackPortRegistrationCallback, void*) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + return 0; +} + +CARLA_EXPORT +int jack_set_port_connect_callback(jack_client_t* client, JackPortConnectCallback, void*) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + return 0; +} // int jack_set_port_rename_callback (jack_client_t *client, // JackPortRenameCallback // rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; -// int jack_set_graph_order_callback (jack_client_t *client, -// JackGraphOrderCallback graph_callback, -// void *) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +int jack_set_graph_order_callback(jack_client_t* client, JackGraphOrderCallback, void*) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + return 0; +} CARLA_EXPORT int jack_set_xrun_callback(jack_client_t*, JackXRunCallback, void*) diff --git a/source/libjack/libjack_error.cpp b/source/libjack/libjack_error.cpp index 9d3d80cda..a3e8eef1a 100644 --- a/source/libjack/libjack_error.cpp +++ b/source/libjack/libjack_error.cpp @@ -24,7 +24,13 @@ CARLA_BACKEND_USE_NAMESPACE //extern void (*jack_error_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; -//void jack_set_error_function (void (*func)(const char *)) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +void jack_set_error_function(void (*func)(const char *)) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + (void)func; +} //extern void (*jack_info_callback)(const char *msg) JACK_OPTIONAL_WEAK_EXPORT; diff --git a/source/libjack/libjack_transport.cpp b/source/libjack/libjack_transport.cpp index c2bc4bb43..b779f945c 100644 --- a/source/libjack/libjack_transport.cpp +++ b/source/libjack/libjack_transport.cpp @@ -24,17 +24,40 @@ CARLA_BACKEND_USE_NAMESPACE // int jack_release_timebase (jack_client_t *client) JACK_OPTIONAL_WEAK_EXPORT; -// int jack_set_sync_callback (jack_client_t *client, -// JackSyncCallback sync_callback, -// void *arg) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +int jack_set_sync_callback(jack_client_t* client, JackSyncCallback /*callback*/, void* /*arg*/) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + // TODO + + return 0; +} // int jack_set_sync_timeout (jack_client_t *client, // jack_time_t timeout) JACK_OPTIONAL_WEAK_EXPORT; -// int jack_set_timebase_callback (jack_client_t *client, -// int conditional, -// JackTimebaseCallback timebase_callback, -// void *arg) JACK_OPTIONAL_WEAK_EXPORT; +CARLA_EXPORT +int jack_set_timebase_callback(jack_client_t* client, int, JackTimebaseCallback, void*) +{ + carla_stdout("CarlaJackClient :: %s", __FUNCTION__); + + CarlaJackClient* const jclient = (CarlaJackClient*)client; + CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); + + const JackClientState& jstate(jclient->fState); + CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1); + + // TODO + + return EBUSY; +} CARLA_EXPORT int jack_transport_locate(jack_client_t*, jack_nframes_t)