diff -r 000000000000 -r a2952bb97e68 mmappfw_plat/collection_helper_api/inc/mpxcollectionhelper.h --- /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 +#include + +// 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& 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& aAttrs) = 0; + + /** + * Close the helper. + * @since S60 3.2.3 + */ + virtual void Close() = 0; + }; + +#endif // MMPXCOLLECTIONHELPER_H