--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbartist.h Wed Sep 15 12:09:46 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbartist.h Wed Oct 13 14:28:40 2010 +0300
@@ -24,6 +24,11 @@
#include "mpxdbcategory.h"
// CLASS DECLARATION
+class MMPXDbArtistObserver
+ {
+ public:
+ virtual TInt HandleGetAlbumsCountForArtistL(TUint32 aId) = 0;
+ };
/**
* Responsible for managing all music databases
@@ -42,7 +47,7 @@
* @return New CMPXDbArtist instance.
*/
static CMPXDbArtist* NewL(CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory);
+ TMPXGeneralCategory aCategory, MMPXDbArtistObserver& aObserver);
/**
* Two-phased constructor.
@@ -51,8 +56,8 @@
* @return New CMPXDbArtist instance on the cleanup stack.
*/
static CMPXDbArtist* NewLC(CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory);
-
+ TMPXGeneralCategory aCategory, MMPXDbArtistObserver& aObserver);
+
/**
* Destructor
*/
@@ -60,16 +65,17 @@
public:
/**
- * Add a artist item. If the record already exists, its counter will
+ * Add a category item. If the record already exists, its counter will
* be incremented.
- * @param aCategory category type
- * @param aMedia: This is the media object
+ * @param aName: This is the name to be entered into the row
* @param aDriveId: The Drive Id the name (category) belongs
* @param aNewRecord: indicates to the caller if a new record is created.
* ETrue if a new row is created in the table; otherwise EFalse.
+ * @param aCaseSensitive indicates whether case sensitivity should be taken
+ * into consideration when generating the unique row id
* @return The unique id of the row added.
*/
- virtual TUint32 AddItemL(TMPXGeneralCategory aCategory, const CMPXMedia& aMedia, TInt aDriveId, TBool& aNewRecord,
+ TUint32 AddItemL(const TDesC& aName, const TDesC& aArt, TInt aDriveId, TBool& aNewRecord,
TBool aCaseSensitive = ETrue);
/**
@@ -88,54 +94,14 @@
* @param aItemChangedMessages: if valid on return contains a updated message if the
* category was updated
*/
- virtual void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages);
-
- /**
- * Decrement the number of songs for the item. If the song and album count gets to 0,
- * remove the item.
- * @param aId: The ID of the category to delete.
- * @param aDriveId: The drive Id the name (category) belongs to. Songs on different
- * drives may belong to the same album or artist; consequently, one
- * row for each artist/album id and drive ID pair will exist in the
- * lookup table with a count existing for each row that tracks the
- * number number of songs on that drive with that album/artist.
- * @param aItemChangedMessages if valid on return contains a deleted message if the
- * category was deleted
- * @param aItemExist Out parameter, ETrue if the category is not deleted after the delete,
- * EFalse otherwise
- */
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- virtual void DecrementSongsForCategoryL(TUint32 aId, TInt aDriveId,
- CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, TBool aMtpInUse = EFalse);
-#else
- virtual void DecrementSongsForCategoryL(TUint32 aId, TInt aDriveId,
- CMPXMessageArray* aItemChangedMessages, TBool& aItemExist);
-#endif //ABSTRACTAUDIOALBUM_INCLUDED
+ void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages);
- /**
- * Add a AlbumArtist. If the record already exists, its counter will
- * be incremented.
- * @param aName: This is the name to be entered into the row
- * @param aArt: Album art
- * @param aDriveId: The Drive Id the name (category) belongs
- * @return The unique id of the row added.
+ /*
+ * Checks if the specified artist item is unknown
+ * @param aId identifies the artist item
+ * @return ETrue if it is unknown, EFalse otherwise
*/
- TUint32 AddAlbumArtistL(const TDesC& aName, const TDesC& aArt, TInt aDriveId);
-
- /**
- * Decrement the number of albums for the item. If the song and album count gets to 0,
- * remove the item.
- * @param aId: The ID of the category to delete.
- * @param aDriveId: The drive Id the name (category) belongs to. Songs on different
- * drives may belong to the same album or artist; consequently, one
- * row for each artist/album id and drive ID pair will exist in the
- * lookup table with a count existing for each row that tracks the
- * number number of songs on that drive with that album/artist.
- * @param aItemChangedMessages if valid on return contains a deleted message if the
- * category was deleted
- */
- void DecrementAlbumsForArtistL(TUint32 aId, TInt aDriveId,
- CMPXMessageArray* aItemChangedMessages);
+ TBool IsUnknownArtistL(TUint32 aId);
private:
@@ -157,16 +123,14 @@
*/
void GenerateArtistFieldsValuesL(const CMPXMedia& aMedia,
CDesCArray& aFields, CDesCArray& aValues);
-
+
/**
- * Gets the Songs count and Albums count for a Artist item
- * @param aDrivceId The Drive Id the name (category) belongs
+ * Gets the Album counts for a Artist item
* @param aId identifies the Artist item
- * @param aSongsCount songs count
- * @param aAlbumsCount albums count
+ * @return value of the Album counts
*/
- void GetSongsAndAlbumsCountL(TInt aDriveId, TUint32 aId, TInt& aSongsCount, TInt& aAlbumsCount);
-
+ TInt GetAlbumsCountL(TUint32 aId);
+
private: // from MMPXTable
/**
@@ -186,7 +150,7 @@
* @param aDbManager database manager to use for database interactions
* @param aCategory identifies the category
*/
- CMPXDbArtist(CMPXDbManager& aDbManager, TMPXGeneralCategory aCategory);
+ CMPXDbArtist(CMPXDbManager& aDbManager, TMPXGeneralCategory aCategory, MMPXDbArtistObserver& aObserver);
/**
* Second phase constructor.
@@ -203,12 +167,13 @@
EArtistUniqueId = KMPXTableDefaultIndex,
EArtistName,
EArtistSongCount,
- EArtistAlbumCount,
EArtistArt,
EArtistFieldCount
};
+
+ private: // Data
+ MMPXDbArtistObserver& iObserver;
};
-
#endif // MPXDBARTIST_H
// End of File