libmanta
A cross-platform API for the Snyderphonics Manta
|
00001 #ifndef _MANTA_H 00002 #define _MANTA_H 00003 00004 #include "MantaUSB.h" 00005 #include "MantaClient.h" 00006 #include "MantaServer.h" 00007 00008 /************************************************************************/ 00026 class Manta : 00027 public MantaUSB, 00028 public MantaClient, 00029 public MantaServer 00030 { 00031 public: 00032 Manta(void); 00033 00034 /* MantaServer messages implemented here */ 00035 virtual void SetPadLED(LEDState state, int ledID); 00036 virtual void SetPadLEDRow(LEDState state, int row, uint8_t mask); 00037 virtual void SetPadLEDColumn(LEDState state, int column, uint8_t mask); 00038 virtual void SetPadLEDFrame(LEDState state, uint8_t mask[]); 00039 virtual void SetSliderLED(LEDState state, int id, uint8_t mask); 00040 virtual void SetButtonLED(LEDState state, int id); 00041 virtual void ResendLEDState(void); 00042 virtual void ClearPadAndButtonLEDs(void); 00043 virtual void ClearButtonLEDs(void); 00044 virtual void Recalibrate(void); 00045 virtual void SetLEDControl(LEDControlType control, bool state); 00046 virtual void SetTurboMode(bool Enabled); 00047 virtual void SetRawMode(bool Enabled); 00048 virtual void SetMaxSensorValues(int *values); 00049 00050 private: 00051 /* declare superclass callback implemented by this class */ 00052 virtual void FrameReceived(int8_t *frame); 00053 int ScaleSensorValue(int rawValue, int index); 00054 00055 static uint8_t byteReverse(uint8_t inByte); 00056 static int CalculateVelocity(int firstValue, int secondValue); 00057 static const int AmberIndex = 0; 00058 static const int RedIndex = 10; 00059 static const int SliderIndex = 7; 00060 static const int ButtonIndex = 6; 00061 static const int ConfigIndex = 9; 00062 static const int AverageMaxSensorValues[53]; 00063 00064 int MaxSensorValues[53]; 00065 uint8_t LastInReport[InPacketLen]; 00066 uint8_t CurrentOutReport[OutPacketLen]; 00067 bool VelocityWaiting[53]; 00068 /* output modes */ 00069 bool CentroidEnabled; 00070 bool MaximumEnabled; 00071 bool PadFrameEnabled; 00072 }; 00073 00074 #endif // _MANTA_H