diff -r bdd9da0d70fe -r 1f1dad4af8f8 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Wed Sep 15 12:09:46 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Wed Oct 13 14:28:40 2010 +0300 @@ -51,33 +51,37 @@ #ifdef ABSTRACTAUDIOALBUM_INCLUDED /** * Called when a new category item has to be added to a category table. - * @param aName Abstract Album art name + * @param aCategory category type + * @param aName name string * @param aDrive drive to add the category to * @param aItemChangedMessages changed mesages array to be updated or NULL * @param aItemExist Out parameter, ETrue if the item already exist before the add, * EFalse otherwise - * @param aUri Abstract Album art Uri * @param aAlbumArtist AlbumArtist string + * @param aGenre Genre string * @return the ID of the category item (new or existing) */ - virtual TUint32 AddAbstractAlbumItemL(const TDesC& aName, - TInt aDriveId, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, - const TDesC& aUri, const TDesC& aAlbumArtist=KNullDesC) = 0; -#endif // ABSTRACTAUDIOALBUM_INCLUDED - + virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const TDesC& aName, + TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TDesC& aAlbumArtist=KNullDesC, + const TDesC& aGenre=KNullDesC) = 0; +#else /** * Called when a new category item has to be added to a category table. * @param aCategory category type - * @param aMedia media object + * @param aName name string * @param aDrive drive to add the category to * @param aItemChangedMessages changed mesages array to be updated or NULL * @param aItemExist Out parameter, ETrue if the item already exist before the add, * EFalse otherwise * @return the ID of the category item (new or existing) */ - virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const CMPXMedia& aMedia, + virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const TDesC& aName, TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist) = 0; - +#endif // ABSTRACTAUDIOALBUM_INCLUDED + // for Album and Artist table + virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory, const TDesC& aName, + const TDesC& aArtistName, const TDesC& aArt, + TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist) = 0; /** * Called when the ID of a category item changed for a Music record, for example when * the artist name changed for a song. The implementation is supposed to update the @@ -88,13 +92,9 @@ * @param aItemChangedMessages changed mesages array to be updated or NULL * @param aItemExist Out parameter, ETrue if the category is not deleted after the delete, * EFalse otherwise - * @param aArt Art of the music record. - * Art needs to be given so that the cateogry can switch over to different art - * if necessary - * */ virtual void DeleteSongForCategoryL(TMPXGeneralCategory aCategory, TUint32 aCategoryId, - TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TDesC& aArt = KNullDesC) = 0; + TInt aDrive, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist) = 0; /** * Called when the play count attribute of a song is changed. Should add an item changed @@ -121,7 +121,6 @@ */ virtual void UpdateCategoryItemL(TMPXGeneralCategory aCategory, TUint32 aCategoryId, const CMPXMedia& aMedia, TInt aDrive, CMPXMessageArray* aItemChangedMessages) = 0; - #ifdef ABSTRACTAUDIOALBUM_INCLUDED /** * Get title from the Id @@ -129,23 +128,7 @@ * @return name matching the ID */ virtual HBufC* HandleGetAlbumNameFromIdL( TUint32 aId ) = 0; -#endif // ABSTRACTAUDIOALBUM_INCLUDED - - /** - * Generate Unique ID for Album - * @param aMedia media object - * @param aCaseSensitive indicates whether case sensitivity should be taken - * into consideration when generating the unique row id - * @return the ID of album - */ - virtual TUint32 GenerateUniqueIdForAlbumL(const CMPXMedia& aMedia) = 0; - - /** - * Check if the specified album ID is Unknown album - * @param aId: The ID of the album - * @return ETrue if it's Unknown album - */ - virtual TBool IsUnknownAlbumL(const TUint32 aId) = 0; +#endif // ABSTRACTAUDIOALBUM_INCLUDED }; /** @@ -166,7 +149,7 @@ */ static CMPXDbMusic* NewL(CMPXDbManager& aDbManager, CMPXResource& aResource, MMPXDbMusicObserver& aObserver); - + /** * Two-phased constructor. * @param aDbManager database manager to use for database interactions @@ -175,7 +158,7 @@ */ static CMPXDbMusic* NewLC(CMPXDbManager& aDbManager, CMPXResource& aResource, MMPXDbMusicObserver& aObserver); - + /** * Destructor */ @@ -518,13 +501,11 @@ * @param aAttrs the attributes to include for the artist(s) matching the * selection criteria * @param aMediaArray returns the songs - * @param aSortByTrackOrder if TRUE sorts tracks according to their track numbers, - * if FALSE using track titles or filename - */ + */ void FindSongsL(TUint32 aGeneralId, TUint32 aContainerId, TMPXGeneralType aType, const CMPXMedia& aCriteria, const TArray& aAttrs, - CMPXMediaArray& aMediaArray, TBool aSortByTrackOrder = EFalse); - + CMPXMediaArray& aMediaArray); + /** * Returns the track count for a given drive * @param aDrive drive @@ -542,6 +523,12 @@ */ void GetMusicUriArrayL(TInt aDrive, TInt aFromID, TInt aRecords, CDesCArray& aUriArr, TInt& aLastID); + + /** + * Get the ID of Artist which belongs to the specified Album + * @param aId, the ID of Album + */ + TUint32 ArtistForAlbumL(const TUint32 aId); /** * Get the Albumart of song which belongs to the specified Album @@ -685,12 +672,13 @@ HBufC* ConstructUriL(RSqlStatement& aMusicTable); /** - * Checks if the specified category field (artist/genre/composer/abstractalbum) + * Checks if the specified category field (artist/album/genre/composer) * will change and notifies the observer if so. * @param aCategory identifies the category * @param aMedia contains the new record attributes * @param aAttribute corresponding attribute in the media parameter - * @param aOldId the current category item ID + * @param aColumnIndex column index in the recordset + * @param aMusicTable current record in the music table or NULL if this is an insert * @param aDriveId drive ID the update is for * @param aItemChangedMessages item changed messages to append to * @param aItemId returns the category item ID @@ -698,25 +686,9 @@ */ TBool UpdateCategoryFieldL(TMPXGeneralCategory aCategory, const CMPXMedia& aMedia, const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId, - CMPXMessageArray* aItemChangedMessages, TUint32& aItemId, const TDesC& aArt = KNullDesC); + CMPXMessageArray* aItemChangedMessages, TUint32& aItemId); /** - * Checks if album will change and notifies the observer if so. - * @param aMedia contains the new record attributes - * @param aAttribute corresponding attribute in the media parameter - * @param aOldId the current category item ID - * @param aDriveId drive ID the update is for - * @param aItemChangedMessages item changed messages to append to - * @param aItemId returns the album item ID - * @param aArt old art of the music record - * @param aCaseSensitive indicates whether case sensitivity should be taken - * @return ETrue if the field was modified - */ - TBool UpdateCategoryFieldForAlbumL(const CMPXMedia& aMedia, - const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId, - CMPXMessageArray* aItemChangedMessages, TUint32& aItemId, const TDesC& aArt = KNullDesC); - - /** * Checks if extra attributes are required. The "standard attribute set includes: * EMPXMediaGeneralId, EMPXMediaGeneralType, EMPXMediaGeneralCategory, * EMPXMediaGeneralTitle, EMPXMediaGeneralUri, and EMPXMediaGeneralFlags