| @@ -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" | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -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: | |||
| @@ -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*) | |||
| @@ -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; | |||
| @@ -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) | |||