devsound/a3fdevsound/inc/mmfaudiosvrservice.h
author hgs
Mon, 18 Oct 2010 12:47:26 +0100
changeset 4 9d4397b300d1
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk44_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
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
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#ifndef MMFAUDIOSVRSERVICE_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#define MMFAUDIOSVRSERVICE_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
@publishedPartner 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
@file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
@released
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
//  INCLUDES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
#include <ecom/ecom.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
#include <badesca.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
This is the interface for all audio service 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
plugins. So Each Service plugin has to implement this interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
class MAudioSvrService
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
	{	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
public:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
	This method is used to pass a destructor key for ECom. The passed UID must be retained for the lifetime 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
	of the plugin and, on a subsequent call to Release(),REComSession::DestroyedImplementation() must be 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
	called by the plugin, using the stored UID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
	@param aUid The Uid returned by REComSession::CreateImplementationL() or similar.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	virtual void PassDestructorKey(TUid aUid)=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
	This method is used to load or create the objects that are internally used by service plugin.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	@return KErrNone if successfull, else corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	virtual TInt Load()=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	This method is used to start the service.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
	@return KErrNone if successfull, else corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	virtual TInt Start()=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	This method is used to Stop the service.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	@return KErrNone if successfull, else corresponding error code
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
	virtual void Stop()=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
	/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	This method is used to destroy plugin. This is equivalent to destructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	virtual void Release()=0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
#endif