diff -r 000000000000 -r ff3acec5bc43 musichomescreen/mpxcollectionpublisher/inc/mpxcollectionpublisher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/musichomescreen/mpxcollectionpublisher/inc/mpxcollectionpublisher.h Thu Dec 17 08:45:05 2009 +0200 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2008-2008 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: Manages MCP plugins, and content publishing. +* +*/ + + +#ifndef C_MUSICCONTENTPUBLISHER_H +#define C_MUSICCONTENTPUBLISHER_H + +#include +#include + +class MLiwInterface; +class CLiwGenericParamList; + +// FORWARD DECLARATIONS +class MMPXCollectionUtility; +class MMPXCollectionUiHelper; +class CMPXCollectionPath; + +/** + * Music Content Publisher (a Content Harvester plugin) + * + * @lib musiccontentpublisher.dll + * @since S60 S60 v5.0 + */ +class CMpxCollectionPublisher : public CContentHarvesterPlugin + ,public MMPXCollectionObserver + { + +public: + + /** + * Two-phased constructor. + */ + static CMpxCollectionPublisher* NewL( MLiwInterface* aCPSInterface ); + + /** + * Destructor. + */ + virtual ~CMpxCollectionPublisher(); + + // from base class CContentHarvesterPlugin + /** + * From CContentHarvesterPlugin + * This is called by the Content Harvester Server to signal an update. + */ + void UpdateL(); + + //From Base class MMPXCollectionMediaObserver + /** + * From MMPXCollectionMediaObserver + * It handles open collection event. + */ + void HandleOpenL( const CMPXMedia& aEntries, TInt aIndex, + TBool aComplete, TInt aError ); + + /** + * From MMPXCollectionMediaObserver + * It handles open collection event. + */ + void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist, + TInt aError ); + + /** + * From MMPXCollectionMediaObserver + * It handles MediaL event. + * + * @param aMedia object containing collection's informations + * @param aError error code + */ + void HandleCollectionMediaL( const CMPXMedia& aMedia, + TInt aError ); + + /** + * Handle collection message + * + * @param aMsg collection message, ownership not transferred. + * Please check aMsg is not NULL before using it. + * If aErr is not KErrNone, plugin might still call back with more + * info in the aMsg. + * @param aErr system error code. + */ + void HandleCollectionMessage( CMPXMessage* aMsg, TInt /*aErr*/); + + + +private: + + /** + * Default constructor. + */ + CMpxCollectionPublisher( MLiwInterface* aCPSInterface ); + + /** + * Perform the second phase construction + */ + void ConstructL(); + + /** + * Logic of HandleCollectionMessage, to avoid the function leaves + */ + void DoHandleGeneralMessageL(const CMPXMessage& aMsg); + + /** + * Logic of HandleCollectionMessage, to avoid the function leaves + * it handles item change operation + */ + void DoHandleItemChangedMessageL(const CMPXMessage& aMsg); + + /** + * Logic of HandleCollectionMessageL, to avoid the function leaves + */ + void HandleCollectionMessageL(CMPXMessage* aMsg); + + /** + * Called when a number needs to be updated. + * + * @since S60 5.0 + * @param aNum containing the number. + */ + void PublishNumberL( const TInt aNumb ); + +private: // data + + /** + * Instance of CPS interface used for update with CPS. + * Not own + */ + MLiwInterface* iCPSInterface; + + /** + * MPX Collection utility + * Own. + */ + MMPXCollectionUtility* iCollectionUtility; + + /** + * MPX Collection helper + * Own. + */ + MMPXCollectionUiHelper* iCollectionUiHelper; + + /** + * Path to Music collection + * Own. + */ + CMPXCollectionPath* iAllSongsPath; + + /** + * Indicates whether we're in a massive refresh operation + */ + TBool iRefreshOperation; + + /** + * Array containig wanted collection attributes + * Own. + */ + RArray iDefaultAttrs; + + }; + +#endif // C_MUSICCONTENTPUBLISHER_H + +// End of File