Add a debug property to make devices print out incoming events on the console.
This commit is contained in:
parent
3231561e5a
commit
8cf74b8f2d
3 changed files with 14 additions and 11 deletions
|
@ -192,7 +192,10 @@ void FGInputDevice::update( double dt )
|
||||||
void FGInputDevice::HandleEvent( FGEventData & eventData )
|
void FGInputDevice::HandleEvent( FGEventData & eventData )
|
||||||
{
|
{
|
||||||
string eventName = TranslateEventName( eventData );
|
string eventName = TranslateEventName( eventData );
|
||||||
// cout << GetName() << " has event " << eventName << " modifiers=" << eventData.modifiers << " value=" << eventData.value << endl;
|
if( debugEvents )
|
||||||
|
cout << GetName() << " has event " <<
|
||||||
|
eventName << " modifiers=" << eventData.modifiers << " value=" << eventData.value << endl;
|
||||||
|
|
||||||
if( handledEvents.count( eventName ) > 0 ) {
|
if( handledEvents.count( eventName ) > 0 ) {
|
||||||
handledEvents[ eventName ]->fire( eventData );
|
handledEvents[ eventName ]->fire( eventData );
|
||||||
}
|
}
|
||||||
|
@ -272,6 +275,8 @@ void FGEventInput::AddDevice( FGInputDevice * inputDevice )
|
||||||
for( vector<SGPropertyNode_ptr>::iterator it = eventNodes.begin(); it != eventNodes.end(); it++ )
|
for( vector<SGPropertyNode_ptr>::iterator it = eventNodes.begin(); it != eventNodes.end(); it++ )
|
||||||
inputDevice->AddHandledEvent( FGInputEvent::NewObject( inputDevice, *it ) );
|
inputDevice->AddHandledEvent( FGInputEvent::NewObject( inputDevice, *it ) );
|
||||||
|
|
||||||
|
inputDevice->SetDebugEvents( deviceNode->getBoolValue("debug-events", inputDevice->GetDebugEvents() ));
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// add nodes for the last event:
|
// add nodes for the last event:
|
||||||
// last-event/name [string]
|
// last-event/name [string]
|
||||||
|
|
|
@ -164,7 +164,7 @@ typedef class SGSharedPtr<FGInputEvent> FGInputEvent_ptr;
|
||||||
*/
|
*/
|
||||||
class FGInputDevice : public SGReferenced {
|
class FGInputDevice : public SGReferenced {
|
||||||
public:
|
public:
|
||||||
FGInputDevice() {}
|
FGInputDevice() : debugEvents(false) {}
|
||||||
FGInputDevice( string aName ) : name(aName) {}
|
FGInputDevice( string aName ) : name(aName) {}
|
||||||
|
|
||||||
virtual ~FGInputDevice();
|
virtual ~FGInputDevice();
|
||||||
|
@ -193,12 +193,19 @@ public:
|
||||||
|
|
||||||
virtual void update( double dt );
|
virtual void update( double dt );
|
||||||
|
|
||||||
|
bool GetDebugEvents () const { return debugEvents; }
|
||||||
|
void SetDebugEvents( bool value ) { debugEvents = value; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// A map of events, this device handles
|
// A map of events, this device handles
|
||||||
map<string,FGInputEvent_ptr> handledEvents;
|
map<string,FGInputEvent_ptr> handledEvents;
|
||||||
|
|
||||||
// the device has a name to be recognized
|
// the device has a name to be recognized
|
||||||
string name;
|
string name;
|
||||||
|
|
||||||
|
// print out events comming in from the device
|
||||||
|
// if true
|
||||||
|
bool debugEvents;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef SGSharedPtr<FGInputDevice> FGInputDevice_ptr;
|
typedef SGSharedPtr<FGInputDevice> FGInputDevice_ptr;
|
||||||
|
|
|
@ -252,15 +252,6 @@ void FGLinuxInputDevice::Open()
|
||||||
if( (fd = ::open( devname.c_str(), O_RDWR )) == -1 ) {
|
if( (fd = ::open( devname.c_str(), O_RDWR )) == -1 ) {
|
||||||
throw exception();
|
throw exception();
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
input_event evt;
|
|
||||||
evt.type=EV_LED;
|
|
||||||
evt.code = 8;
|
|
||||||
evt.value = 1;
|
|
||||||
evt.time.tv_sec = 0;
|
|
||||||
evt.time.tv_usec = 0;
|
|
||||||
write( fd, &evt, sizeof(evt) );
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FGLinuxInputDevice::Close()
|
void FGLinuxInputDevice::Close()
|
||||||
|
|
Loading…
Reference in a new issue