radioapp/radiouiengine/inc/radioscannerengine.h
author William Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:33:45 +0100
branchGCC_SURGE
changeset 37 451b2e1545b2
parent 19 afea38384506
parent 32 189d20c34778
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 RADIOSCANNERENGINE_H
#define RADIOSCANNERENGINE_H

// System includes
#include <QObject>
#include <QScopedPointer>
#include <QMap>

// User includes
#include "radiouiengineexport.h"

// Forward declarations
class RadioScannerEnginePrivate;
class RadioUiEnginePrivate;
class RadioStationHandlerIf;
class RadioStation;

// Constants

// Class declaration
class UI_ENGINE_DLL_EXPORT RadioScannerEngine : public QObject
    {
    Q_OBJECT
    Q_DECLARE_PRIVATE_D( d_ptr.data(), RadioScannerEngine )
    Q_DISABLE_COPY( RadioScannerEngine )

    friend class RadioUiEngine;

public:

    explicit RadioScannerEngine( RadioUiEnginePrivate& uiEngine );
    ~RadioScannerEngine();

// New functions

    /*!
     * Starts the scanning from minimum frequency
     */
    void startScanning();

    /*!
     * Continues the scanning upwards from current frequency
     */
    void continueScanning();

    /*!
     * Checks if the scanning is ongoing
     */
    bool isScanning() const;

    /*!
     * Cancels the scanning process
     */
    void cancel();

    /*!
     * Adds a new station that was found
     * @param frequency Frequency of the found station
     */
    void addScannedFrequency( const uint frequency );

signals:

    void stationFound( const RadioStation& station );

private:

    void emitStationFound( const RadioStation& station );

private: // data

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

    };

#endif // RADIOSCANNERENGINE_H