satengine/SatServer/Engine/inc/TUSatAPI.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 43 7d48bed6ce0c
parent 0 ff3b6d0fd310
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002-2008 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:  Wrapper for USAT api.
*
*/



#ifndef TUSATAPI_H
#define TUSATAPI_H

//  INCLUDES
#include <etelsat.h>
#include "MSatApi.h"

// FORWARD DECLARATION
class MSatMultiModeApi;
class CSatSActiveWrapper;

// CLASS DECLARATION

/**
*  Wrapper for USAT API.
*
*  @lib SatEngine.lib
*  @since Series 60 3.0
*/
class TUSatAPI : public MSatApi
    {
    public:  // Constructors and destructor

        /**
        * C++ default constructor.
        */
        TUSatAPI();

    public: // New functions

        /**
        * Connects to USat API.
        * @param aPhone Reference to MSatMultiModeApi
        * @return Error code indicating connection status
        */
        TInt Connect( MSatMultiModeApi& aPhone );

        /**
        * Closes the connection to USAT API.
        */
        void Close();

    public: // From base classes

        /**
        * From MSatApi Issues notification for SetUpMenu command from USAT api.
        * @param aStatus Request status
        * @param aPCmd Command identifier
        */
        void NotifySetUpMenu(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * From MSatApi Cancels SetUpMenu notification.
        */
        void NotifySetUpMenuCancel();

        /**
        * From MSatApi Issues notification for LanguageNotification command from USAT api.
        * @param aStatus Request status
        * @param aPCmd Command identifier
        */
        void NotifyLanguageNotification(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * From MSatApi Cancels LanguageNotification notification.
        */
        void NotifyLanguageNotificationCancel();

        /**
        * From MSatApi Issues SetUpCall request
        * @param aStatus Request status
        * @param aPCmd Command identifier
        */
        void NotifySetUpCall(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * From MSatApi Cancels the SetUpCall request
        */
        void NotifySetUpCallCancel();

        /**
        * From MSatApi Issues the SelectItem request.
        * @param aStatus Request status
        * @param aPCmd Command identifier
        */
        void NotifySelectItem(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * From MSatApi Cancels the SelectItem request
        */
        void NotifySelectItemCancel();

        /**
        * From MSatApi.
        * @param aStatus Request status
        * @param aPCmd Command identifier
        */
        void NotifySendSm(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * From MSatApi.
        */
        void NotifySendSmCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Data to be sent
        * @param aMsgReference Reference to message
        */
        void SendMessageNoLogging(
            TRequestStatus& aStatus,
            TDes8& aData,
            TUint16& aMsgReference ) ;

        /**
        * From MSatApi
        */
        void SendMessageNoLoggingCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyLaunchBrowser(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyLaunchBrowserCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyDisplayText(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyDisplayTextCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyGetInput(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyGetInputCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyGetInkey(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyGetInkeyCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyCallControl(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyCallControlCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyMoSmControl(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyMoSmControlCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifySetUpEventList(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifySetUpEventListCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifySetUpIdleModeText(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifySetUpIdleModeTextCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifySendDtmf(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifySendDtmfCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifySendSs(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifySendSsCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifySendUssd(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifySendUssdCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyPlayTone(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyPlayToneCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyRefreshRequired(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyRefreshRequiredCancel();

        /**
        * From MSatApi
        * @param aPCkg Refresh required response package
        */
        void RefreshAllowed( const TDesC8& aPCkg );

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyRefresh(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyRefreshCancel();

        /**
        * From MSatApi Issues the SimSessionEnd request
        * @param aStatus Request status
        */
        void NotifySimSessionEnd( TRequestStatus& aStatus );

        /**
        * From MSatApi Cancels the SimSessionEnd request
        */
        void NotifySimSessionEndCancel();

        /**
        * From MSatApi
        * @param aStatus Request status
        * @param aData Command identifier
        */
        void NotifyLocalInfo(
            TRequestStatus& aStatus,
            TDes8& aData );

        /**
        * From MSatApi
        */
        void NotifyLocalInfoCancel();

        /**
        * Issues the request
        * @param aStatus Request status.
        * @param aPCmd Command identifier and other relevant information
        */
        void NotifyOpenChannel(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * Cancels the request
        */
        void NotifyOpenChannelCancel();

        /**
        * Issues the request
        * @param aStatus Request status.
        * @param aPCmd Command identifier and other relevant information
        */
        void NotifyCloseChannel(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * Cancels the request
        */
        void NotifyCloseChannelCancel();

        /**
        * Issues the request
        * @param aStatus Request status.
        * @param aPCmd Command identifier and other relevant information
        */
        void NotifyGetChannelStatus(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * Cancels the request
        */
        void NotifyGetChannelStatusCancel();

        /**
        * Issues the request
        * @param aStatus Request status.
        * @param aPCmd Command identifier and other relevant information
        */
        void NotifySendData(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * Cancels the request
        */
        void NotifySendDataCancel();

        /**
        * Issues the request
        * @param aStatus Request status.
        * @param aPCmd Command identifier and other relevant information
        */
        void NotifyReceiveData(
            TRequestStatus& aStatus,
            TDes8& aPCmd );

        /**
        * Cancels the request
        */
        void NotifyReceiveDataCancel();

        /**
        * From MSatApi Sends menu selection to SIM.
        * @param aMenuSelection Selected menu item
        */
        void SendMenuSelection( const TDes8& aMenuSelection );

        /**
        * From MSatApi Sends terminal rsp to SIM.
        * @param aPCmd Command identifier
        * @param aPCkg Terminal response package
        */
        void TerminalRsp(
            RSat::TPCmd aPCmd,
            const TDesC8& aPCkg );

        /**
        * From MSatApi. Gets the icon info from SIM.
        * @param aReqStatus Request status.
        * @param aRecordNumber Specifies the EF_IMG in SIM.
        * @param aIconEf Contains the icon informations from SIM in returning
        * of the method.
        */
        void GetIcon(
            TRequestStatus& aReqStatus,
            TUint8 aRecordNumber,
            RSat::TIcon& aIconEf );

        /**
        * From MSatApi. Gets the icon image.
        * @param aReqStatus Request status.
        * @param aInstanceInfo Informatio of the icon, which data is
        * fetched from SIM.
        * @param aInstance Contains the icon data from SIM in returning of the
        * method.
        */
        void GetImageInstance(
            TRequestStatus& aReqStatus,
            const TDesC8& aInstanceInfo,
            TDes8& aInstance );

        /**
        * From MSatApi. Gets color lookup table of the icon.
        * @param aReqStatus Request status.
        * @param aInstanceNumber Image instance number.
        * @param aOffset Offset of the clut.
        * @param aClut Contains the Clut of the icon in returning of the
        * method.
        */
        void GetClut(
            TRequestStatus& aReqStatus,
            TUint aInstanceNumber,
            TUint aOffset,
            TDes8& aClut );

        /**
        * From MSatApi Sends notify to SIM about some event using EventDownload.
        * @param aReqStatus Request status.
        * @param aSingleEvent Single event reported to SIM.
        * @param aEventInfo Contains information of an event.
        */
        void EventDownload(
            TRequestStatus& aReqStatus,
            RSat::TEventList aSingleEvent,
            const TDesC8& aEventInfo );

        /**
        * From MSatApi Indicates is RSat connected
        * @return ETrue if RSat is connected
        */
        TBool IsRSatConnected() const;
        
        /**
        * From MSatApi Called when all supported notifies are sent
        * @return error code from RSat::UsatClientReadyIndication()
        */
        TInt UsatClientReadyIndication();
        
        /**
        * From CActive
        */
        void RunL();
        
        /**
        * From CActive
        */
        void DoCancel();
        
    private:

        // Prohibit copy constructor if not deriving from CBase.
        TUSatAPI( const TUSatAPI& );

        // Prohibit assigment operator if not deriving from CBase.
        TUSatAPI& operator=( const TUSatAPI& );

    private:    // Data

        // (U)SAT interface handler
        RSat iSat;
        // Indicates is RSat connected or not
        TBool iRSatConnected;
        // Active object wrapper for wait loops and asynhcronous function calls
        CSatSActiveWrapper* iWrapper;

    };

#endif      // TUSATAPI_H

// End of File