mpx/tsrc/public/basic/common/testplugins/testcollectionplugin/inc/testcollectionplugin.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 testcollectionplugin interface
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef TESTCOLLECTIONPLUGIN_H
hgs
parents:
diff changeset
    19
#define TESTCOLLECTIONPLUGIN_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// INCLUDES
hgs
parents:
diff changeset
    22
#include <mpxcommonframeworkdefs.h>
hgs
parents:
diff changeset
    23
#include <mpxcollectionframeworkdefs.h>
hgs
parents:
diff changeset
    24
#include <mpxmessagegeneraldefs.h>
hgs
parents:
diff changeset
    25
#include <mpxcollectionmessagedefs.h>
hgs
parents:
diff changeset
    26
#include <mpxcollectionplugin.h>
hgs
parents:
diff changeset
    27
#include <mpxcollectionpath.h>
hgs
parents:
diff changeset
    28
#include <mpxmediageneraldefs.h>
hgs
parents:
diff changeset
    29
#include <mpxmessage2.h>
hgs
parents:
diff changeset
    30
#include <badesca.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    33
class CMPXMedia;
hgs
parents:
diff changeset
    34
class CMPXMediaArray;
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// CONSTANTS
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// CLASS DECLARATION
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
/**
hgs
parents:
diff changeset
    41
*  CCollectionTestPlugin class 
hgs
parents:
diff changeset
    42
*
hgs
parents:
diff changeset
    43
*/
hgs
parents:
diff changeset
    44
