mmappfw_plat/mpx_collection_common_definition_api/inc/mpxcollectionobserver.h
changeset 0 a2952bb97e68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_collection_common_definition_api/inc/mpxcollectionobserver.h	Thu Dec 17 08:55:47 2009 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2006 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 observer
+*
+*/
+
+
+#ifndef MMPXCOLLECTIONOBSERVER_H
+#define MMPXCOLLECTIONOBSERVER_H
+
+#include<mpxcollectionframeworkdefs.h>
+#include <mpxmessage2.h>
+#include <mpxcommand.h>
+
+class MDesCArray;
+class TMPXCollectionMessage;
+class CMPXCollectionPlaylist;
+class MMPXCollectionFindObserver;
+
+/********************************************************************************
+*
+*  Note:
+* 
+*  ** remove TMPXCollectionMessage and associated funtions
+*
+*  ** remove null implementations
+*
+*********************************************************************************/
+
+NONSHARABLE_CLASS(MMPXCollectionMediaObserver)
+    {
+public:
+    /**
+     *  Handle extended media properties.
+     *
+     *  @since S60 3.2.3
+     *  @param aMedia media 
+     *  @param aError error code    
+     */
+    virtual void HandleCollectionMediaL(const CMPXMedia& aMedia, 
+                                        TInt aError) = 0;
+    };
+
+/**
+ *  Interface for receiving data asynchronously 
+ */
+NONSHARABLE_CLASS(MMPXCollectionObserver)  : public MMPXCollectionMediaObserver
+    {
+public:
+
+    /**
+     *   
+     * 
+     *  Handle collection message
+     *  NOTE: only one of HandleCollectionMessage callback can be implemented
+     * 
+     *  @param aMessage collection message
+     *  @deprecated please implement HandleCollectionMessage(CMPXMessage* aMsg, TInt aErr)
+     */
+    virtual void HandleCollectionMessageL(const CMPXMessage& /*aMsg*/) {/* */}
+
+    
+    /** 
+     *  Handle collection message.
+     *  NOTE: only one of HandleCollectionMessage callback can be implemented
+     * 
+     *  @since S60 3.2.3
+     *  @param aMessage 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
+     */
+    virtual void HandleCollectionMessage(CMPXMessage* aMsg, TInt /*aErr*/) 
+        {
+        // Note change into pure virtual when all clients updated
+        // Temp solution, aMsg will be a dummy object if aErr
+        // TO BE REMOVED when above HandlePlaybackMessage is removed.
+        TRAP_IGNORE(HandleCollectionMessageL(*aMsg));
+        }
+
+    /**
+     *  Handles the collection entries being opened. Typically called
+     *  when client has Open()'d a folder.
+     *
+     *  @since S60 3.2.3
+     *  @param aEntries collection entries opened
+     *  @param aIndex focused entry
+     *  @param aComplete ETrue no more entries. EFalse more entries
+     *                   expected
+     *  @param aError error code   
+     */
+    virtual void HandleOpenL(const CMPXMedia& aEntries,
+                             TInt aIndex,TBool aComplete,TInt aError) = 0;
+    
+    /**
+     *  Handles the item being opened. Typically called
+     *  when client has Open()'d an item. Client typically responds by
+     *  'playing' the item via the playlist.
+     *
+     *  @since S60 3.2.3
+     *  @param aPlaylist collection playlist
+     *  @param aError error code
+     */                         
+    virtual void HandleOpenL(const CMPXCollectionPlaylist& aPlaylist,TInt aError) = 0;  
+
+    /**
+     *  Handle completion of a asynchronous command.
+     *  Note: All clients should implement this callback.
+     *
+     *  @since S60 3.2.3
+     *  @param aCommandResult result of the command, NULL if error
+     *  @param aError error code    
+     */
+    virtual void HandleCommandComplete(CMPXCommand* /*aCommandResult*/, 
+                                       TInt /*aError*/) {};
+    };    
+
+NONSHARABLE_CLASS(MMPXCollectionFindObserver)
+    {
+public:
+    /**
+     *  Handle callback for "find" operation.
+     *
+     *  @since S60 3.2.3
+     *  @param aEntries CMPXMedia to be returned
+     *  @param aComplete ETrue no more entries. EFalse more entries
+     *                   expected
+     *  @param aError error code   
+     */
+    virtual void HandleFindAllL(const CMPXMedia& aResults,
+                                TBool aComplete,TInt aError) = 0;   
+    };  
+
+NONSHARABLE_CLASS(MMPXCollectionRemoveObserver)
+    {
+public:
+    /**
+     * Handles removing a collection path.
+     * Calls back with the list of file paths that were deleted.
+     * This callback is only applicable for local file storage plugins.
+     *
+     * @since S60 3.2.3
+     * @param aUriArray list of files that were deleted
+     * @param aError error code
+     */
+    virtual void HandleRemoveL(MDesCArray& aUriArray, TInt aError) = 0;
+    };      
+    
+#endif // MMPXCOLLECTIONOBSERVER_H