mmshplugins/mmshaiwplugin/inc/musaiwprovider.h
changeset 0 f0cf47e981f9
child 21 ce86b6d44a6d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshaiwplugin/inc/musaiwprovider.h	Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2005-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:  The ECOM interface implementation.
+*
+*/
+
+
+#ifndef MUSAIWPROVIDER_H
+#define MUSAIWPROVIDER_H
+
+
+#include "musunittesting.h"
+#include "musmanagercommon.h"
+#include <AiwServiceIfMenu.h>
+#include <ecom/implementationproxy.h>
+
+// forward declarations
+
+class CEikonEnv;
+class CMusManager;
+class MAiwNotifyCallback;
+class RResourceFile;
+class CMusIndicatorApi;
+
+
+
+// function declarations
+
+IMPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount );
+
+/**
+ * CMusAiwProvider
+ */
+class CMusAiwProvider : public CAiwServiceIfMenu
+    {
+    MUS_UNITTEST( UT_CMusAiwProvider )
+public: // constructors and destructor
+
+    static CMusAiwProvider* NewL();
+
+    virtual ~CMusAiwProvider();
+
+private: // constructors
+
+    CMusAiwProvider();
+
+    void ConstructL();
+
+public: // from CAiwServiceIfBase
+
+    /**
+     * Called by the AIW framework to initialise the provider with
+     * necessary information.
+     *
+     * @param aFrameworkCallback Framework-provided callback for the
+     *                           provider to send events to the
+     *                           framework.
+     * @param aInterest          List of criteria items which invoked
+     *                           the provider.
+     * @exception Symbian OS error code
+     */
+    void InitialiseL( MAiwNotifyCallback&   aFrameworkCallback,
+                      const RCriteriaArray& aInterest );
+
+    /**
+     * Executes generic service commands included in criteria.
+     *
+     * @param aCmdId        The command to be executed.
+     * @param aInParamList  Input parameters.  Can be an empty list.
+     * @param aOutParamList Output parameters.  Can be an empty list.
+     * @param aCmdOptions   Options for the command.  See
+     *                      KAiwCmdOpt* constants.
+     * @param aCallback     Callback for asynchronous command
+     *                      handling, parameter checking, etc.
+     * @see enum TServiceCmdOptions in GENERICPARAM.HRH.
+     * @exception KErrArgument if callback is missing when required.
+     * @exception KErrNotSupported if no provider support service.
+     */
+    void HandleServiceCmdL( const TInt&                 aCmdId,
+                            const CAiwGenericParamList& aInParamList,
+                            CAiwGenericParamList&       aOutParamList,
+                            TUint                       aCmdOptions = 0,
+                            const MAiwNotifyCallback*   aCallback = NULL );
+
+public: // from CAiwServiceIfMenu
+
+    /**
+     * Initializes menu pane by adding provider-specific menu
+     * items.  The AIW Framework gives the parameters to be used
+     * in addition.
+     *
+     * @param aMenuPane    Menu pane handle.
+     * @param aIndex       Position of item where to add menu items.
+     * @param aCascadeId   ID of cascade menu item.
+     * @param aInParamList The input parameter list for provider's
+     *                     parameters checking.
+     */
+    void InitializeMenuPaneL( CAiwMenuPane&               aMenuPane,
+                              TInt                        aIndex,
+                              TInt                        aCascadeId,
+                              const CAiwGenericParamList& aInParamList );
+
+    /**
+     * Handles a menu command invoked by the Handler.
+     *
+     * @param aMenuCmdId    Command ID for the menu command,
+     *                      defined by the provider when adding
+     *                      the menu commands.
+     * @param aInParamList  Input parameters.  Could be empty list.
+     * @param aOutParamList Output parameters.  Could be empty list.
+     * @param aCmdOptions   Options for the command.  See
+     *                      KAiwCmdOpt* constants.
+     * @param aCallback     Callback if asynchronous command
+     *                      handling is wanted by consumer.  The
+     *                      provider might not support this.  If not,
+     *                      the function leaves with KErrNotSupported.
+     */
+    void HandleMenuCmdL( TInt                        aMenuCmdId,
+                         const CAiwGenericParamList& aInParamList,
+                         CAiwGenericParamList&       aOutParamList,
+                         TUint                       aCmdOptions = 0,
+                         const MAiwNotifyCallback*   aCallback = NULL );
+
+
+private: // helper functions
+
+    TBool ApplicationRunningL();
+    
+    void NoVariationStartUpL( TFileName&    aFileName,
+    						 CAiwMenuPane& aMenuPane,
+                             TInt          aIndex );
+    
+    void OperatorVariantStartUpL( TFileName&    aFileName,
+    							 CAiwMenuPane& aMenuPane,
+                                 TInt          aIndex );
+
+    void ShowErrorNoteL( TInt aError );
+
+    HBufC* ErrorNoteTextLC( TInt aError );
+    
+    HBufC8* ErrorNoteText8L( TInt aError, RResourceFile& aResourceFile );
+
+    void DoInitialiseL();
+	
+    void DoInitializeMenuPaneL( CAiwMenuPane& aMenuPane, TInt aIndex );
+
+    
+private: // data
+
+    /**  The AIW resource file name. */
+    HBufC* iResourceFileName;
+    
+     /**  Current availability status. */
+    MultimediaSharing::TMusAvailabilityStatus iAvailability;
+    
+    /** To Differentiate Error and Warning Notes */
+	TBool iIsWarning ;
+	
+	CMusIndicatorApi* iIndicator;
+    };
+
+
+#endif // MUSAIWPROVIDER_H