NONSHARABLE_CLASS(CTestCollectionPlugin) : public CMPXCollectionPlugin
hgs
parents:
diff changeset
    45
    {
hgs
parents:
diff changeset
    46
public: // Constructors and destructor
hgs
parents:
diff changeset
    47
    
hgs
parents:
diff changeset
    48
    /**
hgs
parents:
diff changeset
    49
    * Two-phased constructor
hgs
parents:
diff changeset
    50
    * @param aInitParams: initialization parameters
hgs
parents:
diff changeset
    51
    * @return: object constructed
hgs
parents:
diff changeset
    52
    */
hgs
parents:
diff changeset
    53
    static CTestCollectionPlugin* NewL (TAny* aInitParams);
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    /**
hgs
parents:
diff changeset
    56
    * Destructor
hgs
parents:
diff changeset
    57
    */
hgs
parents:
diff changeset
    58
    virtual ~CTestCollectionPlugin();
hgs
parents:
diff changeset
    59
    
hgs
parents:
diff changeset
    60
public: // from base clase
hgs
parents:
diff changeset
    61
    /** 
hgs
parents:
diff changeset
    62
    * From CMPXCollectionPlugin
hgs
parents:
diff changeset
    63
    * Navigates to the given path
hgs
parents:
diff changeset
    64
    * @param aPath: a path
hgs
parents:
diff changeset
    65
    * @param aAttrs, attributes requested
hgs
parents:
diff changeset
    66
    * @param aFilter, filter to apply or NULL if none
hgs
parents:
diff changeset
    67
    */
hgs
parents:
diff changeset
    68
    void OpenL(const CMPXCollectionPath& aPath,
hgs
parents:
diff changeset
    69
               const TArray<TMPXAttribute>& aAttrs,
hgs
parents:
diff changeset
    70
               CMPXFilter* aFilter); 
hgs
parents:
diff changeset
    71
    
hgs
parents:
diff changeset
    72
    /**
hgs
parents:
diff changeset
    73
    * From CMPXCollectionPlugin     
hgs
parents:
diff changeset
    74
    * Get the extended properties of the current file (async)
hgs
parents:
diff changeset
    75
    * @param aPath: a path   
hgs
parents:
diff changeset
    76
    * @param aAttrs: array of attributes requested             
hgs
parents:
diff changeset
    77
    * @param aCaps platsec capabilities of client requesting media; plug-in should also
hgs
parents:
diff changeset
    78
    *        verify its process capabilities
hgs
parents:
diff changeset
    79
    * @aParam aSpecs, specifications for attributes
hgs
parents:
diff changeset
    80
    */
hgs
parents:
diff changeset
    81
    void MediaL(const CMPXCollectionPath& aPath, 
hgs
parents:
diff changeset
    82
                const TArray<TMPXAttribute>& aAttrs,
hgs
parents:
diff changeset
    83
                const TArray<TCapability>& aCaps,
hgs
parents:
diff changeset
    84
                CMPXAttributeSpecs* aSpecs);
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    /**
hgs
parents:
diff changeset
    87
    * From CMPXCollectionPlugin     
hgs
parents:
diff changeset
    88
    * Cancel outstanding request
hgs
parents:
diff changeset
    89
    */
hgs
parents:
diff changeset
    90
    void CancelRequest ();
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
    /** 
hgs
parents:
diff changeset
    93
    * From CMPXCollectionPlugin    
hgs
parents:
diff changeset
    94
    * Executes the given command on the collection
hgs
parents:
diff changeset
    95
    * @param aCmd: a command
hgs
parents:
diff changeset
    96
    * @param aArg: a Argument
hgs
parents:
diff changeset
    97
    */
hgs
parents:
diff changeset
    98
    void CommandL (TMPXCollectionCommand aCmd, TInt aArg);
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    /** 
hgs
parents:
diff changeset
   101
    * From CMPXCollectionPlugin      
hgs
parents:
diff changeset
   102
    * Executes a command
hgs
parents:
diff changeset
   103
    *
hgs
parents:
diff changeset
   104
    * @param aCmd a command
hgs
parents:
diff changeset
   105
    */
hgs
parents:
diff changeset
   106
    void CommandL(CMPXCommand& aCmd);
hgs
parents:
diff changeset
   107
            
hgs
parents:
diff changeset
   108
    /**
hgs
parents:
diff changeset
   109
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   110
    * Adds an item (song or playlist) to the collection
hgs
parents:
diff changeset
   111
    * @param aMedia: Properties of the item
hgs
parents:
diff changeset
   112
    */
hgs
parents:
diff changeset
   113
    void AddL (const CMPXMedia& aMedia);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    /**
hgs
parents:
diff changeset
   116
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   117
    * Remove an item from the collection database using the given path
hgs
parents:
diff changeset
   118
    * Note that the selection indicies are hidden within the path
hgs
parents:
diff changeset
   119
    * @param aPath: path to the item to be removed
hgs
parents:
diff changeset
   120
    * 
hgs
parents:
diff changeset
   121
    */
hgs
parents:
diff changeset
   122
    void RemoveL (const CMPXCollectionPath& aPath);
hgs
parents:
diff changeset
   123
    
hgs
parents:
diff changeset
   124
    /**
hgs
parents:
diff changeset
   125
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   126
    *  Remove an item from the collection database using the given media properties
hgs
parents:
diff changeset
   127
    *  @param aMedia: Properties of the item that is to be removed. It may cantain URI only
hgs
parents:
diff changeset
   128
    *                 or meta data, all of items matched properties will be removed.
hgs
parents:
diff changeset
   129
    */
hgs
parents:
diff changeset
   130
    void RemoveL (const CMPXMedia& aMedia);
hgs
parents:
diff changeset
   131
    
hgs
parents:
diff changeset
   132
    /**
hgs
parents:
diff changeset
   133
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   134
    *  Sets/updates the media for an item in the collection
hgs
parents:
diff changeset
   135
    *  @param aMedia: new property values for the item
hgs
parents:
diff changeset
   136
    */
hgs
parents:
diff changeset
   137
    void SetL (const CMPXMedia& aMedia);
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    /**
hgs
parents:
diff changeset
   140
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   141
    *  Find the items matching the media specifications 
hgs
parents:
diff changeset
   142
    *  @param aCriteria: Properties of the item that is to be found
hgs
parents:
diff changeset
   143
    *  @param aAttrs: Requested attributes to return   
hgs
parents:
diff changeset
   144
    */
hgs
parents:
diff changeset
   145
    void FindAllL (const CMPXMedia& aCriteria, const TArray<TMPXAttribute>& aAttrs);
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
    /**
hgs
parents:
diff changeset
   148
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   149
    *  Find the items matching the media specifications 
hgs
parents:
diff changeset
   150
    *  @param aCriteria: Properties of the item that is to be found
hgs
parents:
diff changeset
   151
    *  @param aAttrs: Requested attributes to return 
hgs
parents:
diff changeset
   152
    *  @return results of the search
hgs
parents:
diff changeset
   153
    */
hgs
parents:
diff changeset
   154
    CMPXMedia* FindAllSyncL(const CMPXMedia& aCriteria,
hgs
parents:
diff changeset
   155
                            const TArray<TMPXAttribute>& aAttrs);
hgs
parents:
diff changeset
   156
                                        
hgs
parents:
diff changeset
   157
    /**
hgs
parents:
diff changeset
   158
    * From CMPXCollectionPlugin        
hgs
parents:
diff changeset
   159
    * Get the list of supported capabilities
hgs
parents:
diff changeset
   160
    * @return: TCollectionCapability, bitmask of supported capabilities
hgs
parents:
diff changeset
   161
    */
hgs
parents:
diff changeset
   162
    TCollectionCapability GetCapabilities ();    
hgs
parents:
diff changeset
   163
                
hgs
parents:
diff changeset
   164
private:
hgs
parents:
diff changeset
   165
    /**
hgs
parents:
diff changeset
   166
    * Constructor
hgs
parents:
diff changeset
   167
    */
hgs
parents:
diff changeset
   168
    CTestCollectionPlugin ();
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    /**
hgs
parents:
diff changeset
   171
    * Symbian 2nd phase constructor.
hgs
parents:
diff changeset
   172
    */
hgs
parents:
diff changeset
   173
    void ConstructL ();
hgs
parents:
diff changeset
   174
    
hgs
parents:
diff changeset
   175
    /**
hgs
parents:
diff changeset
   176
    * Append media into aMediaArray base on aIdArray Info
hgs
parents:
diff changeset
   177
    */
hgs
parents:
diff changeset
   178
    void AddMediaL(CMPXMediaArray& aMediaArray, 
hgs
parents:
diff changeset
   179
                   const RArray<TInt> aIdArray, 
hgs
parents:
diff changeset
   180
                   const TArray<TMPXAttribute>& aAttrs);
hgs
parents:
diff changeset
   181
    
hgs
parents:
diff changeset
   182
    /**
hgs
parents:
diff changeset
   183
    * Add specify attribute to Media
hgs
parents:
diff changeset
   184
    */
hgs
parents:
diff changeset
   185
    void AddAttrbuteL(CMPXMedia& aMedia, 
hgs
parents:
diff changeset
   186
                      const TInt aId,
hgs
parents:
diff changeset
   187
                      const TDesC& aTitle,
hgs
parents:
diff changeset
   188
                      const TDesC& aUri,
hgs
parents:
diff changeset
   189
                      const TArray<TMPXAttribute>& aAttrs);
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
    /**
hgs
parents:
diff changeset
   192
    * Add specify attribute to Media specific for Playback framework
hgs
parents:
diff changeset
   193
    * test cases
hgs
parents:
diff changeset
   194
    */
hgs
parents:
diff changeset
   195
    void AddAttributePlaybackFwTestL(CMPXMedia& aMedia, 
hgs
parents:
diff changeset
   196
                                     const TInt aId,
hgs
parents:
diff changeset
   197
                                     const TArray<TMPXAttribute>& aAttrs);
hgs
parents:
diff changeset
   198
    /**
hgs
parents:
diff changeset
   199
    * Filter out media in aMediaArray which match any one attribute in aFilter
hgs
parents:
diff changeset
   200
    */                  
hgs
parents:
diff changeset
   201
    void FilterMediaArray(CMPXMediaArray& aMediaArray, CMPXFilter* aFilter);
hgs
parents:
diff changeset
   202
    
hgs
parents:
diff changeset
   203
    /**
hgs
parents:
diff changeset
   204
    * Fill up media with change message
hgs
parents:
diff changeset
   205
    */
hgs
parents:
diff changeset
   206
    void FillItemChangeMessageL(CMPXMessage& aMessage,
hgs
parents:
diff changeset
   207
                                TMPXItemId aId,
hgs
parents:
diff changeset
   208
                                TMPXChangeEventType aChangeType,
hgs
parents:
diff changeset
   209
                                TMPXGeneralCategory aCategory);
hgs
parents:
diff changeset
   210
                                
hgs
parents:
diff changeset
   211
    /**
hgs
parents:
diff changeset
   212
    * Adding specific attribute
hgs
parents:
diff changeset
   213
    */
hgs
parents:
diff changeset
   214
    void AddAttributeGeneralTypeL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   215
    void AddAttributeGeneralCategoryL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   216
    void AddAttributeGeneralDurationL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   217
    void AddAttributeGeneralLastPlaybackPositionL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   218
    void AddAttributeMusicArtistL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   219
    void AddAttributeDrmTypeL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   220
    void AddAttributeDrmProtectedL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   221
    void AddAttributeDrmRightsStatusL(CMPXMedia& aMedia, const TInt aId);
hgs
parents:
diff changeset
   222
    
hgs
parents:
diff changeset
   223
private:    // data
hgs
parents:
diff changeset
   224
    };
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
#endif   // TESTCOLLECTIONPLUGIN_H
hgs
parents:
diff changeset
   227
            
hgs
parents:
diff changeset
   228