--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/fmpresetutility/src/RadioFmPresetUtilityBody.h Tue Feb 02 01:08:46 2010 +0200
@@ -0,0 +1,306 @@
+/*
+* Copyright (c) 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: This class provides an interface for controlling the presets
+* for an FM tuner.
+*
+*
+*/
+
+
+
+#ifndef C_RADIOFMPRESETUTILITYBODY_H
+#define C_RADIOFMPRESETUTILITYBODY_H
+
+#include <RadioPresetUtility.h>
+#include <RadioFmPresetUtility.h>
+#include "RadioFmPresetRadioSettings.h"
+#include "RadioFmPresetCentralRepositoryHandler.h"
+#include <e32base.h>
+
+const TInt KDefaultRadioFrequency = 87500000;
+const TInt KMaxNumberOfPresetStations = 100;
+const TUint KDefaultRadioPTY = 0;
+const TUint KDefaultRadioPI = 0;
+
+/**
+ * This class provides an interface for controlling the preset for an FM tuner.
+ * The maximum number of presets supported by this utility is pre-defined and the
+ * client must first query it.
+ *
+ * @lib RadioPresetUtility.lib
+ * @since S60 3.2
+ */
+class CRadioFmPresetUtility::CBody : public CBase,
+ public MRadioPreset,
+ public MRadioFmPreset
+ {
+public:
+
+ /**
+ * Factory function to create a new instance of the FM tuner.
+ *
+ * @since S60 3.2
+ * @param aObserver The observer object
+ * @return A new FM tuner utility object.
+ */
+ static CBody* NewL( MRadioPresetObserver& aObserver );
+
+ ~CBody();
+
+ // from base class MRadioFmPreset
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified frequency and name. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * The maximum length for the preset name is 32 characters. Names longer than 32 characters
+ * will be truncated.
+ *
+ * @since S60 3.2
+ * @param aIndex A preset index.
+ * @param aName Preset name.
+ * @param aFrequency Frequency in Hz.
+ */
+ void SetPresetL( TInt aIndex, const TFmPresetName& aName, TInt aFrequency );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified URL. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * The maximum length for the preset URL is 64 characters. URLs longer than 32 characters
+ * will be truncated.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aUrl Preset URL.
+ */
+ void SetPresetUrlL( TInt aIndex, const TFmPresetUrl& aUrl );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified PTY. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aPty Preset PTY (programme type).
+ */
+ void SetPresetPtyL( TInt aIndex, TUint aPty );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified PI code. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aPICode Preset PI (programme identification).
+ */
+ void SetPresetPICodeL( TInt aIndex, TUint aPICode );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified favourite information. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aFavourite Preset favourite info.
+ */
+ void SetPresetFavouriteInfoL( TInt aIndex, TBool aFavourite );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Set the preset with specified user rename information. Previous content in the specified index
+ * will be overwritten with the new information.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aRename Preset user rename info.
+ */
+ void SetPresetUserRenameInfoL( TInt aIndex, TBool aRename );
+
+ /**
+ * From MRadioFmPreset
+ * Get the preset name and frequency at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * Preset name is maximum of 32 characters. Client must allocate buffer big
+ * enough to hold the 32 characters. If not, characters will be truncated to fit the
+ * buffer.
+ *
+ * @since S60 3.2
+ * @param aIndex A preset index.
+ * @param aFrequency On return, contains the preset name.
+ * @param Frequency On return, contains frequency in Hz.
+ */
+ void GetPresetL( TInt aIndex, TFmPresetName& aName, TInt& aFrequency );
+
+ /**
+ * From MRadioFmPreset
+ * Get the preset name at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * Preset name is maximum of 32 characters. Client must allocate buffer big
+ * enough to hold the 32 characters. If not, characters will be truncated to fit the
+ * buffer.
+ *
+ * @since S60 5.1
+ * @param aIndex A preset index.
+ * @param aName On return, contains the preset name.
+ */
+ void GetPresetNameL( TInt aIndex, TFmPresetName& aName );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Get the preset URL at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * Preset URL is maximum of 64 characters. Client must allocate buffer big
+ * enough to hold the 64 characters. If not, characters will be truncated to fit the
+ * buffer.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aUrl On return, contains the preset name.
+ */
+ void GetPresetUrlL( TInt aIndex, TFmPresetUrl& aUrl );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Get the preset PTY (programme type) at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aPty On return, contains the preset PTY.
+ */
+ void GetPresetPtyL( TInt aIndex, TUint& aPty );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Get the preset PI code (programme identification) at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aPICode On return, contains the preset programme identification.
+ */
+ void GetPresetPICodeL( TInt aIndex, TUint& aPICode );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Get the preset favourite info at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aFavourite On return, contains the preset favourite info.
+ */
+ void GetPresetFavouriteInfoL( TInt aIndex, TBool& aFavourite );
+
+ /**
+ * From MRadioFmPresetUtility
+ * Get the preset user rename info at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * @since S60 5.2
+ * @param aIndex A preset index.
+ * @param aRename On return, contains the preset rename info.
+ */
+ void GetPresetUserRenameInfoL( TInt aIndex, TBool& aRename );
+
+ /**
+ * Get the preset frequency at the specified index.
+ * Leaves with KErrNotFound if invalid index is specified.
+ *
+ * @since S60 5.1
+ * @param aIndex A preset index.
+ * @param aFrequency On return, contains the preset name.
+ */
+ void GetPresetFrequencyL( TInt aIndex, TInt& aFrequency );
+
+// from base class MRadioPreset
+
+ /**
+ * From MRadioPreset
+ * Get the maximum number of presets supported by this utility.
+ * The numbering of presets starts from 1 and the largest preset number equals the value
+ * returned from this function.
+ *
+ * @since S60 3.2
+ * @param aMaxNumOfPresets On return contains the maximum number of presets.
+ * @return A standard system error code.
+ */
+ TInt GetMaxNumberOfPresets( TInt& aMaxNumOfPresets ) const;
+
+ /**
+ * From MRadioPreset
+ * Get the number of presets already set by the client (i.e. contains data).
+ *
+ * @since S60 3.2
+ * @param aNumOfPresets On return contains the current number of presets.
+ * @return A standard system error code.
+ */
+ TInt GetNumberOfPresets( TInt& aNumOfPresets ) const;
+
+ /**
+ * From MRadioPreset
+ * Get the first preset index that has been set.
+ * Leaves with KErrNone if no preset exists.
+ *
+ * @since S60 3.2
+ * @param aIndex On return contains the index of the first preset.
+ */
+ void GetFirstPresetL( TInt& aIndex ) const;
+
+ /**
+ * From MRadioPreset
+ * Get the next preset index that has been set, given the current index.
+ * Leaves with KErrNone if no other preset exists.
+ *
+ * @since S60 3.2
+ * @param aIndex Current preset index.
+ * @param aNextIndex On return contains the index of next preset.
+ */
+ void GetNextPresetL( TInt aIndex, TInt& aNextIndex ) const;
+
+ /**
+ * From MRadioPreset
+ * Reset the specified preset.
+ * Has not effect if specified index contains no preset.
+ *
+ * NOTE: Specifying aIndex == 0, will reset all presets.
+ *
+ * @since S60 3.2
+ * @param aIndex A preset index.
+ */
+ void DeletePresetL( TInt aIndex );
+
+private:
+ CBody();
+ void ConstructL();
+
+
+private:
+
+ MRadioPresetObserver* iRadioPresetClient;
+ TRadioSettings* iRadioSettings;
+ CCentralRepositoryHandler* iCentralRepositoryHandler;
+
+ };
+
+#endif // C_RADIOFMPRESETUTILITY_H