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