I'm integrating the JACK Audio Connection Kit in my app and am having a basic but annoying issue.
I basically copied and pasted the simple_client example (github code) from their own API, but the jack_shutdown()
method just uses exit(1)
rather than any pausing mechanism. I've tried using these two methods instead:
void jack_shutdown(void *arg){
jack_deactivate(client);
jack_client_close(client);
}
Although the audio stops, when running the same code as before that first starts the JACK client, from simple_client
- int main ()
, it crashes the application. This, I'm guessing, is because of jack_client_close(client)
which actually returns the following messages:
Released audio card Audio0
Released audio card Audio1
audio_reservation_finish
Can anyone tell me what "pause" function would be more appropriate? A stop function would also be useful if one were to shut down the audio system - but with the option to start it again.
I have not done that in my application yet, but from peeking at Ardour's code I guess that a
should be what JACK expects. https://github.com/Ardour/ardour/blob/365f6d633731229e7bc5d37a5fe2c9107b527e28/libs/backends/jack/jack_connection.cc#L144
I looked at Ardour because I know that it allows disconnecting and reconnecting to JACK during a session.