diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpframework/upnpcommonui/inc/upnpvideoplayerdialog.h --- a/upnpframework/upnpcommonui/inc/upnpvideoplayerdialog.h Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,630 +0,0 @@ -/* -* Copyright (c) 2005-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: Header file for UPnP Video player class implementation -* -*/ - - -#ifndef __UPNP_VIDEOPLAYER_DIALOG_H__ -#define __UPNP_VIDEOPLAYER_DIALOG_H__ - -// INCLUDES -#include -#include "upnpavrenderingsessionobserver.h" -#include //for MRemConCoreApiTargetObserver - -// FORWARD DECLARATIONS -class CCustomCtrlDlgCustomControl; -class MUPnPAVRenderingSession; -class MUPnPAVController; -class CUpnpObject; -class CUpnpAVDevice; -class CUPnPCommonUI; -class MProgressDialogCallback; -class CEikLabel; - -class CAknVolumePopup; -class CRemConCoreApiTarget; -class CRemConInterfaceSelector; -class CUPnPPeriodic; - -/** -* Video player class of Common UI library -*/ -NONSHARABLE_CLASS( CUPnPVideoPlayerDlg ) : public CAknDialog, - public MUPnPAVRenderingSessionObserver, - public MProgressDialogCallback - , public MRemConCoreApiTargetObserver - { - - public: // Constructors and destructor - - /** - * C++ default constructors. - */ - CUPnPVideoPlayerDlg( MUPnPAVRenderingSession& aRenderingSession, - const CUpnpObject& aObject, - CUPnPCommonUI& aCommonUI ); - - - /** - * Two-phased constructors. - */ - static CUPnPVideoPlayerDlg* NewL( - MUPnPAVRenderingSession& aRenderingSession, - const CUpnpObject& aObject, - CUPnPCommonUI& aCommonUI ); - - /** - * Destructor. - */ - virtual ~CUPnPVideoPlayerDlg(); - - public: // Methods from MUPnPAVRenderingSessionObserver - - /** - * UPnP AV Controller calls this method to return the result for the - * 'get volume' request. Parameter contains the volume level of the - * media renderer device to which the 'get volume' request was sent. - * - * @since Series 60 3.1 - * @param aError error code - * @param aVolumeLevel TInt volume level (between 0 - 100) - * @param aActionResponse EFalse if caused by pressing hardware key - * ETrue if caused by rendering session - */ - void VolumeResult( TInt aError, TInt aVolumeLevel, - TBool aActionResponse ); - - /** - * UPnP AV Controller calls this method to indicate that the requested - * interaction operation (play, stop, etc.) is complete. In other - * words, the target rendering device has changed it's state - * accordingly. - * - * @since Series 60 3.1 - * @param aErrorCode TInt error code - * @param aOperation TInt operation (TAVInteractOperation) - * @return None - */ - void InteractOperationComplete( - TInt aErrorCode, - TUPnPAVInteractOperation aOperation ); - - /** - * UPnP AV Controller calls this method to return the result for the - * 'get mute' request. Parameter contains the state of the mute of the - * media renderer device to which the 'get mute' request was sent. - * - * @since Series 60 3.1 - * @param aError error code - * @param aMute TBool the state of the mute (ETrue or EFalse) - * @param aActionResponse EFalse if caused by pressing hardware key - * ETrue if caused by rendering session - */ - void MuteResult( TInt aError, TBool aMute, TBool aActionResponse ); - - /** - * UPnP AV Controller calls this method as a response to Position - * Info action. The current position and the total length of the - * track that is currently playing is returned. The results are in - * (hh:mm:ss) format. - * - * UPnPAVController releases the memory allocated for aTrackPosition - * and aTrackLength. - * - * @since Series 60 3.1 - * @param aStatus TInt error code - * @param aTrackPosition TDesC8& track position - * @param aTrackLength TDesC8& track length - */ - void PositionInfoResult( TInt aError, - const TDesC8& aTrackPosition, - const TDesC8& aTrackLength ); - - /** - * UPnP AV Controller calls this method to return the result for the - * 'set uri' request. - * - * @since Series 60 3.1 - * @param aError error code - * @return None - */ - void SetURIResult( TInt aError ); - - /** - * UPnP AV Controller calls this method to return the result for the - * 'set next uri' request. - * - * @since Series 60 3.1 - * @param aError error code - * @return None - */ - void SetNextURIResult( TInt /*aError*/ ){}; - - /** - * Notifies that the Media Renderer we have a session with has - * disappeared. Session is now unusable and must be closed. - * - * @since Series 60 3.1 - * @return None - */ - void MediaRendererDisappeared( - TUPnPDeviceDisconnectedReason aReason ); - - /** - * Notifies that the Local Media Server has been put on sharing state - * - * @since Series 60 3.1 - * @param aReason reason code - * @return None - */ - void ReserveLocalMSServicesCompleted( TInt /*aError*/ ){}; - - public: // Functions from base classes - - /** - * CreateCustomControlL - * - * Draw this CUPnPVideoPlayerDlg to the screen. - * @param aRect the rectangle of this view that needs updating - */ - SEikControlInfo CreateCustomControlL( TInt aControlType ); - - /** - * From CAknDialog, handles key events. - * @param TKeyEvent, Event to handled. - * @param TEventCode, Type of the key event. - * @return TKeyResponse, response code (EKeyWasConsumed, - * EKeyWasNotConsumed). - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - public: //new function - - /** - * Called from CommonUI to destroy the video dialog itself - * both in single Media server disappears or WLAN lost case - * @since Series 60 3.1 - * @param aError exit reason (KErrSessionClosed and - * KErrDisconnected) - * @return None - */ - void DismissItselfL( TInt aError ); - - /** - * Handle different errors - * @since Series 60 3.1 - * @param exiting reason - * @return none - */ - void HandleErrorL( TInt aError ); - - protected: // Functions from base classes - - /** - * From CoeControl - * @param None - * @return None - */ - void HandleResourceChange(TInt aType); - - /** - * From CAknDialog - * @param None - * @return None - */ - void SizeChanged(); - - protected: // Functions from base classes - - /** - * From CEikDialog, handles layout initialization - * @param None - * @return None - */ - void PreLayoutDynInitL(); - - /** - * From CAknDialog, handles focus changes of the dialog - * @param aButtonId, pressed button id - * @return True if ready to close dialog, False otherwise - */ - TBool OkToExitL( TInt aButtonId ); - - private: // New Functions - - /** - * Updates navi pane - * - * @since Series 60 3.1 - * @param None - * @return None - */ - void UpdateNaviPaneL( ); - - /** - * Check the status pane capabilities. - * - * @since Series 60 3.1 - * @param aPaneId Status pane Id. - * @return indication of success - */ - TBool CheckStatusPaneCapabilities( const TPaneId& aPaneId ); - - /** - * Set navigation label from descriptor. - * - * @since Series 60 3.1 - * @param aText Text to be displayed on the navi label. - * @return none - */ - void SetNaviLabelL( const TDesC& aText ); - - - /** - * UPnP AV Controller calls this method to indicate that the requested - * interaction operation (play, stop, etc.) is complete. In other - * words, the target rendering device has changed it's state - * accordingly. - * - * @since Series 60 3.1 - * @param aErrorCode TInt error code - * @param aOperation TInt operation (TAVInteractOperation) - * @return None - */ - void InteractOperationCompleteL( - TInt aErrorCode, - TUPnPAVInteractOperation aOperation ); - - /** - * UPnP AV Controller calls this method to return the result for the - * 'set uri' request. - * - * @since Series 60 3.1 - * @param aError error code - * @return None - */ - void SetURIResultL( TInt aError ); - - /** - * For set cba string, encapsulation it in this function. - * - * @since Series 60 3.2 - * @param None - * @return None - */ - void ContinueAfterPauseL(); - - private: - - /** - * 2nd phase constructors. - */ - void ConstructL(); - - /** - * Clears dialog title - * - * @since Series 60 3.1 - * @param none - * @return none - */ - void ClearTitleL(); - - /** - * Updates softkey texts - * - * @since Series 60 3.1 - * @param TInt, state - * @return none - */ - void UpdateSoftkeysL(TInt aState); - - /** - * Timer callback for volume indicator hiding. - * - * @since Series 60 3.1 - * @return TInt, error code - */ - static TInt HideVolumeIdicator(TAny* aPtr); - - /** - * Shows volume indicator - * - * @since Series 60 3.1 - * @param none - * @return none - */ - void ShowVolumeIndicatorL(); - - /** - * Timer callback - * - * @since Series 60 3.1 - * @param TAny*, caller - * @return TInt - */ - static TInt TimerIndicatorL(TAny* aPtr); - - /** - * Resolves the target UPnP device capabilites - * @since Series 60 3.1 - * @param None - * @return none - */ - void ResolveTargetDeviceCapabilitiesL(); - - /** - * Stop the video playback wait note - * @since Series 60 3.1 - * @param None - * @return none - */ - void FinishWaitNoteL(); - - /** - * Prepare the video playback - * - * @since Series 60 3.1 - * @param None - * @return None - */ - void PreparePlayBackL(); - - /** - * Start wait note - * - * @since Series 60 3.1 - * @param None - * @return An error code - */ - TInt StartWaitNoteL(); - - /** - * Start displaying timer on the navi pane - * - * @since Series 60 3.1 - * @param None - * @return None - */ - void StartDisplayTimer(); - - /** - * Calls respective observer function - * - * @since Series 60 3.1 - * @param none - * @return none - */ - void DoChangeVolumeL(); - - /** - * Timer callback - * - * @since Series 60 3.1 - * @param TAny*, caller - * @return TInt - */ - static TInt ChangeVolume( TAny* aPtr ); - - public: // Call back methods of MAknProgressDialogCallback - - /** - * ProgressDialog call back method. - * Get's called when a dialog is dismissed. - * - * @since S60 3.1 - * @param aButtonId (TInt) ID of the button pressed - */ - void DialogDismissedL( TInt aButtonId ); - - private:// From MRemConCoreApiTargetObserver - - - /** - * Side volume key API from MRemConCoreApiTargetObserver - * @since 3.2 - * @see MRemConCoreApiTargetObserver - */ - virtual void MrccatoCommand(TRemConCoreApiOperationId aOperationId, - TRemConCoreApiButtonAction aButtonAct ); - private: // Data - - enum TUPnPVideoStates - { - EUPnPVideoPause = 0x600, - EUPnPVideoPlay, - EUPnPVideoStop - }; - - CUPnPPeriodic* iTimer; //owned - CAknNavigationDecorator* iNaviDecorator; //owned - CAknNavigationControlContainer* iNaviPane; // Not owned - - MUPnPAVRenderingSession& iRendSession; //not owned - - const CUpnpObject* iItem; //not owned - const CUpnpAVDevice* iTargetDevice; // Not owned - const CUpnpAVDevice* iSourceDevice; // Not owned - - HBufC* iMinSecFormatString; //owned - HBufC* iHourMinSecFormatString; //owned - HBufC* iTimerNavi; - TInt64 iPlaybackPosInSeconds; - TInt64 iTotalLengthInSeconds; - TInt iCurrentVolume; - TInt iNewVolume; - TInt iTimerRefresh; - - CCustomCtrlDlgCustomControl* iContainer; //not owned - - //Volume adjust indicator - TBool iAdjustingVolume; - // Target device capabilites - TBool iPauseCapability; - TBool iVolumeCapability; - // title text before video player - HBufC* iOriginalTitleText; //owned - - CUPnPCommonUI& iCommonUI; - - TBool iPause; - - // Flag if the remote renderer is playing and the elapsed time needs - // be updated. This means that the renderer has started the playback - // already and it is not in paused state. - TBool iRendererPlaying; - - // The time interval of getting GetPositionInfoL - TInt iGetPositionInfoInterval; - - CUPnPCommonUI::TUPnPAction iAction; - - CAknWaitDialog* iVideoPlaybackWaitNote; // owned; - - TInt iExitCode; - - //ETrue if volume is up, EFalse if volume is down - TBool iVolumeUp; - - TBool iVolumeKeyPressHold; - CUPnPPeriodic* iVolumeTimer; // owned - CAknVolumePopup* iVolumePopup; // owned - - // owned by iInterfaceSelector - CRemConCoreApiTarget* iCoreTarget; - CRemConInterfaceSelector* iInterfaceSelector; // owned - - }; - -////////////////////////////////////////////////////////////////////////////// -// -// -----> CImage (definition) -// -////////////////////////////////////////////////////////////////////////////// -class CImage : public CCoeControl - { - public: - - /** - * C++ default constructor. - */ - CImage(MUPnPAVRenderingSession& aRendSession); - - //destructor - virtual ~CImage(); - - private: // Methods - - /** - * Draws the display - * - * @param TRect&, Rectangle to be drawn - * @return none - */ - void Draw(const TRect& aRect) const; - - /** - * Draws the display - * - * @param TRect&, Rectangle to be drawn - * @return none - */ - void DrawL(const TRect& aRect) const; - - /** - * Draws the label - * - * @param TRect&, Rectangle to be drawn - * @return none - */ - void DrawLabelL(const TRect& aRect) const; - - private: // Data - - // Data members defined and used by this class. - MUPnPAVRenderingSession& iRendSession; - CFbsBitmap* iBitmap; //owned - CFbsBitmap* iMask; //owned - }; - -////////////////////////////////////////////////////////////////////////////// -// -// -----> CCustomCtrlDlgCustomControl (definition) -// -////////////////////////////////////////////////////////////////////////////// -class CCustomCtrlDlgCustomControl : public CCoeControl - { - - public: - - /** - * Construct From Resource. - */ - void ConstructFromResourceL( TResourceReader& aReader ); - - /** - * Sets AV controller - * - * @since Series 60 3.1 - * @param MUPnPAVRenderingSession&, AV controller - * @return none - */ - void SetRenderingSession( MUPnPAVRenderingSession& aAVRendSession ); - - //destructor - virtual ~CCustomCtrlDlgCustomControl(); - - private: - - /** - * Draws the display - * - * @param TRect&, Rectangle to be drawn - * @return none - */ - void Draw( const TRect& aRect ) const; - - /** - * From CAknDialog - * @param none - * @return none - */ - void SizeChanged(); - - /** - * From CAknDialog - * @param none - * @return the number of component controls contained by this control - */ - TInt CountComponentControls() const; - - /** - * From CAknDialog - * @param the index of the control to get - * @return the component control with an index of aIndex - */ - CCoeControl* ComponentControl(TInt aIndex) const; - - private: - - // Data members defined and used by this class. - CImage* iImage; //owned - MUPnPAVRenderingSession* iRendSession; //not owned - - }; - -#endif // __UPNP_VIDEOPLAYER_DIALOG_H__