bluetoothengine/bthid/keyboard/src/keyboard.cpp
branchRCL_3
changeset 54 0ba996a9b75d
parent 53 eede1356aa52
child 55 613943a21004
equal deleted inserted replaced
53:eede1356aa52 54:0ba996a9b75d
    23 #include <eiksvdef.h>
    23 #include <eiksvdef.h>
    24 #include <apgcli.h>
    24 #include <apgcli.h>
    25 #include <apgtask.h>
    25 #include <apgtask.h>
    26 #include <e32keys.h>
    26 #include <e32keys.h>
    27 #include <avkondomainpskeys.h>
    27 #include <avkondomainpskeys.h>
       
    28 #include <coreapplicationuisdomainpskeys.h>
    28 
    29 
    29 #include "hidtranslate.h"
    30 #include "hidtranslate.h"
    30 #include "finder.h"
    31 #include "finder.h"
    31 #include "keyboard.h"
    32 #include "keyboard.h"
    32 #include "layoutmgr.h"
    33 #include "layoutmgr.h"
  1186         TEventCode aType)
  1187         TEventCode aType)
  1187     {
  1188     {
  1188         TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent: type %d, kc 0x%08x, sc 0x%08x, mod 0x%06x, rep %d]"),
  1189         TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent: type %d, kc 0x%08x, sc 0x%08x, mod 0x%06x, rep %d]"),
  1189                         aType, aKeyEvent.iCode, aKeyEvent.iScanCode,
  1190                         aType, aKeyEvent.iCode, aKeyEvent.iScanCode,
  1190                         aKeyEvent.iModifiers, aKeyEvent.iRepeats));
  1191                         aKeyEvent.iModifiers, aKeyEvent.iRepeats));
  1191     _LIT(KBackDrop, "*EiksrvBackdrop*");
       
  1192 
       
  1193     if (EStdKeyApplication0 == aKeyEvent.iScanCode && (EEventKeyDown == aType
       
  1194             || EEventKeyUp == aType))
       
  1195         {
       
  1196         // Application key up/down events go to the Eikon server
       
  1197         // Use this old way for application key
       
  1198         TInt result = iWsSession.FindWindowGroupIdentifier(0, KBackDrop); //This was in A2.x __EIKON_SERVER_NAME
       
  1199         DBG(if (KErrNotFound == result) RDebug::Print(_L("[HID]\tCHidKeyboardDriver::WindowGroupForKeyEvent(): BackDropWindowGroup Name not found!")));
       
  1200         return result;
       
  1201         }
       
  1202 
  1192 
  1203     if (EKeyDevice2 == aKeyEvent.iCode && EEventKey == aType)
  1193     if (EKeyDevice2 == aKeyEvent.iCode && EEventKey == aType)
  1204         {
  1194         {
  1205         // Power key press events go to SysAp
  1195         // Power key press events go to SysAp
  1206         TApaTaskList taskList( iWsSession );
  1196         TApaTaskList taskList( iWsSession );
  1377 //----------------------------------------------------------------------------
  1367 //----------------------------------------------------------------------------
  1378 //
  1368 //
  1379 void CHidKeyboardDriver::LaunchApplicationL(TInt aAppUid)
  1369 void CHidKeyboardDriver::LaunchApplicationL(TInt aAppUid)
  1380     {
  1370     {
  1381         TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::LaunchApplication: UID 0x%08x"), aAppUid));
  1371         TRACE_INFO( (_L("[HID]\tCHidKeyboardDriver::LaunchApplication: UID 0x%08x"), aAppUid));
  1382 
  1372     
       
  1373     //KeyLock or phone auto lock is on, refuse to continue    
       
  1374     if (iKeyLock.IsKeyLockEnabled())
       
  1375         {        
       
  1376         TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF KEYLOCK"));
       
  1377         return;
       
  1378         }
       
  1379     
       
  1380     TInt devLockStatus( EAutolockStatusUninitialized );
       
  1381     TInt err = RProperty::Get(  KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, devLockStatus );
       
  1382                     
       
  1383     if (!err)
       
  1384         {
       
  1385         if ( EAutolockOff != devLockStatus && EAutolockStatusUninitialized != devLockStatus)
       
  1386             {
       
  1387             //Auto lock is on, refuse to continue
       
  1388             TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF AUTO LOCK"));
       
  1389             return;
       
  1390             }
       
  1391         }
       
  1392     else
       
  1393         {
       
  1394         //failed to get AUTO LOCK status
       
  1395         TRACE_INFO( _L("[HID]\tCHidKeyboardDriver::LaunchApplicationL() SKIPPED BECAUSE OF FAILED TO GET AUTO LOCK STATUS"));
       
  1396         return;
       
  1397         }
       
  1398     
  1383     TApaTaskList taskList(iWsSession);
  1399     TApaTaskList taskList(iWsSession);
  1384     TUid uid = TUid::Uid(aAppUid);
  1400     TUid uid = TUid::Uid(aAppUid);
  1385     TApaTask task = taskList.FindApp(uid);
  1401     TApaTask task = taskList.FindApp(uid);
  1386     if (task.Exists())
  1402     if (task.Exists())
  1387         {
  1403         {
  1462             break;
  1478             break;
  1463             }
  1479             }
  1464         case EStdKeyEscape:
  1480         case EStdKeyEscape:
  1465             // fall through
  1481             // fall through
  1466         case EStdKeyF8:
  1482         case EStdKeyF8:
       
  1483             // fall through
       
  1484         case EStdKeyApplication0: 	 
  1467             // fall through
  1485             // fall through
  1468         case EStdKeyApplication2:
  1486         case EStdKeyApplication2:
  1469             // fall through
  1487             // fall through
  1470         case EStdKeyApplication3:
  1488         case EStdKeyApplication3:
  1471             // fall through
  1489             // fall through
  1914             
  1932             
  1915             // ESC when keylock enabled >>> Disabled key lock
  1933             // ESC when keylock enabled >>> Disabled key lock
  1916             else if (aIsKeyDown &&
  1934             else if (aIsKeyDown &&
  1917                 iKeyLock.IsKeyLockEnabled())
  1935                 iKeyLock.IsKeyLockEnabled())
  1918                 {
  1936                 {
  1919                 TRACE_INFO((_L("[HID]\tESC >>> DISBALE KEY LOCK DOWN")));
  1937                 TInt devLockStatus( EAutolockStatusUninitialized );
  1920                 
  1938                 TInt err = RProperty::Get(	KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, devLockStatus );
  1921                 iKeyLock.DisableKeyLock();
  1939                 
  1922 
  1940                 if (!err)
  1923                 ret = ETrue;
  1941                     {
  1924                 iNavKeyDown = (iNavKeyDown | EEsc);
  1942                     if (EAutolockOff == devLockStatus || EAutolockStatusUninitialized == devLockStatus)
  1925                 }
  1943                         {
  1926 
  1944                         TRACE_INFO((_L("[HID]\tESC >>> AUTO LOCK IS OFF, DISBALE KEY LOCK DOWN ")));                                       
  1927             break;
  1945                         iKeyLock.DisableKeyLock();
  1928             }
  1946                         ret = ETrue;
       
  1947                         iNavKeyDown = (iNavKeyDown | EEsc);
       
  1948                         }
       
  1949                     else
       
  1950                         {
       
  1951                         TRACE_INFO((_L("[HID]\tESC >>> AUTO LOCK IS ON, DISBALE KEY LOCK DOWN SKIPPED")));
       
  1952                         }
       
  1953                     }
       
  1954                 else
       
  1955                     {
       
  1956                     TRACE_INFO((_L("[HID]\tESC >>> FAILED to get AUTO LOCK status, DISBALE KEY LOCK DOWN SKIPPED")));
       
  1957                     }
       
  1958 
       
  1959                 }
       
  1960 
       
  1961             break;
       
  1962             }
       
  1963         case EStdKeyApplication0:
       
  1964 			{ 	  	 
       
  1965 			TRACE_INFO((_L("[HID]\tAPPLICATION KEY(Alt+Tab) >>> TSW"))); 	  	 
       
  1966 					 
       
  1967 			// Dedicated Application key 	  	 
       
  1968 			scancode = EStdKeyApplication0; 	  	 
       
  1969 			isMmKey = ETrue; 	  	 
       
  1970 			break; 	  	 
       
  1971 			}            
  1929         case EStdKeyF8:
  1972         case EStdKeyF8:
  1930             // fall through
  1973             // fall through
  1931         case EStdKeyApplication2:
  1974         case EStdKeyApplication2:
  1932             {
  1975             {
  1933             TRACE_INFO((_L("[HID]\tF8 / APPLICATION2 >>> PLAY / PAUSE")));
  1976             TRACE_INFO((_L("[HID]\tF8 / APPLICATION2 >>> PLAY / PAUSE")));