--- a/fmradio/fmradioengine/inc/fmradiordsreceiverbase.h Thu Aug 19 09:55:21 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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: The RDS receiver base class for FM Radio
-*
-*/
-
-
-#ifndef CFMRADIORDSRECEIVERBASE_H
-#define CFMRADIORDSRECEIVERBASE_H
-
-#include <RadioRdsUtility.h>
-
-#include "fmradiordsobserver.h"
-
-class TRadioSettings;
-class CRadioUtility;
-class CFMRadioPubSub;
-
-NONSHARABLE_CLASS( CFMRadioRdsReceiverBase ) : public CBase, public MRadioRdsObserver
- {
-public:
-
- enum TFMRadioProgrammeSeviceType
- {
- EFMRadioPSNameStaticAssumed = 0,// Default, determination is ongoing
- EFMRadioPSNameStatic, // PS name is static
- EFMRadioPSNameDynamic // PS name is dynamic
- };
-
- /**
- * The destructor
- */
- virtual ~CFMRadioRdsReceiverBase();
-
- /**
- * Initializes the RDS receiver
- *
- * @param aRadioUtility A reference to the radio utility
- * @param aPubSub Pointer to Publish&Subscribe object
- */
- virtual void InitL( CRadioUtility& aRadioUtility, CFMRadioPubSub* aPubSub ) = 0;
-
- /**
- * Adds an observer wich will be notified of the new RDS data
- * If observer already exists, it is not added
- *
- * @param aObserver pointer of the observer instance.
- */
- IMPORT_C void AddObserver(MFMRadioRdsObserver* aObserver);
-
- /**
- * Removes the rds observer.
- */
- IMPORT_C void RemoveObserver(MFMRadioRdsObserver* aObserver);
-
- /**
- * Getter for automatic switching state of alternate frequencies
- *
- * @return ETrue if automatic switching is enabled
- */
- IMPORT_C TBool AutomaticSwitchingEnabled() const;
-
- /**
- * Getter for the programme service name
- *
- * @return Programme service name
- */
- IMPORT_C const TDesC& ProgrammeService() const;
-
- /**
- * Returns the nature of the PS name
- *
- * @return The type of PS name
- */
- IMPORT_C TFMRadioProgrammeSeviceType ProgrammeServiceNameType() const;
-
- /**
- * Getter for the RDS signal availability
- *
- * @return ETrue if RDS signal is available, otherwise EFalse
- */
- IMPORT_C TBool SignalAvailable() const;
-
- /**
- * Getter for the RDS Text+ station URL
- * @return The cached web URL of the station
- */
- IMPORT_C const TDesC& RtPlusProgramUrl() const;
-
- /**
- * Getter for the RDS Text+ artist name
- * @return The cached artist name
- */
- IMPORT_C const TDesC& RtPlusArtist() const;
-
- /**
- * Getter for the RDS Text+ album name
- * @return The cached album name
- */
- IMPORT_C const TDesC& RtPlusAlbum() const;
-
- /**
- * Getter for the RDS Text+ song name
- * @return The cached song name
- */
- IMPORT_C const TDesC& RtPlusSong() const;
-
- /**
- * Setter for automatic switching of alternate frequencies
- * If this method is overridden, the base implementation should be called
- *
- * @param aEnable ETrue, if automatic swithing is to be enabled
- */
- virtual void SetAutomaticSwitchingL( TBool aEnable );
-
- /**
- * Clears the RDS information
- */
- void ClearRdsInformation();
-
- /**
- * Starts receiving the RDS information
- */
- virtual void StartReceiver() = 0;
-
- /**
- * Stops receiving the RDS information
- */
- virtual void StopReceiver() = 0;
-
-protected:
-
- /**
- * The default constructor
- *
- * @param aSettings The radio settings
- */
- CFMRadioRdsReceiverBase( TRadioSettings& aSettings );
-
- /**
- * Second phase constructor
- */
- void BaseConstructL();
-
- /**
- * Static callback for the RDS PS name timer
- *
- * @param aSelf Pointer to self.
- * @return KErrNone
- */
- static TInt StaticPsNameTimerCallback( TAny* aSelf );
-
- /**
- * Handles the received RT+ data and passes it to observers
- * @param aRtPlusClass The RT+ class
- * @param aRtPlusData The received data
- */
- void HandleRdsDataRTplusL( TRdsRTplusClass aRtPlusClass, TRdsRadioText& aRtPlusData );
-
-// from base class MRadioRdsObserver
- void MrroStationSeekByPTYComplete( TInt aError, TInt aFrequency );
- void MrroStationSeekByTAComplete( TInt aError, TInt aFrequency );
- void MrroStationSeekByTPComplete( TInt aError, TInt aFrequency );
- void MrroGetFreqByPTYComplete( TInt aError, RArray<TInt>& aFreqList );
- void MrroGetFreqByTAComplete( TInt aError, RArray<TInt>& aFreqList );
- void MrroGetPSByPTYComplete( TInt aError, RArray<TRdsPSName>& aPsList );
- void MrroGetPSByTAComplete( TInt aError, RArray<TRdsPSName>& aPsList );
- void MrroRdsDataPI( TInt aPi );
- void MrroRdsDataPTY( TRdsProgrammeType aPty );
- void MrroRdsDataPS( TRdsPSName& aPs );
- void MrroRdsDataRT( TRdsRadioText& aRt );
- void MrroRdsDataCT( TDateTime& aCt );
- void MrroRdsDataTA( TBool aTaOn );
- void MrroRdsDataRTplus( TRdsRTplusClass aRtPlusClass, TRdsRadioText& aRtPlusData );
- void MrroRdsSearchBeginAF();
- void MrroRdsSearchEndAF( TInt aError, TInt aFrequency );
- void MrroRdsStationChangeTA( TInt aFrequency );
- void MrroRdsEventAutomaticSwitchingChange( TBool aAuto );
- void MrroRdsEventAutomaticTrafficAnnouncement( TBool aAuto );
- void MrroRdsEventSignalChange( TBool aSignal );
-
-protected: // data
- /** The radio settings */
- TRadioSettings& iSettings;
-
- /** Publish&Subscribe object. Can be NULL. Not owned. */
- CFMRadioPubSub* iPubSub;
-
-private: // data
-
- /** Array of RDS observers. */
- RPointerArray<MFMRadioRdsObserver> iObservers;
-
- /** The programme service name cache */
- HBufC* iPsName;
-
- /** The radio text data cache */
- HBufC* iRadioText;
-
- /** The cached web URL of the station */
- RBuf iProgramWebUrl;
-
- /** The cached artist name */
- RBuf iArtistName;
-
- /** The cached song name */
- RBuf iSongName;
-
- /** The cached album name */
- RBuf iAlbumName;
-
- /** ETrue if the RDS signal is available */
- TBool iSignalAvailable;
-
- /** ETrue if AF is enabled */
- TBool iAfEnabled;
-
- /** Timer to track the PS name changes */
- CPeriodic* iPsNameTimer;
-
- /** The type of the PS name */
- TFMRadioProgrammeSeviceType iPsNameType;
- };
-
-#endif // CFMRADIORDSRECEIVERBASE_H