qtmobileextensions/src/sysinfo/xqsysinfo.cpp
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:
*
*/

#include "xqsysinfo.h"
#include "xqsysinfo_p.h"

/*!
    \class XQSysInfo

    \brief The XQSysInfo class is used to retrieve information about the phone (e.g. software version, free memory, IMEI, etc.)
*/

/*!
    Constructs a XQSysInfo object with the given parent.
*/
XQSysInfo::XQSysInfo(QObject* parent):
    QObject(parent), d(new XQSysInfoPrivate(this))
{
}

/*!
    Destroys the XQSysInfo object.
*/
XQSysInfo::~XQSysInfo()
{
    delete d;
}

/*!
    \enum XQSysInfo::Error
    This enum defines the possible errors for a XQSysInfo object.
*/
/*! \var XQSysInfo::Error XQSysInfo::NoError
    No error occured.
*/
/*! \var XQSysInfo::Error XQSysInfo::OutOfMemoryError
    Not enough memory.
*/
/*! \var XQSysInfo::Error XQSysInfo::IncorrectDriveError
    Wrong drive letter.
*/
/*! \var XQSysInfo::Error XQSysInfo::DriveNotFoundError
    Drive cannot be found.
*/
/*! \var XQSysInfo::Error XQSysInfo::UnknownError
    Unknown error.
*/

/*!
    \enum XQSysInfo::Drive

    This enum defines the possible drive letters to be used.
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveA 
    Drive A
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveB
    Drive B
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveC
    Drive C
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveD
    Drive D
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveE
    Drive E
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveF
    Drive F
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveG
    Drive G
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveH
    Drive H
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveI
    Drive I
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveJ
    Drive J
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveK
    Drive K
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveL
    Drive L
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveM
    Drive M
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveN 
    Drive N
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveO
    Drive O
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveP
    Drive P
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveQ
    Drive Q
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveR
    Drive R
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveS
    Drive S
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveT
    Drive T
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveU
    Drive U
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveV
    Drive V
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveW    
    Drive W
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveX
    Drive X
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveY
    Drive Y
*/
/*! \var XQSysInfo::Drive XQSysInfo::DriveZ
    Drive Z
*/

/*! 
    \enum XQSysInfo:Language
    This enum defines the languages that are available
    
*/        

/*!

    \return Current language of the phone UI
*/
XQSysInfo::Language XQSysInfo::currentLanguage() const
{
    return d->currentLanguage();
}

/*!

    \return International Mobile Equipment Identity (IMEI) unique identifier for the device. 
*/
QString XQSysInfo::imei() const
{
    return d->imei();
}

/*!

    \return International Mobile Subscriber Identity (IMSI) from the device's SIM card, 
*/
QString XQSysInfo::imsi() const
{
    return d->imsi();
}

/*!

    \return Firmware version of the device
*/
QString XQSysInfo::softwareVersion() const
{
    return d->softwareVersion();
}

/*!

    \return Phone model
*/
QString XQSysInfo::model() const
{
    return d->model();
}

/*!
    \return Manufacturer of the phone
*/
QString XQSysInfo::manufacturer() const
{
    return d->manufacturer();
}

/*!
    \return Current battery level as a percentage, i.e. 0 to 100%
*/
uint XQSysInfo::batteryLevel() const
{
    return d->batteryLevel();
}

/*!
    \return Network signal strength as a percentage, i.e. 0 to 100%
*/
int XQSysInfo::signalStrength() const
{
    return d->signalStrength();
}

/*!
    NOTE: No implementation in the alpha release

    \return Version string for the device's browser
*/
QString XQSysInfo::browserVersion() const
{
    return d->browserVersion();
}

/*!

    \param drive Drive letter as enumeration
    \return Available disk space in bytes on the given drive
*/
qlonglong XQSysInfo::diskSpace(XQSysInfo::Drive drive) const
{
    return d->diskSpace(drive);
}

/*!
    Helper function to check if the disk space on the given drive is in critical condition, i.e. very low

    \param drive Drive letter as enumeration
    \return True, if memory is low on the given device, otherwise false
*/
bool XQSysInfo::isDiskSpaceCritical(XQSysInfo::Drive drive) const
{
    return d->isDiskSpaceCritical(drive);
}

/*!
    Free RAM memory in bytes

    \return Free RAM memory in bytes
*/
int XQSysInfo::memory() const
{
    return d->memory();
}

/*!
    Checks if the specific feature is supported in the environment. See
    <a href="http://library.forum.nokia.com/topic/S60_5th_Edition_Cpp_Developers_Library/GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6/html/featureinfo_8h.html">
    featureinfo.h File Reference</a>
    in the Symbian S60 SDK for a list of the feature ids. //insp: major, description of the error checking missing
    
    \param featureId Feature id
     \return True, if the feature is supported, otherwise false
*/
bool XQSysInfo::isSupported(int featureId)
{
    return XQSysInfoPrivate::isSupported(featureId);
}
/*!
    \return Error code indicating the current error level
*/
XQSysInfo::Error XQSysInfo::error() const
{
    return d->error();
}

/*!
    Checks if the network is available

    \return True, if the network is available, otherwise false
*/
bool XQSysInfo::isNetwork() const
{
    return d->isNetwork();
}

/*!
    \fn void XQSysInfo::networkSignalChanged(ulong signalStrength)
    
    This signal is emitted when the signal strength changes.

    \param signalStrength New signal strength value
    \sa signalStrength()
*/

/*!
    \fn void XQSysInfo::batteryLevelChanged(uint batteryLevel)

    This signal is emitted when the battery level changes.

    \param batteryLevel New battery level
    \sa batteryLevel()
*/