mpx/tsrc/public/basic/common/testplugins/testplaybackplugin/inc/testplaybackplugin.h
author hgs
Tue, 21 Sep 2010 11:25:55 -0500
changeset 62 b276843a15ba
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 - 2007 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 testplaybackplugin interface
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef _CTESTPLAYBACKPLUGIN_H_
hgs
parents:
diff changeset
    19
#define _CTESTPLAYBACKPLUGIN_H_
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
//
hgs
parents:
diff changeset
    22
//  INCLUDES
hgs
parents:
diff changeset
    23
//
hgs
parents:
diff changeset
    24
#include <mpxplaybackplugin.h>
hgs
parents:
diff changeset
    25
#include <mpxplaybackpluginversion2.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
//
hgs
parents:
diff changeset
    29
//  CLASS DECLARATION
hgs
parents:
diff changeset
    30
//
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
/*
hgs
parents:
diff changeset
    33
 *  CTestPlaybackPlugin class
hgs
parents:
diff changeset
    34
 *
hgs
parents:
diff changeset
    35
 */
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
NONSHARABLE_CLASS( CTestPlaybackPlugin ) : public CMPXPlaybackPluginVersion2
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    public:
hgs
parents:
diff changeset
    40
        //
hgs
parents:
diff changeset
    41
        //  Constructors and destructor
hgs
parents:
diff changeset
    42
        //
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
        /*
hgs
parents:
diff changeset
    45
         *  Two-phased constructor.
hgs
parents:
diff changeset
    46
         *  @param aInitParams, initialization parameter
hgs
parents:
diff changeset
    47
         *  @return a pointer to the created instance
hgs
parents:
diff changeset
    48
         */
hgs
parents:
diff changeset
    49
        static CTestPlaybackPlugin* NewL(TAny* aInitParams);
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
        /*
hgs
parents:
diff changeset
    52
         *  Destructor
hgs
parents:
diff changeset
    53
         *  Destroy the object and release all memory objects
hgs
parents:
diff changeset
    54
         */
hgs
parents:
diff changeset
    55
        ~CTestPlaybackPlugin();
hgs
parents:
diff changeset
    56
        
hgs
parents:
diff changeset
    57
        /*
hgs
parents:
diff changeset
    58
         *  Returns the current file handle iFile
hgs
parents:
diff changeset
    59
         */        
hgs
parents:
diff changeset
    60
        RFile GetFileHandle();
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * Initializes a file for playback.
hgs
parents:
diff changeset
    64
        *
hgs
parents:
diff changeset
    65
        * @since S60 9.2
hgs
parents:
diff changeset
    66
        * @param aUri URI of the item
hgs
parents:
diff changeset
    67
        * @param aType the mime type of the item
hgs
parents:
diff changeset
    68
        * @param aAccessPoint the access point
hgs
parents:
diff changeset
    69
        */
hgs
parents:
diff changeset
    70
        void InitStreamingL(const TDesC& aUri, const TDesC8& aType, TInt aAccessPoint);
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
        /**
hgs
parents:
diff changeset
    73
        * Initializes a file handle for playback.
hgs
parents:
diff changeset
    74
        *
hgs
parents:
diff changeset
    75
        * @since S60 9.2
hgs
parents:
diff changeset
    76
        * @param aFile file handle of a file
hgs
parents:
diff changeset
    77
        * @param aAccessPoint the access point
hgs
parents:
diff changeset
    78
        */
hgs
parents:
diff changeset
    79
        void InitStreamingL(RFile& aFile, TInt aAccessPoint);
hgs
parents:
diff changeset
    80
                  
hgs
parents:
diff changeset
    81
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
hgs
parents:
diff changeset
    82
    /**
hgs
parents:
diff changeset
    83
    * Initializes a file handle for playback.
hgs
parents:
diff changeset
    84
    *
hgs
parents:
diff changeset
    85
    * @since S60 9.2
hgs
parents:
diff changeset
    86
    * @param aFile 64 bit file handle of a file
hgs
parents:
diff changeset
    87
    * @param aAccessPoint the access point
hgs
parents:
diff changeset
    88
    */
hgs
parents:
diff changeset
    89
    void InitStreaming64L(RFile64& aFile, TInt aAccessPoint);
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
    /**
hgs
parents:
diff changeset
    92
    * Initializes a song for playback.
hgs
parents:
diff changeset
    93
    *
hgs
parents:
diff changeset
    94
    * @since S60 9.2
hgs
parents:
diff changeset
    95
    * @param aFile 64 bit file handle of a song
hgs
parents:
diff changeset
    96
    */
hgs
parents:
diff changeset
    97
    void Initialise64L(RFile64& aSong);
hgs
parents:
diff changeset
    98
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    private:
hgs
parents:
diff changeset
   101
        //
hgs
parents:
diff changeset
   102
        //  CMPXPlaybackPlugin Implementation
