audiostubs/fmradiotunercontrolstub/Src/FMRadioTunerControlStub.cpp
branchRCL_3
changeset 44 b5894bb67e73
parent 35 37b610eb7fe3
--- a/audiostubs/fmradiotunercontrolstub/Src/FMRadioTunerControlStub.cpp	Thu Aug 19 09:36:39 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
-