X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInput%2FFGEventInput.hxx;h=973821bd0584452c7bb10a8ecfc3ed3edc150aa5;hb=11d15b451347674fba77648700d23c5aaec3c6c2;hp=09806976bcd8f489ce2060b9026c5b96b649fd72;hpb=c672f2aba559fd36469b6f9f9c4b81c45837aa99;p=flightgear.git diff --git a/src/Input/FGEventInput.hxx b/src/Input/FGEventInput.hxx index 09806976b..973821bd0 100644 --- a/src/Input/FGEventInput.hxx +++ b/src/Input/FGEventInput.hxx @@ -164,7 +164,7 @@ typedef class SGSharedPtr FGInputEvent_ptr; */ class FGInputDevice : public SGReferenced { public: - FGInputDevice() : debugEvents(false) {} + FGInputDevice() : debugEvents(false), grab(false) {} FGInputDevice( string aName ) : name(aName) {} virtual ~FGInputDevice(); @@ -191,10 +191,15 @@ public: handledEvents[handledEvent->GetName()] = handledEvent; } + virtual void Configure( SGPropertyNode_ptr deviceNode ); + virtual void update( double dt ); bool GetDebugEvents () const { return debugEvents; } - void SetDebugEvents( bool value ) { debugEvents = value; } + + bool GetGrab() const { return grab; } + + const string & GetNasalModule() const { return nasalModule; } private: // A map of events, this device handles @@ -206,6 +211,13 @@ private: // print out events comming in from the device // if true bool debugEvents; + + // grab the device exclusively, if O/S supports this + // so events are not sent to other applications + bool grab; + + SGPropertyNode_ptr deviceNode; + string nasalModule; }; typedef SGSharedPtr FGInputDevice_ptr; @@ -222,12 +234,18 @@ public: virtual void postinit(); virtual void update( double dt ); + const static unsigned MAX_DEVICES = 1000; + const static unsigned INVALID_DEVICE_INDEX = MAX_DEVICES + 1; protected: static const char * PROPERTY_ROOT; - void AddDevice( FGInputDevice * inputDevice ); + unsigned AddDevice( FGInputDevice * inputDevice ); + void RemoveDevice( unsigned index ); + map input_devices; FGDeviceConfigurationMap configMap; + + SGPropertyNode_ptr nasalClose; }; #endif