tsrc/musenginestub/inc/musengreceivesession.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:12:07 +0300
branchRCL_3
changeset 22 73a1feb507fb
parent 0 f0cf47e981f9
child 23 bc78a40cd63c
permissions -rw-r--r--
Revision: 201032 Kit: 201035

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


#ifndef MUSHENGREVEIVESESSION_H
#define MUSHENGREVEIVESESSION_H

// INCLUDES
#include "musengmcesession.h"
#include "musenguriparser.h"
#include "musunittesting.h"
#include "lcvideoplayer.h"
#include <mcemediasink.h>

// FORWARD DECLARATIONS
class MMusEngReceiveSessionObserver;
class CMceInSession;


class CMusEngReceiveSession : 
    public CMusEngMceSession,
    public MLcVideoPlayer
    {
    
    public: // Contructors and destructor

       /**
        * Creates new MultimediaSharing Receive session.
        *
        * @param aRect UI drawing area. It is allowed handle from engine
        * @param aEngObserver Engine specific callbacks
        * @param aSessionObserver Session specific callbacks
        * @return CMusEngReceiveSession* New instanse of specified class
        */
        static CMusEngReceiveSession* NewL( const TRect& aRect );
       /**
        * Destructor
        *
        * @since S60 v3.2
        */
        ~CMusEngReceiveSession();
      

    public: // from MLcSession
        
        void EstablishLcSessionL();
    
        MLcVideoPlayer* RemoteVideoPlayer();    
        
        const TDesC& RemoteDisplayName();
        
        
    public: // from MLcVideoPlayer
        
        TLcVideoPlayerState LcVideoPlayerState() const;
        
        TBool LcIsPlayingL();
        
        void LcPlayL();
        
        void LcPauseL();
    
        MLcWindow* LcWindow();

        MLcCameraControl* LcCameraControl();
        
        MLcFileControl* LcSourceFile();
        
        MLcFileControl* LcDestinationFile();
        
        MLcAudioControl* LcAudioControl();
    
        MLcZoomControl* LcZoomControl();
    
        MLcBrightnessControl* LcBrightnessControl();

        RPointerArray< MLcValueControl >& LcExtensionControls(); 
        

    protected: // CONSTRUCTORS
    
        CMusEngReceiveSession( const TRect& aRect );

		void ConstructL();
		
       
    protected: // DATA
    
        // identity of originator parsed form P-Asserted-Identity field
        TBuf8<KMaxUriLength> iIdentity;
        
        HBufC8* iOriginator;
        
        HBufC* iRemoteDisplayName;
       
        /** 
        * Dummy member variable to implement MLcVideoPlayer::LcExtensionControls
        */
        RPointerArray< MLcValueControl > iValueControls; 
    };

#endif