diff -r ccd8e69b5392 -r 496ad160a278 tsrc/musenginestub/inc/musenglivesession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/musenginestub/inc/musenglivesession.h Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2005 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 MUSHENGLIVESESSION_H +#define MUSHENGLIVESESSION_H + +// USER +#include "musengmceoutsession.h" +#include "musunittesting.h" +#include "mussettings.h" +#include "musengcamerahandler.h" +#include "lcvideoplayer.h" +#include "lccameracontrol.h" +#include "lcbrightnesscontrol.h" +#include "lczoomcontrol.h" +#include "lcfilecontrol.h" + +// SYSTEM +#include + +// FORWARD DECLARATIONS +class MMusEngLiveSessionObserver; +class MLcValueControl; + + +class CMusEngLiveSession : + public CMusEngMceOutSession, + public MLcVideoPlayer, + public MLcCameraControl, + public MLcBrightnessControl, + public MLcZoomControl, + public MLcFileControl + { + + public: + /** + * Creates new MultimediaSharing Live session. + * + * @param aFileName Media filename + * @param aRect UI drawing area. It is allowed handle from engine + * @param aSessionObserver Interface for session specific callbacks + * @param aOutSessionObserver Interface for outsession specific callbacks + * @param aLiveSessionObserver interface for live session specific + * callbacks + * @return CMusEngLiveSession* New instanse of specified class + */ + static CMusEngLiveSession* NewL( + const TDesC& aFileName, + const TRect& aRect ); + + /** + * Creates new MultimediaSharing Live session. + * + * @param aRect UI drawing area. It is allowed handle from engine + * @param aSessionObserver Interface for session specific callbacks + * @param aOutSessionObserver Interface for outsession specific callbacks + * @param aLiveSessionObserver interface for live session specific + * callbacks + * @return CMusEngLiveSession* New instanse of specified class + */ + static CMusEngLiveSession* NewL( + const TRect& aRect ); + + + public: + + /** + * Destructor + */ + ~CMusEngLiveSession(); + + + public: // from MLcSession + + void EstablishLcSessionL(); + + MLcVideoPlayer* LocalVideoPlayer(); + + 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(); + + public: // from MLcCameraControl + + TInt LcCameraCountL(); + + void ToggleLcCameraL(); + + public: // MLcBrightnessControl + + TInt MinLcBrightnessL(); + + TInt MaxLcBrightnessL(); + + TInt LcBrightnessL(); + + void SetLcBrightnessL( TInt aValue ); + + void IncreaseLcBrightnessL(); + + void DecreaseLcBrightnessL(); + + public: // from MLcZoomControl + + TInt MinLcZoomL(); + + TInt MaxLcZoomL(); + + TInt LcZoomValueL(); + + void SetLcZoomValueL( TInt aValue ); + + void LcZoomInL(); + + void LcZoomOutL(); + + public: // from MLcFileControl + + void EnableLcFileL( TBool aEnable ); + + TBool IsLcFileEnabled(); + + void SetLcFileNameL( const TFileName& aFileName ); + + TFileName& LcFileName(); + + protected: + + /** + * Constructor + */ + CMusEngLiveSession( const TRect& aRect, + const TDesC& aRecordedFile = KNullDesC ); + + /** + * Second-phase constructor + */ + void ConstructL(); + + + + protected: + + /** + * File name for recording. If KNullDesC no recording performed. + */ + TFileName iRecordedFile; + + /** + * Dummy member variable to implement MLcVideoPlayer::LcExtensionControls + */ + RPointerArray< MLcValueControl > iValueControls; + + TMusEngCameraHandler iCameraHandler; + + /* + * Remote Display Name + */ + HBufC* iRemoteDisplayName; + + TInt iCurrentZoom; + TInt iDefaultZoomFactor; + TInt iCurrentBrighness; + TInt iPlaying; + TBool iFileEnabled; + + }; + +#endif +