devsound/a3fdevsound/inc/MmfDevSoundCustomInterfaceExtensions.h
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 // MmfDevSoundCustomInterfaceExtensions.h
       
     2 
       
     3 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 // All rights reserved.
       
     5 // This component and the accompanying materials are made available
       
     6 // under the terms of "Eclipse Public License v1.0"
       
     7 // which accompanies this distribution, and is available
       
     8 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     9 //
       
    10 // Initial Contributors:
       
    11 // Nokia Corporation - initial contribution.
       
    12 //
       
    13 // Contributors:
       
    14 //
       
    15 // Description:
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @publishedPartner
       
    21  @released
       
    22 */
       
    23 
       
    24 #ifndef MMFDEVSOUNDCUSTOMINTERFACEEXTENSIONS_H
       
    25 #define MMFDEVSOUNDCUSTOMINTERFACEEXTENSIONS_H
       
    26 
       
    27 //INCLUDES
       
    28 #include <mmf/common/mmfcontrollerframework.h>
       
    29 #include <mmf/common/mcustomcommand.h>
       
    30 #include <mmf/common/mcustominterface.h>
       
    31 #include <a3f/mmfdevsoundcustominterfaceextensions.hrh>
       
    32 
       
    33 //CLASS DECLARATION	
       
    34 /**
       
    35 Mixins for client-side Custom Interface Extension.
       
    36 */
       
    37 class MDevSoundCIClientExtension
       
    38 	{
       
    39 public:
       
    40 	/**
       
    41 	Must be called after successfully creating ECOM implementation.
       
    42 	@param aCustomCommand  Reference to implementation of CI Extension Support interface.
       
    43 	@return an error code KErrNone if successful, otherwise one of the system wide error codes.
       
    44 	*/
       
    45 	virtual TInt Setup(MCustomCommand& aCustomCommand) = 0;
       
    46 	/**
       
    47 	Called to obtain a pointer to the Custom Interface Extension.
       
    48 	This allows a Custom or Extension Interface, that uses a pattern different to the standard Custom Interface, to be implemented.
       
    49 	Note that ownership of the interface will depend on the UID.
       
    50 	@param aUid UID of the required interface.
       
    51 	@param aInterface Used to return pointer to the interface. Must be NULL if no matching interface.
       
    52 	@return an error code KErrNone if successful, otherwise one of the system wide error codes.
       
    53 	*/
       
    54 	virtual TInt CustomInterfaceExtension(TUid aUid, TAny*& aInterface) = 0;
       
    55 	/**
       
    56 	Equivalent to destructor. Called to destroy plugin.
       
    57 	*/
       
    58 	virtual void Release() = 0;
       
    59 	/**
       
    60 	Called by framework during construction (after Setup) and is used to pass a destructor key for ECom.
       
    61 	The passed UID must be retained for the lifetime of the plugin and, on a subsequent call to Release(),
       
    62 	REComSession::DestroyedImplementation() must be called by the plugin, using the stored UID.
       
    63 	@param aDestructorKey The Uid returned by REComSession::CreateImplementationL() or similar.
       
    64 	*/
       
    65 	virtual void PassDestructorKey(TUid aDestructorKey) = 0;
       
    66 	};
       
    67 
       
    68 //CLASS DECLARATION
       
    69 /**
       
    70 Mixins for server-side Custom Interface Extension.
       
    71 */
       
    72 class MDevSoundCIServerExtension
       
    73 	{
       
    74  public:
       
    75 	/**
       
    76 	Will be called by framework after successfully creating ECOM implementation.
       
    77 	@param aInterface Reference to implementation of CI Extension Support interface.
       
    78 	@return KErrNone if successful. System wide error on failure.
       
    79 	*/
       
    80 	virtual TInt Setup(MCustomInterface& aInterface) = 0;
       
    81 	/**
       
    82 	Called by the Multimedia framework when a message is received.
       
    83 	The implementation of this method is responsibile for completing the message.
       
    84 	@param aMessage Message received by MM framework
       
    85 	@return KErrNone if successfully handled. KErrNotSupported if message is not handled.
       
    86 	@leave System wide error.
       
    87 	*/
       
    88 	virtual TInt HandleMessageL(const RMmfIpcMessage& aMessage) = 0;
       
    89 	/**
       
    90 	Equivalent to destructor. Called to destroy plugin.
       
    91 	*/
       
    92 	virtual void Release() = 0;
       
    93 	/**
       
    94 	Called by framework during construction (after Setup) and is used to pass a destructor key for ECom.
       
    95 	The passed UID must be retained for the lifetime of the plugin and, on a subsequent call to Release(),
       
    96 	REComSession::DestroyedImplementation() must be called by the plugin, using the stored UID.
       
    97 	@param aDestructorKey The Uid returned by REComSession::CreateImplementationL() or similar.
       
    98 	*/
       
    99 	virtual void PassDestructorKey(TUid aDestructorKey) = 0;
       
   100 	};
       
   101 
       
   102 
       
   103 #endif