|
Hello everyone, after some headaches I have found a solution to a compile problem in a program using osgGA::GUIEventHandler and linux/input.h (neccesary for make work an old joystick model, not possible to be modified). Here is an exctract of the code which throw the error "Expected unqualified id before :" for lines 619 and 622 : switch (ea.getEventType()) { case (osgGA::GUIEventAdapter::FRAME): { osgViewer::View* view = dynamic_cast<osgViewer::View*>(&gUIActionAdapter); if (view == NULL) return false; updateResolution(view); break; } case (osgGA::GUIEventAdapter::KEYUP): { switch (ea.getKey()) { case ('f'): arbreUtile->setPropValue<bool>("graphic.windows.fullScreen", !arbreUtile->getPropValue<bool>("graphic.windows.fullScreen",false)); break; case (osgGA::GUIEventAdapter::KEY_Pause): arbreUtile->setPropValue<bool>("sim.pause",! arbreUtile->getPropValue<bool>("sim.pause",false)); break; case (osgGA::GUIEventAdapter::KEY_F2): // This is line 619 arbreUtile->setPropValue<bool>("graphic.windows.showGui", ! arbreUtile->getPropValue<bool>("graphic.windows.showGui",false)); break; case (osgGA::GUIEventAdapter::KEY_F12): // This is line 622 arbreUtile->setPropValue<bool>("graphic.windows.record", ! arbreUtile->getPropValue<bool>("graphic.windows.record", false)); break; default: break; } break; } default: return false; } The option "-save-temps" allowed me to have a look at the file after pre-compiler which gives : switch (ea.getEventType()) { case (osgGA::GUIEventAdapter::FRAME): { osgViewer::View* view = dynamic_cast<osgViewer::View*>(&gUIActionAdapter); if (view == NULL) return false; updateResolution(view); break; } case (osgGA::GUIEventAdapter::KEYUP): { switch (ea.getKey()) { case ('f'): arbreUtile->setPropValue<bool>("graphic.windows.fullScreen", !arbreUtile->getPropValue<bool>("graphic.windows.fullScreen",false)); break; case (osgGA::GUIEventAdapter::KEY_Pause): arbreUtile->setPropValue<bool>("sim.pause",! arbreUtile->getPropValue<bool>("sim.pause",false)); break; case (osgGA::GUIEventAdapter::60): // This is line 619 arbreUtile->setPropValue<bool>("graphic.windows.showGui", ! arbreUtile->getPropValue<bool>("graphic.windows.showGui",false)); break; case (osgGA::GUIEventAdapter::80): // This is line 622 arbreUtile->setPropValue<bool>("graphic.windows.record", ! arbreUtile->getPropValue<bool>("graphic.windows.record", false)); break; default: break; } break; } default: return false; } As you can see, KEY_F2 and KEY_F12 has been replaced by a numeric value, but not KEY_Pause... In fact the file linux/input.h contains a list of define for the keyboard, including : #define KEY_F2 60 ... #define KEY_F12 88 ... #define KEY_PAUSE 119 Temporally, we had to undef KEY_F2 and KEY_12 in order to compile and link correctly our program. I you have some hints to do this differently and in a cleaner way :-) I'm ready to test other solutions (but I cannot exclude linux/input.h) Thanks, Cheers Christian |
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

