diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-24 22:21:19 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-26 18:22:22 +0200 |
commit | 25e1eddc50219dca119bc55370c3e2a5dd776752 (patch) | |
tree | 74c9f17b6c89a3a638811bf018447256e6a1b587 /libs | |
parent | 140540ef59652cf7283afc06e2ea7922b1789c88 (diff) |
remove "port sources" management from MidiControlUI and Mackie support.
This was necessary due to a bug/design issue between Glibmm and Glib (see https://bugzilla.gnome.org/show_bug.cgi?id=561885)
but the problem needs to be managed by the *creator* of the IOSource and that has now moved inside CrossThreadChannel.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/midi_ui.h | 2 | ||||
-rw-r--r-- | libs/ardour/midi_ui.cc | 15 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 12 | ||||
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.h | 2 |
4 files changed, 0 insertions, 31 deletions
diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h index 85a8a15e21..9b9ed1153a 100644 --- a/libs/ardour/ardour/midi_ui.h +++ b/libs/ardour/ardour/midi_ui.h @@ -59,8 +59,6 @@ class LIBARDOUR_API MidiControlUI : public AbstractUI<MidiUIRequest> void do_request (MidiUIRequest*); private: - typedef std::list<GSource*> PortSources; - PortSources port_sources; ARDOUR::Session& _session; bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*); diff --git a/libs/ardour/midi_ui.cc b/libs/ardour/midi_ui.cc index d5a0b2b444..ecdcb303e8 100644 --- a/libs/ardour/midi_ui.cc +++ b/libs/ardour/midi_ui.cc @@ -97,21 +97,11 @@ MidiControlUI::midi_input_handler (IOCondition ioc, AsyncMIDIPort* port) void MidiControlUI::clear_ports () { - for (PortSources::iterator i = port_sources.begin(); i != port_sources.end(); ++i) { - g_source_destroy (*i); - g_source_unref (*i); - } - - port_sources.clear (); } void MidiControlUI::reset_ports () { - if (!port_sources.empty()) { - return; - } - vector<AsyncMIDIPort*> ports; AsyncMIDIPort* p; @@ -139,11 +129,6 @@ MidiControlUI::reset_ports () if (psrc) { psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), *pi)); psrc->attach (_main_loop->get_context()); - - // glibmm hack: for now, store only the GSource* - - port_sources.push_back (psrc->gobj()); - g_source_ref (psrc->gobj()); } } } diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index 563ca14d7d..0e87c3a1e1 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -753,11 +753,6 @@ MackieControlProtocol::create_surfaces () psrc->connect (sigc::bind (sigc::mem_fun (this, &MackieControlProtocol::midi_input_handler), &input_port)); psrc->attach (main_loop()->get_context()); - - // glibmm hack: for now, store only the GSource* - - port_sources.push_back (psrc->gobj()); - g_source_ref (psrc->gobj()); } else { @@ -1334,13 +1329,6 @@ MackieControlProtocol::clear_ports () _input_bundle->remove_channels (); _output_bundle->remove_channels (); } - - for (PortSources::iterator i = port_sources.begin(); i != port_sources.end(); ++i) { - g_source_destroy (*i); - g_source_unref (*i); - } - - port_sources.clear (); } void diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 270bb6a744..13ca381154 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -255,7 +255,6 @@ class MackieControlProtocol }; typedef std::map<Mackie::Button::ID,ButtonHandlers> ButtonMap; - typedef std::list<GSource*> PortSources; static MackieControlProtocol* _instance; @@ -284,7 +283,6 @@ class MackieControlProtocol ViewMode _view_mode; int _current_selected_track; int _modifier_state; - PortSources port_sources; ButtonMap button_map; int16_t _ipmidi_base; bool needs_ipmidi_restart; |