| @@ -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 | CARLA_EXPORT | ||||
| int jack_client_real_time_priority(jack_client_t*) | 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 | class CarlaJackClient : public juce::Thread | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -67,34 +67,99 @@ int jack_set_process_callback(jack_client_t* client, JackProcessCallback callbac | |||||
| // JackFreewheelCallback freewheel_callback, | // JackFreewheelCallback freewheel_callback, | ||||
| // void *arg) JACK_OPTIONAL_WEAK_EXPORT; | // 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, | // int jack_set_port_rename_callback (jack_client_t *client, | ||||
| // JackPortRenameCallback | // JackPortRenameCallback | ||||
| // rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT; | // 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 | CARLA_EXPORT | ||||
| int jack_set_xrun_callback(jack_client_t*, JackXRunCallback, void*) | 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; | //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; | //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_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, | // int jack_set_sync_timeout (jack_client_t *client, | ||||
| // jack_time_t timeout) JACK_OPTIONAL_WEAK_EXPORT; | // 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 | CARLA_EXPORT | ||||
| int jack_transport_locate(jack_client_t*, jack_nframes_t) | int jack_transport_locate(jack_client_t*, jack_nframes_t) | ||||