sl@0: /* sl@0: * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: #ifndef MMFAUDIOSVRSERVICE_H sl@0: #define MMFAUDIOSVRSERVICE_H sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @file sl@0: @released sl@0: */ sl@0: sl@0: // INCLUDES sl@0: sl@0: #include sl@0: #include sl@0: sl@0: sl@0: /** sl@0: This is the interface for all audio service sl@0: plugins. So Each Service plugin has to implement this interface. sl@0: */ sl@0: class MAudioSvrService sl@0: { sl@0: public: sl@0: /** sl@0: This method is used to pass a destructor key for ECom. The passed UID must be retained for the lifetime sl@0: of the plugin and, on a subsequent call to Release(),REComSession::DestroyedImplementation() must be sl@0: called by the plugin, using the stored UID. sl@0: @param aUid The Uid returned by REComSession::CreateImplementationL() or similar. sl@0: */ sl@0: virtual void PassDestructorKey(TUid aUid)=0; sl@0: /** sl@0: This method is used to load or create the objects that are internally used by service plugin. sl@0: @return KErrNone if successfull, else corresponding error code sl@0: */ sl@0: virtual TInt Load()=0; sl@0: /** sl@0: This method is used to start the service. sl@0: @return KErrNone if successfull, else corresponding error code sl@0: */ sl@0: virtual TInt Start()=0; sl@0: /** sl@0: This method is used to Stop the service. sl@0: @return KErrNone if successfull, else corresponding error code sl@0: */ sl@0: virtual void Stop()=0; sl@0: /** sl@0: This method is used to destroy plugin. This is equivalent to destructor. sl@0: */ sl@0: virtual void Release()=0; sl@0: }; sl@0: #endif