omap3530/shared/serialkeyb/serialkeyboard.cpp
changeset 41 e73f15023e91
parent 21 524118fd998f
child 51 254b9435d75e
equal deleted inserted replaced
38:cdb163c0843f 41:e73f15023e91
    30 #define ISCTRL(x)  (0x2000&(x))
    30 #define ISCTRL(x)  (0x2000&(x))
    31 #define FUNCED(x)    (0x4000|(x))
    31 #define FUNCED(x)    (0x4000|(x))
    32 #define ISFUNC(x)  (0x4000&(x))
    32 #define ISFUNC(x)  (0x4000&(x))
    33 #define STDKEY(x)    (0x1FFF&(x))
    33 #define STDKEY(x)    (0x1FFF&(x))
    34 
    34 
       
    35 #if _UI_SOFTKEYS_ENABLED_
    35 static const TUint16 KScanCode[] =
    36 static const TUint16 KScanCode[] =
    36 	{
    37 	{
    37 	/*00*/	EStdKeyNull,
    38 	/*00*/	EStdKeyNull,
    38 	/*01*/	EStdKeyHome,				// ^A
    39 	/*01*/	EStdKeyHome,				// ^A
    39 	/*02*/	EStdKeyLeftArrow,			// ^B
    40 	/*02*/	EStdKeyLeftArrow,			// ^B
   162 	/*7d*/	SHIFTED(EStdKeySquareBracketRight),
   163 	/*7d*/	SHIFTED(EStdKeySquareBracketRight),
   163 	/*7e*/	SHIFTED(EStdKeyHash),
   164 	/*7e*/	SHIFTED(EStdKeyHash),
   164 	/*7f*/	EKeyDelete
   165 	/*7f*/	EKeyDelete
   165 	};
   166 	};
   166 
   167 
       
   168 #else
       
   169 static const TUint16 KScanCode[] =
       
   170 	{
       
   171 	/*00*/	EStdKeyNull,
       
   172 	/*01*/	EStdKeyHome,				// ^A
       
   173 	/*02*/	EStdKeyLeftArrow,			// ^B
       
   174 	/*03*/	EStdKeyEscape,				// ^C
       
   175 	/*04*/	SHIFTED(EStdKeyDownArrow),	// ^D - move window down
       
   176 	/*05*/	EStdKeyEnd,					// ^E
       
   177 	/*06*/	EStdKeyRightArrow,			// ^F
       
   178 	/*07*/	EStdKeyNull,
       
   179 	/*08*/	EStdKeyBackspace,			// ^H - Reserved!
       
   180 	/*09*/	EStdKeyTab,					// ^I - Reserved!
       
   181 	/*0a*/	EStdKeyNull,
       
   182 	/*0b*/	EStdKeyIncContrast,			// ^K
       
   183 	/*0c*/	EStdKeyDecContrast,			// ^L
       
   184 	/*0d*/	EStdKeyEnter,				// ^M - Reserved!
       
   185 	/*0e*/	EStdKeyDownArrow,			// ^N
       
   186 	/*0f*/	EStdKeyNull,				// ^O = instant death
       
   187 	/*10*/	EStdKeyUpArrow,				// ^P
       
   188 	/*11*/	CTRLED(EStdKeyLeftArrow),	// ^Q - make window narrower
       
   189 	/*12*/	CTRLED(FUNCED('5')),		// ^R - rotate windows in text window server
       
   190 	/*13*/	EStdKeyNull,
       
   191 	/*14*/	CTRLED(EStdKeyDownArrow),	// ^T - make window taller
       
   192 	/*15*/	SHIFTED(EStdKeyUpArrow),	// ^U - move window up
       
   193 	/*16*/	EStdKeyNull,
       
   194 	/*17*/	CTRLED(EStdKeyRightArrow),	// ^W - make window wider
       
   195 	/*18*/	SHIFTED(EStdKeyRightArrow),	// ^X - move window right
       
   196 	/*19*/	CTRLED(EStdKeyUpArrow),		// ^Y - make window shorter
       
   197 	/*1a*/	SHIFTED(EStdKeyLeftArrow),	// ^Z - move window left
       
   198 	/*1b*/	EStdKeyEscape,				// ^[ - Reserved!
       
   199 	/*1c*/	EStdKeyNull,
       
   200 	/*1d*/	EStdKeyNull,
       
   201 	/*1e*/	EStdKeyNull,
       
   202 	/*1f*/	EStdKeyNull,
       
   203 	/*20*/	EStdKeySpace,
       
   204 	/*21*/	SHIFTED('1'),		// !
       
   205 	/*22*/	SHIFTED('2'),		// "
       
   206 	/*23*/	EStdKeyHash,		// #
       
   207 	/*24*/	SHIFTED('4'),		// $
       
   208 	/*25*/	SHIFTED('5'),		// %
       
   209 	/*26*/	SHIFTED('7'),		// &
       
   210 	/*27*/	EStdKeySingleQuote,
       
   211 	/*28*/	SHIFTED('9'),		// (
       
   212 	/*29*/	SHIFTED('0'),		// )
       
   213 	/*2a*/	SHIFTED('8'),		// *
       
   214 	/*2b*/	SHIFTED(EStdKeyEquals),	// +
       
   215 	/*2c*/	EStdKeyComma,
       
   216 	/*2d*/	EStdKeyMinus,
       
   217 	/*2e*/	EStdKeyFullStop,
       
   218 	/*2f*/	EStdKeyForwardSlash,
       
   219 	/*30*/	'0',
       
   220 	/*31*/	'1',
       
   221 	/*32*/	'2',
       
   222 	/*33*/	'3',
       
   223 	/*34*/	'4',
       
   224 	/*35*/	'5',
       
   225 	/*36*/	'6',
       
   226 	/*37*/	'7',
       
   227 	/*38*/	'8',
       
   228 	/*39*/	'9',
       
   229 	/*3a*/	SHIFTED(EStdKeySemiColon),	// :
       
   230 	/*3b*/	EStdKeySemiColon,
       
   231 	/*3c*/	SHIFTED(EStdKeyComma),		// <
       
   232 	/*3d*/	EStdKeyEquals,
       
   233 	/*3e*/	SHIFTED(EStdKeyFullStop),	// >
       
   234 	/*3f*/	SHIFTED(EStdKeyForwardSlash),	// ?
       
   235 	/*40*/	SHIFTED(EStdKeySingleQuote),	// @
       
   236 	/*41*/	SHIFTED('A'),
       
   237 	/*42*/	SHIFTED('B'),
       
   238 	/*43*/	SHIFTED('C'),
       
   239 	/*44*/	SHIFTED('D'),
       
   240 	/*45*/	SHIFTED('E'),
       
   241 	/*46*/	SHIFTED('F'),
       
   242 	/*47*/	SHIFTED('G'),
       
   243 	/*48*/	SHIFTED('H'),
       
   244 	/*49*/	SHIFTED('I'),
       
   245 	/*4a*/	SHIFTED('J'),
       
   246 	/*4b*/	SHIFTED('K'),
       
   247 	/*4c*/	SHIFTED('L'),
       
   248 	/*4d*/	SHIFTED('M'),
       
   249 	/*4e*/	SHIFTED('N'),
       
   250 	/*4f*/	SHIFTED('O'),
       
   251 	/*50*/	SHIFTED('P'),
       
   252 	/*51*/	SHIFTED('Q'),
       
   253 	/*52*/	SHIFTED('R'),
       
   254 	/*53*/	SHIFTED('S'),
       
   255 	/*54*/	SHIFTED('T'),
       
   256 	/*55*/	SHIFTED('U'),
       
   257 	/*56*/	SHIFTED('V'),
       
   258 	/*57*/	SHIFTED('W'),
       
   259 	/*58*/	SHIFTED('X'),
       
   260 	/*59*/	SHIFTED('Y'),
       
   261 	/*5a*/	SHIFTED('Z'),
       
   262 	/*5b*/	EStdKeySquareBracketLeft,
       
   263 	/*5c*/	EStdKeyBackSlash,
       
   264 	/*5d*/	EStdKeySquareBracketRight,
       
   265 	/*5e*/	SHIFTED('6'),			// ^
       
   266 	/*5f*/	SHIFTED(EStdKeyMinus),	// _
       
   267 	/*60*/	EStdKeyBacklightToggle,	// Actually `
       
   268 	/*61*/	'A',
       
   269 	/*62*/	'B',
       
   270 	/*63*/	'C',
       
   271 	/*64*/	'D',
       
   272 	/*65*/	'E',
       
   273 	/*66*/	'F',
       
   274 	/*67*/	'G',
       
   275 	/*68*/	'H',
       
   276 	/*69*/	'I',
       
   277 	/*6a*/	'J',
       
   278 	/*6b*/	'K',
       
   279 	/*6c*/	'L',
       
   280 	/*6d*/	'M',
       
   281 	/*6e*/	'N',
       
   282 	/*6f*/	'O',
       
   283 	/*70*/	'P',
       
   284 	/*71*/	'Q',
       
   285 	/*72*/	'R',
       
   286 	/*73*/	'S',
       
   287 	/*74*/	'T',
       
   288 	/*75*/	'U',
       
   289 	/*76*/	'V',
       
   290 	/*77*/	'W',
       
   291 	/*78*/	'X',
       
   292 	/*79*/	'Y',
       
   293 	/*7a*/	'Z',
       
   294 	/*7b*/	SHIFTED(EStdKeySquareBracketLeft),
       
   295 	/*7c*/	SHIFTED(EStdKeyBackSlash),
       
   296 	/*7d*/	SHIFTED(EStdKeySquareBracketRight),
       
   297 	/*7e*/	SHIFTED(EStdKeyHash),
       
   298 	/*7f*/	EKeyDelete
       
   299 	};
       
   300 
       
   301 #endif
       
   302 
   167 static const TUint16 KEscapedScanCode[] =
   303 static const TUint16 KEscapedScanCode[] =
   168 	{
   304 	{
   169 	EStdKeyUpArrow,
   305 	EStdKeyUpArrow,
   170 	EStdKeyDownArrow,
   306 	EStdKeyDownArrow,
   171 	EStdKeyRightArrow,
   307 	EStdKeyRightArrow,
   308 			{
   444 			{
   309 			self->iState = EEscaping1;
   445 			self->iState = EEscaping1;
   310 			}
   446 			}
   311 		else
   447 		else
   312 			{
   448 			{
   313 			Kern::Printf("Key received: %d %d", self->iKey, KScanCode[self->iKey]);
       
   314 			self->AddKey( KScanCode[ self->iKey ] );
   449 			self->AddKey( KScanCode[ self->iKey ] );
   315 			}
   450 			}
   316 		break;
   451 		break;
   317 
   452 
   318 	case EEscaping1:
   453 	case EEscaping1:
   360 	const TBool func = ISFUNC(aKey);
   495 	const TBool func = ISFUNC(aKey);
   361 	const TUint8 stdKey = STDKEY(aKey);
   496 	const TUint8 stdKey = STDKEY(aKey);
   362 
   497 
   363 	TRawEvent e;
   498 	TRawEvent e;
   364 
   499 
   365 	Kern::Printf("AddKey %d %d %d %d", shifted, ctrl, func, stdKey);
       
   366 	
   500 	
   367 	if ( func )
   501 	if ( func )
   368 		{
   502 		{
   369 		e.Set( TRawEvent::EKeyDown, EStdKeyRightFunc, 0 );
   503 		e.Set( TRawEvent::EKeyDown, EStdKeyRightFunc, 0 );
   370 		Kern::AddEvent( e );
   504 		Kern::AddEvent( e );