diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2017-10-05 10:54:46 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2017-10-05 10:55:45 -0500 |
commit | 2107d094541dd836b46be0ff48964fd44fbbeacf (patch) | |
tree | c952c4f730568031f6669ff25921b1b1f3839d07 /libs/surfaces/us2400/meter.h | |
parent | 32c725115d87752a01cae533070b9931867667cd (diff) |
US2400: add us2400 files to repository.
Diffstat (limited to 'libs/surfaces/us2400/meter.h')
-rw-r--r-- | libs/surfaces/us2400/meter.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libs/surfaces/us2400/meter.h b/libs/surfaces/us2400/meter.h new file mode 100644 index 0000000000..0ef9e78c33 --- /dev/null +++ b/libs/surfaces/us2400/meter.h @@ -0,0 +1,66 @@ +/* + Copyright (C) 2006,2007 John Anderson + Copyright (C) 2012 Paul Davis + Copyright (C) 2017 Ben Loftis + + + 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_us2400_control_protocol_meter_h__ +#define __ardour_us2400_control_protocol_meter_h__ + +#include "controls.h" +#include "midi_byte_array.h" + +namespace ArdourSurface { + +namespace US2400 { + +class SurfacePort; + +class Meter : public Control +{ +public: + Meter (int id, std::string name, Group & group) + : Control (id, name, group) + , _enabled (false) + , overload_on (false), + last_update_segment (-1), + llast_update_segment (-1) + {} + + + void send_update (Surface&, float dB); + bool enabled () const { return _enabled; } + + MidiByteArray zero(); + + static Control* factory (Surface&, int id, const char*, Group&); + + void notify_metering_state_changed(Surface& surface, bool transport_is_rolling, bool metering_active); + + private: + bool _enabled; + bool overload_on; + + int last_update_segment; + int llast_update_segment; +}; + +} // US2400 namespace +} // ArdourSurface namespace + +#endif /* __ardour_us2400_control_protocol_meter_h__ */ |