diff -r 000000000000 -r 71ca22bcf22a mmserv/radioutility/radioserver/Server/Src/RadioServerSettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/radioutility/radioserver/Server/Src/RadioServerSettings.h Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,382 @@ +/* +* 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: This class maintains all the current radio settings. It's also +* responsible for sending spontaneous events using Publish & Subscribe. +* +*/ + + + +#ifndef RADIOSERVERSETTINGS_H +#define RADIOSERVERSETTINGS_H + +// INCLUDES +#include +#include +#include // Adaptation +#include "RadioServerData.h" + +// CLASS DECLARATION + +/** +* Maintains current radio settings and generates spontaneous events. +* +* @lib RadioServer.exe +* @since S60 3.0 +*/ +class CRadioServerSettings : public CBase + { +public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CRadioServerSettings* NewL(); + + /** + * Destructor. + */ + virtual ~CRadioServerSettings(); + +public: // New functions + + /** + * Sets the radio monitor status. + * @since S60 3.2 + * @param aMonitorOn Monitor status + * @param aPublish ETrue to publish the status to clients + */ + void SetRadioMonitorStatus( TBool aMonitorOn, TBool aPublish=ETrue ); + + /** + * Sets the radio state to ON. + * @since Series 60 3.0 + * @param aPublish ETrue to publish the status to clients + */ + void SetRadioOn(TBool aPublish=ETrue); + + /** + * Sets the radio state to OFF. + * @since Series 60 3.0 + * @param aError Error code for setting radio off + * @param aPublish ETrue to publish the status to clients + */ + void SetRadioOff( TInt aError, TBool aPublish=ETrue ); + + /** + * Returns the radio state. + * @since S60 3.0 + * @return ETrue if Radio is ON + */ + TBool IsRadioOn() const; + + /** + * Store the current antenna status. + * @since S60 3.0 + * @param aAttached Antenna status + * @param aPublish ETrue to publish the status to clients + */ + void SetAntennaStatus( TBool aAttached, TBool aPublish=ETrue ); + + /** + * Returns the antenna status. + * @since S60 3.0 + * @return ETrue if antenna is attached + */ + TBool IsAntennaAttached() const; + + /** + * Store the current offline mode status. + * @since S60 3.0 + * @param aOfflineMode Offline mode status + * @param aPublish ETrue to publish the status to clients + */ + void SetOfflineModeStatus( TBool aOfflineMode, TBool aPublish=ETrue ); + + /** + * Returns the device's offline mode status. + * @since S60 3.0 + * @return ETrue if device is in offline mode + */ + TBool IsOfflineModeEnabled() const; + + /** + * Store the current trasmitter status. + * @since S60 3.0 + * @param aActive FM transmitter status + * @param aPublish ETrue to publish the status to clients + */ + void SetTransmitterStatus( TBool aActive, TBool aPublish=ETrue ); + + /** + * Returns the transmitter status. + * @since S60 3.0 + * @return ETrue if transmitter is active + */ + TBool IsTransmitterActive() const; + + /** + * Store the current frequency. + * @since S60 3.0 + * @param aFrequency Frequency in Hz + * @param aPublish ETrue to publish the status to clients + */ + void SetFrequency( TInt aFrequency, TBool aPublish=ETrue ); + + /** + * Returns the current frequency. + * @since S60 3.0 + * @return Current frequency in Hz + */ + TInt Frequency() const; + + /** + * Store the current frequency range. + * @since S60 3.2 + * @param aRange Frequency range + * @param aMinFreq Minimum frequency for the current frequency range + * @param aMaxFreq Maximum frequency for the current frequency range + * @param aPublish ETrue to publish the status to clients + */ + void SetFrequencyRange( TRsFrequencyRange aRange, TInt aMinFreq, TInt aMaxFreq, TBool aPublish=ETrue ); + + /** + * Returns the current frequency range. + * @since S60 3.2 + * @return Current frequency range + */ + TRsFrequencyRange FrequencyRange() const; + + /** + * Gets the current frequency range. + * @since S60 3.2 + * @param aRange On return contains the current frequency range. + * @param aMinFreq On return contains the minimum frequency for the current frequency range. + * @param aMaxFreq On return contains the maximum frequency for the current frequency range. + * @return A standard system error code + */ + TInt GetFrequencyRange( TRsFrequencyRange& aRange, TInt& aMinFreq, TInt& aMaxFreq ) const; + + /** + * Store the current forced mono status. + * @since S60 3.0 + * @param aForceMono Forced mode status + * @param aPublish ETrue to publish the status to clients + */ + void SetForcedMonoStatus( TBool aForceMono, TBool aPublish=ETrue ); + + /** + * Returns the current force mono status. + * @since S60 3.0 + * @return Current force mono status + */ + TBool IsForceMonoEnabled() const; + + /** + * Store the current squelch status. + * @since S60 3.0 + * @param aSquelch Squelch status + * @param aPublish ETrue to publish the status to clients + */ + void SetSquelch( TBool aEnabled, TBool aPublish=ETrue ); + + /** + * Returns the current squelch status. + * @since S60 3.0 + * @return Current squelch status + */ + TBool IsSquelchEnabled() const; + + /** + * Store the current volume. + * @since S60 3.0 + * @param aVolume Volume + * @param aPublish ETrue to publish the status to clients + */ + void SetVolume( TInt aVolume, TBool aPublish=ETrue ); + + /** + * Returns the current volume. + * @since S60 3.0 + * @return Current volume + */ + TInt Volume() const; + + /** + * Store the current mute status. + * @since S60 3.0 + * @param aMute Mute status + * @param aPublish ETrue to publish the status to clients + */ + void SetMuteStatus( TBool aMute, TBool aPublish=ETrue ); + + /** + * Returns the mute status. + * @since S60 3.0 + * @return ETrue if muted + */ + TBool IsMute() const; + + /** + * Store the current audio balance. + * @since S60 3.0 + * @param aLeft Left speaker volume percentage. This value ranges from 0 to 100. + * @param aRight Right speaker volume percentage. This value ranges from 0 to 100. + * @param aPublish ETrue to publish the status to clients + */ + void SetBalance( TInt aLeft, TInt aRight, TBool aPublish=ETrue ); + + /** + * Returns the current balance. + * @since S60 3.0 + * @param aLeft On return contains the left balance + * @param aRight On return contains the right balance + */ + void GetBalance( TInt& aLeft, TInt& aRight ) ; + + /** + * Store the current RDS signal status. + * @since S60 3.2 + * @param aSignal Signal status + */ + void SetRdsSignalChange( TBool aSignal ); + + /** + * Store the current auto switch (AF) status. + * @since S60 3.2 + * @param aAuto Auto switch status + */ + void SetAutoSwitchStatus( TBool aAuto ); + + /** + * Returns the current auto switch (AF) status. + * @since S60 3.2 + * @return Current volume + */ + TBool AutoSwitch() const; + + /** + * Store the current Programme Identification code. + * @since S60 3.2 + * @param aPi Programme Identification code + */ + void SetProgrammeIdentification( TInt aPi ); + + /** + * Store the current Programme Type. + * @since S60 3.2 + * @param aPty Programme Type + */ + void SetProgrammeType( TRdsProgrammeType aPty ); + + /** + * Store the current Programme Service name. + * @since S60 3.2 + * @param aPs Programme Service name + */ + void SetProgrammeService( TRdsPSName& aPs ); + + /** + * Store the current Radio Text. + * @since S60 3.2 + * @param aRt Radio Text + */ + void SetRadioText( TRdsRadioText& aRt ); + + /** + * Store the current Radio Text+ tags. + * @since S60 5.0 + * @param aRtPlusObject1 Radio Text+ object string + * @param aContentType1 Radio Text+ object class type + * @param aRtPlusObject2 Radio Text+ object string + * @param aContentType2 Radio Text+ object class type + */ + void SetRadioTextPlusObjects( TRdsRadioText& aRtPlusObject1, TUint32 aContentType1, + TRdsRadioText& aRtPlusObject2, TUint32 aContentType2); + + /** + * Do character conversion for the RDS string payload. + * @since S60 5.0 + * @param aTRdsStrSource 8-bit wide character payload, RadioText + * @param aTRsRdsStrDest 16-bit wide converted string + */ + void SetRDSCharConv( TRdsRadioText& aTRdsStrSource, TRsRdsRadioText& aTRsRdsStrDest ); + + /** + * Store the current Clock Time and date. + * @since S60 3.2 + * @param aCt Clock Time and date + */ + void SetClockTime( TDateTime& aCt ); + + /** + * Store the current Traffic Announcement status. + * @since S60 3.2 + * @param aTaOn Traffic Announcement status + */ + void SetTrafficAnnouncementStatus( TBool aTaOn ); + + /** + * Set AF search status to ON. + * @since S60 3.2 + */ + void SetRdsBeginAF(); + + /** + * Set AF search status to OFF + * @since S60 3.2 + * @param aError A standard system/RadioServer error code. + * @param aFrequency Frequency in Hz + */ + void SetRdsEndAF( TInt aError, TInt aFrequency ); + + /** + * Reset all settings to default values. + */ + void Reset(); + +private: + + /** + * C++ default constructor. + */ + CRadioServerSettings(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + +private: // Data + TBool iMonitorOn; // Radio monitor status + TBool iRadioOn; // Radio state + TBool iAntennaAttached; // Antenna status + TBool iOfflineMode; // Offline mode + TBool iTransmitterActive; // Transmitter status + TRsFrequencyRange iRange; // Frequency range + TInt iMinFreq; // Minimum frequency for the current frequency range + TInt iMaxFreq; // Maximum frequency for the current frequency range + TInt iFrequency; // Frequency in Hz + TBool iForceMonoEnabled; // Force mono status + TBool iSquelchEnabled; // Squelch status + TInt iVolume; // Volume + TBool iMute; // Mute status + TInt iBalanceLeft; // Balance - left + TInt iBalanceRight; // Balance - right + TBool iAutoSwitch; // Automatic switching (AF) status + }; + +#endif // RADIOSERVERSETTINGS_H + +// End of File