--- a/audiostubs/fmradiotunercontrolstub/Src/FMRadioTunerControlStub.cpp Tue Sep 07 08:19:48 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1400 +0,0 @@
-/*
-* 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:
-* Contains implementation of the CAdaptation class.
-* Which holds RadioServer Console Test.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include <e32svr.h>
-#include "FMRadioTunerControlStub.h"
-
-// CONSTANTS
-const TInt KReqTunerOn = 1;
-const TInt KReqTunerOff = 2;
-const TInt KReqSetFrequencyRange = 3;
-const TInt KReqSetFrequency = 4;
-const TInt KReqStationSeek = 5;
-const TInt KReqAudioMode = 6;
-const TInt KReqSetAudioMode = 7;
-const TInt KReqMaxSignalStrength = 8;
-const TInt KReqSignalStrength = 9;
-const TInt KReqSquelch = 10;
-const TInt KReqSetSquelch = 11;
-//---------------------------------------
-const TInt KReqStationSeekByPTY = 12;
-const TInt KReqStationSeekByTA = 13;
-const TInt KReqStationSeekByTP = 14;
-const TInt KReqGetFreqByPTY = 15;
-const TInt KReqGetFreqByTA = 16;
-const TInt KReqGetPSByPTY = 17;
-const TInt KReqGetPSByTA = 18;
-
-const TInt KEuroAmericaMin = 87500000;
-const TInt KEuroAmericaMax = 108000000;
-const TInt KJapanMin = 76000000;
-const TInt KJapanMax = 90000000;
-
-/*
-KCBI 90.9 PTY = KRdsPtyReligion
-KLTY 94.9 PTY = KRdsPtyReligion
-KVIL 103.7 PTY = KRdsPtyLightClassical
-KHKS 106.1 PTY = KRdsPtyRockMusic
-*/
-
-const TInt KFrequency1 = 90900000; // TA, TP
-const TInt KFrequency2 = 94900000; // Alternate Frequency of KFrequency1
-const TInt KFrequency3 = 103700000;
-const TInt KFrequency4 = 106100000; // TP
-
-// DATA TYPES
-struct TRadioMessageRequestData
- {
- TSglQueLink iLink;
- TInt iRequest;
- TInt iError;
- };
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-/**
-* Class CTuner
-* @lib FMRadioTunerControlStub.lib
-* @since Series 60 3.0
-*/
-class CTuner : public CTimer
- {
- public:
- static CTuner* NewL( MFMRadioTunerControlObserver& aObserver )
- {
- CTuner* self = new( ELeave ) CTuner(aObserver);
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- };
-
- virtual ~CTuner()
- {
- iFreqList.Close();
- iPsList.Close();
- iRTplusTags.Close();
- if ( IsActive() )
- {
- Cancel();
- }
- TRadioMessageRequestData* data;
- while ( !iRequestQue.IsEmpty() )
- {
- data = iRequestQue.First();
- iRequestQue.Remove(*data);
- delete data;
- }
- };
-
- void CompleteRequest( TInt aRequest, TInt aError )
- {
- TRadioMessageRequestData *data = new (ELeave) TRadioMessageRequestData;
- data->iRequest = aRequest;
- data->iError = aError;
- // Add it to the queue
- iRequestQue.AddLast(*data);
- if ( !IsActive() )
- {
- After(500000); // 0.5 sec by default
- }
- };
-
- void Reset()
- {
- iTunerOn = EFalse;
- iRange = EFMRadioFrequencyEuroAmerica;
- iFrequency = KEuroAmericaMin;
- iSigStrength = 0;
- iMode = EFMRadioAudioStereo;
- iSquelch = ETrue;
- ResetRds();
- };
-
- void ResetRds()
- {
- iNotifyOn = EFalse;
- iRdsSignal = EFalse;
- iRdsData = 0;
- iAutoSwitch = EFalse;
- iFreqList.Reset();
- iPsList.Reset();
- iPi = 0;
- iPty = KRdsPtyNone;
- iPs = _L8("");
- iRt = _L8("");
- iRTplusTags.Reset();
- // Hardcoded to 2007/11/10 7:35
- iCt.Set(2007,ENovember,10,7,35,0,0);
- };
-
- void SendRdsData()
- {
- // Make sure we are still in RDS channel
- if ( !iRdsSignal || !iNotifyOn )
- {
- return;
- }
-
- if( iRdsData & ERdsProgrammeIdentification )
- {
- iRdsObserver->RdsDataPI(iPi);
- }
- if( iRdsData & ERdsProgrammeType )
- {
- iRdsObserver->RdsDataPTY(iPty);
- }
- if( iRdsData & ERdsProgrammeService )
- {
- iRdsObserver->RdsDataPS(iPs);
- }
- if( iRdsData & ERdsRadioText )
- {
- iRdsObserver->RdsDataRT(iRt, iRTplusTags);
- }
- if( iRdsData & ERdsClockTime )
- {
- iRdsObserver->RdsDataCT(iCt);
- }
- };
-
- void SendRdsAf(TBool aBegin)
- {
- if (aBegin)
- {
- iRdsObserver->RdsSearchBeginAF();
- }
- else
- {
- iFrequency = KFrequency2;
- iSigStrength = 2;
- iPs = _L8("KLTY");
- iRdsObserver->RdsSearchEndAF(iError, iFrequency);
- }
- };
-
-
- private:
- void DoCancel()
- {};
-
- void RunL()
- {
- TRadioMessageRequestData* data;
- data = iRequestQue.First();
- iRequestQue.Remove(*data);
- iRequest = data->iRequest;
- iError = data->iError;
- delete data;
-
- switch (iRequest)
- {
- case KReqTunerOn:
- iObserver->TunerOnComplete(iError);
- break;
- case KReqTunerOff:
- iObserver->TunerOffComplete(iError);
- break;
- case KReqSetFrequencyRange:
- iObserver->SetFrequencyRangeComplete(iError);
- break;
- case KReqSetFrequency:
- iObserver->SetFrequencyComplete(iError);
- break;
- case KReqStationSeek:
- iObserver->StationSeekComplete(iError, iFrequency);
- break;
- case KReqAudioMode:
- iObserver->AudioModeComplete(iError, iMode);
- break;
- case KReqSetAudioMode:
- iObserver->SetAudioModeComplete(iError);
- break;
- case KReqMaxSignalStrength:
- iObserver->MaxSignalStrengthComplete(iError, 15);
- break;
- case KReqSignalStrength:
- iObserver->SignalStrengthComplete(iError, iSigStrength);
- break;
- case KReqSquelch:
- iObserver->SquelchComplete(iError, iSquelch);
- break;
- case KReqSetSquelch:
- iObserver->SetSquelchComplete(iError);
- break;
-// -----------------------------------------------------------------------------
-// RDS
- case KReqStationSeekByPTY:
- iRdsObserver->StationSeekByPTYComplete(iError, iFrequency);
- break;
- case KReqStationSeekByTA:
- iRdsObserver->StationSeekByTAComplete(iError, iFrequency);
- break;
- case KReqStationSeekByTP:
- iRdsObserver->StationSeekByTPComplete(iError, iFrequency);
- break;
- case KReqGetFreqByPTY:
- iRdsObserver->GetFreqByPTYComplete(iError, iFreqList);
- break;
- case KReqGetFreqByTA:
- iRdsObserver->GetFreqByTAComplete(iError, iFreqList);
- break;
- case KReqGetPSByPTY:
- iRdsObserver->GetPSByPTYComplete(iError, iPsList);
- break;
- case KReqGetPSByTA:
- iRdsObserver->GetPSByTAComplete(iError, iPsList);
- break;
-// RDS
-// -----------------------------------------------------------------------------
- default:
- break;
- }
-
- // Process the next item in the queue if any
- if ( !iRequestQue.IsEmpty() )
- {
- // there is at least one element in the linked list
- After(100000); // 0.1 sec by default
- }
- };
-
- private:
- CTuner( MFMRadioTunerControlObserver& aObserver )
- : CTimer(EPriorityStandard),
- iObserver(&aObserver),
- iRdsObserver(NULL),
- iRequestQue(_FOFF( TRadioMessageRequestData, iLink ))
- {};
-
- void ConstructL()
- {
- CTimer::ConstructL();
- CActiveScheduler::Add(this);
- Reset();
- };
-
- private: // Data
- // Tuner observer
- MFMRadioTunerControlObserver* iObserver;
- // Rds observer
- MRdsControlObserver* iRdsObserver;
- // Request queue
- TSglQue<TRadioMessageRequestData> iRequestQue;
- // Outstanding request
- TInt iRequest;
- TInt iError;
-
- // Tuner data
- TBool iTunerOn;
- TFMRadioFrequencyRange iRange;
- TInt iFrequency;
- TInt iSigStrength;
- TFMRadioAudioMode iMode;
- TBool iSquelch;
-
- // RDS data
- TBool iNotifyOn;
- TBool iRdsSignal;
- TUint32 iRdsData;
- TBool iAutoSwitch;
- RArray<TInt> iFreqList;
- RArray<TRdsPSName> iPsList;
- TInt iPi;
- TRdsProgrammeType iPty;
- TRdsPSName iPs;
- TRdsRadioText iRt;
- RArray<TRdsRTplusTag> iRTplusTags;
- TDateTime iCt;
-
- private: // Friend classes
- friend class CAdaptation;
- friend class CRdsGenerator;
- };
-
-/**
-* Class CRdsGenerator
-* @lib FMRadioTunerControlStub.lib
-* @since Series 60 3.2
-*/
-class CRdsGenerator : public CTimer
- {
- public:
- static CRdsGenerator* NewL(CTuner& aTuner)
- {
- CRdsGenerator* self = new( ELeave ) CRdsGenerator(aTuner);
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- };
-
- virtual ~CRdsGenerator()
- {
- if ( IsActive() )
- {
- Cancel();
- }
- };
-
- void Start()
- {
- if ( IsActive() )
- {
- Cancel();
- }
- After(1000000); // 1 sec
- };
-
- private:
- void DoCancel()
- {};
-
- void RunL()
- {
- iTuner->SendRdsData();
- };
-
- private:
- CRdsGenerator( CTuner& aTuner )
- : CTimer(EPriorityStandard),
- iTuner(&aTuner)
- {};
-
- void ConstructL()
- {
- CTimer::ConstructL();
- CActiveScheduler::Add(this);
- };
-
- private: // Data
- // Tuner
- CTuner* iTuner;
- };
-
-/**
-* Class CAfSwitcher
-* @lib FMRadioTunerControlStub.lib
-* @since Series 60 3.2
-*/
-class CAfSwitcher : public CTimer
- {
- public:
- static CAfSwitcher* NewL(CTuner& aTuner)
- {
- CAfSwitcher* self = new( ELeave ) CAfSwitcher(aTuner);
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- };
-
- virtual ~CAfSwitcher()
- {
- if ( IsActive() )
- {
- Cancel();
- }
- };
-
- void Start()
- {
- if ( IsActive() )
- {
- Cancel();
- }
- iBegin = ETrue;
- After(3000000); // 3 sec
- };
-
- private:
- void DoCancel()
- {};
-
- void RunL()
- {
- iTuner->SendRdsAf(iBegin);
- if (iBegin)
- {
- iBegin = EFalse;
- After(2000000); // 2 sec
- }
- };
-
- private:
- CAfSwitcher( CTuner& aTuner )
- : CTimer(EPriorityStandard),
- iTuner(&aTuner),
- iBegin(EFalse)
- {};
-
- void ConstructL()
- {
- CTimer::ConstructL();
- CActiveScheduler::Add(this);
- };
-
- private: // Data
- // Tuner
- CTuner* iTuner;
- TBool iBegin;
- };
-
-EXPORT_C CFMRadioTunerControl* CFMRadioTunerControl::NewL(
- MFMRadioTunerControlObserver& aObserver )
- {
- return CAdaptation::NewL(aObserver);
- }
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAdaptation::CAdaptation
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CAdaptation::CAdaptation()
- : iTuner(NULL),
- iRds(NULL),
- iRdsAf(NULL)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CAdaptation::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::ConstructL(
- MFMRadioTunerControlObserver& aObserver )
- {
- iTuner = CTuner::NewL(aObserver);
- iRds = CRdsGenerator::NewL(*iTuner);
- iRdsAf = CAfSwitcher::NewL(*iTuner);
- }
-
-// -----------------------------------------------------------------------------
-// CAdaptation::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAdaptation* CAdaptation::NewL(
- MFMRadioTunerControlObserver& aObserver )
- {
- CAdaptation* self = new( ELeave ) CAdaptation();
- CleanupStack::PushL( self );
- self->ConstructL(aObserver);
- CleanupStack::Pop();
- return self;
- }
-
-// Destructor
-CAdaptation::~CAdaptation()
- {
- delete iRdsAf;
- delete iRds;
- delete iTuner;
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::TunerOn(
- TFMRadioFrequencyRange aRange,
- TInt aFrequency )
- {
- if ( ValidFrequency(aRange, aFrequency) )
- {
- iTuner->iTunerOn = ETrue;
- iTuner->iRange = aRange;
- SetFrequencySettings(aFrequency);
- iTuner->CompleteRequest(KReqTunerOn, KErrNone);
- }
- else
- {
- iTuner->CompleteRequest(KReqTunerOn, KFMRadioErrFrequencyOutOfBandRange);
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelTunerOn()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::TunerOff()
- {
- iTuner->Reset();
- iTuner->CompleteRequest(KReqTunerOff, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelTunerOff()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SetFrequencyRange(
- TFMRadioFrequencyRange aRange )
- {
- iTuner->iRange = aRange;
- iTuner->CompleteRequest(KReqSetFrequencyRange, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSetFrequencyRange()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SetFrequency(
- TInt aFrequency )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqSetFrequency, KFMRadioErrNotPermittedInCurrentState);
- return;
- }
-
- if ( ValidFrequency(iTuner->iRange, aFrequency) )
- {
- SetFrequencySettings(aFrequency);
- iTuner->CompleteRequest(KReqSetFrequency, KErrNone);
- }
- else
- {
- iTuner->CompleteRequest(KReqTunerOn, KFMRadioErrFrequencyNotValid);
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSetFrequency()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::StationSeek(
- TFMRadioSeekDirection aDirection )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqStationSeek, KFMRadioErrNotPermittedInCurrentState);
- return;
- }
-
- if ( aDirection == EFMRadioSeekUp )
- {
- if ( iTuner->iFrequency < KFrequency1 )
- {
- SetFrequencySettings(KFrequency1);
- }
- else if ( (iTuner->iFrequency >= KFrequency1) && (iTuner->iFrequency < KFrequency2) )
- {
- SetFrequencySettings(KFrequency2);
- }
- else if ( (iTuner->iFrequency >= KFrequency2) && (iTuner->iFrequency < KFrequency3) )
- {
- SetFrequencySettings(KFrequency3);
- }
- else if ( (iTuner->iFrequency >= KFrequency3) && (iTuner->iFrequency < KFrequency4) )
- {
- SetFrequencySettings(KFrequency4);
- }
- else // iTuner->iFrequency >= KFrequency4
- {
- SetFrequencySettings(KFrequency1);
- }
- }
- else
- {
- if ( iTuner->iFrequency > KFrequency4 )
- {
- SetFrequencySettings(KFrequency4);
- }
- else if ( (iTuner->iFrequency <= KFrequency4) && (iTuner->iFrequency > KFrequency3) )
- {
- SetFrequencySettings(KFrequency3);
- }
- else if ( (iTuner->iFrequency <= KFrequency3) && (iTuner->iFrequency > KFrequency2) )
- {
- SetFrequencySettings(KFrequency2);
- }
- else if ( (iTuner->iFrequency <= KFrequency2) && (iTuner->iFrequency > KFrequency1) )
- {
- SetFrequencySettings(KFrequency1);
- }
- else // iTuner->iFrequency < KFrequency1
- {
- SetFrequencySettings(KFrequency4);
- }
- }
-
- iTuner->CompleteRequest(KReqStationSeek, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelStationSeek()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::AudioMode()
- {
- iTuner->CompleteRequest(KReqAudioMode, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelAudioMode()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SetAudioMode(
- TFMRadioAudioMode aMode )
- {
- iTuner->iMode = aMode;
- iTuner->CompleteRequest(KReqSetAudioMode, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSetAudioMode()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::MaxSignalStrength()
- {
- iTuner->CompleteRequest(KReqMaxSignalStrength, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelMaxSignalStrength()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SignalStrength()
- {
- iTuner->CompleteRequest(KReqSignalStrength, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSignalStrength()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::Squelch()
- {
- iTuner->CompleteRequest(KReqSquelch, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSquelch()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SetSquelch(
- TBool aEnabled )
- {
- iTuner->iSquelch = aEnabled;
- iTuner->CompleteRequest(KReqSetSquelch, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelSetSquelch()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::BufferToBeFilled(
- TDes8& /*aBuffer*/ )
- {
- // Not used.
- }
-
-// -----------------------------------------------------------------------------
-//
-TFMRadioCapabilities CAdaptation::Capabilities()
- {
- TFMRadioCapabilities cap;
- cap.iSampleRate = EFMRadioSampleRate48000Hz;
- cap.iChannels = EFMRadioAudioMono | EFMRadioAudioStereo;
- //const TUint32 KMMFFourCCCodePCM16 = 0x36315020; //(' ', 'P', '1', '6')
- cap.iEncoding = 0x36315020;
-
- cap.iTunerBands = EFMRadioFrequencyEuroAmerica | EFMRadioFrequencyJapan;
- //cap.iTunerFunctions = ETunerAvailableInOfflineMode | ETunerRdsSupport;
- cap.iTunerFunctions = 0x01 | 0x02;
- return cap;
- }
-
-/*********************************************************************
-* RD_FM_RADIO_ENHANCEMENTS
-**********************************************************************/
-#ifdef RD_FM_RADIO_ENHANCEMENTS
-
-// -----------------------------------------------------------------------------
-//
-MRdsControl* CAdaptation::RdsControl(
- MRdsControlObserver& aObserver )
- {
- iTuner->iRdsObserver = &aObserver;
- return this;
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetFrequencyRange(
- TFMRadioFrequencyRange& aRange,
- TInt& aMinFreq,
- TInt& aMaxFreq ) const
- {
- aRange = iTuner->iRange;
- if ( aRange == EFMRadioFrequencyEuroAmerica )
- {
- aMinFreq = KEuroAmericaMin;
- aMaxFreq = KEuroAmericaMax;
- }
- else // aRange = EFMRadioFrequencyJapan;
- {
- aMinFreq = KJapanMin;
- aMaxFreq = KJapanMax;
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetCapabilities(
- TRdsCapabilities& aCaps ) const
- {
- aCaps.iRdsFunctions = ERdsProgrammeIdentification | ERdsProgrammeType | ERdsProgrammeService
- | ERdsRadioText | ERdsClockTime | ERdsAlternateFrequency;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetRdsSignalStatus(
- TBool& aRdsSignal ) const
- {
- aRdsSignal = iTuner->iRdsSignal;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::NotifyRdsDataChange(
- TRdsData aRdsData )
- {
- iTuner->iRdsData = aRdsData.iRdsFunctions;
- // We'll only generate events for ERdsProgrammeIdentification, ERdsProgrammeType,
- // ERdsProgrammeService for now.
- if ( (aRdsData.iRdsFunctions & ERdsProgrammeIdentification) ||
- (aRdsData.iRdsFunctions & ERdsProgrammeType) ||
- (aRdsData.iRdsFunctions & ERdsProgrammeService) )
- {
- iTuner->iNotifyOn = ETrue;
- }
-
- if ( (iTuner->iRdsSignal) && (iTuner->iNotifyOn) )
- {
- iRds->Start();
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelNotifyRdsDataChange()
- {
- iTuner->iRdsData = 0;
- iTuner->iNotifyOn = EFalse;
- iRds->Cancel();
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::SetAutomaticSwitching(
- TBool aAuto )
- {
- iTuner->iAutoSwitch = aAuto;
- if ( aAuto && (iTuner->iFrequency == KFrequency1) )
- {
- iRdsAf->Start();
- }
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetAutomaticSwitching(
- TBool& aAuto )
- {
- aAuto = iTuner->iAutoSwitch;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelAFSearch()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::SetAutomaticTrafficAnnouncement(
- TBool /*aAuto*/ )
- {
- return KErrNotSupported;
- };
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetAutomaticTrafficAnnouncement(
- TBool& aAuto )
- {
- aAuto = EFalse;
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::StationSeekByPTY(
- TRdsProgrammeType aPty,
- TBool aSeekUp )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqStationSeekByPTY, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- TInt err = KErrNone;
- switch ( aPty )
- {
- case KRdsPtyReligion:
- if ( aSeekUp )
- {
- if ( iTuner->iFrequency < KFrequency1 )
- {
- SetFrequencySettings(KFrequency1);
- }
- else if ( (iTuner->iFrequency >= KFrequency1) && (iTuner->iFrequency < KFrequency2) )
- {
- SetFrequencySettings(KFrequency2);
- }
- else // iTuner->iFrequency >= KFrequency2
- {
- SetFrequencySettings(KFrequency1);
- }
- }
- else
- {
- if ( iTuner->iFrequency > KFrequency2 )
- {
- SetFrequencySettings(KFrequency2);
- }
- else if ( (iTuner->iFrequency <= KFrequency2) && (iTuner->iFrequency > KFrequency1) )
- {
- SetFrequencySettings(KFrequency1);
- }
- else // iTuner->iFrequency < KFrequency1
- {
- SetFrequencySettings(KFrequency2);
- }
- }
- break;
- case KRdsPtyLightClassical:
- SetFrequencySettings(KFrequency3);
- break;
- case KRdsPtyRockMusic:
- SetFrequencySettings(KFrequency4);
- break;
- default:
- err = KErrNotFound;
- break;
- }
- iTuner->CompleteRequest(KReqStationSeekByPTY, err);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::StationSeekByTA(
- TBool aSeekUp )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqStationSeekByTA, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- // Just for testing purpose, if aSeekUp return KFrequency1, else return KErrNotFound.
- if ( aSeekUp )
- {
- SetFrequencySettings(KFrequency1);
- iTuner->CompleteRequest(KReqStationSeekByTA, KErrNone);
- }
- else
- {
- iTuner->CompleteRequest(KReqStationSeekByTA, KErrNotFound);
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::StationSeekByTP(
- TBool aSeekUp )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqStationSeekByTP, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- if ( aSeekUp )
- {
- if ( iTuner->iFrequency < KFrequency1 )
- {
- SetFrequencySettings(KFrequency1);
- }
- else if ( (iTuner->iFrequency >= KFrequency1) && (iTuner->iFrequency < KFrequency4) )
- {
- SetFrequencySettings(KFrequency4);
- }
- else // iTuner->iFrequency >= KFrequency4
- {
- SetFrequencySettings(KFrequency1);
- }
- }
- else
- {
- if ( iTuner->iFrequency > KFrequency4 )
- {
- SetFrequencySettings(KFrequency4);
- }
- else if ( (iTuner->iFrequency <= KFrequency4) && (iTuner->iFrequency > KFrequency1) )
- {
- SetFrequencySettings(KFrequency1);
- }
- else // iTuner->iFrequency < KFrequency1
- {
- SetFrequencySettings(KFrequency4);
- }
- }
-
- iTuner->CompleteRequest(KReqStationSeekByTP, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelRdsStationSeek()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::GetFreqByPTY(
- TRdsProgrammeType aPty )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqGetFreqByPTY, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- TInt err = KErrNone;
- iTuner->iFreqList.Reset();
- switch ( aPty )
- {
- case KRdsPtyReligion:
- iTuner->iFreqList.Append(KFrequency1);
- iTuner->iFreqList.Append(KFrequency2);
- break;
- case KRdsPtyLightClassical:
- iTuner->iFreqList.Append(KFrequency3);
- break;
- case KRdsPtyRockMusic:
- iTuner->iFreqList.Append(KFrequency4);
- break;
- default:
- err = KErrNotFound;
- break;
- }
- iTuner->CompleteRequest(KReqGetFreqByPTY, err);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelGetFreqByPTY()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::GetFreqByTA()
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqGetFreqByTA, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- iTuner->iFreqList.Reset();
- iTuner->iFreqList.Append(KFrequency1);
- iTuner->CompleteRequest(KReqGetFreqByTA, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelGetFreqByTA()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::GetPSByPTY
- ( TRdsProgrammeType aPty )
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqGetPSByPTY, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- TInt err = KErrNone;
- iTuner->iPsList.Reset();
- switch ( aPty )
- {
- case KRdsPtyReligion:
- iTuner->iPsList.Append(_L8("KCBI"));
- iTuner->iPsList.Append(_L8("KLTY"));
- break;
- case KRdsPtyLightClassical:
- iTuner->iPsList.Append(_L8("KVIL"));
- break;
- case KRdsPtyRockMusic:
- iTuner->iPsList.Append(_L8("KHKS"));
- break;
- default:
- err = KErrNotFound;
- break;
- }
- iTuner->CompleteRequest(KReqGetPSByPTY, err);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelGetPSByPTY()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::GetPSByTA()
- {
- if ( !iTuner->iTunerOn )
- {
- iTuner->CompleteRequest(KReqGetPSByTA, KRdsErrNotPermittedInCurrentState);
- return;
- }
-
- iTuner->iPsList.Reset();
- iTuner->iPsList.Append(_L8("KCBI"));
- iTuner->CompleteRequest(KReqGetPSByTA, KErrNone);
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::CancelGetPSByTA()
- {
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetProgrammeIdentification(
- TInt& aPi )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iRdsSignal )
- {
- aPi = iTuner->iPi;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetProgrammeType(
- TRdsProgrammeType& aPty )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iRdsSignal )
- {
- aPty = iTuner->iPty;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetProgrammeService(
- TRdsPSName& aPs )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iRdsSignal )
- {
- aPs = iTuner->iPs;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetRadioText(
- TRdsRadioText& aRt,
- RArray<TRdsRTplusTag>& /*aRTplusTags*/ )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iRdsSignal )
- {
- aRt = iTuner->iRt;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetClockTime(
- TDateTime& aCt )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iRdsSignal )
- {
- // Hardcoded to 2007/11/10 7:35
- aCt.Set(2007,ENovember,10,7,35,0,0);
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetTrafficAnnouncementStatus(
- TBool& aTaStatus )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( iTuner->iFrequency == KFrequency1 )
- {
- aTaStatus = ETrue;
- return KErrNone;
- }
- else if ( iTuner->iFrequency == KFrequency4 )
- {
- aTaStatus = EFalse;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
-
- }
- }
-
-// -----------------------------------------------------------------------------
-//
-TInt CAdaptation::GetTrafficProgrammeStatus(
- TBool& aTpStatus )
- {
- if ( !iTuner->iTunerOn )
- {
- return KRdsErrNotPermittedInCurrentState;
- }
-
- if ( (iTuner->iFrequency == KFrequency1) || (iTuner->iFrequency == KFrequency4) )
- {
- aTpStatus = ETrue;
- return KErrNone;
- }
- else if ( (iTuner->iFrequency == KFrequency2) || (iTuner->iFrequency == KFrequency3) )
- {
- aTpStatus = EFalse;
- return KErrNone;
- }
- else
- {
- return KErrNotFound;
- }
- }
-
-#endif //#ifdef RD_FM_RADIO_ENHANCEMENTS
-
-// -----------------------------------------------------------------------------
-//
-TBool CAdaptation::ValidFrequency(
- TFMRadioFrequencyRange aRange,
- TInt aFrequency )
- {
- if ( aRange == EFMRadioFrequencyEuroAmerica )
- {
- if ( (aFrequency < KEuroAmericaMin) || (aFrequency > KEuroAmericaMax) )
- {
- return EFalse;
- }
- }
- else // aRange = EFMRadioFrequencyJapan;
- {
- if ( (aFrequency < KJapanMin) || (aFrequency > KJapanMax) )
- {
- return EFalse;
- }
- }
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-//
-void CAdaptation::SetFrequencySettings(
- TInt aFrequency )
- {
- iTuner->iFrequency = aFrequency;
- switch ( aFrequency )
- {
- case KFrequency1:
- iTuner->iSigStrength = 1;
- iTuner->iRdsSignal = ETrue;
- iTuner->iPi = 1000;
- iTuner->iPty = KRdsPtyReligion;
- iTuner->iPs = _L8("KCBI");
- iTuner->iRt = _L8("Hail to the King");
- if ( iTuner->iAutoSwitch )
- {
- iRdsAf->Start();
- }
- break;
- case KFrequency2:
- iTuner->iSigStrength = 2;
- iTuner->iRdsSignal = ETrue;
- iTuner->iPi = 1000;
- iTuner->iPty = KRdsPtyReligion;
- iTuner->iPs = _L8("KLTY");
- iTuner->iRt = _L8("He Knows My Name");
- break;
- case KFrequency3:
- iTuner->iSigStrength = 3;
- iTuner->iRdsSignal = ETrue;
- iTuner->iPi = 2000;
- iTuner->iPty = KRdsPtyLightClassical;
- iTuner->iPs = _L8("KVIL");
- iTuner->iRt = _L8("Power of Love");
- break;
- case KFrequency4:
- iTuner->iSigStrength = 4;
- iTuner->iRdsSignal = ETrue;
- iTuner->iPi = 3000;
- iTuner->iPty = KRdsPtyRockMusic;
- iTuner->iPs = _L8("KHKS");
- iTuner->iRt = _L8("The Reason");
- break;
- default:
- iTuner->iSigStrength = 5;
- iTuner->iRdsSignal = EFalse;
- break;
- }
- if ( (iTuner->iRdsSignal) && (iTuner->iNotifyOn) )
- {
- iRds->Start();
- }
- }
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-
-
-// End of File
-