void CCmdCtl_i::AssignKeyCmd(U32 iVKey, U32 iKeyMode, CMD_ID CmdId) { int mod = 0; int cmd = 0; if(iKeyMode == VK_CONTROL) mod = SCMOD_CTRL; if(iKeyMode == VK_MENU) mod = SCMOD_ALT; if(iKeyMode == VK_SHIFT) mod = SCMOD_SHIFT; if(CmdId == CMD_NEWLINE) cmd = SCI_NEWLINE; if(CmdId == CMD_NULL) cmd = SCI_NULL; if(CmdId == CMD_COPY) cmd = SCI_COPY; if(CmdId == CMD_PASTE) cmd = SCI_PASTE; AssignKey(iVKey, mod, cmd); }
void PIN_GameControllerManager::AddGameController(int joy_index) { printf("Checking joystick #%d...\n",joy_index); printf("Name: %s\n",SDL_JoystickNameForIndex(joy_index)); if(SDL_IsGameController(joy_index)) { printf("This joystick is a gamecontroller. Adding to controller pool...\n"); printf("Game controller name: %s\n",SDL_GameControllerNameForIndex(joy_index)); PIN_GameControllerEntry* newEntry = CreateGameControllerEntry(); SDL_GameController* ctrl = SDL_GameControllerOpen(joy_index); SDL_Joystick* joy = SDL_GameControllerGetJoystick(ctrl); SDL_JoystickGUID joyGUID = SDL_JoystickGetGUID(joy); char strGUID[PIN_BUFFER_SIZE]; SDL_JoystickGetGUIDString(joyGUID,strGUID, PIN_BUFFER_SIZE); printf("Controller GUID: %s\n",strGUID); SDL_JoystickID joyID = SDL_JoystickInstanceID(joy); if(joyID < 0) { printf("Error: %s\n",SDL_GetError()); delete newEntry; return; } else { newEntry->ControllerID = joyID + PIN_ID_JOYSTICK; } newEntry->Controller = ctrl; newEntry->Joystick = joy; newEntry->AxisDeadZone = 8000; newEntry->GlobalKeys[PIN_GK_UP] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_UP)); newEntry->GlobalKeys[PIN_GK_DOWN] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_DOWN)); newEntry->GlobalKeys[PIN_GK_LEFT] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_LEFT)); newEntry->GlobalKeys[PIN_GK_RIGHT] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_DPAD_RIGHT)); newEntry->GlobalKeys[PIN_GK_ENTER] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_A)); newEntry->GlobalKeys[PIN_GK_BACK] = BuildComboSet(newEntry,SDL_GameControllerGetStringForButton(SDL_CONTROLLER_BUTTON_B)); PIN_KeyList lstDef = _controlType->DEFAULT_KEYS; printf("Setting control type definitions...\n"); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK); for(PIN_MappingList::iterator it = _mappingList->begin(); it!= _mappingList->end(); ++it) { PIN_Mapping* m = *it; if(boost::equals(m->GUID,strGUID)) { printf("Setting mapping-specific definitions...\n"); printf("Mapping name: '%s'\n",m->NAME); PIN_KeyList m_keys = m->DEFAULT_KEYS; newEntry->SourceMapping = m; newEntry->AxisDeadZone = m->DEADZONE; AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_UP,m_keys,PIN_KEY_UP); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_DOWN,m_keys,PIN_KEY_DOWN); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_LEFT,m_keys,PIN_KEY_LEFT); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_RIGHT,m_keys,PIN_KEY_RIGHT); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_ENTER,m_keys,PIN_KEY_ENTER); AssignKey(newEntry, &(newEntry->GlobalKeys),PIN_GK_BACK,m_keys,PIN_KEY_BACK); break; } } if(_currentGameMode != NULL) { UpdateControllerGameMode(newEntry); } //_controllerList.push_back(newEntry); AddController(newEntry); } else { printf("This joystick is NOT a gamecontroller. It can't be used.\n"); } }
void CCmdCtl_i::Init() { // clear all text styles SendMessage(SCI_CLEARDOCUMENTSTYLE, 0, 0); // set the number of styling bits to 7 - the asp/html views need a lot of styling - default is 5 // If you leave the default you will see twiggle lines instead of ASP code SendMessage(SCI_SETSTYLEBITS, 5, 0); // set the display for indetation guides to on - this displays virtical dotted lines from the beginning of // a code block to the end of the block //SendMessage(SCI_SETINDENTATIONGUIDES, TRUE, 0); // set tabwidth to 4 SendMessage(SCI_SETTABWIDTH,4,0); // set the caret blinking time to 500 milliseconds SendMessage(SCI_SETCARETPERIOD,500,0); // source folding section SendMessage(SCI_STYLESETFORE, STYLE_DEFAULT, (LPARAM) GetSysColor(COLOR_WINDOWTEXT)); // default text color SendMessage(SCI_STYLESETBACK, STYLE_DEFAULT, (LPARAM) GetSysColor(COLOR_WINDOW)); // default window color // set the forground color for some styles SendMessage(SCI_STYLESETFORE, 0, RGB(0,0,0)); SendMessage(SCI_STYLESETFORE, 2, RGB(0,64,0)); SendMessage(SCI_STYLESETFORE, 5, RGB(0,0,255)); SendMessage(SCI_STYLESETFORE, 6, RGB(200,20,0)); SendMessage(SCI_STYLESETFORE, 9, RGB(0,0,255)); SendMessage(SCI_STYLESETFORE, 10, RGB(255,0,64)); SendMessage(SCI_STYLESETFORE, 11, RGB(0,0,0)); // set the backgroundcolor of brace highlights SendMessage(SCI_STYLESETBACK, STYLE_BRACELIGHT, RGB(0,255,0)); // set end of line mode to CRLF // SendMessage(SCI_CONVERTEOLS, SC_EOL_LF, 0); // SendMessage(SCI_SETEOLMODE, SC_EOL_LF, 0); //SendMessage(SCI_SETVIEWEOL, TRUE, 0); SendMessage(SCI_SETSELFORE,0,0); SendMessage(SCI_SETSELBACK,TRUE,RGB(0xC0,0xC0,0xC0)); // use a default value... SendMessage(SCI_SETCARETFORE,GetSysColor(COLOR_WINDOWTEXT),0); // default value SendMessage(SCI_SETCARETLINEVISIBLE,FALSE,0); // set markersymbol for marker type 0 - bookmark // define a set of markers to displa folding symbols SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_MINUS); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDER, SC_MARK_PLUS); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDERSUB, SC_MARK_EMPTY); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDERTAIL, SC_MARK_EMPTY); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDEREND, SC_MARK_EMPTY); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPENMID, SC_MARK_EMPTY); SendMessage(SCI_MARKERDEFINE, SC_MARKNUM_FOLDERMIDTAIL, SC_MARK_EMPTY); SendMessage(SCI_SETEDGEMODE, EDGE_NONE, 0); SendMessage(SCI_SETINDENT,0,0); //SendMessage(SCI_SETCARETSTICKY,TRUE,0); SendMessage(SCI_SETCARETWIDTH,2,0); //SendMessage(SCI_WRAPCOUNT, 2); //SendMessage(SCI_MARKERDEFINE, 0, SC_MARK_CIRCLE); // display all margins //SetDisplayLinenumbers(TRUE); //SetDisplayFolding(TRUE); SetDisplaySelection(TRUE); // Dont use popup menu. SendMessage(SCI_USEPOPUP, 0); SendMessage(SCI_SETREADONLY, FALSE); SendMessage(SCI_SETVSCROLLBAR, TRUE); SendMessage(SCI_SETHSCROLLBAR, FALSE); // allow notifications for folding actions SendMessage(SCI_SETMODEVENTMASK, SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT, 0); // SendMessage(SCI_SETMODEVENTMASK, SC_MOD_CHANGEFOLD|SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT, 0); // make the folding margin sensitive to folding events = if you click into the margin you get a notification event SendMessage(SCI_SETMARGINSENSITIVEN, 2, TRUE); SendMessage(SCI_SETMODEVENTMASK, /* SC_MODEVENTMASKALL */ SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT, 0); SendMessage(SCI_USEPOPUP, FALSE, 0); SendMessage(SCI_ASSIGNCMDKEY, (SCK_NEXT + (SCMOD_CTRL << 16)), SCI_PARADOWN); SendMessage(SCI_ASSIGNCMDKEY, (SCK_PRIOR + (SCMOD_CTRL << 16)), SCI_PARAUP); SendMessage(SCI_ASSIGNCMDKEY, (SCK_NEXT + ((SCMOD_CTRL | SCMOD_SHIFT) << 16)), SCI_PARADOWNEXTEND); SendMessage(SCI_ASSIGNCMDKEY, (SCK_PRIOR + ((SCMOD_CTRL | SCMOD_SHIFT) << 16)), SCI_PARAUPEXTEND); SendMessage(SCI_ASSIGNCMDKEY, (SCK_HOME + (0 << 16)), SCI_VCHOMEWRAP); SendMessage(SCI_ASSIGNCMDKEY, (SCK_END + (0 << 16)), SCI_LINEENDWRAP); SendMessage(SCI_ASSIGNCMDKEY, (SCK_HOME + (SCMOD_SHIFT << 16)), SCI_VCHOMEWRAPEXTEND); SendMessage(SCI_ASSIGNCMDKEY, (SCK_END + (SCMOD_SHIFT << 16)), SCI_LINEENDWRAPEXTEND); SendMessage(SCI_CMD_MODE,TRUE,0); SetCtrlCharMode(TRUE); AssignKey('C', SCMOD_CTRL, SCI_NULL); AssignKey('V', SCMOD_CTRL, SCI_NULL); // Nonprinting characters ShowPrintCharacter(FALSE, FALSE); SendMessage(SCI_SETUNDOCOLLECTION,0); SendMessage(SCI_EMPTYUNDOBUFFER); //SendMessage(SCI_ASSIGNCMDKEY, ('c' + (SCMOD_CTRL << 16)), SCI_COPY); //SendMessage(SCI_SETCODEPAGE, SC_CP_UTF8, 0); }
void SDLKeyboard::KeyboardInit() { memset(&m_keyBuffer, 0, static_cast<size_t>(KC_LAST)); AssignKey(KC_BACKSPACE , SDLK_BACKSPACE ); AssignKey(KC_TAB , SDLK_TAB ); AssignKey(KC_CLEAR , SDLK_CLEAR ); AssignKey(KC_RETURN , SDLK_RETURN ); AssignKey(KC_PAUSE , SDLK_PAUSE ); AssignKey(KC_ESCAPE , SDLK_ESCAPE ); AssignKey(KC_SPACE , SDLK_SPACE ); AssignKey(KC_EXCLAIM , SDLK_EXCLAIM ); AssignKey(KC_QUOTEDBL , SDLK_QUOTEDBL ); AssignKey(KC_HASH , SDLK_HASH ); AssignKey(KC_DOLLAR , SDLK_DOLLAR ); AssignKey(KC_AMPERSAND , SDLK_AMPERSAND ); AssignKey(KC_QUOTE , SDLK_QUOTE ); AssignKey(KC_LEFTPAREN , SDLK_LEFTPAREN ); AssignKey(KC_RIGHTPAREN , SDLK_RIGHTPAREN ); AssignKey(KC_ASTERISK , SDLK_ASTERISK ); AssignKey(KC_PLUS , SDLK_PLUS ); AssignKey(KC_COMMA , SDLK_COMMA ); AssignKey(KC_MINUS , SDLK_MINUS ); AssignKey(KC_PERIOD , SDLK_PERIOD ); AssignKey(KC_SLASH , SDLK_SLASH ); AssignKey(KC_0 , SDLK_0 ); AssignKey(KC_1 , SDLK_1 ); AssignKey(KC_2 , SDLK_2 ); AssignKey(KC_3 , SDLK_3 ); AssignKey(KC_4 , SDLK_4 ); AssignKey(KC_5 , SDLK_5 ); AssignKey(KC_6 , SDLK_6 ); AssignKey(KC_7 , SDLK_7 ); AssignKey(KC_8 , SDLK_8 ); AssignKey(KC_9 , SDLK_9 ); AssignKey(KC_COLON , SDLK_COLON ); AssignKey(KC_SEMICOLON , SDLK_SEMICOLON ); AssignKey(KC_LESS , SDLK_LESS ); AssignKey(KC_EQUALS , SDLK_EQUALS ); AssignKey(KC_GREATER , SDLK_GREATER ); AssignKey(KC_QUESTION , SDLK_QUESTION ); AssignKey(KC_AT , SDLK_AT ); AssignKey(KC_LEFTBRACKET , SDLK_LEFTBRACKET ); AssignKey(KC_BACKSLASH , SDLK_BACKSLASH ); AssignKey(KC_RIGHTBRACKET, SDLK_RIGHTBRACKET); AssignKey(KC_CARET , SDLK_CARET ); AssignKey(KC_UNDERSCORE , SDLK_UNDERSCORE ); AssignKey(KC_BACKQUOTE , SDLK_BACKQUOTE ); AssignKey(KC_A , SDLK_a ); AssignKey(KC_B , SDLK_b ); AssignKey(KC_C , SDLK_c ); AssignKey(KC_D , SDLK_d ); AssignKey(KC_E , SDLK_e ); AssignKey(KC_F , SDLK_f ); AssignKey(KC_G , SDLK_g ); AssignKey(KC_H , SDLK_h ); AssignKey(KC_I , SDLK_i ); AssignKey(KC_J , SDLK_j ); AssignKey(KC_K , SDLK_k ); AssignKey(KC_L , SDLK_l ); AssignKey(KC_M , SDLK_m ); AssignKey(KC_N , SDLK_n ); AssignKey(KC_O , SDLK_o ); AssignKey(KC_P , SDLK_p ); AssignKey(KC_Q , SDLK_q ); AssignKey(KC_R , SDLK_r ); AssignKey(KC_S , SDLK_s ); AssignKey(KC_T , SDLK_t ); AssignKey(KC_U , SDLK_u ); AssignKey(KC_V , SDLK_v ); AssignKey(KC_W , SDLK_w ); AssignKey(KC_X , SDLK_x ); AssignKey(KC_Y , SDLK_y ); AssignKey(KC_Z , SDLK_z ); AssignKey(KC_DELETE , SDLK_DELETE ); AssignKey(KC_KP0 , SDLK_KP0 ); AssignKey(KC_KP1 , SDLK_KP1 ); AssignKey(KC_KP2 , SDLK_KP2 ); AssignKey(KC_KP3 , SDLK_KP3 ); AssignKey(KC_KP4 , SDLK_KP4 ); AssignKey(KC_KP5 , SDLK_KP5 ); AssignKey(KC_KP6 , SDLK_KP6 ); AssignKey(KC_KP7 , SDLK_KP7 ); AssignKey(KC_KP8 , SDLK_KP8 ); AssignKey(KC_KP9 , SDLK_KP9 ); AssignKey(KC_KP_PERIOD , SDLK_KP_PERIOD ); AssignKey(KC_KP_DIVIDE , SDLK_KP_DIVIDE ); AssignKey(KC_KP_MULTIPLY , SDLK_KP_MULTIPLY ); AssignKey(KC_KP_MINUS , SDLK_KP_MINUS ); AssignKey(KC_KP_PLUS , SDLK_KP_PLUS ); AssignKey(KC_KP_ENTER , SDLK_KP_ENTER ); AssignKey(KC_KP_EQUALS , SDLK_KP_EQUALS ); AssignKey(KC_UP , SDLK_UP ); AssignKey(KC_DOWN , SDLK_DOWN ); AssignKey(KC_RIGHT , SDLK_RIGHT ); AssignKey(KC_LEFT , SDLK_LEFT ); AssignKey(KC_INSERT , SDLK_INSERT ); AssignKey(KC_HOME , SDLK_HOME ); AssignKey(KC_END , SDLK_END ); AssignKey(KC_PAGEUP , SDLK_PAGEUP ); AssignKey(KC_PAGEDOWN , SDLK_PAGEDOWN ); AssignKey(KC_F1 , SDLK_F1 ); AssignKey(KC_F2 , SDLK_F2 ); AssignKey(KC_F3 , SDLK_F3 ); AssignKey(KC_F4 , SDLK_F4 ); AssignKey(KC_F5 , SDLK_F5 ); AssignKey(KC_F6 , SDLK_F6 ); AssignKey(KC_F7 , SDLK_F7 ); AssignKey(KC_F8 , SDLK_F8 ); AssignKey(KC_F9 , SDLK_F9 ); AssignKey(KC_F10 , SDLK_F10 ); AssignKey(KC_F11 , SDLK_F11 ); AssignKey(KC_F12 , SDLK_F12 ); AssignKey(KC_F13 , SDLK_F13 ); AssignKey(KC_F14 , SDLK_F14 ); AssignKey(KC_F15 , SDLK_F15 ); AssignKey(KC_NUMLOCK , SDLK_NUMLOCK ); AssignKey(KC_CAPSLOCK , SDLK_CAPSLOCK ); AssignKey(KC_SCROLLOCK , SDLK_SCROLLOCK ); AssignKey(KC_RSHIFT , SDLK_RSHIFT ); AssignKey(KC_LSHIFT , SDLK_LSHIFT ); AssignKey(KC_RCTRL , SDLK_RCTRL ); AssignKey(KC_LCTRL , SDLK_LCTRL ); AssignKey(KC_RALT , SDLK_RALT ); AssignKey(KC_LALT , SDLK_LALT ); AssignKey(KC_RMETA , SDLK_RMETA ); AssignKey(KC_LMETA , SDLK_LMETA ); AssignKey(KC_LSUPER , SDLK_LSUPER ); AssignKey(KC_RSUPER , SDLK_RSUPER ); AssignKey(KC_MODE , SDLK_MODE ); AssignKey(KC_COMPOSE , SDLK_COMPOSE ); AssignKey(KC_HELP , SDLK_HELP ); AssignKey(KC_PRINT , SDLK_PRINT ); AssignKey(KC_SYSREQ , SDLK_SYSREQ ); AssignKey(KC_BREAK , SDLK_BREAK ); AssignKey(KC_MENU , SDLK_MENU ); AssignKey(KC_POWER , SDLK_POWER ); AssignKey(KC_EURO , SDLK_EURO ); AssignKey(KC_UNDO , SDLK_UNDO ); }
PIN_KeyboardManager::PIN_KeyboardManager(PIN_ControlType* controlType, PIN_MappingList* mappingList, PIN_ControllerBaseList* masterControllerList) : PIN_ManagerBase(controlType, mappingList, masterControllerList) { std::string strKeyList("\\b(?:"); bool firstItem = true; for(int x = SDL_SCANCODE_A; x <= SDL_SCANCODE_SLEEP; x++) { PIN_String strScanCode = SDL_GetScancodeName((SDL_Scancode)x); if(!boost::equals(strScanCode,"")) { if(!firstItem) { strKeyList += "|"; } else { firstItem = false; } std::string strCode(strScanCode); strCode = PAUX_Extensors::regex_escape(strCode); strKeyList+= "(?:" + strCode + ")"; } } strKeyList+=")\\b"; _keyListRegex = boost::regex(strKeyList,boost::regex::perl|boost::regex::icase); PIN_KeyList lstDef = controlType->DEFAULT_KEYS; if(_mappingList->size() == 0) { printf("No keyboard mappings. Assuming 1 controller.\n"); PIN_KeyboardController* ctrl = CreateKeyboardController(); ctrl->GlobalKeys[PIN_GK_UP] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_UP)); ctrl->GlobalKeys[PIN_GK_DOWN] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_DOWN)); ctrl->GlobalKeys[PIN_GK_LEFT] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_LEFT)); ctrl->GlobalKeys[PIN_GK_RIGHT] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RIGHT)); ctrl->GlobalKeys[PIN_GK_ENTER] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RETURN)); ctrl->GlobalKeys[PIN_GK_BACK] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_BACKSPACE)); printf("Setting control type definitions...\n"); AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP); AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN); AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER); AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK); AddController(ctrl); printf("Done.\n"); } else { PIN_MappingList::iterator it; for(it = _mappingList->begin(); it!=_mappingList->end(); ++it) { PIN_Mapping* m = *it; PIN_KeyList m_keys = m->DEFAULT_KEYS; PIN_KeyboardController* ctrl = CreateKeyboardController(); printf("Creating controller ID 0x%xl for '%s'...\n",ctrl->ControllerID, m->NAME); ctrl->SourceMapping = m; ctrl->GlobalKeys[PIN_GK_UP] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_UP)); ctrl->GlobalKeys[PIN_GK_DOWN] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_DOWN)); ctrl->GlobalKeys[PIN_GK_LEFT] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_LEFT)); ctrl->GlobalKeys[PIN_GK_RIGHT] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RIGHT)); ctrl->GlobalKeys[PIN_GK_ENTER] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_RETURN)); ctrl->GlobalKeys[PIN_GK_BACK] = BuildComboSet(SDL_GetScancodeName(SDL_SCANCODE_BACKSPACE)); printf("Setting control type definitions...\n"); AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,lstDef,PIN_KEY_UP); AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,lstDef,PIN_KEY_DOWN); AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,lstDef,PIN_KEY_LEFT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,lstDef,PIN_KEY_RIGHT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,lstDef,PIN_KEY_ENTER); AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,lstDef,PIN_KEY_BACK); printf("Setting mapping-specific definitions...\n"); AssignKey(&(ctrl->GlobalKeys),PIN_GK_UP,m_keys,PIN_KEY_UP); AssignKey(&(ctrl->GlobalKeys),PIN_GK_DOWN,m_keys,PIN_KEY_DOWN); AssignKey(&(ctrl->GlobalKeys),PIN_GK_LEFT,m_keys,PIN_KEY_LEFT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_RIGHT,m_keys,PIN_KEY_RIGHT); AssignKey(&(ctrl->GlobalKeys),PIN_GK_ENTER,m_keys,PIN_KEY_ENTER); AssignKey(&(ctrl->GlobalKeys),PIN_GK_BACK,m_keys,PIN_KEY_BACK); AddController(ctrl); } } }