⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdl_epocevents.cpp

📁 SDL库 在进行视频显示程序spcaview安装时必须的库文件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    if(drive < 0)        return;    CLineReader* reader = CLineReader::NewLC(aFs, name);    while(reader->NextL())        {        TPtrC ln = reader->Current();        TLex line(ln);        TInt n = 0;        for(;;)            {            const TPtrC token = line.NextToken();            if(token.Length() == 0)                break;            if((n & 1) != 0)                {                TInt value;                TLex lex(token);                User::LeaveIfError(lex.Val(value));                User::LeaveIfError(aArray.Append(value));                }            n++;            }        }    CleanupStack::PopAndDestroy();    }void EPOC_InitOSKeymap(_THIS){	int i;	/* Initialize the key translation table */	for ( i=0; i<SDL_TABLESIZE(keymap); ++i )		keymap[i] = SDLK_UNKNOWN;	/* Numbers */	for ( i = 0; i<32; ++i ){		keymap[' ' + i] = (SDLKey)(SDLK_SPACE+i);	}	/* e.g. Alphabet keys */	for ( i = 0; i<32; ++i ){		keymap['A' + i] = (SDLKey)(SDLK_a+i);	}	keymap[EStdKeyBackspace]    = SDLK_BACKSPACE;	keymap[EStdKeyTab]          = SDLK_TAB;	keymap[EStdKeyEnter]        = SDLK_RETURN;	keymap[EStdKeyEscape]       = SDLK_ESCAPE;   	keymap[EStdKeySpace]        = SDLK_SPACE;   	keymap[EStdKeyPause]        = SDLK_PAUSE;   	keymap[EStdKeyHome]         = SDLK_HOME;   	keymap[EStdKeyEnd]          = SDLK_END;   	keymap[EStdKeyPageUp]       = SDLK_PAGEUP;   	keymap[EStdKeyPageDown]     = SDLK_PAGEDOWN;	keymap[EStdKeyDelete]       = SDLK_DELETE;	keymap[EStdKeyUpArrow]      = SDLK_UP;	keymap[EStdKeyDownArrow]    = SDLK_DOWN;	keymap[EStdKeyLeftArrow]    = SDLK_LEFT;	keymap[EStdKeyRightArrow]   = SDLK_RIGHT;	keymap[EStdKeyCapsLock]     = SDLK_CAPSLOCK;	keymap[EStdKeyLeftShift]    = SDLK_LSHIFT;	keymap[EStdKeyRightShift]   = SDLK_RSHIFT;	keymap[EStdKeyLeftAlt]      = SDLK_LALT;	keymap[EStdKeyRightAlt]     = SDLK_RALT;	keymap[EStdKeyLeftCtrl]     = SDLK_LCTRL;	keymap[EStdKeyRightCtrl]    = SDLK_RCTRL;	keymap[EStdKeyLeftFunc]     = SDLK_LMETA;	keymap[EStdKeyRightFunc]    = SDLK_RMETA;	keymap[EStdKeyInsert]       = SDLK_INSERT;	keymap[EStdKeyComma]        = SDLK_COMMA;	keymap[EStdKeyFullStop]     = SDLK_PERIOD;	keymap[EStdKeyForwardSlash] = SDLK_SLASH;	keymap[EStdKeyBackSlash]    = SDLK_BACKSLASH;	keymap[EStdKeySemiColon]    = SDLK_SEMICOLON;	keymap[EStdKeySingleQuote]  = SDLK_QUOTE;	keymap[EStdKeyHash]         = SDLK_HASH;	keymap[EStdKeySquareBracketLeft]    = SDLK_LEFTBRACKET;	keymap[EStdKeySquareBracketRight]   = SDLK_RIGHTBRACKET;	keymap[EStdKeyMinus]        = SDLK_MINUS;	keymap[EStdKeyEquals]       = SDLK_EQUALS;   	keymap[EStdKeyF1]          = SDLK_F1;  /* chr + q */   	keymap[EStdKeyF2]          = SDLK_F2;  /* chr + w */   	keymap[EStdKeyF3]          = SDLK_F3;  /* chr + e */   	keymap[EStdKeyF4]          = SDLK_F4;  /* chr + r */   	keymap[EStdKeyF5]          = SDLK_F5;  /* chr + t */   	keymap[EStdKeyF6]          = SDLK_F6;  /* chr + y */   	keymap[EStdKeyF7]          = SDLK_F7;  /* chr + i */   	keymap[EStdKeyF8]          = SDLK_F8;  /* chr + o */   	keymap[EStdKeyF9]          = SDLK_F9;  /* chr + a */   	keymap[EStdKeyF10]         = SDLK_F10; /* chr + s */   	keymap[EStdKeyF11]         = SDLK_F11; /* chr + d */   	keymap[EStdKeyF12]         = SDLK_F12; /* chr + f */	#ifndef SYMBIAN_CRYSTAL 	//!!7650 additions    #ifdef __WINS__   	keymap[EStdKeyXXX]         = SDLK_RETURN;	/* "fire" key */	#else   	keymap[EStdKeyDevice3]     = SDLK_RETURN;	/* "fire" key */	#endif   	keymap[EStdKeyNkpAsterisk] = SDLK_ASTERISK;    	keymap[EStdKeyYes]         = SDLK_HOME;		/* "call" key */   	keymap[EStdKeyNo]		   = SDLK_END;		/* "end call" key */   	keymap[EStdKeyDevice0]     = SDLK_SPACE;	/* right menu key */   	keymap[EStdKeyDevice1]     = SDLK_ESCAPE;	/* left menu key */   	keymap[EStdKeyDevice2]     = SDLK_POWER;	/* power key */	#endif #ifdef SYMBIAN_CRYSTAL     keymap[EStdKeyMenu]        = SDLK_ESCAPE;   // menu key    keymap[EStdKeyDevice6]     = SDLK_LEFT;     // Rocker (joystick) left    keymap[EStdKeyDevice7]     = SDLK_RIGHT;    // Rocker (joystick) right    keymap[EStdKeyDevice8]     = SDLK_UP;       // Rocker (joystick) up    keymap[EStdKeyDevice9]     = SDLK_DOWN;     // Rocker (joystick) down    keymap[EStdKeyLeftFunc]     = SDLK_LALT;    //chr?	keymap[EStdKeyRightFunc]    = SDLK_RALT;    keymap[EStdKeyDeviceA]      = SDLK_RETURN;	/* "fire" key */#endif    ///////////////////////////////////////////////////////////    RFs fs;    if(KErrNone == fs.Connect())        {        RArray<TInt> array;        TRAPD(err, ReadL(fs, array));        if(err == KErrNone && array.Count() > 0)            {                        SDLKey temp[MAX_SCANCODE];            Mem::Copy(temp, keymap, MAX_SCANCODE * sizeof(SDLKey));            for(TInt k = 0; k < array.Count(); k+= 2)                {                const TInt oldval = array[k];                 const TInt newval = array[k + 1];                 if(oldval >=  0 && oldval < MAX_SCANCODE && newval >=  0 && newval < MAX_SCANCODE)                    {                    keymap[oldval] = temp[newval];                    }                }            }        array.Close();        }    fs.Close();    ///////////////////////////////////////////////////////////    /* !!TODO	EStdKeyNumLock=0x1b,	EStdKeyScrollLock=0x1c,	EStdKeyNkpForwardSlash=0x84,	EStdKeyNkpAsterisk=0x85,	EStdKeyNkpMinus=0x86,	EStdKeyNkpPlus=0x87,	EStdKeyNkpEnter=0x88,	EStdKeyNkp1=0x89,	EStdKeyNkp2=0x8a,	EStdKeyNkp3=0x8b,	EStdKeyNkp4=0x8c,	EStdKeyNkp5=0x8d,	EStdKeyNkp6=0x8e,	EStdKeyNkp7=0x8f,	EStdKeyNkp8=0x90,	EStdKeyNkp9=0x91,	EStdKeyNkp0=0x92,	EStdKeyNkpFullStop=0x93,    EStdKeyMenu=0x94,    EStdKeyBacklightOn=0x95,    EStdKeyBacklightOff=0x96,    EStdKeyBacklightToggle=0x97,    EStdKeyIncContrast=0x98,    EStdKeyDecContrast=0x99,    EStdKeySliderDown=0x9a,    EStdKeySliderUp=0x9b,    EStdKeyDictaphonePlay=0x9c,    EStdKeyDictaphoneStop=0x9d,    EStdKeyDictaphoneRecord=0x9e,    EStdKeyHelp=0x9f,    EStdKeyOff=0xa0,    EStdKeyDial=0xa1,    EStdKeyIncVolume=0xa2,    EStdKeyDecVolume=0xa3,    EStdKeyDevice0=0xa4,    EStdKeyDevice1=0xa5,    EStdKeyDevice2=0xa6,    EStdKeyDevice3=0xa7,    EStdKeyDevice4=0xa8,    EStdKeyDevice5=0xa9,    EStdKeyDevice6=0xaa,    EStdKeyDevice7=0xab,    EStdKeyDevice8=0xac,    EStdKeyDevice9=0xad,    EStdKeyDeviceA=0xae,    EStdKeyDeviceB=0xaf,    EStdKeyDeviceC=0xb0,    EStdKeyDeviceD=0xb1,    EStdKeyDeviceE=0xb2,    EStdKeyDeviceF=0xb3,    EStdKeyApplication0=0xb4,    EStdKeyApplication1=0xb5,    EStdKeyApplication2=0xb6,    EStdKeyApplication3=0xb7,    EStdKeyApplication4=0xb8,    EStdKeyApplication5=0xb9,    EStdKeyApplication6=0xba,    EStdKeyApplication7=0xbb,    EStdKeyApplication8=0xbc,    EStdKeyApplication9=0xbd,    EStdKeyApplicationA=0xbe,    EStdKeyApplicationB=0xbf,    EStdKeyApplicationC=0xc0,    EStdKeyApplicationD=0xc1,    EStdKeyApplicationE=0xc2,    EStdKeyApplicationF=0xc3,    EStdKeyYes=0xc4,    EStdKeyNo=0xc5,    EStdKeyIncBrightness=0xc6,    EStdKeyDecBrightness=0xc7,     EStdKeyCaseOpen=0xc8,    EStdKeyCaseClose=0xc9    */}static SDL_keysym *TranslateKey(_THIS, int scancode, SDL_keysym *keysym){//    char debug[256];    //SDL_TRACE1("SDL: TranslateKey, scancode=%d", scancode); //!!	/* Set the keysym information */ 	keysym->scancode = scancode;    if ((scancode >= MAX_SCANCODE) &&         ((scancode - ENonCharacterKeyBase + 0x0081) >= MAX_SCANCODE)) {        SDL_SetError("Too big scancode");        keysym->scancode = SDLK_UNKNOWN;	    keysym->mod = KMOD_NONE;         return keysym;    }	keysym->mod = SDL_GetModState();    /* Handle function keys: F1, F2, F3 ... */    if (keysym->mod & KMOD_META) {        if (scancode >= 'A' && scancode < ('A' + 24)) { /* first 32 alphabet keys */            switch(scancode) {                case 'Q': scancode = EStdKeyF1; break;                case 'W': scancode = EStdKeyF2; break;                case 'E': scancode = EStdKeyF3; break;                case 'R': scancode = EStdKeyF4; break;                case 'T': scancode = EStdKeyF5; break;                case 'Y': scancode = EStdKeyF6; break;                case 'U': scancode = EStdKeyF7; break;                case 'I': scancode = EStdKeyF8; break;                case 'A': scancode = EStdKeyF9; break;                case 'S': scancode = EStdKeyF10; break;                case 'D': scancode = EStdKeyF11; break;                case 'F': scancode = EStdKeyF12; break;            }            keysym->sym = keymap[scancode];        }    }    if (scancode >= ENonCharacterKeyBase) {        // Non character keys	    keysym->sym = keymap[scancode -             ENonCharacterKeyBase + 0x0081]; // !!hard coded    } else {	    keysym->sym = keymap[scancode];    }	/* Remap the arrow keys if the device is rotated */	if (Private->EPOC_ScreenOrientation == CFbsBitGc::EGraphicsOrientationRotated270) {		switch(keysym->sym) {			case SDLK_UP:	keysym->sym = SDLK_LEFT;  break;			case SDLK_DOWN: keysym->sym = SDLK_RIGHT; break;			case SDLK_LEFT: keysym->sym = SDLK_DOWN;  break;			case SDLK_RIGHT:keysym->sym = SDLK_UP;    break;		}	}	/* If UNICODE is on, get the UNICODE value for the key */	keysym->unicode = 0;#if 0 // !!TODO:unicode	if ( SDL_TranslateUNICODE )     {		/* Populate the unicode field with the ASCII value */		keysym->unicode = scancode;	}#endif    //!!    //sprintf(debug, "SDL: TranslateKey: keysym->scancode=%d, keysym->sym=%d, keysym->mod=%d",    //    keysym->scancode, keysym->sym, keysym->mod);    //SDL_TRACE(debug); //!!	return(keysym);}}; /* extern "C" */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -