--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/mmf/server/mmfclip.h Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,187 @@
+// Copyright (c) 2001-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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __MMFCLIP_H_
+#define __MMFCLIP_H_
+
+#include <mmf/server/mmfdatasource.h>
+#include <mmf/server/mmfdatasink.h>
+#include <mmf/server/mmfbuffer.h>
+#include <mmf/common/mmfutilities.h>
+
+/**
+@publishedAll
+@released
+
+Abstract class to represent a source or sink that contains a multimedia clip (i.e. not a stream or hardware device).
+
+Typical examples are a file or an area of memory (descriptor).
+*/
+class CMMFClip : public CBase, public MDataSource, public MDataSink
+ {
+public :
+ //asynchronous Read/WriteBufferLs
+
+ /**
+ Reads aLength number of bytes of data from the offset, aPosition into the buffer, aBuffer.
+ Intended for asynchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aLength
+ The number of bytes to read.
+ @param aBuffer
+ The buffer to read the data into.
+ @param aPosition
+ The offset from which to start reading.
+ @param aConsumer
+ The sink of tha data read from the clip. Will be informed of read if not NULL.
+ */
+ virtual void ReadBufferL( TInt aLength, CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer) = 0 ;
+
+ /**
+ Writes aLength number of bytes of data from the offset, aPosition from the buffer, aBuffer.
+ Intended for asynchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aLength
+ The number of bytes to write.
+ @param aBuffer
+ The buffer to write the data into.
+ @param aPosition
+ The offset from which to start writing.
+ @param aSupplier
+ The source of the data writen to the clip. Will be informed of write if not NULL.
+ */
+ virtual void WriteBufferL( TInt aLength, CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSupplier) = 0 ;
+
+ /**
+ Reads the maximum number of bytes of data from the offset, aPosition into the buffer, aBuffer.
+ Intended for asynchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aBuffer
+ The buffer to read the data into.
+ @param aPosition
+ The offset from which to start reading.
+ @param aConsumer
+ The sink of tha data read from the clip. Will be informed of read if not NULL.
+ */
+ virtual void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSink* aConsumer) = 0 ;
+
+ /**
+ Writes the maximum number of bytes of data from the offset, aPosition from the buffer, aBuffer.
+ Intended for asynchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aBuffer
+ The buffer to write the data into.
+ @param aPosition
+ The offset from which to start writing.
+ @param aSupplier
+ The source of the data writen to the clip. Will be informed of write if not NULL.
+ */
+ virtual void WriteBufferL( CMMFBuffer* aBuffer, TInt aPosition, MDataSource* aSupplier) = 0 ;
+
+ //synchronous Read/WriteBufferLs
+
+ /**
+ Reads the maximum number of bytes of data from the offset, aPosition into the buffer, aBuffer.
+ Intended for synchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aBuffer
+ The buffer to read the data into.
+ @param aPosition
+ The offset from which to start reading.
+ */
+ virtual void ReadBufferL( CMMFBuffer* aBuffer, TInt aPosition) = 0 ;
+
+ /**
+ Writes the maximum number of bytes of data from the offset, aPosition from the buffer, aBuffer.
+ Intended for synchronous usage.
+
+ This is a virtual function that each derived class must implement.
+
+ @param aBuffer
+ The buffer to write the data into.
+ @param aPosition
+ The offset from which to start writing.
+ */
+ virtual void WriteBufferL( CMMFBuffer* aBuffer, TInt aPosition) = 0 ;
+
+ /**
+ Returns the amount of space available for the clip.
+
+ This is a virtual function that each derived class must implement.
+
+ @return The amount of space available.
+ */
+ virtual TInt64 BytesFree() = 0 ;
+
+ /**
+ Returns the size of the clip in bytes.
+
+ This is a virtual function that each derived class must implement.
+
+ @return The size of the clip.
+ */
+ virtual TInt Size() = 0 ;
+
+ /**
+ Deletes the clip.
+
+ This should be overriden in the derived classes, the default version returns KErrNotSupported.
+
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ virtual TInt Delete() {return KErrNotSupported;}
+
+ /**
+ Sets the size of the clip. This should be overriden in the derived
+ classes, the default version returns KErrNotSupported.
+
+ @param aSize
+ The size of the clip.
+
+ @return An error code indicating if the function call was successful. KErrNone on success, otherwise
+ another of the system-wide error codes.
+ */
+ inline virtual TInt SetSize(TInt aSize);
+
+protected :
+ /**
+ Protected constructor.
+
+ @param aSourceType
+ The source type.
+ @param aSinkType
+ The sink type.
+ */
+ CMMFClip( TUid aSourceType, TUid aSinkType ) : MDataSource( aSourceType ), MDataSink( aSinkType ) {}
+ } ;
+
+inline TInt CMMFClip::SetSize(TInt /*aSize*/)
+{
+ return KErrNotSupported;
+}
+
+
+#endif