diff -r 000000000000 -r f0cf47e981f9 mmshplugins/mmshaiwplugin/inc/musaiwprovider.h --- /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 +#include + +// 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