phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 19 7d48bed6ce0c
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:
 *
 */

#ifndef PSETCALLWAITINGWRAPPER_H_
#define PSETCALLWAITINGWRAPPER_H_

#include <QObject>
#include <psetwrappertypes.h>

// Forward declarations 
class CPsetContainer;
class CPsetCallWaiting;
class PSetCallWaitingWrapperPrivate;

#ifdef BUILD_PSETWRAPPER
#define PSETWRAPPER_EXPORT Q_DECL_EXPORT
#else
#define PSETWRAPPER_EXPORT Q_DECL_IMPORT
#endif

class PSETWRAPPER_EXPORT PSetCallWaitingWrapper: 
    public QObject
{
    Q_OBJECT

public:
    
    explicit PSetCallWaitingWrapper( CPsetContainer &psetContainer, 
            QObject *parent = NULL);
    
    ~PSetCallWaitingWrapper();


    // Call waiting status
    enum PsCallWaitingStatus
    {
        StatusActive,
        StatusDisabled,
        StatusNotAvailable,
        StatusNotProvisioned,
        StatusUnknown
    };

    // Call waiting action
    enum PsCallWaitingCommand
    {
        ActivateCallWaiting,
        DeactivateCallWaiting,
        CheckCallWaitingStatus
    };
    
public: // Functions (adaptees):  

    /**
    * Sets call waiting to the network.
    *
    * @param aSetting New settings for the Call Waiting.
    * @param aBsc Basic service group concerned.
    */
    void setCallWaiting( PsCallWaitingCommand aSetting,
            int aBasicServiceGroup );

    /**
    * Checks the call waiting status from network.
    */
    void getCallWaitingStatus();

    /**
    * Cancels the call waiting-request process.
    */
    void cancelProcess();
    
    /**
    * Get CPsetCallwaiting reference.
    */
    CPsetCallWaiting &  getCPsetCallWaiting() const;

signals: // Notify via signals     

    void handleCallWaitingGetStatus( 
        PSetCallWaitingWrapper::PsCallWaitingStatus aStatus,
        const QList<unsigned char> &basicServiceGroupIds);
    
    void handleCallWaitingChanged( 
        PSetCallWaitingWrapper::PsCallWaitingCommand aSetting,
        int aResult );
    
    void handleCallWaitingRequesting( bool ongoing, bool interrupted ); 

    void handleCallWaitingError( int aError );

private: // Data: 
    
    // Phone setting handlers, own
    CPsetCallWaiting *m_psetCallWaiting;
    
    // Own
    QScopedPointer<PSetCallWaitingWrapperPrivate> m_privateImpl;
    friend class PSetCallWaitingWrapperPrivate;
};


#endif /* PSETCALLWAITINGWRAPPER_H_ */