internetradio2.0/mcpplugininc/mcppluginobserver.h
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/mcpplugininc/mcppluginobserver.h	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* 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 M_MCPPLUGINOBSERVER_H
+#define M_MCPPLUGINOBSERVER_H
+
+class CLiwDefaultMap;
+class CMCPPlugin;
+
+
+/**
+ * Music Widget Image Destinations.
+ * 9.1 Music Widget has two panels, The left panel contains an image:
+ * TMCPImageDestination:EMWImage1, the right panel contains three text
+ * rows: TMCPTextDestination:EMWText1, TMCPTextDestination:EMWText2, 
+ * TMCPTextDestination:EMWText3. Actions can be installed into this
+ * two panels to the triggers: TMCPTriggerDestination:EMWTrigger1, 
+ * TMCPTriggerDestination:EMWTrigger2.
+ */
+enum TMCPImageDestination
+    {
+     EMusicWidgetImage1 = 1000//do not change
+    };
+
+/**
+ * Music Widget Text Destinations.
+ * 9.1 Music Widget has two panels, The left panel contains an image:
+ * TMCPImageDestination:EMWImage1, the right panel contains three text
+ * rows: TMCPTextDestination:EMWText1, TMCPTextDestination:EMWText2, 
+ * TMCPTextDestination:EMWText3. Actions can be installed into this
+ * two panels to the triggers: TMCPTriggerDestination:EMWTrigger1, 
+ * TMCPTriggerDestination:EMWTrigger2.
+ */
+enum TMCPTextDestination
+    {
+     EMusicWidgetText1 = 2000//do not change
+     ,EMusicWidgetText2
+     ,EMusicWidgetText3
+    };
+
+/**
+ * Music Widget Action Destinations.
+ * 9.1 Music Widget has two panels, The left panel contains an image:
+ * TMCPImageDestination:EMWImage1, the right panel contains three text
+ * rows: TMCPTextDestination:EMWText1, TMCPTextDestination:EMWText2, 
+ * TMCPTextDestination:EMWText3. Actions can be installed into this
+ * two panels to the triggers: TMCPTriggerDestination:EMWTrigger1, 
+ * TMCPTriggerDestination:EMWTrigger2.
+ */
+enum TMCPTriggerDestination
+    {
+     EMusicWidgetTrigger1 = 3000//do not change
+     ,EMusicWidgetTrigger2
+    };
+
+/**
+ *  Observer interface, to be implemented by the Music Content Publisher.
+ *  This interface is to be used to inform the music harves of changes on the
+ *  plugin that need to be propagated to the Music Widget UI. 
+ *  @since S60 5.0
+ */
+class MMCPPluginObserver
+    {
+public:
+    
+    /**
+     * Called when an image needs to be updated.
+     *
+     * @since S60 5.0
+     * @param aPlugin Where the mesage is coming from.
+     * @param aDestination Where the image is to be placed.
+     * @param aImagePath Source path of the Image.
+     */
+    virtual void PublishImageL(CMCPPlugin* aPlugin,
+            TMCPImageDestination aDestination, const TDesC& aImagePath) = 0;
+
+    /**
+     * Called when an image needs to be updated.
+     *
+     * @since S60 5.0
+     * @param aPlugin Where the mesage is coming from.
+     * @param aDestination Where the image is to be placed.
+     * @param aBitmapHandle Bitmap handle to the image.
+     */
+    virtual void PublishImageL(CMCPPlugin* aPlugin, 
+            TMCPImageDestination aDestination, TInt aBitmapHandle) = 0;
+
+    /**
+     * Called when a text needs to be updated.
+     *
+     * @since S60 5.0
+     * @param aPlugin Where the mesage is coming from.
+     * @param aDestination Where the text is to be placed.
+     * @param aText Descriptor containing the text.
+     */
+    virtual void PublishTextL( CMCPPlugin* aPlugin, 
+            TMCPTextDestination aDestination, const TDesC& aText ) = 0;
+
+    /**
+     * Called when an action needs to be updated.
+     *
+     * @since S60 5.0
+     * @param aPlugin Where the mesage is coming from.
+     * @param aDestination Destination trigger that should launch the action.
+     * @param aTrigerMap LIW Map containint the action that can be interpreted
+     * by the specified action handler plugin.
+     */
+    virtual void PublishActionL( CMCPPlugin* aPlugin, 
+            TMCPTriggerDestination aDestination, 
+            CLiwDefaultMap* aTrigerMap ) = 0;
+    
+    /**
+     * Called when a plugin becomes active.
+     *
+     * @since S60 5.0
+     * @param aPlugin Where the mesage is coming from.
+     */
+    virtual void BecameActiveL( CMCPPlugin* aPlugin ) = 0;
+
+    };
+
+#endif /*MCPPLUGINOBSERVER_H*/