00001
00002
00003
00004
00005
00006
00007 #ifndef VORBISENCODERPLUGIN_H
00008 #define VORBISENCODERPLUGIN_H
00009
00010
00011 #include <mmf/server/devsoundstandardcustominterfaces.h>
00012
00013
00014
00015 class CVorbisEncoderPlugIn : public CMMFSwCodec
00016 {
00017 public:
00018 static CVorbisEncoderPlugIn* NewL();
00019 virtual ~CVorbisEncoderPlugIn();
00020
00021 virtual TCodecProcessResult ProcessL
00022 (const CMMFBuffer& aSource, CMMFBuffer& aDest);
00023 virtual TUint SourceBufferSize();
00024 virtual TUint SinkBufferSize();
00025 TInt Configure(TInt aSampleRate, TInt aChannels);
00026
00027 void GetSupportedBitRatesL(RArray<TInt>& aSupportedBitRates);
00028 TInt BitRateL();
00029 void SetBitRateL(TInt aBitRate);
00030 private:
00031 CVorbisEncoderPlugIn();
00032 void ConstructL();
00033 private:
00034 CVorbisProcessor* iProc;
00035 };
00036
00037
00038
00039 class CVorbisEncoderPlugInWrapper : public CMMFSwCodecWrapper, public MMMFDevSoundCustomInterfaceBitRate
00040 {
00041 public:
00042 static CVorbisEncoderPlugInWrapper* NewL();
00043 virtual ~CVorbisEncoderPlugInWrapper();
00044
00045 TInt Start(TDeviceFunc aFuncCmd, TDeviceFlow aFlowCmd);
00046 TInt SetConfig(TTaskConfig& aConfig);
00047
00048 CMMFSwCodec& Codec();
00049
00050 TAny* CustomInterface(TUid aInterfaceId);
00051
00052 void GetSupportedBitRatesL(RArray<TInt>& aSupportedBitRates);
00053 TInt BitRateL();
00054 void SetBitRateL(TInt aBitRate);
00055 private:
00056 CVorbisEncoderPlugInWrapper();
00057 void ConstructL();
00058 private:
00059 CVorbisEncoderPlugIn* iDevice;
00060 TBool iCodecReturned;
00061 };
00062
00063 #endif //VORBISENCODERPLUGIN_H