summaryrefslogtreecommitdiff
path: root/libs/midi++2/midi++
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-05 15:41:05 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-05 15:41:05 +0000
commitdf2298c846527e71a794b957baec7684fabe46aa (patch)
tree89bf7f9dc9ba0fe050679fa8b05209c451063d74 /libs/midi++2/midi++
parentc686dee0cee50b09f6c0eda3240b85dee1eaff8f (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.h6
-rw-r--r--libs/midi++2/midi++/manager.h3
-rw-r--r--libs/midi++2/midi++/port.h3
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;