radioengine/settings/api/mradiosettingssetter.h
author William Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:33:45 +0100
branchGCC_SURGE
changeset 37 451b2e1545b2
parent 14 63aabac4416d
parent 28 075425b8d9a4
permissions -rw-r--r--
Catchup to latest Symbian^4

/*
* Copyright (c) 2009 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:
*
*/

#ifndef M_RADIOSETTINGSSETTERS_H
#define M_RADIOSETTINGSSETTERS_H

// User includes
#include "mradioenginesettings.h"

// Forward declarations
class MRadioSettingsObserver;

/**
 * Setter interface for radio settings. This should be accessible only for CRadioEngineImp
 */
NONSHARABLE_CLASS( MRadioSettingsSetter ) : public MRadioEngineSettings
    {
public:

    /**
     * Sets observer for the radio settings
     *
     * @param aObserver The observer
     */
    virtual void SetObserver( MRadioSettingsObserver* aObserver ) = 0;

    /**
     * Stores the radio volume level that is used when audio is routed through the headset.
     *
     * @param    aVolume     The radio volume level to store.
     *
     */
    virtual TInt SetHeadsetVolume( TInt aVolume ) = 0;

    /**
     * Stores the radio volume level that is used when audio is routed through the speaker.
     *
     * @param   aVolume     The radio volume level.
     */
    virtual TInt SetSpeakerVolume( TInt aVolume ) = 0;

    /**
     * Wrapper for storing the radio volume level of current output device
     *
     * @param   aVolume     The radio volume level.
     */
    virtual TInt SetVolume( TInt aVolume ) = 0;

    /**
     * Stores the radio output mode to use.
     *
     * @param   aOutputMode     The radio output mode to use.
     */
    virtual TInt SetOutputMode( TInt aOutputMode ) = 0;

    /**
     * Stores the radio audio route ( headset/ihf ) to use.
     *
     * @param   aAudioRoute   The radio output destination to use.
     */
    virtual TInt SetAudioRoute( TInt aAudioRoute ) = 0;

    /**
     * Stores the radio muting state when audio is routed through the headset.
     *
     * @param   aMuted      <code>ETrue</code> if radio is to be muted when routed through the headset, <code>EFalse</code> otherwise.
     */
    virtual TInt SetHeadsetVolMuted( TBool aMuted ) = 0;

    /**
     * Stores the radio muting state when audio is routed through the speaker.
     *
     * @param   aMuted      <code>ETrue</code> if radio is to be muted when routed through the speaker, <code>EFalse</code> otherwise.
     */
    virtual TInt SetSpeakerVolMuted( TBool aMuted ) = 0;

    /**
     * Wrapper for storing the radio muting state of current output device
     *
     * @param   aMuted      <code>ETrue</code> if radio is to be muted, <code>EFalse</code> otherwise.
     */
    virtual TInt SetVolMuted( TBool aMuted ) = 0;

    /**
     * Stores the power state of the radio.
     *
     * @param   aPowerState     <code>ETrue</code> if radio is powered on, <code>EFalse</code> otherwise.
     */
    virtual TInt SetPowerOn( TBool aPowerState ) = 0;

    /**
     * Stores the frequency tuned.
     *
     * @param   aFrequency  The frequency to store.
     */
    virtual TInt SetTunedFrequency( TUint32 aFrequency ) = 0;

    /**
     * Stores the region ID currently in use.
     *
     * @param   aRegion     The region's ID to store.
     */
    virtual TInt SetRegionId( TInt aRegion ) = 0;

    /**
     *
     */
    virtual TInt SetNetworkId( const TDesC& aNetworkId ) = 0;

    /**
     *
     */
    virtual TInt SetCountryCode( const TDesC& aCountryCode ) = 0;

    };

#endif // M_RADIOSETTINGSSETTERS_H