diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/mmfrawformat_8h-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/mmfrawformat_8h-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ - - -TB10.1 Example Applications: examples/Multimedia/MmfExFormatPlugin/mmfrawformat.h Source File - - - - -

examples/Multimedia/MmfExFormatPlugin/mmfrawformat.h

00001 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-00002 // All rights reserved.
-00003 // This component and the accompanying materials are made available
-00004 // under the terms of "Eclipse Public License v1.0"
-00005 // which accompanies this distribution, and is available
-00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
-00007 //
-00008 // Initial Contributors:
-00009 // Nokia Corporation - initial contribution.
-00010 //
-00011 // Contributors:
-00012 //
-00013 // Description:
-00014 //
-00015 
-00016 #ifndef __MMF_RAW_FORMAT_H__
-00017 #define __MMF_RAW_FORMAT_H__
-00018 
-00019 // MMF framework headers
-00020 #include <mmfformat.h>
-00021 #include <mmfdatabuffer.h>
-00022 #include <mmfclip.h>
-00023 #include <implementationproxy.h>
-00024 #include <mmfutilities.h>
-00025 
-00026 /* Audio decoder plug-in to read .RAW audio.
-00027  It implements MDataSource to pass data to the controller, and MDataSink to read data from 
-00028  the source clip.
-00029  Also implements MAsyncEventHandler to send an event to the client */
-00030 class CMMFRawFormatRead : public CMMFFormatDecode, public MAsyncEventHandler
-00031         {
-00032 public:
-00033         // Factory function
-00034         static CMMFFormatDecode* NewL(MDataSource* aSource);
-00035         ~CMMFRawFormatRead();
-00036 
-00037         //from MDataSource
-00038         void FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer, TMediaId aMediaId);
-00039         CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, TBool &aReference); 
-00040         CMMFBuffer* CreateSourceBufferL(TMediaId aMediaId, CMMFBuffer& aSinkBuffer, TBool &aReference);
-00041         TFourCC SourceDataTypeCode(TMediaId aMediaId);
-00042         TInt SetSourceDataTypeCode(TFourCC aSourceFourCC, TMediaId aMediaId); 
-00043         TInt SourceThreadLogon(MAsyncEventHandler& aEventHandler);
-00044         void SourceThreadLogoff();
-00045         void SourcePrimeL();
-00046         void SourcePlayL();
-00047         void SourcePauseL();
-00048         void SourceStopL();
-00049 
-00050         //from MDataSink
-00051         void BufferFilledL(CMMFBuffer* aBuffer);
-00052 
-00053         // from CMMFFormatDecode
-00054         TUint Streams(TUid aMediaType) const;
-00055         TTimeIntervalMicroSeconds FrameTimeInterval(TMediaId aMediaType) const;
-00056         TTimeIntervalMicroSeconds Duration(TMediaId aMediaType) const;
-00057         TUint NumChannels() {return iChannels;};
-00058         TUint SampleRate() {return iSampleRate;};
-00059         TUint BitRate() {return iSampleRate * iBitsPerSample;};
-00060         TInt SetNumChannels(TUint aChannels);
-00061         TInt SetSampleRate(TUint aSampleRate);
-00062         void GetSupportedSampleRatesL(RArray<TUint>& aSampleRates);
-00063         void GetSupportedNumChannelsL(RArray<TUint>& aNumChannels);
-00064         void GetSupportedDataTypesL(TMediaId aMediaId, RArray<TFourCC>& aDataTypes);
-00065         void SuggestSourceBufferSize(TUint aSuggestedBufferSize);       
-00066 
-00067         //from MAsyncEventHandler
-00068         TInt SendEventToClient(const TMMFEvent& /*aEvent*/) {return KErrNone;}
-00069 
-00070 private:
-00071         // Construction
-00072         void ConstructL(MDataSource* aSource);
-00073         // Helper functions
-00074         CMMFDataBuffer* CreateSourceBufferOfSizeL(TUint aSize);
-00075         void DoReadL(TInt aReadPosition);
-00076         void NegotiateSourceBufferL(CMMFBuffer& aBuffer);
-00077         void CalculateFrameTimeInterval();
-00078 
-00079 protected:
-00080         MDataSource* iClip; //for decode format MDatasource; for encode format MDataSink
-00081         MDataSink* iDataPath; //for decode format MDataSink; for encode format MDataSource
-00082         TFourCC iFourCC;        
-00083 
-00084 private:
-00085         CMMFDataBuffer* iBuffer;
-00086         TUint iStartPosition;
-00087         TUint iPos;
-00088         TUint iChannels;
-00089         TUint iSampleRate;
-00090         TUint iBitsPerSample;
-00091         TTimeIntervalMicroSeconds iFrameTimeInterval;
-00092         TUint iFrameSize;
-00093         TUint iClipLength;
-00094         };
-00095 
-00096 
-00097 /* Audio encoder plug-in to write .RAW audio.
-00098  It implements MDataSink to get data from the controller, and MDataSource to write data to 
-00099  the target clip.
-00100  Also implements MAsyncEventHandler to send an event to the client */
-00101 class CMMFRawFormatWrite : public CMMFFormatEncode, public MAsyncEventHandler
-00102         {
-00103 public:
-00104         // Factory function
-00105         static CMMFFormatEncode* NewL(MDataSink* aSink);
-00106         ~CMMFRawFormatWrite();
-00107 
-00108         //from MDataSink
-00109         CMMFBuffer* CreateSinkBufferL(TMediaId aMediaId, TBool &aReference); 
-00110         TFourCC SinkDataTypeCode(TMediaId aMediaId); //returns FourCC code for the mediaId
-00111         TInt SetSinkDataTypeCode(TFourCC aSinkFourCC, TMediaId aMediaId); 
-00112         TInt SinkThreadLogon(MAsyncEventHandler& aEventHandler);
-00113         void SinkThreadLogoff();
-00114         void Negotiate(MDataSource& aSource);
-00115         void SinkPrimeL();
-00116         void SinkPlayL();
-00117         void SinkPauseL();
-00118         void SinkStopL();
-00119         void EmptyBufferL(CMMFBuffer* aBuffer, MDataSource* aSupplier, TMediaId aMediaId);
-00120 
-00121         //from MDataSource
-00122         void BufferEmptiedL(CMMFBuffer* aBuffer);
-00123 
-00124         // from CMMFFormatEncode
-00125         TTimeIntervalMicroSeconds FrameTimeInterval(TMediaId aMediaType) const;
-00126         TTimeIntervalMicroSeconds Duration(TMediaId aMediaType) const;
-00127         TInt SetNumChannels(TUint aChannels);
-00128         TInt SetSampleRate(TUint aSampleRate);
-00129         TUint NumChannels() {return iChannels;};
-00130         TUint SampleRate() {return iSampleRate;};
-00131         TUint BitRate() {return iSampleRate * iBitsPerSample;};
-00132         TInt64 BytesPerSecond()  ;
-00133         void GetSupportedSampleRatesL(RArray<TUint>& aSampleRates);
-00134         void GetSupportedNumChannelsL(RArray<TUint>& aNumChannels);
-00135         void GetSupportedDataTypesL(TMediaId aMediaId, RArray<TFourCC>& aDataTypes);
-00136         void SetMaximumClipSize(TInt aBytes);
-00137         void CropL(TTimeIntervalMicroSeconds aPosition, TBool aToEnd ) ;
-00138 
-00139         //from MAsyncEventHandler
-00140         TInt SendEventToClient(const TMMFEvent& /*aEvent*/) {return KErrNone;}
-00141 
-00142 private:
-00143         // construction
-00144         void ConstructL(MDataSink* aSink);
-00145         // helper functions
-00146         CMMFDataBuffer* CreateSinkBufferOfSizeL(TUint aSize);
-00147         void CalculateFrameTimeInterval();
-00148         void DoReadL(TInt aReadPosition);
-00149         void DoWriteL(TInt aWritePosition);
-00150 
-00151 private:
-00152         MDataSink* iClip; //for decode format MDatasource; for encode format MDataSink
-00153         MDataSource* iDataPath; //for decode format MDataSink; for encode format MDataSource
-00154         TFourCC iFourCC;        
-00155         CMMFDataBuffer* iBuffer;
-00156         TBool iClipAlreadyExists;
-00157         TBool iBufferCreated;
-00158         TBool iFileHasChanged;
-00159         TUint iStartPosition;
-00160         TUint iDataLength;
-00161         TUint iPos;
-00162         TUint iMaxPos;
-00163         TUint iChannels;
-00164         TUint iSampleRate;
-00165         TUint iSourceChannels;
-00166         TUint iSourceSampleRate;
-00167         TFourCC iSourceFourCC;
-00168         TUint iBitsPerSample;
-00169         TTimeIntervalMicroSeconds iFrameTimeInterval;
-00170         TUint iFrameSize;
-00171         TUint iClipLength;
-00172         TUint iDataSize;
-00173         CMMFChannelAndSampleRateConverterFactory* iChannelAndSampleRateConverterFactory;
-00174         CMMFChannelAndSampleRateConverter* iChannelAndSampleRateConverter; 
-00175         CMMFDataBuffer* iConvertBuffer;
-00176         CMMFBuffer* iBufferToEmpty; //pointer to store buffr to empty - needed if buffer passed to clip is different
-00177         TBool iSourceWillSampleConvert;
-00178         TInt iMaximumClipSize;
-00179         };
-00180 
-00181 #endif
-00182 
-

Generated on Thu Jan 21 10:32:59 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -