mtpdataproviders/mtpplaybackcontroldp/mtpplaybackmpximplementation/inc/cmtpplaybackcontrolimpl.h
author hgs
Fri, 03 Sep 2010 18:38:04 +0800
changeset 49 c20dd21d1eb4
parent 29 3ae5cb0b4c02
permissions -rw-r--r--
201035_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     2
// All rights reserved.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     7
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    10
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    11
// Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    12
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    13
// Description:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    14
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    15
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    16
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    17
 @file
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    18
 @internalComponent
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    19
*/
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    21
#ifndef CMTPPLAYBACKCONTROLIMPL_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    22
#define CMTPPLAYBACKCONTROLIMPL_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    23
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
#include <mpxplaybackobserver.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
#include "mmtpplaybackinterface.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
#include "mtpplaybackcontrolconst.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
class MMPXPlaybackUtility;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
class CMPXCollectionPath;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
class CMPXCollectionPlaylist;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
class CMTPPlaybackCommandChecker;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
class CMTPPlaybackPlaylistHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
class CMTPPlaybackResumeHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
class CMTPPlaybackCommand;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
class CMTPPbCmdParam;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
NONSHARABLE_CLASS( CMTPPlaybackControlImpl ) : public CActive,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
                                               public MMPXPlaybackObserver,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
                                               public MMPXPlaybackCallback,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
                                               public MMTPPlaybackControl
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
    friend class CMTPPlaybackCommandChecker;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
    friend class CMTPPlaybackPlaylistHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
    friend class CMTPPlaybackResumeHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
public: // Constructors and destructor
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
     * Two-phased constructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
    static CMTPPlaybackControlImpl* NewL( MMTPPlaybackObserver& aObserver );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
    *  Frees resource, and destroy the object itself.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
    void Close();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
     * Destructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
    virtual ~CMTPPlaybackControlImpl();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
