qtmobility/src/systeminfo/qsysteminfo_s60.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    44 #include <QStringList>
    44 #include <QStringList>
    45 #include <QDir>
    45 #include <QDir>
    46 #include <QRegExp>
    46 #include <QRegExp>
    47 #include <QTimer>
    47 #include <QTimer>
    48 
    48 
    49 #include <SysUtil.h>
    49 #include <sysutil.h>
    50 #include <ptiengine.h>
    50 #include <PtiEngine.h>
    51 #include <FeatDiscovery.h>
    51 #include <featdiscovery.h>
    52 #ifndef KFeatureIdMmc
    52 #ifndef KFeatureIdMmc
    53 #include <featureinfo.h>
    53 #include <featureinfo.h>
    54 #endif
    54 #endif
    55 #include <hwrmvibra.h>
    55 #include <hwrmvibra.h>
    56 #include <AknUtils.h>
    56 #include <AknUtils.h>
    57 #include <W32STD.H>
    57 #include <w32std.h>
    58 #include <centralrepository.h>
    58 #include <centralrepository.h>
    59 #include <mproengengine.h>
    59 #include <MProEngEngine.h>
    60 #include <proengfactory.h>
    60 #include <ProEngFactory.h>
    61 #include <mproengnotifyhandler.h>
    61 #include <MProEngNotifyHandler.h>
    62 #include <btserversdkcrkeys.h>
    62 #include <btserversdkcrkeys.h>
    63 #include <bt_subscribe.h>
    63 #include <bt_subscribe.h>
    64 #include <bttypes.h>
    64 #include <bttypes.h>
    65 #include <Etel3rdParty.h>
    65 #include <etel3rdparty.h>
    66 #include <aknkeylock.h>
    66 #include <aknkeylock.h>
    67 
    67 
    68 QTM_BEGIN_NAMESPACE
    68 QTM_BEGIN_NAMESPACE
    69 
    69 
    70 //////// QSystemInfo
       
    71 QSystemInfoPrivate::QSystemInfoPrivate(QObject *parent)
    70 QSystemInfoPrivate::QSystemInfoPrivate(QObject *parent)
    72     : QObject(parent)
    71     : QObject(parent)
    73 {
    72 {
    74 }
    73 }
    75 
    74 
   104 }
   103 }
   105 
   104 
   106 QString QSystemInfoPrivate::TLanguageToISO639_1(TLanguage language) const
   105 QString QSystemInfoPrivate::TLanguageToISO639_1(TLanguage language) const
   107 {
   106 {
   108     switch (language) {
   107     switch (language) {
   109         case ELangAmerican: 
   108         case ELangAmerican:
   110         case ELangCanadianEnglish:
   109         case ELangCanadianEnglish:
   111         case ELangInternationalEnglish:
   110         case ELangInternationalEnglish:
   112         case ELangSouthAfricanEnglish:
   111         case ELangSouthAfricanEnglish:
   113         case ELangAustralian:
   112         case ELangAustralian:
   114         case ELangEnglish: return "en";
   113         case ELangEnglish: return "en";
   299     bool isFeatureSupported = false;
   298     bool isFeatureSupported = false;
   300     TRAP_IGNORE(isFeatureSupported = CFeatureDiscovery::IsFeatureSupportedL(featureId);)
   299     TRAP_IGNORE(isFeatureSupported = CFeatureDiscovery::IsFeatureSupportedL(featureId);)
   301     return isFeatureSupported;
   300     return isFeatureSupported;
   302 }
   301 }
   303 
   302 
   304 //////// QSystemNetworkInfo
       
   305 QSystemNetworkInfoPrivate::QSystemNetworkInfoPrivate(QObject *parent)
   303 QSystemNetworkInfoPrivate::QSystemNetworkInfoPrivate(QObject *parent)
   306     : QObject(parent)
   304     : QObject(parent)
   307 {
   305 {
   308     DeviceInfo::instance()->cellSignalStrenghtInfo()->addObserver(this);
   306     DeviceInfo::instance()->cellSignalStrenghtInfo()->addObserver(this);
   309     DeviceInfo::instance()->cellNetworkInfo()->addObserver(this);
   307     DeviceInfo::instance()->cellNetworkInfo()->addObserver(this);
   329 
   327 
   330             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   328             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   331             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   329             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   332                 return QSystemNetworkInfo::NoNetworkAvailable;
   330                 return QSystemNetworkInfo::NoNetworkAvailable;
   333 
   331 
   334             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) && 
   332             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) &&
   335                 mode != QSystemNetworkInfo::CdmaMode)
   333                 mode != QSystemNetworkInfo::CdmaMode)
   336                 return QSystemNetworkInfo::NoNetworkAvailable;
   334                 return QSystemNetworkInfo::NoNetworkAvailable;
   337 
   335 
   338             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   336             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   339                 return QSystemNetworkInfo::NoNetworkAvailable;
   337                 return QSystemNetworkInfo::NoNetworkAvailable;
   370         {
   368         {
   371             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   369             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   372             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   370             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   373                 return -1;
   371                 return -1;
   374 
   372 
   375             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) && 
   373             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) &&
   376                 mode != QSystemNetworkInfo::CdmaMode)
   374                 mode != QSystemNetworkInfo::CdmaMode)
   377                 return -1;
   375                 return -1;
   378 
   376 
   379             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   377             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   380                 return -1;
   378                 return -1;
   436         {
   434         {
   437             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   435             CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   438             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   436             if (networkMode == CTelephony::ENetworkModeGsm && mode != QSystemNetworkInfo::GsmMode)
   439                 return QString();
   437                 return QString();
   440 
   438 
   441             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) && 
   439             if ((networkMode == CTelephony::ENetworkModeCdma95 || networkMode == CTelephony::ENetworkModeCdma2000) &&
   442                 mode != QSystemNetworkInfo::CdmaMode)
   440                 mode != QSystemNetworkInfo::CdmaMode)
   443                 return QString();
   441                 return QString();
   444 
   442 
   445             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   443             if (networkMode == CTelephony::ENetworkModeWcdma && mode != QSystemNetworkInfo::WcdmaMode)
   446                 return QString();
   444                 return QString();
   479         }
   477         }
   480         case QSystemNetworkInfo::BluetoothMode:
   478         case QSystemNetworkInfo::BluetoothMode:
   481         {
   479         {
   482             TBuf<20> bluetoothAddr;
   480             TBuf<20> bluetoothAddr;
   483             TPckgBuf<TBTDevAddr> bluetoothAddrPckg;
   481             TPckgBuf<TBTDevAddr> bluetoothAddrPckg;
   484             if (RProperty::Get(KUidSystemCategory, 
   482             if (RProperty::Get(KUidSystemCategory,
   485                 KPropertyKeyBluetoothGetLocalDeviceAddress, bluetoothAddrPckg) == KErrNone) {
   483                 KPropertyKeyBluetoothGetLocalDeviceAddress, bluetoothAddrPckg) == KErrNone) {
   486                 bluetoothAddrPckg().GetReadable(bluetoothAddr, KNullDesC, _L(":"), KNullDesC);
   484                 bluetoothAddrPckg().GetReadable(bluetoothAddr, KNullDesC, _L(":"), KNullDesC);
   487                 address = QString::fromUtf16(bluetoothAddr.Ptr(), bluetoothAddr.Length());
   485                 address = QString::fromUtf16(bluetoothAddr.Ptr(), bluetoothAddr.Length());
   488             }
   486             }
   489             break;
   487             break;
   514     emit currentMobileNetworkCodeChanged(DeviceInfo::instance()->cellNetworkInfo()->networkCode());
   512     emit currentMobileNetworkCodeChanged(DeviceInfo::instance()->cellNetworkInfo()->networkCode());
   515 }
   513 }
   516 
   514 
   517 void QSystemNetworkInfoPrivate::networkNameChanged()
   515 void QSystemNetworkInfoPrivate::networkNameChanged()
   518 {
   516 {
       
   517     emit networkNameChanged(currentMode(), DeviceInfo::instance()->cellNetworkInfo()->networkName());
       
   518 }
       
   519 
       
   520 void QSystemNetworkInfoPrivate::networkModeChanged()
       
   521 {
       
   522     emit networkModeChanged(currentMode());
       
   523 }
       
   524 
       
   525 void QSystemNetworkInfoPrivate::cellNetworkSignalStrengthChanged()
       
   526 {
       
   527     emit networkSignalStrengthChanged(currentMode(),
       
   528         DeviceInfo::instance()->cellSignalStrenghtInfo()->cellNetworkSignalStrength());
       
   529 }
       
   530 
       
   531 void QSystemNetworkInfoPrivate::cellNetworkStatusChanged()
       
   532 {
       
   533     QSystemNetworkInfo::NetworkMode mode = currentMode();
       
   534     emit networkStatusChanged(mode, networkStatus(mode));
       
   535 }
       
   536 
       
   537 QSystemNetworkInfo::NetworkMode QSystemNetworkInfoPrivate::currentMode()
       
   538 {
   519     QSystemNetworkInfo::NetworkMode mode = QSystemNetworkInfo::UnknownMode;
   539     QSystemNetworkInfo::NetworkMode mode = QSystemNetworkInfo::UnknownMode;
   520     CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   540     CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
   521     switch (networkMode) {
   541     switch (networkMode) {
   522         case CTelephony::ENetworkModeGsm: mode = QSystemNetworkInfo::GsmMode; break;
   542         case CTelephony::ENetworkModeGsm: mode = QSystemNetworkInfo::GsmMode; break;
   523         case CTelephony::ENetworkModeCdma95:
   543         case CTelephony::ENetworkModeCdma95:
   524         case CTelephony::ENetworkModeCdma2000: mode = QSystemNetworkInfo::CdmaMode; break;
   544         case CTelephony::ENetworkModeCdma2000: mode = QSystemNetworkInfo::CdmaMode; break;
   525         case CTelephony::ENetworkModeWcdma: mode = QSystemNetworkInfo::WcdmaMode; break;
   545         case CTelephony::ENetworkModeWcdma: mode = QSystemNetworkInfo::WcdmaMode; break;
   526         default:
   546         default:
   527             break;
   547             break;
   528     }
   548     }
   529     emit networkNameChanged(mode, DeviceInfo::instance()->cellNetworkInfo()->networkName());
   549     return mode;
   530 }
   550 }
   531 
   551 
   532 void QSystemNetworkInfoPrivate::networkModeChanged()
       
   533 {
       
   534     QSystemNetworkInfo::NetworkMode newMode = QSystemNetworkInfo::UnknownMode;
       
   535     CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
       
   536     switch (networkMode) {
       
   537         case CTelephony::ENetworkModeGsm: newMode = QSystemNetworkInfo::GsmMode; break;
       
   538         case CTelephony::ENetworkModeCdma95:
       
   539         case CTelephony::ENetworkModeCdma2000: newMode = QSystemNetworkInfo::CdmaMode; break;
       
   540         case CTelephony::ENetworkModeWcdma: newMode = QSystemNetworkInfo::WcdmaMode; break;
       
   541         default:
       
   542             break;
       
   543     }
       
   544     emit networkModeChanged(newMode);
       
   545 }
       
   546 
       
   547 void QSystemNetworkInfoPrivate::cellNetworkSignalStrengthChanged()
       
   548 {
       
   549     QSystemNetworkInfo::NetworkMode mode = QSystemNetworkInfo::UnknownMode;
       
   550     CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
       
   551     switch (networkMode) {
       
   552         case CTelephony::ENetworkModeGsm: mode = QSystemNetworkInfo::GsmMode; break;
       
   553         case CTelephony::ENetworkModeCdma95:
       
   554         case CTelephony::ENetworkModeCdma2000: mode = QSystemNetworkInfo::CdmaMode; break;
       
   555         case CTelephony::ENetworkModeWcdma: mode = QSystemNetworkInfo::WcdmaMode; break;
       
   556         default:
       
   557             break;
       
   558     }
       
   559     emit networkSignalStrengthChanged(mode,
       
   560         DeviceInfo::instance()->cellSignalStrenghtInfo()->cellNetworkSignalStrength());
       
   561 }
       
   562 
       
   563 void QSystemNetworkInfoPrivate::cellNetworkStatusChanged()
       
   564 {
       
   565     QSystemNetworkInfo::NetworkMode mode = QSystemNetworkInfo::UnknownMode;
       
   566     CTelephony::TNetworkMode networkMode = DeviceInfo::instance()->cellNetworkInfo()->networkMode();
       
   567     switch (networkMode) {
       
   568         case CTelephony::ENetworkModeGsm: mode = QSystemNetworkInfo::GsmMode; break;
       
   569         case CTelephony::ENetworkModeCdma95:
       
   570         case CTelephony::ENetworkModeCdma2000: mode = QSystemNetworkInfo::CdmaMode; break;
       
   571         case CTelephony::ENetworkModeWcdma: mode = QSystemNetworkInfo::WcdmaMode; break;
       
   572         default:
       
   573             break;
       
   574     }
       
   575 
       
   576     emit networkStatusChanged(mode, networkStatus(mode));
       
   577 }
       
   578 
       
   579 //////// QSystemDisplayInfo
       
   580 QSystemDisplayInfoPrivate::QSystemDisplayInfoPrivate(QObject *parent)
   552 QSystemDisplayInfoPrivate::QSystemDisplayInfoPrivate(QObject *parent)
   581     : QObject(parent)
   553     : QObject(parent)
   582 {
   554 {
   583 }
   555 }
   584 
   556 
   631             default: depth = 0;
   603             default: depth = 0;
   632                 break;
   604                 break;
   633         }
   605         }
   634         CleanupStack::PopAndDestroy(2, &ws);
   606         CleanupStack::PopAndDestroy(2, &ws);
   635     )
   607     )
   636     
   608 
   637     return depth;
   609     return depth;
   638 }
   610 }
   639 
   611 
   640 //////// QSystemStorageInfo
       
   641 QSystemStorageInfoPrivate::QSystemStorageInfoPrivate(QObject *parent)
   612 QSystemStorageInfoPrivate::QSystemStorageInfoPrivate(QObject *parent)
   642     : QObject(parent)
   613     : QObject(parent)
   643 {
   614 {
   644     iFs.Connect();
   615     iFs.Connect();
   645 }
   616 }
   730     if (driveInfo.iType == EMediaRemote) {
   701     if (driveInfo.iType == EMediaRemote) {
   731         return QSystemStorageInfo::RemoteDrive;
   702         return QSystemStorageInfo::RemoteDrive;
   732     } else if (driveInfo.iType == EMediaCdRom) {
   703     } else if (driveInfo.iType == EMediaCdRom) {
   733         return QSystemStorageInfo::CdromDrive;
   704         return QSystemStorageInfo::CdromDrive;
   734     }
   705     }
   735     
   706 
   736     if (driveInfo.iDriveAtt & KDriveAttInternal) {
   707     if (driveInfo.iDriveAtt & KDriveAttInternal) {
   737         return QSystemStorageInfo::InternalDrive;
   708         return QSystemStorageInfo::InternalDrive;
   738     } else if (driveInfo.iDriveAtt & KDriveAttRemovable) {
   709     } else if (driveInfo.iDriveAtt & KDriveAttRemovable) {
   739         return QSystemStorageInfo::RemovableDrive;
   710         return QSystemStorageInfo::RemovableDrive;
   740     }
   711     }
   741 
   712 
   742     return QSystemStorageInfo::NoDrive;
   713     return QSystemStorageInfo::NoDrive;
   743 };
   714 };
   744 
   715 
   745 
       
   746 //////// QSystemDeviceInfo
       
   747 QSystemDeviceInfoPrivate::QSystemDeviceInfoPrivate(QObject *parent)
   716 QSystemDeviceInfoPrivate::QSystemDeviceInfoPrivate(QObject *parent)
   748     : QObject(parent), m_profileEngine(NULL), m_proEngNotifyHandler(NULL),
   717     : QObject(parent), m_profileEngine(NULL), m_proEngNotifyHandler(NULL),
   749     m_bluetoothRepository(NULL), m_bluetoothNotifyHandler(NULL)
   718     m_bluetoothRepository(NULL), m_bluetoothNotifyHandler(NULL)
   750 {
   719 {
   751     DeviceInfo::instance()->batteryInfo()->addObserver(this);
   720     DeviceInfo::instance()->batteryInfo()->addObserver(this);
   977 }
   946 }
   978 
   947 
   979 void QSystemDeviceInfoPrivate::batteryLevelChanged()
   948 void QSystemDeviceInfoPrivate::batteryLevelChanged()
   980 {
   949 {
   981     emit batteryLevelChanged(batteryLevel());
   950     emit batteryLevelChanged(batteryLevel());
   982     
   951 
   983     int batteryLevel = DeviceInfo::instance()->batteryInfo()->batteryLevel();
   952     int batteryLevel = DeviceInfo::instance()->batteryInfo()->batteryLevel();
   984     QSystemDeviceInfo::BatteryStatus status(batteryStatus());
   953     QSystemDeviceInfo::BatteryStatus status(batteryStatus());
   985     
   954 
   986     if(batteryLevel < 4 && status != QSystemDeviceInfo::BatteryCritical) {
   955     if(batteryLevel < 4 && status != QSystemDeviceInfo::BatteryCritical) {
   987         emit batteryStatusChanged(QSystemDeviceInfo::BatteryCritical);
   956         emit batteryStatusChanged(QSystemDeviceInfo::BatteryCritical);
   988     } else if (batteryLevel < 11 && status != QSystemDeviceInfo::BatteryVeryLow) {
   957     } else if (batteryLevel < 11 && status != QSystemDeviceInfo::BatteryVeryLow) {
   989         emit batteryStatusChanged(QSystemDeviceInfo::BatteryVeryLow);
   958         emit batteryStatusChanged(QSystemDeviceInfo::BatteryVeryLow);
   990     } else if (batteryLevel < 41 && status != QSystemDeviceInfo::BatteryLow) {
   959     } else if (batteryLevel < 41 && status != QSystemDeviceInfo::BatteryLow) {
  1001     emit powerStateChanged(currentPowerState());
   970     emit powerStateChanged(currentPowerState());
  1002 }
   971 }
  1003 
   972 
  1004 DeviceInfo *DeviceInfo::m_instance = NULL;
   973 DeviceInfo *DeviceInfo::m_instance = NULL;
  1005 
   974 
  1006 //////// QSystemScreenSaver
       
  1007 QSystemScreenSaverPrivate::QSystemScreenSaverPrivate(QObject *parent)
   975 QSystemScreenSaverPrivate::QSystemScreenSaverPrivate(QObject *parent)
  1008     : QObject(parent), m_screenSaverInhibited(false)
   976     : QObject(parent), m_screenSaverInhibited(false)
  1009 {
   977 {
  1010 }
   978 }
  1011 
   979