diff -r 87e65c44ff3a -r fe894bb075c2 mds_plat/content_listing_framework_collection_manager_api/inc/mediacollectionmanager.h --- a/mds_plat/content_listing_framework_collection_manager_api/inc/mediacollectionmanager.h Fri Sep 03 10:57:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,340 +0,0 @@ -/* -* Copyright (c) 2006-2009 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: -* Description : -* -*/ - - -#ifndef MMEDIACOLLECTIONMANAGER_H -#define MMEDIACOLLECTIONMANAGER_H - - -#include - -/// Propertie flags for media collections -enum TMediaCollectionProperties - { - /// Collection items are in Phone memory - EMCPhoneMemoryCollection = 0x00000001, - /// Collection items are in MMC - EMCMmcCollection = 0x00000002 - }; - -class MMediaCollectionManager; -class MMediaCollectionInfoExt; -class MMediaCollectionManagerExt; -class MMediaCollectionObserverExt; - -/** - * Factory for Media Collection Manager - * - * @lib MediaCollectionManager.lib - * @since S60 3.2 - */ -class MediaCollectionManagerFactory - { -public: // New functions - - /** - * Create new instance of Media Collection Manager - * @return New instance of Media Collection Manager. - * Ownership is transferred to the client application. - */ - IMPORT_C static MMediaCollectionManager* CreateCollectionManagerL(); - -private: - // Prohibit C++ default constructor. - MediaCollectionManagerFactory(); - // Prohibit Destructor. - ~MediaCollectionManagerFactory(); - }; - -/** - * Media Collection Info interface, - * use MMediaCollectionManager to get collections - * - * @lib N/A - * @since S60 3.2 - */ -class MMediaCollectionInfo - { -public: - virtual ~MMediaCollectionInfo() {} - -public: - /** - * Returns the name of the collection - * @since S60 3.2 - * @return Name of the collection - */ - virtual const TDesC& Name() const = 0; - - /** - * Returns the id of the album - * @since S60 3.2 - * @return The id of the album - */ - virtual TInt Id() const = 0; - - /** - * Returns list of media types that are defined for the collection. - * See media types from CLFContentListing.hrh TCLFMediaType - * @since S60 3.2 - * @return List of media types that are defined for the collection. - */ - virtual const RArray& CollectionItemTypes() const = 0; - - /** - * Returns collection propertie flags - * Properties are defined in TMediaCollectionProperties - * Should not be used in 5.0 or later! - * @since S60 3.2, depricated in 5.0 - * @return Properties flags - */ - virtual TInt32 Properties() const = 0; - -private: // Extension interface - - /** - * This member is internal and not intended for use. - */ - virtual MMediaCollectionInfoExt* Extension() - { return NULL; } - virtual const MMediaCollectionInfoExt* Extension() const - { return NULL; } - }; - - -/** - * Observer interface to get notification about changes in - * Media Collection Manager - * - * @lib N/A - * @since S60 3.2 - */ -class MMediaCollectionObserver - { -public: - /** - * Collection manager uses this method to notify about - * created/deleted/modified collections. - * @since 3.2 - * @param aCollectionIdArray - */ - virtual void CollectionChangedL( - const TArray& aCollectionIdArray ) = 0; - - /** - * Collection manager uses this method to notify about - * possible errors. - * @since 3.2 - * @param aError Collection manager error status - * KErrCorrupt if collection manager is corrupted and - * possible some data is lost - */ - virtual void CollectionManagerErrorL( - TInt aError ) = 0; - -protected: - - /** - * Destructor. - */ - virtual ~MMediaCollectionObserver() {} - -private: // Extension interface - - /** - * This member is internal and not intended for use. - */ - virtual MMediaCollectionObserverExt* Extension() - { return NULL; } - virtual const MMediaCollectionObserverExt* Extension() const - { return NULL; } - }; - -/** - * Media Collection Manager - * - * Use this class to get Media Collections, create new collections, - * delete collections, rename collections, add files to collections, - * remove files from collections. - * - * @lib N/A - * @since S60 3.2 - */ -class MMediaCollectionManager - { -public: - virtual ~MMediaCollectionManager() {} - -public: // New functions - - /** - * Return collection info by index. - * @since 3.2 - * @param aCollectionInfoArray Collection infos are added to this array - */ - virtual void GetCollectionInfosL( - RPointerArray& - aCollectionInfoArray ) const = 0; - - /** - * Return collection info by ID. - * @since 3.2 - * @param aId Collection ID - * @return Pointer to a MMediaCollectionInfo object - * Ownership is transferred to client - */ - virtual MMediaCollectionInfo* CollectionInfoByIdLC( - TInt aId ) const = 0; - - /** - * Create new collection. - * @since 3.2 - * @param aName Name of the collection - * @param aCollectionItemTypes List of media types that are - * in the collection. - * Use media types from CLFContentListing.hrh TCLFMediaType. - * NOTE! that collection manager doesn't check is added item defined - * mediatype. This is only for client(s) for grouping different - * type folders. - * @param aStorage In 3.2 See TMediaCollectionProperties - * NOTE! If given propertie set is not supported then - * function leaves with KErrNotSupported - NOTE! In 5.0 Drive number where the collection is to be created! - * @return ID of the creaded collection - */ - virtual TInt CreateCollectionL( - const TDesC& aName, - const TArray& aCollectionItemTypes, - TInt32 aStorage) = 0; - - /** - * Delete collection. - * NOTE! this doesn't delete items that are in collection. - * @since 3.2 - * @param aId ID of the collection - */ - virtual void DeleteCollectionL( - TInt aId ) = 0; - - /** - * Rename collection. - * @since 3.2 - * @param aId ID of the collection. - * If collection doesn't found then - * function leaves with KErrNotFound - * @param aNewName new name of the collection - */ - virtual void RenameCollectionL( - TInt aId, - const TDesC& aNewName ) = 0; - - /** - * Add item(s) to collection. - * @since 3.2 - * @param aId Collection ID - * If collection doesn't found then - * function leaves with KErrNotFound - * @param aItemArray - * @param aRemoveFromOtherCollections Is item removed from other - * available collections. - */ - virtual void AddToCollectionL( - TInt aId, - const MDesCArray& aItemArray, - TBool aRemoveFromOtherCollections = ETrue ) = 0; - - /** - * Remove item(s) from collection. - * @since 3.2 - * @param aId Collection ID - * If collection doesn't found then - * function leaves with KErrNotFound - * @param aItemArray - */ - virtual void RemoveFromCollectionL( - TInt aId, - const MDesCArray& aItemArray ) = 0; - - /** - * Remove item(s) from all collections. - * @since 3.2 - * @param aItemArray - */ - virtual void RemoveFromAllCollectionsL( - const MDesCArray& aItemArray ) = 0; - - - /** - * Get collection items. - * @since 3.2 - * @param aId Collection ID - * If collection doesn't found then - * function leaves with KErrNotFound - * @param aItemArray Item are added to the array - */ - virtual void GetCollectionItemArrayL( - TInt aId, - CDesCArray& aItemArray ) const = 0; - - /** - * Find collections IDs by item. - * @since 3.2 - * @param aItem - * @param aIdArray Possible collection IDs are added to the array - */ - virtual void GetCollectionIdByItemL( - const TDesC& aItem, - RArray& aIdArray ) const = 0; - - /** - * Add collection observer. - * @since 3.2 - * @param aObserver - */ - virtual void AddCollectionObserverL( - MMediaCollectionObserver& aObserver ) = 0; - - /** - * Remove collection observer. - * @since 3.2 - * @param aObserver - */ - virtual void RemoveCollectionObserverL( - MMediaCollectionObserver& aObserver ) = 0; - - /** - * Get the drivenumber of the drive where collection is located by collection id - * @since 5.0 - * @param aId id of the collection - * @return DriveNumber of the drive where collection is located - */ - virtual TInt32 GetDriveByIdL( TInt aId ) = 0; - -private: // Extension interface - - /** - * This member is internal and not intended for use. - */ - virtual MMediaCollectionManagerExt* Extension() - { return NULL; } - virtual const MMediaCollectionManagerExt* Extension() const - { return NULL; } - - }; - -#endif // MMEDIACOLLECTIONMANAGER_H