public:    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
     * From MMTPPlaybackControl
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
     * @param aCmd, refer to CMTPPlaybackCommand
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
     * @param aCallback, refer to MMTPPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    void CommandL( CMTPPlaybackCommand& aCmd, 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
            MMTPPlaybackCallback* aCallback = NULL);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
	
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
     * From MMPXPlaybackObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
     * See mpxplaybackobserver.h for detailed description.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
    void HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
     * From MMPXPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
     * See mpxplaybackobserver.h for detailed description.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
    void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
     * From MMPXPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
     * See mpxplaybackobserver.h for detailed description.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
    void HandleSubPlayerNamesL( TUid aPlayer, const MDesCArray* aSubPlayers, TBool aComplete, TInt aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
     * From MMPXPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
     * See mpxplaybackobserver.h for detailed description.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
    void HandleMediaL( const CMPXMedia& aMedia, TInt aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
private:// From CActive
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
     * DoCancel.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
    void DoCancel();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
     * RunL.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
    void RunL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
     * C++ default constructor.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
    CMTPPlaybackControlImpl( MMTPPlaybackObserver& aObserver );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
     * By default Symbian 2nd phase constructor is private.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
    void ConstructL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
     * Get Playlist from collection complete..
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
    void GetPlaylistFromCollectionCompleteL( const CMPXCollectionPlaylist& aPlaylist );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
     * Deactive other player so that we can play
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
    void DeActiveOtherPlayerL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   136
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   137
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   138
     * Check playback command and cache
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   139
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   140
    void CheckPlaybackCmdAndCacheL( CMTPPlaybackCommand& aCmd );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   141
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   142
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   143
     * UpdateCommandArrary
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   144
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   145
    void UpdateCommandArray();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   146
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   147
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   148
     * Require current media
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   149
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   150
    void RequestMediaL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   151
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   152
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   153
     * Handle commandL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   154
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   155
    void DoCommandL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   156
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   157
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   158
     *  Handle playback message
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   159
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   160
     *  @param aMessage playback message
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   161
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   162
    void DoHandlePlaybackMessageL( const CMPXMessage& aMessage );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   163
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   164
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   165
     *  Handle playback property
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   166
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   167
     *  @param aProperty the property
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   168
     *  @param aValue the value of the property
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   169
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   170
    void DoHandlePropertyL( TInt aProperty, TInt aValue );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   171
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   172
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   173
     *  Handle playback state changed.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   174
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   175
     *  @param aState New Playback state
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   176
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   177
    void DoHandleStateChangedL( TMPXPlaybackState aState );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   178
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   179
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   180
     *  Handle request media.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   181
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   182
    void DoHandleMediaL( const CMPXMedia& aMedia );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   183
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   184
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   185
     *  Handle Media changed.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   186
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   187
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   188
    void DoHandleMediaChangedL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   189
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   190
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   191
     *  Handle Initialize Complete.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   192
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   193
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   194
    void DoHandleInitializeCompleteL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   195
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   196
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   197
     *  Handle error.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   198
     *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   199
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   200
    void DoHandleError( TInt aErr );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   201
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   202
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   203
     * Compare two path
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   204
     * @param aPathBase the base path
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   205
     * @param aPathNew the new path
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   206
     * @param aLevel compare level
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   207
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   208
    TBool IfEqual( const CMPXCollectionPath& aPathBase, const CMPXCollectionPath& aPathNew, TUint aLevel );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   209
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   210
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   211
    *  Map states from TMPXPlaybackState to TMPlayerState
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   212
    *
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   213
    *  @param aState State in TMPXPlaybackState format
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   214
    *  @return State in TMPlayerState format
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   215
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   216
    TMTPPlaybackState MapState( TMPXPlaybackState aState );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   217
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   218
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   219
    *  Map error from TInt to the error defined in interface
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   220
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   221
    TInt MapError( TInt error );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   222
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   223
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   224
     *Complete a sync request
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   225
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   226
    void CompleteSelf( TInt aCompletionCode );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   227
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   228
    /*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   229
     * Initiate MPX Playback Command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   230
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   231
    void InitiateMPXPlaybackCommandL( TMPXPlaybackCommand aCommand, TBool aIsMTPPlaybackUtility );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   232
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   233
    /*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   234
     * SendMPXPlaybackCommandL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   235
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   236
    void SendMPXPlaybackCommandL( TMPXPlaybackCommand aCommand, TBool aIsMTPPlaybackUtility );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   237
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   238
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   239
    /*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   240
     * SendPlaybackCommandCompleteL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   241
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   242
    void SendPlaybackCommandCompleteL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   243
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   244
    /*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   245
     * SendPlaybackEventL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   246
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   247
    void SendPlaybackEventL( TMTPPlaybackEvent aEvt );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   248
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   249
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   250
     * Reset playback command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   251
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   252
    void ResetPlaybackCommand();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   253
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   254
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   255
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   256
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   257
     * return current state.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   258
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   259
    TMPXPlaybackState CurrentState() const;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   260
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   261
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   262
     * return previous state.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   263
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   264
    TMPXPlaybackState PreviousState() const;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   265
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   266
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   267
     * return song count.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   268
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   269
    TInt32 SongCount() const;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   270
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   271
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   272
     * return song index.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   273
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   274
    TInt32 SongIndex() const;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   275
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   276
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   277
     * Cache mtp playback command.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   278
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   279
    void SetMTPPBCmd( TMTPPlaybackCommand aMTPPBCmd );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   280
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   281
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   282
     * return mtp playback command.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   283
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   284
    TMTPPlaybackCommand MTPPBCmdHandling() const;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   285
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   286
private:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   287
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   288
    MMTPPlaybackObserver*        iObserver;// Not owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   289
    MMTPPlaybackCallback*        iCallback;// Not owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   290
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   291
    MMPXPlaybackUtility*         iPlaybackUtility;// Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   292
    MMPXPlaybackUtility*         iNowActivePlaybackUtility;// Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   293
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   294
    CMTPPlaybackCommandChecker*  iPlaybackCommandChecker;//Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   295
    CMTPPlaybackPlaylistHelper*  iPlaybackPlaylistHelper;//Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   296
    CMTPPlaybackResumeHelper*    iPlaybackResumeHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   297
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   298
    CMPXCollectionPlaylist*      iPlayList;   //Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   299
    RResumeCmdArray              iPrepareCmdArray;//Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   300
    RResumeCmdArray              iResumeCmdArray;//Owned
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   301
    CMTPPbCmdParam*              iCmdParam;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   302
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   303
    TMTPPlaybackCommand          iMTPPBCmd;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   304
    TMPXPlaybackState            iPreState;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   305
    TMPXPlaybackState            iState;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   306
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   307
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   308
#endif // CMTPPLAYBACKCONTROLIMPL_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   309
// End of File