hgs
parents:
diff changeset
   103
        //
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
        /*
hgs
parents:
diff changeset
   106
         *  Set observer
hgs
parents:
diff changeset
   107
         *
hgs
parents:
diff changeset
   108
         *  @param aObs observer
hgs
parents:
diff changeset
   109
         */
hgs
parents:
diff changeset
   110
        void SetObserver( MMPXPlaybackPluginObserver& aObs );
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
        /*
hgs
parents:
diff changeset
   113
         *  Initializes a clip for playback
hgs
parents:
diff changeset
   114
         *  @param aSong the song path
hgs
parents:
diff changeset
   115
         */
hgs
parents:
diff changeset
   116
        void InitialiseL( const TDesC& aSong );
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
        /*
hgs
parents:
diff changeset
   119
         *  Initializes a song for playback
hgs
parents:
diff changeset
   120
         *  @param aFile file handle of a song
hgs
parents:
diff changeset
   121
         */
hgs
parents:
diff changeset
   122
        void InitialiseL( RFile& aFile );
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
        /*
hgs
parents:
diff changeset
   125
         *  Executes a command on the selected song
hgs
parents:
diff changeset
   126
         * @param aCmd a command
hgs
parents:
diff changeset
   127
         * @param aData, data
hgs
parents:
diff changeset
   128
         */
hgs
parents:
diff changeset
   129
        void CommandL( CMPXCommand& aCmd );  
hgs
parents:
diff changeset
   130
        
hgs
parents:
diff changeset
   131
        // Supposedly being deprecated
hgs
parents:
diff changeset
   132
        // We're forced to implement this as its declared as a 
hgs
parents:
diff changeset
   133
        // pure virtual function by the MPX framework        
hgs
parents:
diff changeset
   134
        void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
hgs
parents:
diff changeset
   135
        
hgs
parents:
diff changeset
   136
        /*
hgs
parents:
diff changeset
   137
         *  Sets a property of the plugin
hgs
parents:
diff changeset
   138
         *  @param aProperty a property
hgs
parents:
diff changeset
   139
         *  @param aValue the value of the setting
hgs
parents:
diff changeset
   140
         */
hgs
parents:
diff changeset
   141
        void SetL( TMPXPlaybackProperty aProperty , TInt aValue );
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
        /*
hgs
parents:
diff changeset
   144
         *  Gets a property of the plugin (async)
hgs
parents:
diff changeset
   145
         *  @param aProperty a property
hgs
parents:
diff changeset
   146
         */
hgs
parents:
diff changeset
   147
        void PropertyL( TMPXPlaybackProperty aProperty ) const;
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
        /*
hgs
parents:
diff changeset
   150
         *  Gets a list of sub players
hgs
parents:
diff changeset
   151
         *  @return a list of names of sub players
hgs
parents:
diff changeset
   152
         */
hgs
parents:
diff changeset
   153
        void SubPlayerNamesL();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        /*
hgs
parents:
diff changeset
   156
         *  Select a sub player
hgs
parents:
diff changeset
   157
         *  @param aIndex index to the sub player
hgs
parents:
diff changeset
   158
         */
hgs
parents:
diff changeset
   159
        void SelectSubPlayerL( TInt aIndex );
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
        /*
hgs
parents:
diff changeset
   162
         *  Returns current sub player name
hgs
parents:
diff changeset
   163
         *  @return friendly name of the current the sub player
hgs
parents:
diff changeset
   164
         */
hgs
parents:
diff changeset
   165
        const TDesC& SubPlayerName();
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
        /*
hgs
parents:
diff changeset
   168
         *  Current sub player index
hgs
parents:
diff changeset
   169
         *  @return index to the sub player
hgs
parents:
diff changeset
   170
         */
hgs
parents:
diff changeset
   171
        TInt SubPlayerIndex() const;
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
        /*
hgs
parents:
diff changeset
   174
         *  Media properties of the current file (async)
hgs
parents:
diff changeset
   175
         *  @param aAttrs attributes requested
hgs
parents:
diff changeset
   176
         */
hgs
parents:
diff changeset
   177
        void MediaL( const TArray<TMPXAttribute>& aAttrs );
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
        /*
hgs
parents:
diff changeset
   180
         * Cancel async request
hgs
parents:
diff changeset
   181
         */
hgs
parents:
diff changeset
   182
        void CancelRequest();                          
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
    private:
hgs
parents:
diff changeset
   185
        /*
hgs
parents:
diff changeset
   186
         *  C++ default constructor
hgs
parents:
diff changeset
   187
         */
hgs
parents:
diff changeset
   188
        CTestPlaybackPlugin();
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
        /*
hgs
parents:
diff changeset
   191
         *  the second phase constructor ConstructL to safely construct things
hgs
parents:
diff changeset
   192
         *  that can leave
hgs
parents:
diff changeset
   193
         */
hgs
parents:
diff changeset
   194
        void ConstructL();
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
    private:
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
        HBufC*                        iClipName;
hgs
parents:
diff changeset
   199
        RFs                           iFs;
hgs
parents:
diff changeset
   200
        RFile                         iFile;         
hgs
parents:
diff changeset
   201
};
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
#endif