X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmidi_ui.h;h=88ea021361a8e2a754dd69574c29fe4ef99a3f8c;hb=54d5f36311d041ce3d5fa3e6ed14fde30bcb70b7;hp=9e46f226f71ea418b9133b0a542ba715d5faefba;hpb=0bf241257bc9ab13487deaaacdccea257de98482;p=ardour.git diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h index 9e46f226f7..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,19 +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 void* request_factory (uint32_t num_requests); void change_midi_ports (); @@ -58,11 +60,9 @@ class 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*); + bool midi_input_handler (Glib::IOCondition, boost::weak_ptr); void reset_ports (); void clear_ports ();