sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: #ifndef VIDEOPLAYER2_H
sl@0: #define VIDEOPLAYER2_H
sl@0: 
sl@0: #include <videoplayer.h>
sl@0: 
sl@0: class MMMFSurfaceEventHandler;
sl@0: 
sl@0: /**
sl@0: @publishedPartner
sl@0: @released
sl@0: 
sl@0: Extension class from CVideoPlayerUtility to allow graphics surface support.
sl@0: */
sl@0: class CVideoPlayerUtility2 : public CVideoPlayerUtility
sl@0: 	{
sl@0: public:
sl@0: 
sl@0: 	~CVideoPlayerUtility2();
sl@0: 	IMPORT_C static CVideoPlayerUtility2* NewL(MVideoPlayerUtilityObserver& aObserver,
sl@0: 											  TInt aPriority,
sl@0: 											  TInt aPref);
sl@0: 										
sl@0: 	IMPORT_C void AddDisplayWindowL(RWsSession& aWs, CWsScreenDevice& aScreenDevice, 
sl@0: 									RWindow& aWindow, const TRect& aVideoExtent, 
sl@0: 									const TRect& aWindowClipRect);
sl@0: 
sl@0: 	IMPORT_C void AddDisplayWindowL(RWsSession& aWs, CWsScreenDevice& aScreenDevice, RWindow& aWindow);
sl@0: 
sl@0:  	IMPORT_C void RemoveDisplayWindow(RWindow& aWindow);
sl@0:  	
sl@0:  	IMPORT_C void SetVideoExtentL(const RWindow& aWindow, const TRect& aVideoExtent);
sl@0: 	
sl@0: 	IMPORT_C void SetWindowClipRectL(const RWindow& aWindow, const TRect& aWindowClipRect);
sl@0: 	
sl@0: 	IMPORT_C void SetRotationL(const RWindow& aWindow, TVideoRotation aRotation);
sl@0: 	
sl@0: 	IMPORT_C TVideoRotation RotationL(const RWindow& aWindow);
sl@0: 	
sl@0: 	IMPORT_C void SetScaleFactorL(const RWindow& aWindow, TReal32 aWidthPercentage, TReal32 aHeightPercentage);
sl@0: 	
sl@0: 	IMPORT_C void GetScaleFactorL(const RWindow& aWindow, TReal32& aWidthPercentage, TReal32& aHeightPercentage);
sl@0: 	
sl@0: 	IMPORT_C void SetAutoScaleL(const RWindow& aWindow, TAutoScaleType aScaleType);
sl@0: 
sl@0:     IMPORT_C void SetAutoScaleL(const RWindow& aWindow, TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos);
sl@0: 
sl@0:     IMPORT_C void AddDisplayL(RWsSession& aWs, TInt aDisplay, MMMFSurfaceEventHandler& aEventHandler);
sl@0:     
sl@0:     IMPORT_C void RemoveDisplay(TInt aDisplay);    
sl@0:     
sl@0:     IMPORT_C void SetExternalDisplaySwitchingL(TInt aDisplay, TBool aControl);
sl@0: 
sl@0: #ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
sl@0: 	IMPORT_C TBool SubtitlesAvailable();
sl@0: 	
sl@0: 	IMPORT_C void EnableSubtitlesL();
sl@0: 	
sl@0: 	IMPORT_C void DisableSubtitles();
sl@0: 	
sl@0: 	IMPORT_C TLanguage SubtitleLanguageL();
sl@0: 	
sl@0: 	IMPORT_C TArray<TLanguage> SupportedSubtitleLanguagesL();
sl@0: 	
sl@0: 	IMPORT_C void SetSubtitleLanguageL(TLanguage aLanguage);
sl@0: 	
sl@0: 	IMPORT_C void RedrawSubtitle(RWindow& aWindow, const TRect &aRect);
sl@0: #endif //SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
sl@0: 
sl@0: private:
sl@0: 	friend class CTestStepUnitMMFVidClient;
sl@0: 	};
sl@0: 
sl@0: #endif // VIDEOPLAYER2_H