diff options
author | Carl Hetherington <carl@carlh.net> | 2010-07-05 15:41:05 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-07-05 15:41:05 +0000 |
commit | df2298c846527e71a794b957baec7684fabe46aa (patch) | |
tree | 89bf7f9dc9ba0fe050679fa8b05209c451063d74 /libs/midi++2/midi++ | |
parent | c686dee0cee50b09f6c0eda3240b85dee1eaff8f (diff) |
Reestablish libmidi++ JACK ports on jack reconnection, so that control MIDI can still be sent after a JACK disconnect/reconnect. Fixes remainder of #3301.
git-svn-id: svn://localhost/ardour2/branches/3.0@7373 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/midi++')
-rw-r--r-- | libs/midi++2/midi++/jack.h | 6 | ||||
-rw-r--r-- | libs/midi++2/midi++/manager.h | 3 | ||||
-rw-r--r-- | libs/midi++2/midi++/port.h | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/libs/midi++2/midi++/jack.h b/libs/midi++2/midi++/jack.h index 0433e4ae45..099bc4e639 100644 --- a/libs/midi++2/midi++/jack.h +++ b/libs/midi++2/midi++/jack.h @@ -71,6 +71,9 @@ public: nframes_t nframes_this_cycle() const { return _nframes_this_cycle; } + void reestablish (void *); + void reconnect (); + static PBD::Signal0<void> MakeConnections; static PBD::Signal0<void> JackHalted; @@ -81,9 +84,12 @@ public: private: int create_ports(const XMLNode&); + int create_ports (); jack_client_t* _jack_client; + std::string _jack_input_port_name; /// input port name, or empty if there isn't one jack_port_t* _jack_input_port; + std::string _jack_output_port_name; /// output port name, or empty if there isn't one jack_port_t* _jack_output_port; nframes_t _last_read_index; timestamp_t _last_write_timestamp; diff --git a/libs/midi++2/midi++/manager.h b/libs/midi++2/midi++/manager.h index 90bdde3e70..33835a05bf 100644 --- a/libs/midi++2/midi++/manager.h +++ b/libs/midi++2/midi++/manager.h @@ -83,6 +83,9 @@ class Manager { int get_known_ports (std::vector<PortSet>&); + void reestablish (void *); + void reconnect (); + PBD::Signal0<void> PortsChanged; private: diff --git a/libs/midi++2/midi++/port.h b/libs/midi++2/midi++/port.h index 16db09f0e4..c45f5ba2fc 100644 --- a/libs/midi++2/midi++/port.h +++ b/libs/midi++2/midi++/port.h @@ -157,6 +157,9 @@ class Port { XMLNode& get_state(); }; + virtual void reestablish (void *) {} + virtual void reconnect () {} + protected: bool _ok; bool _currently_in_cycle; |