radioapp/radioenginewrapper/inc/radioenginewrapper.h
author hgs
Fri, 25 Jun 2010 19:09:05 +0300
changeset 34 bc10a61bd7d3
parent 28 075425b8d9a4
child 37 451b2e1545b2
permissions -rw-r--r--
201025

/*
* 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 RADIOENGINEWRAPPER_H
#define RADIOENGINEWRAPPER_H

// System includes
#include <QScopedPointer>

// User includes
#include "radiowrapperexport.h"
#include "radio_global.h"

// Forward declarations
class RadioEngineWrapperPrivate;
class RadioSettingsIf;
class RadioStationHandlerIf;
class RadioEngineWrapperObserver;

// Class declaration
class WRAPPER_DLL_EXPORT RadioEngineWrapper
{
    Q_DECLARE_PRIVATE_D( d_ptr.data(), RadioEngineWrapper )
    Q_DISABLE_COPY( RadioEngineWrapper )

public:

    /**
     * Constructor and destructor
     */
    RadioEngineWrapper( RadioStationHandlerIf& stationHandler );
    ~RadioEngineWrapper();

    bool init();

    void addObserver( RadioEngineWrapperObserver* observer );
    void removeObserver( RadioEngineWrapperObserver* observer );

    /**
     * Getters for things owned by the engine
     */
    RadioSettingsIf& settings();

    /**
     * Getters for region and other region dependent settings
     */
    RadioRegion::Region region() const;
    uint minFrequency() const;
    uint maxFrequency() const;
    uint frequencyStepSize() const;
    bool isFrequencyValid( uint frequency ) const;

    /**
     * Getters for current radio status
     */
    bool isRadioOn() const;
    uint currentFrequency() const;
    bool isMuted() const;
    bool isAntennaAttached() const;
    bool isUsingLoudspeaker() const;

    void setManualSeekMode( bool manualSeek );
    bool isInManualSeekMode() const;

    void setRdsEnabled( bool rdsEnabled );

    /**
     * Tunes to the given frequency
     */
    void setFrequency( uint frequency, const int reason = TuneReason::Unspecified );

    /*!
     * Audio update command functions for the engine
     */
    void increaseVolume();
    void decreaseVolume();
    void setVolume( int volume );
    void setMute( bool muted, bool updateSettings = true );
    void toggleAudioRoute();

    void startSeeking( Seek::Direction direction, const int reason = TuneReason::Unspecified );
    void cancelSeeking();

private: // data

    /**
     * Unmodifiable pointer to the private implementation
     */
     const QScopedPointer<RadioEngineWrapperPrivate> d_ptr;

};

#endif // RADIOENGINEWRAPPER_H