/* * CInput.cpp * * Created on: 20.03.2009 * Author: gerstrong */ #include #include #include "CInput.h" #include "../CLogFile.h" #include "CVideoDriver.h" #include "CTimer.h" #ifdef WIZ #include "gp2x.h" #endif CInput::CInput() { Uint8 i; m_exit = false; m_cmdpulse = 0; m_joydeadzone = 6400; memset(immediate_keytable,false,KEYTABLE_SIZE); memset(last_immediate_keytable,false,KEYTABLE_SIZE); for(i=0 ; itextOut("SDL: Got quit event!"); m_exit = true; break; case SDL_KEYDOWN: processKeys(1); break; case SDL_KEYUP: processKeys(0); break; case SDL_JOYAXISMOTION: processJoystickAxis(); break; case SDL_JOYBUTTONDOWN: processJoystickButton(1); break; case SDL_JOYBUTTONUP: processJoystickButton(0); break; } } // Check, if LALT+ENTER was pressed if(getHoldedKey(KLALT) && getPressedKey(KENTER)) { bool value; value = g_pVideoDriver->getFullscreen(); value = !value; g_pLogFile->textOut(GREEN,"Fullscreen mode triggered by user!
"); g_pVideoDriver->isFullscreen(value); // initialize/activate all drivers g_pLogFile->ftextOut("Restarting graphics driver...
"); if (!g_pVideoDriver->applyMode()) { value = !value; g_pLogFile->ftextOut(PURPLE, "Couldn't change the resolution, Rolling back...
"); if(g_pVideoDriver->applyMode()) g_pVideoDriver->initOpenGL(); } else g_pVideoDriver->initOpenGL(); if(value) g_pVideoDriver->AddConsoleMsg("Fullscreen enabled"); else g_pVideoDriver->AddConsoleMsg("Fullscreen disabled"); } // Check, if LALT+Q or LALT+F4 was pressed if(getHoldedKey(KLALT) && (getPressedKey(KF4) || getPressedKey(KQ)) ) { g_pLogFile->textOut("User exit request!"); m_exit = true; } #ifdef WIZ WIZ_AdjustVolume( volume_direction ); #endif } void CInput::processJoystickAxis(void) { for(Uint8 j=0 ; j m_joydeadzone && InputCommand[0][i].joyvalue > 0) || (Event.jaxis.value < -m_joydeadzone && InputCommand[0][i].joyvalue < 0)) InputCommand[j][i].active = true; else InputCommand[j][i].active = false; } } } } } void CInput::processJoystickButton(int value) { #ifdef WIZ WIZ_EmuKeyboard( Event.jbutton.button, value ); #else for(Uint8 j=0 ; j VOLUME_MAX ) volume = VOLUME_MAX; printf( "Volume Change: %i\n", volume ); unsigned long soundDev = open("/dev/mixer", O_RDWR); if(soundDev) { int vol = ((volume << 8) | volume); ioctl(soundDev, SOUND_MIXER_WRITE_PCM, &vol); close(soundDev); } } } #endif