ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
ardour
ardour
midi_ui.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2012 Paul Davis
3
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation; either version 2 of the License, or
7
(at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18
*/
19
20
#ifndef __libardour_midi_ui_h__
21
#define __libardour_midi_ui_h__
22
23
#include <list>
24
25
#define ABSTRACT_UI_EXPORTS
26
#include "
pbd/abstract_ui.h
"
27
#include "
pbd/signals.h
"
28
#include "
pbd/stacktrace.h
"
29
30
31
namespace
ARDOUR
{
32
33
class
Session;
34
class
AsyncMIDIPort;
35
36
/* this is mostly a placeholder because I suspect that at some
37
point we will want to add more members to accomodate
38
certain types of requests to the MIDI UI
39
*/
40
41
struct
LIBARDOUR_API
MidiUIRequest
:
public
BaseUI::BaseRequestObject {
42
public
:
43
MidiUIRequest
() { }
44
~MidiUIRequest
() { }
45
};
46
47
class
LIBARDOUR_API
MidiControlUI
:
public
AbstractUI
<MidiUIRequest>
48
{
49
public
:
50
MidiControlUI
(
Session
& s);
51
~
MidiControlUI
();
52
53
static
MidiControlUI
*
instance
() {
return
_instance; }
54
55
void
change_midi_ports ();
56
57
protected
:
58
void
thread_init ();
59
void
do_request (
MidiUIRequest
*);
60
61
private
:
62
ARDOUR::Session
&
_session
;
63
64
bool
midi_input_handler (Glib::IOCondition,
AsyncMIDIPort
*);
65
void
reset_ports ();
66
void
clear_ports ();
67
68
static
MidiControlUI
*
_instance
;
69
};
70
71
}
72
73
#endif
/* __libardour_midi_ui_h__ */
ARDOUR::MidiControlUI
Definition:
midi_ui.h:47
ARDOUR::Session
Definition:
session.h:142
ARDOUR::MidiUIRequest
Definition:
midi_ui.h:41
ARDOUR::MidiUIRequest::MidiUIRequest
MidiUIRequest()
Definition:
midi_ui.h:43
ARDOUR::AsyncMIDIPort
Definition:
async_midi_port.h:44
ARDOUR::MidiControlUI::_session
ARDOUR::Session & _session
Definition:
midi_ui.h:62
ARDOUR
Definition:
amp.h:29
AbstractUI
Definition:
abstract_ui.h:55
LIBARDOUR_API
#define LIBARDOUR_API
Definition:
libardour_visibility.h:40
ARDOUR::MidiControlUI::instance
static MidiControlUI * instance()
Definition:
midi_ui.h:53
signals.h
stacktrace.h
abstract_ui.h
ARDOUR::MidiControlUI::_instance
static MidiControlUI * _instance
Definition:
midi_ui.h:68
ARDOUR::MidiUIRequest::~MidiUIRequest
~MidiUIRequest()
Definition:
midi_ui.h:44
Generated on Sun May 24 2015 12:15:05 for ardour by
1.8.8