summaryrefslogtreecommitdiff
path: root/libs/surfaces/us2400/meter.h
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2017-10-05 10:54:46 -0500
committerBen Loftis <ben@harrisonconsoles.com>2017-10-05 10:55:45 -0500
commit2107d094541dd836b46be0ff48964fd44fbbeacf (patch)
treec952c4f730568031f6669ff25921b1b1f3839d07 /libs/surfaces/us2400/meter.h
parent32c725115d87752a01cae533070b9931867667cd (diff)
US2400: add us2400 files to repository.
Diffstat (limited to 'libs/surfaces/us2400/meter.h')
-rw-r--r--libs/surfaces/us2400/meter.h66
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__ */