os/mm/devsoundextensions/ciextnfactoryplugins/ciextnclientplugin/src/ciextnclientplugin.h
Update contrib.
2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Header definition of plugin classes implementing devsound client
15 * custom interface extension.
21 #ifndef CIEXTNCLIENTPLUGIN_H
22 #define CIEXTNCLIENTPLUGIN_H
26 #include <a3f/mmfdevsoundcustominterfaceextensions.h>
28 // Forward declarations
29 class MCIFactoryIntfc;
32 * Plugin class implementing DevSound CI client Extension
34 * An instance of this class is created when DevSound is created. When client
35 * calls CMMFDevSound::CustomInterface() function with UID that is not supported
36 * by platform version of A3F DevSound, the request is then forwarded to this
39 * Only one instance of this plugin can exist in the system.
41 * This class is intended to be used only by DevSound client implementation.
46 class CCIExtnClientPlugin : public CBase,
47 public MDevSoundCIClientExtension
52 * Two-phased constructor.
53 * Called by ECom framework.
55 static MDevSoundCIClientExtension* NewL();
60 ~CCIExtnClientPlugin();
62 // From MDevSoundCIClientExtension begins
63 // Called by framework when plugin is constructed
64 TInt Setup( MCustomCommand& aCustomCommand );
65 // Called by framework forwarding request to create a custom interface
66 TInt CustomInterfaceExtension( TUid aUid, TAny*& aInterface );
67 // Called by framework when plugin is to be deleted
69 // Called by framework after plugin is created
70 void PassDestructorKey( TUid aDestructorKey );
71 // From MDevSoundCIClientExtension ends
77 CCIExtnClientPlugin();
80 * Second phase constructor.
85 * Initializes factory plugins list.
89 void InitializeFactoryPluginsL();
94 * Reference to MCustomCommand interface
97 MCustomCommand* iMCustomCommand;
100 * Uid of the plugin object passed by the framework via PassDestructorKey()
105 * List of factory plugins. When framework calls
106 * CustomInterfaceExtension() function, the request will be forwarded to each
107 * factory plugin in this list until it is handled.
111 RPointerArray<MCIFactoryIntfc> iMCIFactoryIntfcList;
114 #endif // CIEXTNCLIENTPLUGIN_H