00001
00002
00003
00004
00005
00006 #ifndef VORBISBODY_H
00007 #define VORBISBODY_H
00008
00014 NONSHARABLE_CLASS(CVorbisInfo::CBody) : public CBase
00015 {
00016 friend class CVorbisInfo;
00017 private:
00018 CBody();
00019 ~CBody();
00020 void Construct3L();
00021
00022 void InitializeL(const TOggPacket& aNextPacket);
00023 void InitializeL(TUint aSampleRate, TUint aBitRate, TUint aNumChannels);
00024 TInt SampleRate();
00025 TInt Channels();
00026 TDesC& Vendor();
00027 TInt Comments();
00028 CVorbisComment& GetComment(TInt aIndex);
00029 TInt BitRateNominal();
00030 TInt BitRateUpper();
00031 TInt BitRateLower();
00032 void ConvertCommentDataL();
00033 TInt TranslateOggVorbisError(TInt aError);
00034 void SetSampleRate(TUint aSampleRate);
00035 void SetBitRate(TUint aBitRate);
00036 void SetChannels(TUint aChannels);
00037 private:
00038 static const TInt KPcktsRqrd = 3;
00039 TInt iPcktsRcvd;
00040 vorbis_info iInfo;
00041 vorbis_comment iComment;
00042 #ifdef SYMBIAN_CODEC_FLOAT_POINT
00043 vorbis_dsp_state iDspState;
00044 vorbis_block iBlock;
00045 #endif
00046 CArrayPtrFlat<CVorbisComment>* iComments;
00047 HBufC* iVendor;
00048 };
00049
00050 #endif