upnpavcontroller/upnpavcontrollerclient/inc/upnpavrenderingsession.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 22:01:04 +0300
branchRCL_3
changeset 10 8fcffaa20e42
parent 0 7f85d04be362
child 38 5360b7ddc251
permissions -rw-r--r--
Revision: 201002 Kit: 201013

/*
* Copyright (c) 2006 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:      interface for session against a renderer
*
*/






#ifndef C_UPNPAVRENDERINGSESSION_H
#define C_UPNPAVRENDERINGSESSION_H

#include <e32std.h>
#include "upnpavsessionbase.h"

class MUPnPAVRenderingSessionObserver;
class CUpnpItem;

/**
 *  AV Controller rendering session interface.
 *
 *  This class defines the rendering interface of AV Controller.
 *  Includes operations to set and to set next uri, play, stop and
 *  pause the playback, to set the volume and mute and to get the
 *  position information
 *
 *  @lib upnpavcontrollerclient.lib
 *  @since S60 v3.1
 */
 class MUPnPAVRenderingSession : public MUPnPAVSessionBase
    {

public:

    /**
     * Sets the rendering session observer
     *
     * @since Series 60 3.1      
     * @param aObserver rendering session observer
     * @return none
     */
    virtual void SetObserver(
        MUPnPAVRenderingSessionObserver& aObserver ) = 0;

    /**
     * Removes the rendering session observer
     *
     * @since Series 60 3.1     
     * @param None
     * @return None
     */
    virtual void RemoveObserver() = 0;
    
    /**
     * Returns the rendering session observer
     *
     * @since Series 60 3.1     
     * @param None
     * @return observer
     */
    virtual MUPnPAVRenderingSessionObserver* Observer() const = 0;   
    
public:

    /**
     * Set the URI by providing an URI and the item  
     * 
     * @since Series 60 3.1
     * @param aURI URI of the item
     * @param aObject item
     */
    virtual void SetURIL( const TDesC8& aURI, const CUpnpItem& aItem ) = 0;
    
    /**
     * Set the next URI by providing an URI and the item  
     * 
     * @since Series 60 3.1
     * @param aURI URI of the item
     * @param aObject item
     */
    virtual void SetNextURIL( const TDesC8& aURI,
        const CUpnpItem& aItem ) = 0;

    /**
     * Starts the playback. 
     *
     * @since Series 60 3.1
     * @param None
     * @return none
     */
    virtual void PlayL() = 0;

    /**
     * Stops the playback.
     *
     * @since Series 60 3.1
     * @param None
     * @return none
     */
    virtual void StopL() = 0;

    /**
     * Pauses the playback.
     *
     * @since Series 60 3.1
     * @param None
     * @return none
     */
    virtual void PauseL() = 0;

    /**
     * Sets the volume level.
     *
     * @since Series 60 3.1
     * @param aVolumeLevel TInt Volume level in percents (0 - 100)
     * @return none
     */
    virtual void SetVolumeL( TInt aVolumeLevel ) = 0;

    /**
     * Gets the volume level.
     *
     * @since Series 60 3.1
     * @param None
     * @return none
     */
    virtual void GetVolumeL() = 0;

    /**
     * Sets the mute state.
     *
     * @since Series 60 3.1
     * @param aMute TBool desired state of the mute (ETrue of EFalse)
     * @return none
     */
    virtual void SetMuteL( TBool aMute ) = 0;

    /**
     * Gets the mute state.
     *
     * @since Series 60 3.1
     * @param None
     * @return none
     */
    virtual void GetMuteL() = 0;

    /**
     * Gets position info of the media that is currently
     * rendered on the UPnP Media Renderer.
     *
     * @since Series 60 3.0
     * @param none
     * @return none
     */
    virtual void GetPositionInfoL() = 0;
    
    };


#endif // C_UPNPAVRENDERINGSESSION_H