--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/multimedia/d_mmcsc.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,78 @@
+// 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 the License "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:
+// e32test\multimedia\d_mmcsc.h
+// The interface to a device driver which creates a shared chunk - for use with the sound driver tests.
+// This driver uses only generic kernel APIs and so need not be built from each variant.
+//
+//
+
+/**
+ @file
+ @internalComponent
+ @test
+*/
+
+#if !defined(__D_MMCSC_H__)
+#define __D_MMCSC_H__
+
+#include <e32cmn.h>
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+
+_LIT(KDevMmCScName,"MmCSc");
+
+const TInt KMmCScBufSize=153600; // 150K
+const TInt KMmCScNumBuffers=8;
+
+struct SBufSpecList
+ {
+ /** The first entry of the buffer offset list. This list holds the offset from the start of the chunk
+ for each buffer. This list is only valid if the flag KScFlagBufOffsetListInUse is set in
+ TSharedChunkBufConfigBase::iFlags. */
+ TInt iBufferOffset;
+ TInt iBufferId;
+ };
+
+class TMmSharedChunkBufConfig : public TSharedChunkBufConfigBase
+ {
+public:
+ /** The buffer offset list. This holds the offset from the start of the chunk for each buffer. This list is
+ only valid if the flag KScFlagBufOffsetListInUse is set in TSharedChunkBufConfigBase::iFlags. */
+ struct SBufSpecList iSpec[KMmCScNumBuffers];
+ };
+
+class TCapsMmCScV01
+ {
+public:
+ TVersion iVersion;
+ };
+
+class RMmCreateSc : public RBusLogicalChannel
+ {
+public:
+ enum TControl
+ { EGetChunkHandle,EGetBufInfo };
+#ifndef __KERNEL_MODE__
+public:
+ inline TInt Open()
+ { return DoCreate(KDevMmCScName,TVersion(0,1,1),KNullUnit,NULL,NULL,EOwnerThread);}
+ inline TInt GetChunkHandle(RChunk& aChunk)
+ { return(aChunk.SetReturnedHandle(DoControl(EGetChunkHandle)));}
+ inline TInt GetBufInfo(TDes8& aBufInfo)
+ { return(DoControl(EGetBufInfo,(TAny*)&aBufInfo));}
+#endif
+ };
+
+#endif // __D_MMCSC_H__