X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmidi_ui.h;h=88ea021361a8e2a754dd69574c29fe4ef99a3f8c;hb=fcf49de77401930db34ca4dfb1fff6bea0a7a987;hp=c15a53005796b431aea06e6d2cb4e868236732a3;hpb=7a30e63eaad66ded1c47f5cdb2e0f28c3b0a1d4a;p=ardour.git diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h index c15a530057..88ea021361 100644 --- a/libs/ardour/ardour/midi_ui.h +++ b/libs/ardour/ardour/midi_ui.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012 Paul Davis + Copyright (C) 2012 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ #include +#define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "pbd/signals.h" #include "pbd/stacktrace.h" @@ -37,21 +38,20 @@ class AsyncMIDIPort; certain types of requests to the MIDI UI */ -struct MidiUIRequest : public BaseUI::BaseRequestObject { +struct LIBARDOUR_API MidiUIRequest : public BaseUI::BaseRequestObject { public: MidiUIRequest () { } ~MidiUIRequest() { } }; -class MidiControlUI : public AbstractUI +class LIBARDOUR_API MidiControlUI : public AbstractUI { public: MidiControlUI (Session& s); ~MidiControlUI (); static MidiControlUI* instance() { return _instance; } - - static BaseUI::RequestType PortChange; + static void* request_factory (uint32_t num_requests); void change_midi_ports (); @@ -60,12 +60,9 @@ class MidiControlUI : public AbstractUI void do_request (MidiUIRequest*); private: - typedef std::list PortSources; - PortSources port_sources; ARDOUR::Session& _session; - PBD::ScopedConnection rebind_connection; - bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*); + bool midi_input_handler (Glib::IOCondition, boost::weak_ptr); void reset_ports (); void clear_ports ();