00001 00015 #ifndef ICUBEXDEVICE_H 00016 #define ICUBEXDEVICE_H 00017 00018 #include "IS3DCommon.H" 00019 #include "StringUtils.H" 00020 #include "ConfigVal.H" 00021 #include "FsaMgr.H" 00022 #include "Event.H" 00023 #include "PolledDevice.H" 00024 #include "Midi.H" 00025 00026 namespace IS3D { 00027 00028 class ICubeXDevice : public PolledDevice 00029 { 00030 public: 00035 ICubeXDevice(const std::string &activeChannels); 00036 00042 ICubeXDevice(const std::string &activeChannels, 00043 int midiInDeviceNum, int midiOutDeviceNum); 00044 00046 static ICubeXDevice* fromConfigVals(const std::string &devname); 00047 00048 virtual ~ICubeXDevice(); 00049 00050 void pollForEvents(); 00051 00052 protected: 00053 00054 void init(); 00055 void reportChannel(int channel, double data); 00056 00057 std::string _activeChannelsStr; 00058 Array<int> _activeChannels; 00059 int _inDevNum; 00060 int _outDevNum; 00061 MidiInDevice *_in; 00062 MidiOutDevice *_out; 00063 double _channelData[32]; 00064 }; 00065 00066 } // end namespace 00067 00068 #endif