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