mpx/tsrc/public/basic/common/testplugins/testcollectionplugin/inc/testcollectionplugin.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/tsrc/public/basic/common/testplugins/testcollectionplugin/inc/testcollectionplugin.h Tue Sep 21 11:25:55 2010 -0500
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2002 - 2007 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: Implementation of testcollectionplugin interface
+*
+*/
+
+#ifndef TESTCOLLECTIONPLUGIN_H
+#define TESTCOLLECTIONPLUGIN_H
+
+// INCLUDES
+#include <mpxcommonframeworkdefs.h>
+#include <mpxcollectionframeworkdefs.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxcollectionmessagedefs.h>
+#include <mpxcollectionplugin.h>
+#include <mpxcollectionpath.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxmessage2.h>
+#include <badesca.h>
+
+// FORWARD DECLARATIONS
+class CMPXMedia;
+class CMPXMediaArray;
+
+// CONSTANTS
+
+// CLASS DECLARATION
+
+/**
+* CCollectionTestPlugin class
+*
+*/
+NONSHARABLE_CLASS(CTestCollectionPlugin) : public CMPXCollectionPlugin
+ {
+public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor
+ * @param aInitParams: initialization parameters
+ * @return: object constructed
+ */
+ static CTestCollectionPlugin* NewL (TAny* aInitParams);
+
+ /**
+ * Destructor
+ */
+ virtual ~CTestCollectionPlugin();
+
+public: // from base clase
+ /**
+ * From CMPXCollectionPlugin
+ * Navigates to the given path
+ * @param aPath: a path
+ * @param aAttrs, attributes requested
+ * @param aFilter, filter to apply or NULL if none
+ */
+ void OpenL(const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ CMPXFilter* aFilter);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Get the extended properties of the current file (async)
+ * @param aPath: a path
+ * @param aAttrs: array of attributes requested
+ * @param aCaps platsec capabilities of client requesting media; plug-in should also
+ * verify its process capabilities
+ * @aParam aSpecs, specifications for attributes
+ */
+ void MediaL(const CMPXCollectionPath& aPath,
+ const TArray<TMPXAttribute>& aAttrs,
+ const TArray<TCapability>& aCaps,
+ CMPXAttributeSpecs* aSpecs);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Cancel outstanding request
+ */
+ void CancelRequest ();
+
+ /**
+ * From CMPXCollectionPlugin
+ * Executes the given command on the collection
+ * @param aCmd: a command
+ * @param aArg: a Argument
+ */
+ void CommandL (TMPXCollectionCommand aCmd, TInt aArg);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Executes a command
+ *
+ * @param aCmd a command
+ */
+ void CommandL(CMPXCommand& aCmd);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Adds an item (song or playlist) to the collection
+ * @param aMedia: Properties of the item
+ */
+ void AddL (const CMPXMedia& aMedia);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Remove an item from the collection database using the given path
+ * Note that the selection indicies are hidden within the path
+ * @param aPath: path to the item to be removed
+ *
+ */
+ void RemoveL (const CMPXCollectionPath& aPath);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Remove an item from the collection database using the given media properties
+ * @param aMedia: Properties of the item that is to be removed. It may cantain URI only
+ * or meta data, all of items matched properties will be removed.
+ */
+ void RemoveL (const CMPXMedia& aMedia);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Sets/updates the media for an item in the collection
+ * @param aMedia: new property values for the item
+ */
+ void SetL (const CMPXMedia& aMedia);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Find the items matching the media specifications
+ * @param aCriteria: Properties of the item that is to be found
+ * @param aAttrs: Requested attributes to return
+ */
+ void FindAllL (const CMPXMedia& aCriteria, const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Find the items matching the media specifications
+ * @param aCriteria: Properties of the item that is to be found
+ * @param aAttrs: Requested attributes to return
+ * @return results of the search
+ */
+ CMPXMedia* FindAllSyncL(const CMPXMedia& aCriteria,
+ const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * From CMPXCollectionPlugin
+ * Get the list of supported capabilities
+ * @return: TCollectionCapability, bitmask of supported capabilities
+ */
+ TCollectionCapability GetCapabilities ();
+
+private:
+ /**
+ * Constructor
+ */
+ CTestCollectionPlugin ();
+
+ /**
+ * Symbian 2nd phase constructor.
+ */
+ void ConstructL ();
+
+ /**
+ * Append media into aMediaArray base on aIdArray Info
+ */
+ void AddMediaL(CMPXMediaArray& aMediaArray,
+ const RArray<TInt> aIdArray,
+ const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * Add specify attribute to Media
+ */
+ void AddAttrbuteL(CMPXMedia& aMedia,
+ const TInt aId,
+ const TDesC& aTitle,
+ const TDesC& aUri,
+ const TArray<TMPXAttribute>& aAttrs);
+
+ /**
+ * Add specify attribute to Media specific for Playback framework
+ * test cases
+ */
+ void AddAttributePlaybackFwTestL(CMPXMedia& aMedia,
+ const TInt aId,
+ const TArray<TMPXAttribute>& aAttrs);
+ /**
+ * Filter out media in aMediaArray which match any one attribute in aFilter
+ */
+ void FilterMediaArray(CMPXMediaArray& aMediaArray, CMPXFilter* aFilter);
+
+ /**
+ * Fill up media with change message
+ */
+ void FillItemChangeMessageL(CMPXMessage& aMessage,
+ TMPXItemId aId,
+ TMPXChangeEventType aChangeType,
+ TMPXGeneralCategory aCategory);
+
+ /**
+ * Adding specific attribute
+ */
+ void AddAttributeGeneralTypeL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeGeneralCategoryL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeGeneralDurationL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeGeneralLastPlaybackPositionL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeMusicArtistL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeDrmTypeL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeDrmProtectedL(CMPXMedia& aMedia, const TInt aId);
+ void AddAttributeDrmRightsStatusL(CMPXMedia& aMedia, const TInt aId);
+
+private: // data
+ };
+
+#endif // TESTCOLLECTIONPLUGIN_H
+
+