videoplayback/videoplaybackview/viewinc/videoplaybackuserinputhandler.h
author hgs
Mon, 23 Aug 2010 14:27:29 +0300
changeset 55 4bfa887905cf
child 58 d2b028fd1f7d
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Implementation of VideoPlaybackUserInputHandler
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// Version : %version:  7 %
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef VIDEOPLAYBACKUSERINPUTHANDLER_H_
hgs
parents:
diff changeset
    23
#define VIDEOPLAYBACKUSERINPUTHANDLER_H_
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// INCLUDES
hgs
parents:
diff changeset
    26
#include <remconcoreapitargetobserver.h> // Side volume key
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    30
class CRemConInterfaceSelector; // Side volume key
hgs
parents:
diff changeset
    31
class CRemConCoreApiTarget;
hgs
parents:
diff changeset
    32
class CMPXVideoViewWrapper;
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
// CLASS DECLARATION
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
class CVideoPlaybackUserInputHandler : public CBase,
hgs
parents:
diff changeset
    37
                                       public MRemConCoreApiTargetObserver
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    public: // Constructors and destructor
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
        /**
hgs
parents:
diff changeset
    42
        * Two-phased constructor.
hgs
parents:
diff changeset
    43
        */
hgs
parents:
diff changeset
    44
        static CVideoPlaybackUserInputHandler* NewL(
hgs
parents:
diff changeset
    45
                CMPXVideoViewWrapper* aWrapper, TBool aTvOutConnected );
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
        /**
hgs
parents:
diff changeset
    48
        * Destructor.
hgs
parents:
diff changeset
    49
        */
hgs
parents:
diff changeset
    50
        virtual ~CVideoPlaybackUserInputHandler();
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
    private:
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
        /**
hgs
parents:
diff changeset
    55
        * C++ default constructor.
hgs
parents:
diff changeset
    56
        */
hgs
parents:
diff changeset
    57
        CVideoPlaybackUserInputHandler( CMPXVideoViewWrapper* aWrapper );
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
        /**
hgs
parents:
diff changeset
    60
        * Symbian 2nd phase constructor.
hgs
parents:
diff changeset
    61
        */
hgs
parents:
diff changeset
    62
        void ConstructL( TBool aTvOutConnected );
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    public:
hgs
parents:
diff changeset
    65
        void ProcessKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
	    void ProcessMediaKey( TRemConCoreApiOperationId aOperationId,
hgs
parents:
diff changeset
    68
                              TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
	    void DoHandleMediaKey( TRemConCoreApiOperationId aOperationId,
hgs
parents:
diff changeset
    71
                               TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
        // From MRemConCoreApiTargetObserver
hgs
parents:
diff changeset
    74
        /**
hgs
parents:
diff changeset
    75
        * Side volume key API from MRemConCoreApiTargetObserver
hgs
parents:
diff changeset
    76
        * @since 3.2
hgs
parents:
diff changeset
    77
        * @see MRemConCoreApiTargetObserver
hgs
parents:
diff changeset
    78
        */
hgs
parents:
diff changeset
    79
        virtual void MrccatoPlay(
hgs
parents:
diff changeset
    80
                TRemConCoreApiPlaybackSpeed aSpeed,
hgs
parents:
diff changeset
    81
                TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
        virtual void MrccatoCommand(
hgs
parents:
diff changeset
    84
                TRemConCoreApiOperationId aOperationId,
hgs
parents:
diff changeset
    85
                TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
        /**
hgs
parents:
diff changeset
    88
        * Setter method for iForeground
hgs
parents:
diff changeset
    89
        * @param aForeground - the value to be set
hgs
parents:
diff changeset
    90
        * @return void
hgs
parents:
diff changeset
    91
        */
hgs
parents:
diff changeset
    92
        void SetForeground( TBool aForeground );
hgs
parents:
diff changeset
    93
 
hgs
parents:
diff changeset
    94
        void HandleTVOutEventL( TBool aTVOutConnected );
hgs
parents:
diff changeset
    95
                
hgs
parents:
diff changeset
    96
	private:
hgs
parents:
diff changeset
    97
        /**
hgs
parents:
diff changeset
    98
        * Handles volume repeat timer timout
hgs
parents:
diff changeset
    99
        * @return TInt
hgs
parents:
diff changeset
   100
        */
hgs
parents:
diff changeset
   101
        static TInt HandleVolumeRepeatTimeoutL( TAny* aPtr );
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * Adjust volume(+1/-1) for media key
hgs
parents:
diff changeset
   105
        * @return void
hgs
parents:
diff changeset
   106
        */
hgs
parents:
diff changeset
   107
        void HandleVolumeRepeatL();
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        void HandleFastForward( TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
        void HandleRewind( TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
        void HandleVolumeUp( TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        void HandleVolumeDown( TRemConCoreApiButtonAction aButtonAct );
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
        // Handles the Display light timer timeout
hgs
parents:
diff changeset
   118
        static TInt  HandleDisplayTimeout( TAny* aPtr );
hgs
parents:
diff changeset
   119
        
hgs
parents:
diff changeset
   120
        // Disable the display backlight
hgs
parents:
diff changeset
   121
        void DisableBacklight();
hgs
parents:
diff changeset
   122
        
hgs
parents:
diff changeset
   123
        // Enable the display backlight
hgs
parents:
diff changeset
   124
        void EnableBacklight();
hgs
parents:
diff changeset
   125
        
hgs
parents:
diff changeset
   126
        // Restarts the timer for display light time-out
hgs
parents:
diff changeset
   127
        void RestartDisplayTimer();
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
    private:
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
        TVideoUserInputType                     iProcessingInputType; 	// the type of input being processed
hgs
parents:
diff changeset
   132
        TUint                                   iLastPressedKeyCode;     // keycode of last key that sent EEventKeyDown
hgs
parents:
diff changeset
   133
        TInt                                    iLastPressedKeyScanCode; // scancode of last key that sent EEventKeyDown
hgs
parents:
diff changeset
   134
        TRemConCoreApiOperationId               iLastMediaKeyPressed;    // Id of last mediakey thats sent a button-press
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
        CRemConInterfaceSelector*               iInterfaceSelector; 		// Side volume key, owned
hgs
parents:
diff changeset
   137
        CRemConCoreApiTarget*                   iCoreTarget;            // Owned by CRemConInterfaceSelector
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
        CPeriodic*                              iVolumeRepeatTimer;     // owned
hgs
parents:
diff changeset
   140
        TBool                                   iVolumeRepeatUp;
hgs
parents:
diff changeset
   141
        TBool                                   iTVOutConnected;        // Flag to indicate if TV is connected
hgs
parents:
diff changeset
   142
        CPeriodic*                              iDisplayTimer;          // Timer to timeout the lights time-out
hgs
parents:
diff changeset
   143
        TInt                                    iDisplayTimeOut;        // Value of the lights time-out
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
        TBool                                   iForeground;
hgs
parents:
diff changeset
   146
        CMPXVideoViewWrapper*                   iViewWrapper;
hgs
parents:
diff changeset
   147
};
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
#endif /*VIDEOPLAYBACKUSERINPUTHANDLER_H_*/
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
// End of File