#ifndef mackie_types_h
#define mackie_types_h
+#include <iostream>
+
namespace Mackie
{
*/
struct ControlState
{
- ControlState(): pos(0.0), delta(0.0), button_state(neither) {}
+ ControlState(): pos(0.0), sign(0), delta(0.0), ticks(0), led_state(off), button_state(neither) {}
ControlState( LedState ls ): pos(0.0), delta(0.0), led_state(ls), button_state(neither) {}
// Note that this sets both pos and delta to the flt value
ControlState( LedState ls, float flt ): pos(flt), delta(flt), ticks(0), led_state(ls), button_state(neither) {}
ControlState( float flt ): pos(flt), delta(flt), ticks(0), led_state(none), button_state(neither) {}
- ControlState( float flt, int tcks ): pos(flt), delta(flt), ticks(tcks), led_state(none), button_state(neither) {}
+ ControlState( float flt, unsigned int tcks ): pos(flt), delta(flt), ticks(tcks), led_state(none), button_state(neither) {}
ControlState( ButtonState bs ): pos(0.0), delta(0.0), ticks(0), led_state(none), button_state(bs) {}
+ /// For faders. Between 0 and 1.
float pos;
+
+ /// For pots. Sign. Either -1 or 1;
+ int sign;
+
+ /// For pots. Signed value of total movement. Between 0 and 1
float delta;
- int ticks;
+
+ /// For pots. Unsigned number of ticks. Usually between 1 and 16.
+ unsigned int ticks;
+
LedState led_state;
ButtonState button_state;
};
+std::ostream & operator << ( std::ostream &, const ControlState & );
+
class Control;
class Fader;
class Button;