13
0
livetrax/libs/surfaces/mackie/button.h
Paul Davis 5ace191bff drastic, fundamental redesign of MCP code
git-svn-id: svn://localhost/ardour2/branches/3.0@11861 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 14:27:44 +00:00

117 lines
2.7 KiB
C++

/*
Copyright (C) 2006,2007 John Anderson
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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __ardour_mackie_control_protocol_button_h__
#define __ardour_mackie_control_protocol_button_h__
#include "controls.h"
#include "led.h"
namespace Mackie {
class Surface;
class Button : public Control
{
public:
enum ButtonID {
ButtonIo = 0x28,
ButtonSends = 0x29,
ButtonPan = 0x2a,
ButtonPlugin = 0x2b,
ButtonEq = 0x2c,
ButtonDyn = 0x2d,
ButtonLeft = 0x2e,
ButtonRight = 0x2f,
ButtonChannelLeft = 0x30,
ButtonChannelRight = 0x31,
ButtonFlip = 0x32,
ButtonEdit = 0x33,
ButtonNameValue = 0x34,
ButtonTimecodeBeats = 0x35,
ButtonF1 = 0x36,
ButtonF2 = 0x37,
ButtonF3 = 0x38,
ButtonF4 = 0x39,
ButtonF5 = 0x3a,
ButtonF6 = 0x3b,
ButtonF7 = 0x3c,
ButtonF8 = 0x3d,
ButtonF9 = 0x3e,
ButtonF10 = 0x3f,
ButtonF11 = 0x40,
ButtonF12 = 0x41,
ButtonF13 = 0x42,
ButtonF14 = 0x43,
ButtonF15 = 0x44,
ButtonF16 = 0x45,
ButtonShift = 0x46,
ButtonOption = 0x47,
ButtonControl = 0x48,
ButtonCmdAlt = 0x49,
ButtonOn = 0x4a,
ButtonRecReady = 0x4b,
ButtonUndo = 0x4c,
ButtonSnapshot = 0x4d,
ButtonTouch = 0x4e,
ButtonRedo = 0x4f,
ButtonMarker = 0x50,
ButtonEnter = 0x51,
ButtonCancel = 0x52,
ButtonMixer = 0x53,
ButtonFrmLeft = 0x54,
ButtonFrmRight = 0x55,
ButtonLoop = 0x56,
ButtonPunchIn = 0x57,
ButtonPunchOut = 0x58,
ButtonHome = 0x59,
ButtonEnd = 0x5a,
ButtonRewind = 0x5b,
ButtonFfwd = 0x5c,
ButtonStop = 0x5d,
ButtonPlay = 0x5e,
ButtonRecord = 0x5f,
ButtonCursorUp = 0x60,
ButtonCursorDown = 0x61,
ButtonCursorLeft = 0x62,
ButtonCursorRight = 0x63,
ButtonZoom = 0x64,
ButtonScrub = 0x65,
ButtonUserA = 0x66,
ButtonUserB = 0x67,
};
Button (int id, std::string name, Group & group)
: Control (id, name, group)
, _led (id, name + "_led", group) {}
virtual const Led & led() const { return _led; }
virtual type_t type() const { return type_button; };
static Control* factory (Surface&, int id, const char*, Group&);
private:
Led _led;
};
}
#endif