radioapp/radiouiengine/inc/radioscannerengine.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 23 Jun 2010 18:12:57 +0300
changeset 32 189d20c34778
parent 24 6df133bd92e1
child 37 451b2e1545b2
child 57 21be958eb3ce
permissions -rw-r--r--
Revision: 201023 Kit: 2010125

/*
* 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