298 |
return static_cast<JackClient*>(arg)->Process(nframes); |
return static_cast<JackClient*>(arg)->Process(nframes); |
299 |
} |
} |
300 |
|
|
301 |
void JackClient::libjackShutdownCallback(jack_status_t code, const char* reason, void *arg) { |
#if HAVE_JACK_ON_INFO_SHUTDOWN |
302 |
|
void JackClient::libjackShutdownCallback(jack_status_t code, const char* reason, void *arg) |
303 |
|
#else |
304 |
|
void JackClient::libjackShutdownCallback(void *arg) |
305 |
|
#endif |
306 |
|
{ |
307 |
JackClient* jackClient = static_cast<JackClient*>(arg); |
JackClient* jackClient = static_cast<JackClient*>(arg); |
308 |
jackClient->Stop(); |
jackClient->Stop(); |
309 |
fprintf(stderr, "Jack: Jack server shutdown, exiting.\n"); |
fprintf(stderr, "Jack: Jack server shutdown, exiting.\n"); |
310 |
for (int i = 0; i < jackClient->jackListeners.size(); ++i) { |
for (int i = 0; i < jackClient->jackListeners.size(); ++i) { |
311 |
JackListener* listener = jackClient->jackListeners[i]; |
JackListener* listener = jackClient->jackListeners[i]; |
312 |
|
#if HAVE_JACK_ON_INFO_SHUTDOWN |
313 |
listener->onJackShutdown(code, reason); |
listener->onJackShutdown(code, reason); |
314 |
|
#else |
315 |
|
listener->onJackShutdown(JackFailure, "unknown"); |
316 |
|
#endif |
317 |
} |
} |
318 |
} |
} |
319 |
|
|
386 |
if (!hJackClient) |
if (!hJackClient) |
387 |
throw Exception("Seems Jack server is not running."); |
throw Exception("Seems Jack server is not running."); |
388 |
jack_set_process_callback(hJackClient, linuxsampler_libjack_process_callback, this); |
jack_set_process_callback(hJackClient, linuxsampler_libjack_process_callback, this); |
389 |
|
#if HAVE_JACK_ON_INFO_SHUTDOWN |
390 |
jack_on_info_shutdown(hJackClient, libjackShutdownCallback, this); |
jack_on_info_shutdown(hJackClient, libjackShutdownCallback, this); |
391 |
|
#else |
392 |
|
jack_on_shutdown(hJackClient, libjackShutdownCallback, this); |
393 |
|
#endif |
394 |
jack_set_buffer_size_callback(hJackClient, libjackBufferSizeCallback, this); |
jack_set_buffer_size_callback(hJackClient, libjackBufferSizeCallback, this); |
395 |
jack_set_sample_rate_callback(hJackClient, libjackSampleRateCallback, this); |
jack_set_sample_rate_callback(hJackClient, libjackSampleRateCallback, this); |
396 |
|
|