qtinternetradio/irqmediaplayer/inc/irqplayeradapterinterface.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 19 Apr 2010 14:01:53 +0300
changeset 0 09774dfdd46b
child 14 896e9dbc5f19
permissions -rw-r--r--
Revision: 201011 Kit: 201015

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

#include <QObject>
#include "irqenums.h"

class IRQMetaData;

/*
 * IRQPlayerAdapterInterface is the interface to use MMF adapter or PHONON adapter
 */
class IRQPlayerAdapterInterface : public QObject
{
    Q_OBJECT

public:

    /**
     *  Play specific url via certain access point id
     */
    virtual void playStation(const QString &aUrl, int aApId) = 0;

    /**
     *  Stop Playback
     */
    virtual void stop() = 0;

    /**
     *  Set volume to player
     */
    virtual void setVolume(int aVolume) = 0;

    /**
     *  Get current volume from player
     */
    virtual int getVolume() = 0;

    /**
     *  Get audio player instance
     */
    virtual void* getPlayerInstance() = 0;

signals:

    /**
     *  Connection is established
     */
    void connectionEstablished(int aBitrate);

    /**
     *  Send errors out
     */
    void errorOccured(IRQError aError);

    /**
     *  Send buffering progress out
     */
    void percentageBuffered(int aPercentage);

    /**
     *  Send meta data out
     */
    void metaDataReceived(IRQMetaData& aIRmetaData);

    /**
     *  Gets the preset volume
     */
    void volumeExpected(int& aVolume);

public:

    enum PlayState
    {
        EStopped     = 0,                    // Initial state; playback stopped
        EOpenning    = 1,                    // Try to open the url through MMF
        EConnecting  = 2,                    // Try to connect to the url
        EBuffering   = 3,                    // Buffer data
        EPlaying     = 4                     // Play the audio stream
    };

    PlayState             iPlayState;        // A simple state machine
};

#endif /* IRQPLAYERADAPTERINTERFACE_H_ */