mmserv/radioutility/radioserver/Session/stub/src/RadioStubManager.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:58:01 +0300
changeset 47 c2e43643db4c
parent 42 1fa3fb47b1e3
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002-2004 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 RADIOSTUBMANAGER_H_
#define RADIOSTUBMANAGER_H_
#include <e32std.h>
#include <e32base.h>

#include <RadioFmTunerUtility.h>
#include <RadioPlayerUtility.h>
#include <RadioRdsUtility.h>
#include <remconcallhandlingtargetobserver.h>
#include <remconcoreapitargetobserver.h>

#include "RadioServerData.h"
#include "mradioheadseteventobserver.h"

_LIT(KRadioStubManagerLocalChunkName, "RadioStubManagerLocalChunkName");

struct TStubError
    {

    void SetStubError( TFmRadioTunerError aError, TUint aFailCounter = 1, TBool aFailForEver = EFalse ) 
        {
        iError = aError;
        iFailCounter = aFailCounter;
        iFailForEver = aFailForEver; };
    TInt Error() 
        {
        TInt aError (iError);
        if (iFailCounter)
            {
            --iFailCounter;
            }
        else if (iFailForEver)
            {
            }
        else
            {
            aError = KErrNone;
            }            
        return aError;
        }
    TFmRadioTunerError iError;
    TUint iFailCounter;
    TBool iFailForEver;
    };

struct TLeaveError
    {
    void Set( TInt aError = KErrGeneral );
    TInt iError;
    };

