1 /*
2  * Copyright (C) 2006-2007 John Anderson
3  * Copyright (C) 2012-2015 Paul Davis <paul@linuxaudiosystems.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 #ifndef __ardour_mackie_control_protocol_led_h__
21 #define __ardour_mackie_control_protocol_led_h__
22 
23 #include "controls.h"
24 #include "midi_byte_array.h"
25 #include "types.h"
26 
27 namespace ArdourSurface {
28 
29 namespace Mackie {
30 
31 class Led : public Control
32 {
33 public:
34 	static const int FaderTouch;
35 	static const int Timecode;
36 	static const int Beats;
37 	static const int RudeSolo;
38 	static const int RelayClick;
39 
Led(int id,std::string name,Group & group)40 	Led (int id, std::string name, Group & group)
41 		: Control (id, name, group)
42 		, state (off)
43 	{
44 	}
45 
led()46 	Led & led() { return *this; }
47 	MidiByteArray set_state (LedState);
48 
zero()49 	MidiByteArray zero() { return set_state (off); }
50 
51 	static Control* factory (Surface&, int id, const char*, Group&);
52 
53 	// qcon flag
54 	bool is_qcon;
55 
56   private:
57 	LedState state;
58 };
59 
60 }
61 }
62 
63 #endif /* __ardour_mackie_control_protocol_led_h__ */
64