use new method in MidiPatchManager to use MIDNAM data when setting a MidiTimeAxisView
[ardour.git] / gtk2_ardour / send_ui.h
1 /*
2  * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
3  * Copyright (C) 2006-2009 Paul Davis <paul@linuxaudiosystems.com>
4  * Copyright (C) 2007-2011 David Robillard <d@drobilla.net>
5  * Copyright (C) 2009-2011 Carl Hetherington <carl@carlh.net>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 #ifndef __ardour_gtk_send_ui_h__
23 #define __ardour_gtk_send_ui_h__
24
25 #include "gain_meter.h"
26 #include "panner_ui.h"
27 #include "ardour_window.h"
28
29 namespace ARDOUR {
30         class Send;
31         class IOProcessor;
32 }
33
34 class IOSelector;
35
36 class SendUI : public Gtk::HBox
37 {
38   public:
39         SendUI (Gtk::Window *, boost::shared_ptr<ARDOUR::Send>, ARDOUR::Session*);
40         ~SendUI();
41
42         void update ();
43         void fast_update ();
44
45         boost::shared_ptr<ARDOUR::Send>& send() { return _send; }
46
47   private:
48         boost::shared_ptr<ARDOUR::Send> _send;
49         GainMeter                       _gpm;
50         PannerUI                        _panners;
51         Gtk::VBox                       _vbox;
52         Gtk::VBox                       _hbox;
53         IOSelector*                     _io;
54
55         sigc::connection screen_update_connection;
56         sigc::connection fast_screen_update_connection;
57
58         void outs_changed (ARDOUR::IOChange, void*);
59         PBD::ScopedConnectionList connections;
60 };
61
62 class SendUIWindow : public ArdourWindow
63 {
64   public:
65         SendUIWindow(boost::shared_ptr<ARDOUR::Send>, ARDOUR::Session*);
66         ~SendUIWindow();
67
68         SendUI* ui;
69
70   private:
71         Gtk::HBox hpacker;
72
73         PBD::ScopedConnection going_away_connection;
74 };
75
76 #endif /* __ardour_gtk_send_ui_h__ */
77
78