00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef ACTIONSET_HPP
00024
#define ACTIONSET_HPP
00025
00026
#include <map>
00027
#include <string>
00028
#include <gadget/Type/AnalogInterface.h>
00029
#include <gadget/Type/DigitalInterface.h>
00030
#include "Input.hpp"
00031
#include "Common.hpp"
00032
00033
namespace vrvis
00034 {
00035
00036
class AnalogAction;
00037
class DigitalAction;
00038
00039
00041 class ActionSet
00042 {
00043
00044
00045
public:
00046
00047
00048
00050
~ActionSet(
void);
00051
00052
00053
00055
const std::string&
getName(
void);
00056
00057
00058
00060
void addAnalogAction (
const std::string& crDeviceName,
00061
AnalogAction* pAction);
00062
00064
void addDigitalAction(
const std::string& crDeviceName,
00065
DigitalAction* pAction);
00066
00068
void activateActions(
void);
00069
00071
void deactivateActions(
void);
00072
00073
00074
00076
void triggerAnalogEvent (gadget::AnalogInterface* pAnalog);
00077
00079
void triggerDigitalEvent(gadget::DigitalInterface* pDigital);
00080
00081
00082
00083
private:
00084
00085
00086
00088
friend ActionSet*
Input::createActionSet(
const std::string& crName);
00089
00090
00091
00093
typedef std::vector<gadget::AnalogInterface*> AnalogVector;
00095
typedef std::vector<gadget::DigitalInterface*> DigitalVector;
00097
typedef
00098 std::map<gadget::AnalogInterface*, AnalogAction*> AnalogActionMap;
00100
typedef
00101 std::map<gadget::DigitalInterface*, DigitalAction*> DigitalActionMap;
00102
00103
00104
00106
ActionSet(
const std::string& crName,
00107
const AnalogVector& crAnalogs,
00108
const DigitalVector& crDigitals,
00109
Input* pInput);
00110
00111
00112
00114 std::string mName;
00116 AnalogActionMap mAnalogActionMap;
00118 DigitalActionMap mDigitalActionMap;
00120
Input* mpInput;
00121 };
00122
00123 }
00124
00125
#endif // ACTIONSET_HPP