298 |
return static_cast<JackClient*>(arg)->Process(nframes); |
return static_cast<JackClient*>(arg)->Process(nframes); |
299 |
} |
} |
300 |
|
|
301 |
void JackClient::libjackShutdownCallback(void* arg) { |
void JackClient::libjackShutdownCallback(jack_status_t code, const char* reason, void *arg) { |
302 |
JackClient* jackClient = static_cast<JackClient*>(arg); |
JackClient* jackClient = static_cast<JackClient*>(arg); |
303 |
jackClient->Stop(); |
jackClient->Stop(); |
304 |
fprintf(stderr, "Jack: Jack server shutdown, exiting.\n"); |
fprintf(stderr, "Jack: Jack server shutdown, exiting.\n"); |
305 |
for (int i = 0; i < jackClient->jackListeners.size(); ++i) { |
for (int i = 0; i < jackClient->jackListeners.size(); ++i) { |
306 |
JackListener* listener = jackClient->jackListeners[i]; |
JackListener* listener = jackClient->jackListeners[i]; |
307 |
listener->onJackShutdown(); |
listener->onJackShutdown(code, reason); |
308 |
} |
} |
309 |
} |
} |
310 |
|
|
377 |
if (!hJackClient) |
if (!hJackClient) |
378 |
throw Exception("Seems Jack server is not running."); |
throw Exception("Seems Jack server is not running."); |
379 |
jack_set_process_callback(hJackClient, linuxsampler_libjack_process_callback, this); |
jack_set_process_callback(hJackClient, linuxsampler_libjack_process_callback, this); |
380 |
jack_on_shutdown(hJackClient, libjackShutdownCallback, this); |
jack_on_info_shutdown(hJackClient, libjackShutdownCallback, this); |
381 |
jack_set_buffer_size_callback(hJackClient, libjackBufferSizeCallback, this); |
jack_set_buffer_size_callback(hJackClient, libjackBufferSizeCallback, this); |
382 |
jack_set_sample_rate_callback(hJackClient, libjackSampleRateCallback, this); |
jack_set_sample_rate_callback(hJackClient, libjackSampleRateCallback, this); |
383 |
|
|