From 25e1eddc50219dca119bc55370c3e2a5dd776752 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 24 Nov 2014 22:21:19 +0200 Subject: 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. --- libs/ardour/ardour/midi_ui.h | 2 -- libs/ardour/midi_ui.cc | 15 --------------- libs/surfaces/mackie/mackie_control_protocol.cc | 12 ------------ libs/surfaces/mackie/mackie_control_protocol.h | 2 -- 4 files changed, 31 deletions(-) (limited to 'libs') 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 void do_request (MidiUIRequest*); private: - typedef std::list 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 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 ButtonMap; - typedef std::list 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; -- cgit v1.2.3