struct SRadioStubManager
    {
public:
    void  FillZ() 
        { 
        Mem::FillZ( this, sizeof( SRadioStubManager ) ); 
        }
public:
    enum TCenRepDbs
        {
        // Redefine CenRep databases for test purposes.
        // Original constant names are got by eliminating leading "ESub_"-prefix.
        EStub_KPSUidCtsyCallInformation = 0x01001001,
        EStub_KUidSystemCategory = 0x01001002,
        EStub_KPSUidVoiceUiAccMonitor = 0x01001003,
        EStub_KPSUidMMFAudioServer = 0x01001004,    
        EStub_KRadioPSUid = 0x01001005,
        EStub_KRadioServerPropertyCategory = 0x01001006
        };
    
    struct TRemConTargetData
    {
    TLeaveError iLeaveNewL;
    TLeaveError iLeaveConstructL;
    
    
    MRemConCoreApiTargetObserver*   iRemConCoreApiTargetObserver;
    MRemConCallHandlingTargetObserver*  iRemConCallHandlingTargetObserver;
    } mutable iRemConTarget;
    
    struct TAccessoryObserverData
    {
    TLeaveError iLeaveNewL;
    TLeaveError iLeaveIsHeadsetConnectedL;
    TLeaveError iLeaveConstructL;
    
    TBool iHeadsetConnected;
    MRadioHeadsetEventObserver* iObserver;
    
    
    } mutable iAccessoryObserver;
    
    struct TFmTunerStubData
        {
        TRsTunerCapabilities iCaps;
        TStubError iGetCapabilitiesError;
        
        
        TBool iTunerInOfflineMode;
        TStubError iEnableTunerInOfflineModeError;
        
        
        TRsFrequencyRange iRange;
        TRsFrequencyRange iPreviousRange;
        TInt iMinFreq;
        TInt iMaxFreq;
        TStubError iGetFrequencyRangeError;
        TStubError iSetFrequencyRangeError;
        
        TInt iFrequency;
        TInt iPreviousFrequency;
        TStubError iGetFrequencyError;
        TStubError iSetFrequencyError;

        struct TScanStations
        {
        TInt iCount;
        TInt iMinFreq;
        TInt iFrequencyStepSize;        
        } mutable iScanStations;
        
        TBool iStationSeekUpwards;

        TInt iSignalStrength;
        TStubError iGetSignalStrengthError;
        
        TInt iMaxSignalStrength;
        TStubError iGetMaxSignalStrengthError;
        
        TBool iStereoMode;
        TStubError iGetStereoModeError;
        
        TBool iForcedMono;
        TStubError iGetForcedMonoReceptionError;
        TStubError iForcedMonoReceptionError;
        
        TBool iSquelch;
        TStubError iSetSquelchError;
        TStubError iGetSquelchError;
        } mutable iTuner;

    struct TPlayerStubData
        {
        TLeaveError iLeaveNewL;
        TLeaveError iLeaveErrorForConstructL;
        MRadioPlayerObserver* iRadioPlayerUtilityClient;

        TRsPlayerState iPlayerState;
        
        TBool iMuteStatus;
        TStubError iMuteError;
        
        TInt iVolume;
        TStubError iSetVolumeError;
        TStubError iGetVolumeError;
        
        TTimeIntervalMicroSeconds iRampInterval;
        TStubError iSetVolumeRampError;
        
        TInt iMaxVolume;
        TStubError iGetMaxVolumeError;
        
        TInt iLeftPercentage;
        TInt iRightPercentage;
        TStubError iSetBalanceError;
        TStubError iGetBalanceError;
        } mutable iPlayer;
        
    struct TRdsStubData
        {
        TLeaveError iLeaveNewL;
        TLeaveError iLeaveErrorForConstructL;
        MRadioRdsObserver* iRadioRdsUtilityClient;
        TRsRdsCapabilities iCaps;
        TStubError iGetCapabilitiesError;
        
        TBool iRdsSignal;
        TStubError iGetRdsSignalStatusError;
        
        TStubError iNotifyRdsDataChangeError;    
        
        TBool iAutomaticSwitching;
        TStubError iSetAutomaticSwitchingError;
        TStubError iGetAutomaticSwitchingError;
        
        TStubError iStationSeekByPTYError;
        TStubError iStationSeekByTAError;
        TStubError iStationSeekByTPError;
        TInt iFrequency;
        TStubError iGetFreqByPTYError;
        TStubError iGetFreqByTAError;
        TStubError iGetPSByPTYError;
        TStubError iGetPSByTAError;
            
        RArray<TRdsPSName> iPsList;
        RArray<TInt> iFreqList;
        
        TInt iPi;
        TStubError iGetProgrammeIdentificationError;
        
        TRdsProgrammeType iPty;
        TStubError iGetProgrammeTypeError;
        
        TRdsPSName iPs;
        TStubError iGetProgrammeServiceError;
        
        // Radio Text
        TRdsRTplusClass iRtPlusClass;
        TRdsRadioText iRtPlusData;
        TStubError iGetRadioTextPlusError;
        TRsRdsRadioText iRt;
        TStubError iGetRadioTextError;
        
        // Automatic traffic announcement
        TBool iAuto;
        TStubError iGetTrafficAnnouncementStatusError;
        TStubError iSetTrafficAnnouncementStatusError;
    
        TBool iTaStatus;
        TStubError iGetAutomaticTrafficAnnouncementError;
        TStubError iSetAutomaticTrafficAnnouncementError;
        
        TDateTime iCt;
        TStubError iGetClockTimeError;
        
        TBool iTpStatus;
        TStubError iGetTrafficProgrammeStatusError;
        } mutable iRds;
        
    struct TMonitorStubData
        {
        TInt    iNone;
        } mutable iMonitor;
    };

const TUid KStub_KRadioServerPropertyCategory = {SRadioStubManager::EStub_KRadioServerPropertyCategory};
const TUid KStub_KUidSystemCategory = {SRadioStubManager::EStub_KUidSystemCategory};
const TUid KStub_KPSUidCtsyCallInformation = {SRadioStubManager::EStub_KPSUidCtsyCallInformation};
const TUid KStub_KPSUidVoiceUiAccMonitor = {SRadioStubManager::EStub_KPSUidVoiceUiAccMonitor};
const TUid KStub_KPSUidMMFAudioServer = {SRadioStubManager::EStub_KPSUidMMFAudioServer};
const TUid KStub_KRadioPSUid = {SRadioStubManager::EStub_KRadioPSUid};
const TUid KStub_KRadioCRUid = {0x2002FF52};

#endif /* RADIOSTUBMANAGER_H_ */