- jack_on_shutdown (_jack, halted, this);
- jack_set_graph_order_callback (_jack, _graph_order_callback, this);
- jack_set_thread_init_callback (_jack, _thread_init_callback, this);
- jack_set_process_callback (_jack, _process_callback, this);
- jack_set_sample_rate_callback (_jack, _sample_rate_callback, this);
- jack_set_buffer_size_callback (_jack, _bufsize_callback, this);
- jack_set_xrun_callback (_jack, _xrun_callback, this);
- jack_set_sync_callback (_jack, _jack_sync_callback, this);
- jack_set_freewheel_callback (_jack, _freewheel_callback, this);
-
- if (Config->get_jack_time_master()) {
- jack_set_timebase_callback (_jack, 0, _jack_timebase_callback, this);
+ if (on_info_shutdown) {
+ jack_on_info_shutdown (_priv_jack, halted_info, this);
+ } else {
+ jack_on_shutdown (_priv_jack, halted, this);
+ }
+ jack_set_graph_order_callback (_priv_jack, _graph_order_callback, this);
+ jack_set_thread_init_callback (_priv_jack, _thread_init_callback, this);
+ // jack_set_process_callback (_priv_jack, _process_callback, this);
+ jack_set_process_thread (_priv_jack, _process_thread, this);
+ jack_set_sample_rate_callback (_priv_jack, _sample_rate_callback, this);
+ jack_set_buffer_size_callback (_priv_jack, _bufsize_callback, this);
+ jack_set_xrun_callback (_priv_jack, _xrun_callback, this);
+#ifdef HAVE_JACK_SESSION
+ if( jack_set_session_callback )
+ jack_set_session_callback (_priv_jack, _session_callback, this);
+#endif
+ jack_set_sync_callback (_priv_jack, _jack_sync_callback, this);
+ jack_set_freewheel_callback (_priv_jack, _freewheel_callback, this);
+ jack_set_port_registration_callback (_priv_jack, _registration_callback, this);
+ jack_set_port_connect_callback (_priv_jack, _connect_callback, this);
+
+ if (_session && _session->config.get_jack_time_master()) {
+ jack_set_timebase_callback (_priv_jack, 0, _jack_timebase_callback, this);