mmappfw_plat/collection_helper_api/inc/mpxcollectionhelper.h
changeset 0 a2952bb97e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/collection_helper_api/inc/mpxcollectionhelper.h	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 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:  Collection helper abstract interface
+*
+*/
+
+
+
+#ifndef MMPXCOLLECTIONHELPER_H
+#define MMPXCOLLECTIONHELPER_H
+
+#include <mpxmediageneraldefs.h>
+#include <mpxcollectionhelperobserver.h>
+
+// FORWARD DECLARATIONS
+class CMPXMedia;
+class TMPXAttribute;
+
+/**
+ *  Abstract class for collection helper. Use this class to add or remove songs and playlists from
+ *  Music Player and Podcast app.
+ *
+ *  @lib mpxcollectionhelper.lib
+ */
+class MMPXCollectionHelper
+    {
+
+public:
+    /**
+    * Add an item based on file path and use the harvester to parse the file.
+    * On completion MMPXCollectionHelperObserver::HandleAddFileCompleteL() 
+    * is called back.
+    *
+ 	  * @since S60 3.2.3
+    * @param aFile full path and name of the file.
+    * @param aObserver observer for the add operation
+    */
+    virtual void AddL( const TDesC& aFile, 
+                       MMPXCollectionHelperObserver* aObserver ) = 0;
+
+    /**
+    * Add an item (song or playlist) with some media properties registers with playlists.
+ 	  * @since S60 3.2.3
+    * @param aMedia media property to add.
+    * @leave KErrArgument leave if the given media doesn't contain the correct attributes
+    */
+    virtual void AddL( CMPXMedia* aMedia ) = 0;
+
+    /**
+    * Remove a song, playlist, m3u file from the collection and from the harvester database.
+ 	  * @since S60 3.2.3
+    * @param aFile file to remove.
+    * @param aItemCat type of the item (optional).
+    * @leave KErrArgument leave if the file to be removed does not exist
+    */
+    virtual void RemoveL( const TDesC& aFile, TMPXGeneralCategory aItemCat = EMPXSong) = 0; //lint !e1735
+
+    /**
+    * Remove all entries from the music, podcast and harvester databases.
+ 	  * @since S60 3.2.3
+    */
+    virtual void RemoveAllL() = 0;
+    
+    /**
+    * Delete all records that have been marked as deleted.
+ 	  * @since S60 3.2.3
+    * @leave KErrNotSupported Virtual Void function that will leave if called and not implemented
+    */
+    virtual void CleanupDeletedMediasL() = 0;
+       
+    /**
+    * Updates the metadata for a file based on the path.
+ 	  * @since S60 3.2.3
+    * @param aMedia media item to update.
+    * @leave KErrArgument leave if the given media doesn't contain the correct attributes
+    * 		or leave if not updating a song or a playlist
+    */
+    virtual void SetL( CMPXMedia*& aMedia ) = 0;
+
+    /**
+    * Renames a file.
+ 	  * @since S60 3.2.3
+    * @param aOldUri existing URI of the file to be renamed.
+    * @param aNewUri new URI of the file.
+    * @param aItemCat category of the file either EMPXSong
+    *        or EMPXPlaylist.
+    * @leave KErrArgument leave if not updating a song or a playlist
+    */
+    virtual void RenameL( const TDesC& aOldUri,
+                          const TDesC& aNewUri,
+                          TMPXGeneralCategory aItemCat = EMPXSong ) = 0; //lint !e1735
+    
+    /**
+    * Gets the metadata for a file.
+ 	  * @since S60 3.2.3
+    * @param aFile path to the file.
+    * @param aAttrs attributes to return.
+    * @param aItemCat category of the file either EMPXSong
+    *        or EMPXPlaylist.
+    * @return Media object representing the given file with
+    *         the requested attributes.    
+    * @leave KErrArgument leave if not updating a song or a playlist.
+    * @leave KErrNoMemory leave if search array is empty.
+    * @leave KErrNotFound leave if array indexcount is 0.
+    * @leave KErrCorrupt default case if the above conditions are not satisfied 
+    * 		and object is not found
+    */
+    virtual CMPXMedia* GetL( const TDesC& aFile, 
+                             const TArray<TMPXAttribute>& aAttrs,
+                             TMPXGeneralCategory aItemCat = EMPXSong ) = 0; //lint !e1735
+
+    /**
+    * Gets the metadata for a file.
+ 	  * @since S60 3.2.3
+    * @param aFile path to the file.
+    * @param aItemCat category of the file either EMPXSong
+    *        or EMPXPlaylist.
+    * @return Media object representing the given file.
+    * @leave KErrNotSupported Virtual const function that will leave if called and not implemented
+    */
+    virtual const CMPXMedia& GetL( const TDesC& aFile, 
+                                   TMPXGeneralCategory aItemCat = EMPXSong ) = 0; //lint !e1735
+        
+    /**
+    * Generic find function.
+ 	  * @since S60 3.2.3
+    * @param aCriteria criterias to search upon.
+    * @param aAttrs attributes to return.
+    * @return Search results. found media(s) are accessible
+    *         through KMPXMediaIdContainer/EMPXMediaArrayContents
+    *         attribute    
+    */
+    virtual CMPXMedia* FindAllL( CMPXMedia& aCriteria, 
+                                 const TArray<TMPXAttribute>& aAttrs) = 0;
+    
+    /**
+    * Close the helper. 
+    * @since S60 3.2.3
+    */                
+    virtual void Close() = 0;
+    };
+       
+#endif // MMPXCOLLECTIONHELPER_H