internetradio2.0/mcpplugininc/mcppluginobserver.h
author Pat Downey <patd@symbian.org>
Tue, 18 May 2010 11:36:57 +0100
changeset 4 3f2d53f144fe
parent 0 09774dfdd46b
permissions -rw-r--r--
Merge docml changeset with recent Nokia delivery.

/*
* 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*/