--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devsound/devsoundapi/inc/mmfdevsoundcustominterfacesupportclasses.h Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,155 @@
+
+// MmfDevSoundCustomInterfaceSupport.h
+
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @publishedPartner
+ @released
+ @file
+*/
+
+#ifndef MMFDEVSOUNDCUSTOMINTERFACESUPPORTCLASSES_H
+#define MMFDEVSOUNDCUSTOMINTERFACESUPPORTCLASSES_H
+
+const TUid KMmfUidDevSoundAudioResourceCustomInterface = {0x101FD9F3};
+const TUid KMmfUidDevSoundEmptyBuffersCustomInterface = {0x1027379c};
+const TUid KMmfUidDevSoundCancelInitializeCustomInterface = {0x102834D3};
+const TUid KMmfUidDevSoundAudioClientThreadInfoCustomInterface = {0x102834A7};
+
+
+/**
+Custom Interface class providing support for emptying the play buffers.
+*/
+class MMMFDevSoundEmptyBuffers
+ {
+public:
+
+ /**
+ Empties the play buffers below DevSound without causing the codec to be deleted.
+
+ @return An error code indicating if the function call was successful. KErrNone on success, KErrNotSupported
+ if called in record mode, otherwise another of the system-wide error codes.
+ */
+ virtual TInt EmptyBuffers() = 0;
+ };
+
+/**
+Custom Interface class providing support for canceling initialization.
+*/
+class MMMFDevSoundCancelInitialize
+ {
+public:
+
+ /** Cancels the initialization process of a CMMFDevSound object
+
+ @return An error code indicating if the function call was successful.
+ KErrNone on success,
+ KerrNotReady if this is called before InitializeL() call or after
+ the object has been initialized,
+ */
+ virtual TInt CancelInitialize() = 0;
+ };
+
+/**
+Custom Interface class providing support for setting the client thread info for devsound.
+*/
+class MAudioClientThreadInfo
+ {
+public:
+ /**
+ Set client thread info for devsound if plugin implementation requires this info
+
+ @param aTid the required thread Id
+ @return An error code indicating if the function call was successful.
+
+ @capability MultimediaDD
+ A process requires MultimediaDD capability to make this call.
+ */
+ virtual TInt SetClientThreadInfo(TThreadId aTid) = 0;
+ };
+
+/*****************************************************************************/
+/**
+UID associated with the Custom interface MMMFDevSoundGetTimePlayed
+*/
+const TUid KMmfUidDevSoundTimePlayedCustomInterface = {0x10285CE4};
+
+/**
+This class provides an interface to querying current play time from DevSound.
+*/
+class MMMFDevSoundTimePlayed
+ {
+public:
+ /** Retrieves the current play time from the audio renderer.
+ @param aTime
+ A reference to TTimeIntervalMicroSeconds object which will be filled with the current play time by this function.
+ @return An error code indicating if the function call was successful.
+ KErrNone on success,
+ KErrNotSupported if the underlying HwDevice does not support this custominterface
+ */
+ virtual TInt GetTimePlayed(TTimeIntervalMicroSeconds& aTime) = 0;
+ };
+
+/*****************************************************************************/
+/**
+UID associated with the Custom interface MMMFDevSoundQueryIgnoresUnderflow
+*/
+const TUid KMmfUidDevSoundQueryIgnoresUnderflowCustomInterface = {0x10285E7B};
+
+/**
+This class provides an interface for querying DevSound whether it ignores the underflow errors from the sound driver.
+*/
+class MMMFDevSoundQueryIgnoresUnderflow
+ {
+public:
+ /** Queries the devsound whether it ignores the underflow errors from the sound driver
+ @return ETrue if the devsound ignores all the underflow errors from the sound driver except for the last buffer. That means DevSound
+ propagates the underflow error from sound driver to its clients only when client sets the last buffer flag on the CMMFBuffer type buffer.
+ EFalse if devsound propagates the underflow errors from the sound driver in all the cases
+ */
+ virtual TBool QueryIgnoresUnderflow() = 0;
+ };
+
+
+const TUid KMmfUidDevSoundTruePauseCustomInterface = {0x1028643E};
+
+/**
+This class provides an interface to be able to Resume from DevSound.
+@publishedPartner
+@released
+*/
+class MMMFDevSoundTruePause
+ {
+public:
+ /** Queries the devsound whether it supports True Pause or not
+ This call is only valid when DevSound is initialized
+ @return ETrue if the current DevSound configuration does support this feature
+ EFalse otherwise
+ */
+ virtual TBool IsResumeSupported() = 0;
+
+ /** Resume the playback, recording or tone playing that was paused
+ @return An error code indicating if the function call was successful.
+ KErrNone on success,
+ KErrNotReady when is DevSound is not in pause
+ KErrNotSupported if the DevSound configuration does support this feature
+ */
+ virtual TInt Resume() = 0;
+ };
+
+
+#endif // MMFDEVSOUNDCUSTOMINTERFACESUPPORTCLASSES_H