mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-06 21:55:43 +01:00
fix dangling jack_client_t* in JACK_Slave when disconnecting+reconnecting to JACK
git-svn-id: svn://localhost/ardour2/trunk@1727 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b290949195
commit
3675945248
5 changed files with 19 additions and 0 deletions
|
|
@ -1609,6 +1609,7 @@ class Session : public PBD::StatefulDestructible
|
|||
|
||||
void jack_timebase_callback (jack_transport_state_t, nframes_t, jack_position_t*, int);
|
||||
int jack_sync_callback (jack_transport_state_t, jack_position_t*);
|
||||
void reset_jack_connection (jack_client_t* jack);
|
||||
void record_enable_change_all (bool yn);
|
||||
|
||||
XMLNode& state(bool);
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ class JACK_Slave : public Slave
|
|||
bool ok() const;
|
||||
nframes_t resolution() const { return 1; }
|
||||
bool requires_seekahead () const { return false; }
|
||||
void reset_client (jack_client_t* jack);
|
||||
|
||||
private:
|
||||
jack_client_t* jack;
|
||||
|
|
|
|||
|
|
@ -1133,6 +1133,7 @@ AudioEngine::reconnect_to_jack ()
|
|||
|
||||
|
||||
if (session) {
|
||||
session->reset_jack_connection (_jack);
|
||||
nframes_t blocksize = jack_get_buffer_size (_jack);
|
||||
session->set_block_size (blocksize);
|
||||
session->set_frame_rate (jack_get_sample_rate (_jack));
|
||||
|
|
|
|||
|
|
@ -44,6 +44,12 @@ JACK_Slave::~JACK_Slave ()
|
|||
{
|
||||
}
|
||||
|
||||
void
|
||||
JACK_Slave::reset_client (jack_client_t* j)
|
||||
{
|
||||
jack = j;
|
||||
}
|
||||
|
||||
bool
|
||||
JACK_Slave::locked() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1255,3 +1255,13 @@ Session::allow_auto_play (bool yn)
|
|||
{
|
||||
auto_play_legal = yn;
|
||||
}
|
||||
|
||||
void
|
||||
Session::reset_jack_connection (jack_client_t* jack)
|
||||
{
|
||||
JACK_Slave* js;
|
||||
|
||||
if (_slave && ((js = dynamic_cast<JACK_Slave*> (_slave)) != 0)) {
|
||||
js->reset_client (jack);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue