qtmobileextensions/src/sysinfo/xqsysinfo.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 15:51:22 +0300
changeset 1 2b40d63a9c3d
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 2.1 of the License.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, 
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
*
* Description:
*
*/

#ifndef XQSYSINFO_H
#define XQSYSINFO_H

// INCLUDES
#include <QObject>
#include "sysinfo_global.h"

// FORWARD DECLARATIONS
class XQSysInfoPrivate;

// CLASS DECLARATION
class XQSYSINFO_EXPORT XQSysInfo : public QObject
{
    Q_OBJECT
    
public:

    enum Error {
        NoError = 0,
        OutOfMemoryError,
        IncorrectDriveError,
        DriveNotFoundError,
        UnknownError = -1
    };
    
    enum Drive {
        DriveA,   DriveB,   DriveC,   DriveD,   DriveE,
        DriveF,   DriveG,   DriveH,   DriveI,   DriveJ,
        DriveK,   DriveL,   DriveM,   DriveN,   DriveO, 
        DriveP,   DriveQ,   DriveR,   DriveS,   DriveT,
        DriveU,   DriveV,   DriveW,   DriveX,   DriveY,
        DriveZ
    };
    
    enum Language {
        LangEnglish = 1,
        LangFrench = 2,
        LangGerman = 3,
        LangSpanish = 4,
        LangItalian = 5,
        LangSwedish = 6,
        LangDanish = 7,
        LangNorwegian = 8,
        LangFinnish = 9,
        LangAmerican = 10,
        LangSwissFrench = 11,
        LangSwissGerman = 12,
        LangPortuguese = 13,
        LangTurkish = 14,
        LangIcelandic = 15,
        LangRussian = 16,
        LangHungarian = 17,
        LangDutch = 18,
        LangBelgianFlemish = 19,
        LangAustralian = 20,
        LangBelgianFrench = 21,
        LangAustrian = 22,
        LangNewZealand = 23,
        LangInternationalFrench = 24,
        LangCzech = 25,
        LangSlovak = 26,
        LangPolish = 27,
        LangSlovenian = 28,
        LangTaiwanChinese = 29,
        LangHongKongChinese = 30,
        LangPrcChinese = 31,
        LangJapanese = 32,
        LangThai = 33,
        LangAfrikaans = 34,
        LangAlbanian = 35,
        LangAmharic = 36,
        LangArabic = 37,
        LangArmenian = 38,
        LangTagalog = 39,
        LangBelarussian = 40,
        LangBengali = 41,
        LangBulgarian = 42,
        LangBurmese = 43,
        LangCatalan = 44,
        LangCroatian = 45,
        LangCanadianEnglish = 46,
        LangInternationalEnglish = 47,
        LangSouthAfricanEnglish = 48,
        LangEstonian = 49,
        LangFarsi = 50,
        LangCanadianFrench = 51,
        LangScotsGaelic = 52,
        LangGeorgian = 53,
        LangGreek = 54,
        LangCyprusGreek = 55,
        LangGujarati = 56,
        LangHebrew = 57,
        LangHindi = 58,
        LangIndonesian = 59,
        LangIrish = 60,
        LangSwissItalian = 61,
        LangKannada = 62,
        LangKazakh = 63,
        LangKhmer = 64,
        LangKorean = 65,
        LangLao = 66,
        LangLatvian = 67,
        LangLithuanian = 68,
        LangMacedonian = 69,
        LangMalay = 70,
        LangMalayalam = 71,
        LangMarathi = 72,
        LangMoldavian = 73,
        LangMongolian = 74,
        LangNorwegianNynorsk = 75,
        LangBrazilianPortuguese = 76,
        LangPunjabi = 77,
        LangRomanian = 78,
        LangSerbian = 79,
        LangSinhalese = 80,
        LangSomali = 81,
        LangInternationalSpanish = 82,
        LangLatinAmericanSpanish = 83,
        LangSwahili = 84,
        LangFinlandSwedish = 85,
        LangReserved1 = 86,
        LangTamil = 87,
        LangTelugu = 88,
        LangTibetan = 89,
        LangTigrinya = 90,
        LangCyprusTurkish = 91,
        LangTurkmen = 92,
        LangUkrainian = 93,
        LangUrdu = 94,
        LangReserved2 = 95,
        LangVietnamese = 96,
        LangWelsh = 97,
        LangZulu = 98,
        LangOther = 99,
        LangManufacturerEnglish = 100,
        LangSouthSotho = 101,
        LangBasque = 102,
        LangGalician = 103,
        LangJavanese = 104,
        LangMaithili = 105,
        LangAzerbaijani_Latin = 106,
        LangAzerbaijani_Cyrillic = 107,
        LangOriya = 108,
        LangBhojpuri = 109,
        LangSundanese = 110,
        LangKurdish_Latin = 111,
        LangKurdish_Arabic = 112,
        LangPashto = 113,
        LangHausa = 114,
        LangOromo = 115,
        LangUzbek_Latin = 116,
        LangUzbek_Cyrillic = 117,
        LangSindhi_Arabic = 118,
        LangSindhi_Devanagari = 119,
        LangYoruba = 120,
        LangCebuano = 121,
        LangIgbo = 122,
        LangMalagasy = 123,
        LangNepali = 124,
        LangAssamese = 125,
        LangShona = 126,
        LangZhuang = 127,
        LangMadurese = 128,
        LangEnglish_Apac=129,
        LangEnglish_Taiwan=157,
        LangEnglish_HongKong=158,
        LangEnglish_Prc=159,
        LangEnglish_Japan=160,
        LangEnglish_Thailand=161,
        LangFulfulde = 162,
        LangTamazight = 163,
        LangBolivianQuechua = 164,
        LangPeruQuechua = 165,
        LangEcuadorQuechua = 166,
        LangTajik_Cyrillic = 167,
        LangTajik_PersoArabic = 168,
        LangNyanja = 169,
        LangHaitianCreole = 170,
        LangLombard = 171,
        LangKoongo = 172,
        LangAkan = 173,
        LangHmong = 174,
        LangYi = 175,
        LangTshiluba = 176,
        LangIlocano = 177,
        LangUyghur = 178,
        LangNeapolitan = 179,
        LangRwanda = 180,
        LangXhosa = 181,
        LangBalochi = 182,
        LangMinangkabau = 184,
        LangMakhuwa = 185,
        LangSantali = 186,
        LangGikuyu = 187,
        LangMoore = 188,
        LangGuarani = 189,
        LangRundi = 190,
        LangRomani_Latin = 191,
        LangRomani_Cyrillic = 192,
        LangTswana = 193,
        LangKanuri = 194,
        LangKashmiri_Devanagari = 195,
        LangKashmiri_PersoArabic = 196,
        LangUmbundu = 197,
        LangKonkani = 198,
        LangBalinese = 199,
        LangNorthernSotho = 200,
        LangWolof = 201,
        LangBemba = 202,
        LangTsonga = 203,
        LangYiddish = 204,
        LangKirghiz = 205,
        LangGanda = 206,
        LangSoga = 207,
        LangMbundu = 208,
        LangBambara = 209,
        LangCentralAymara = 210,
        LangZarma = 211,
        LangLingala = 212,
        LangBashkir = 213,
        LangChuvash = 214,
        LangSwati = 215,
        LangTatar = 216,
        LangSouthernNdebele = 217,
        LangSardinian = 218,
        LangScots = 219,
        LangMeitei = 220,
        LangWalloon = 221,
        LangKabardian = 222,
        LangMazanderani = 223,
        LangGilaki = 224,
        LangShan = 225,
        LangLuyia = 226,
        LanguageLuo = 227,
        LangSukuma = 228,
        LangAceh = 229,
        LangMalay_Apac=326,        
    };
    
    XQSysInfo(QObject* parent = 0);
    ~XQSysInfo();
    
    XQSysInfo::Language currentLanguage() const;
    QString imei() const;
    QString model() const;
    QString manufacturer() const;
    QString softwareVersion() const;

    uint batteryLevel() const;
    QString imsi() const;
    int signalStrength() const;
    qlonglong diskSpace(XQSysInfo::Drive drive) const;
    bool isDiskSpaceCritical(XQSysInfo::Drive drive) const;
    bool isNetwork() const;
    int memory() const;
    QString browserVersion() const;
    
    static bool isSupported(int featureId);

    XQSysInfo::Error error() const;

Q_SIGNALS:
    void networkSignalChanged(ulong signalStrength);
    void batteryLevelChanged(uint batteryLevel);
    
private:
    friend class XQSysInfoPrivate;
    XQSysInfoPrivate* d;
};

#endif /*XQSYSINFO_H*/

// End of file