📄 pwavfile_8h-source.html
字号:
00125 {<a name="l00126"></a><a class="code" href="structPWAV_1_1ChunkHeader.html#m0">00126</a> <span class="keywordtype">char</span> tag[4] <a class="code" href="structPWAV_1_1ChunkHeader.html#m0">P_PACKED</a>;<a name="l00127"></a><a class="code" href="structPWAV_1_1ChunkHeader.html#m1">00127</a> PInt32l len <a class="code" href="structPWAV_1_1ChunkHeader.html#m0">P_PACKED</a>;00128 };00129 <a name="l00130"></a><a class="code" href="structPWAV_1_1RIFFChunkHeader.html">00130</a> <span class="keyword">struct </span><a class="code" href="structPWAV_1_1RIFFChunkHeader.html">RIFFChunkHeader</a> 00131 {<a name="l00132"></a><a class="code" href="structPWAV_1_1RIFFChunkHeader.html#m0">00132</a> <a class="code" href="structPWAV_1_1ChunkHeader.html">ChunkHeader</a> hdr <a class="code" href="structPWAV_1_1RIFFChunkHeader.html#m0">P_PACKED</a>;<a name="l00133"></a><a class="code" href="structPWAV_1_1RIFFChunkHeader.html#m1">00133</a> <span class="keywordtype">char</span> tag[4] <a class="code" href="structPWAV_1_1RIFFChunkHeader.html#m0">P_PACKED</a>;00134 };00135 <a name="l00136"></a><a class="code" href="structPWAV_1_1FMTChunk.html">00136</a> <span class="keyword">struct </span><a class="code" href="structPWAV_1_1FMTChunk.html">FMTChunk</a>00137 {<a name="l00138"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m0">00138</a> <a class="code" href="structPWAV_1_1ChunkHeader.html">ChunkHeader</a> hdr <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// chunk header</span><a name="l00139"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m1">00139</a> PUInt16l format <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Format </span><a name="l00140"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m2">00140</a> PUInt16l numChannels <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Channels 0x01 = mono, 0x02 = stereo</span><a name="l00141"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m3">00141</a> PUInt32l sampleRate <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Sample Rate in Hz</span><a name="l00142"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m4">00142</a> PUInt32l bytesPerSec <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Average bytes Per Second</span><a name="l00143"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m5">00143</a> PUInt16l bytesPerSample <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Bytes Per Sample, eg 2</span><a name="l00144"></a><a class="code" href="structPWAV_1_1FMTChunk.html#m6">00144</a> PUInt16l bitsPerSample <a class="code" href="structPWAV_1_1FMTChunk.html#m0">P_PACKED</a>; <span class="comment">// Bits Per Sample, eg 16</span>00145 };00146 00147 }; <span class="comment">// namespace PWAV</span>00148 00149 <span class="preprocessor">#ifdef __GNUC__</span>00150 <span class="preprocessor"></span><span class="preprocessor">#undef P_PACKED</span>00151 <span class="preprocessor"></span><span class="preprocessor">#else</span>00152 <span class="preprocessor"></span><span class="preprocessor">#pragma pack()</span>00153 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00154 <span class="preprocessor"></span><a name="l00158"></a><a class="code" href="classPWAVFileFormat.html">00158</a> <span class="keyword">class </span><a class="code" href="classPWAVFileFormat.html">PWAVFileFormat</a>00159 {00160 <span class="keyword">public</span>:00164 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classPWAVFileFormat.html#a0">GetFormat</a>() <span class="keyword">const</span> = 0;00165 00169 <span class="keyword">virtual</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPWAVFileFormat.html#a1">GetFormatString</a>() <span class="keyword">const</span> = 0;00170 00174 <span class="keyword">virtual</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPWAVFileFormat.html#a2">GetDescription</a>() <span class="keyword">const</span> = 0;00175 00179 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPWAVFileFormat.html#a3">CreateHeader</a>(<a class="code" href="structPWAV_1_1FMTChunk.html">PWAV::FMTChunk</a> & header, <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & extendedHeader) = 0;00180 <a name="l00184"></a><a class="code" href="classPWAVFileFormat.html#a4">00184</a> <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileFormat.html#a4">WriteExtraChunks</a>(<a class="code" href="classPWAVFile.html">PWAVFile</a> & <span class="comment">/*file*/</span>)00185 { <span class="keywordflow">return</span> TRUE; }00186 <a name="l00190"></a><a class="code" href="classPWAVFileFormat.html#a5">00190</a> <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileFormat.html#a5">ReadExtraChunks</a>(<a class="code" href="classPWAVFile.html">PWAVFile</a> & <span class="comment">/*file*/</span>)00191 { <span class="keywordflow">return</span> TRUE; }00192 <a name="l00196"></a><a class="code" href="classPWAVFileFormat.html#a6">00196</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPWAVFileFormat.html#a6">OnStart</a>()00197 { }00198 <a name="l00202"></a><a class="code" href="classPWAVFileFormat.html#a7">00202</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPWAVFileFormat.html#a7">OnStop</a>()00203 { }00204 00208 <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileFormat.html#a8">Read</a>(<a class="code" href="classPWAVFile.html">PWAVFile</a> & file, <span class="keywordtype">void</span> * buf, PINDEX & len);00209 00213 <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileFormat.html#a9">Write</a>(<a class="code" href="classPWAVFile.html">PWAVFile</a> & file, <span class="keyword">const</span> <span class="keywordtype">void</span> * buf, PINDEX & len);00214 };00215 <a name="l00216"></a><a class="code" href="pwavfile_8h.html#a1">00216</a> <span class="keyword">typedef</span> <a class="code" href="classPFactory.html">PFactory<PWAVFileFormat></a> <a class="code" href="classPFactory.html">PWAVFileFormatByFormatFactory</a>;<a name="l00217"></a><a class="code" href="pwavfile_8h.html#a2">00217</a> <span class="keyword">typedef</span> <a class="code" href="classPFactory.html">PFactory<PWAVFileFormat, unsigned></a> <a class="code" href="classPFactory.html">PWAVFileFormatByIDFactory</a>;00218 <a name="l00222"></a><a class="code" href="classPWAVFileConverter.html">00222</a> <span class="keyword">class </span><a class="code" href="classPWAVFileConverter.html">PWAVFileConverter</a> 00223 {00224 <span class="keyword">public</span>:00225 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classPWAVFileConverter.html#a0">GetFormat</a> (<span class="keyword">const</span> <a class="code" href="classPWAVFile.html">PWAVFile</a> & file) <span class="keyword">const</span> = 0;00226 <span class="keyword">virtual</span> off_t <a class="code" href="classPWAVFileConverter.html#a1">GetPosition</a> (<span class="keyword">const</span> <a class="code" href="classPWAVFile.html">PWAVFile</a> & file) <span class="keyword">const</span> = 0;00227 <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileConverter.html#a2">SetPosition</a> (<a class="code" href="classPWAVFile.html">PWAVFile</a> & file, off_t pos, <a class="code" href="classPFile.html#z133_0">PFile::FilePositionOrigin</a> origin) = 0;00228 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classPWAVFileConverter.html#a3">GetSampleSize</a>(<span class="keyword">const</span> <a class="code" href="classPWAVFile.html">PWAVFile</a> & file) <span class="keyword">const</span> = 0;00229 <span class="keyword">virtual</span> off_t <a class="code" href="classPWAVFileConverter.html#a4">GetDataLength</a> (<a class="code" href="classPWAVFile.html">PWAVFile</a> & file) = 0;00230 <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileConverter.html#a5">Read</a> (<a class="code" href="classPWAVFile.html">PWAVFile</a> & file, <span class="keywordtype">void</span> * buf, PINDEX len) = 0;00231 <span class="keyword">virtual</span> BOOL <a class="code" href="classPWAVFileConverter.html#a6">Write</a> (<a class="code" href="classPWAVFile.html">PWAVFile</a> & file, <span class="keyword">const</span> <span class="keywordtype">void</span> * buf, PINDEX len) = 0;00232 };00233 <a name="l00234"></a><a class="code" href="pwavfile_8h.html#a3">00234</a> <span class="keyword">typedef</span> <a class="code" href="classPFactory.html">PFactory<PWAVFileConverter, unsigned></a> <a class="code" href="classPFactory.html">PWAVFileConverterFactory</a>;00235 <a name="l00238"></a><a class="code" href="classPWAVFile.html">00238</a> <span class="keyword">class </span><a class="code" href="classPWAVFile.html">PWAVFile</a> : <span class="keyword">public</span> <a class="code" href="classPFile.html">PFile</a>00239 {00240 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPWAVFile.html">PWAVFile</a>, <a class="code" href="classPFile.html">PFile</a>);00241 00242 <span class="keyword">public</span>:00248 <span class="keyword">enum</span> {00249 <a class="code" href="classPWAVFile.html#z493_0s0">fmt_PCM</a> = 1, 00250 <a class="code" href="classPWAVFile.html#z493_0s1">fmt_ALaw</a> = 6, 00251 <a class="code" href="classPWAVFile.html#z493_0s2">fmt_uLaw</a> = 7, 00252 <a class="code" href="classPWAVFile.html#z493_0s3">fmt_GSM</a> = 0x31, 00253 <a class="code" href="classPWAVFile.html#z493_0s4">fmt_G728</a> = 0x41, 00254 <a class="code" href="classPWAVFile.html#z493_0s5">fmt_G723</a> = 0x42, 00255 <a class="code" href="classPWAVFile.html#z493_0s6">fmt_MSG7231</a> = 0x42, 00256 <a class="code" href="classPWAVFile.html#z493_0s7">fmt_G726</a> = 0x64, 00257 <a class="code" href="classPWAVFile.html#z493_0s8">fmt_G722</a> = 0x65, 00258 <a class="code" href="classPWAVFile.html#z493_0s9">fmt_G729</a> = 0x84, 00259 <a class="code" href="classPWAVFile.html#z493_0s10">fmt_VivoG7231</a> = 0x111, 00260 00261 <span class="comment">// For backward compatibility</span>00262 <a class="code" href="classPWAVFile.html#z493_0s11">PCM_WavFile</a> = <a class="code" href="classPWAVFile.html#z493_0s0">fmt_PCM</a>,00263 <a class="code" href="classPWAVFile.html#z493_0s12">G7231_WavFile</a> = <a class="code" href="classPWAVFile.html#z493_0s10">fmt_VivoG7231</a>,00264 00265 <span class="comment">// allow opening files without knowing the format</span>00266 <a class="code" href="classPWAVFile.html#z493_0s13">fmt_NotKnown</a> = 0x1000000267 };00268 00278 <a class="code" href="classPWAVFile.html#z493_1">PWAVFile</a>(00279 <span class="keywordtype">unsigned</span> <a class="code" href="classPWAVFile.html#z493_6">format</a> = <a class="code" href="classPWAVFile.html#z493_0s0">fmt_PCM</a> 00280 );00281 <span class="keyword">static</span> <a class="code" href="classPWAVFile.html">PWAVFile</a> * <a class="code" href="classPWAVFile.html#z493_6">format</a>(00282 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & format 00283 );00284 00297 <a class="code" href="classPWAVFile.html#z493_1">PWAVFile</a>(00298 <a class="code" href="classPFile.html#z125_0">OpenMode</a> mode, 00299 <span class="keywordtype">int</span> opts = <a class="code" href="classPFile.html#z125_1s3">ModeDefault</a>, 00300 <span class="keywordtype">unsigned</span> format = <a class="code" href="classPWAVFile.html#z493_0s0">fmt_PCM</a> 00301 );00302 <span class="keyword">static</span> <a class="code" href="classPWAVFile.html">PWAVFile</a> * <a class="code" href="classPWAVFile.html#z493_6">format</a>(00303 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & format, 00304 <a class="code" href="classPFile.html#z125_0">PFile::OpenMode</a> mode, 00305 <span class="keywordtype">int</span> opts = <a class="code" href="classPFile.html#z125_1s3">PFile::ModeDefault</a> 00306 );00307 00317 <a class="code" href="classPWAVFile.html#z493_1">PWAVFile</a>(00318 <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> & name, 00319 <a class="code" href="classPFile.html#z125_0">OpenMode</a> mode = <a class="code" href="classPFile.html#z125_0s2">ReadWrite</a>, 00320 <span class="keywordtype">int</span> opts = <a class="code" href="classPFile.html#z125_1s3">ModeDefault</a>, 00321 <span class="keywordtype">unsigned</span> format = <a class="code" href="classPWAVFile.html#z493_0s0">fmt_PCM</a> 00322 );00323 <a class="code" href="classPWAVFile.html#z493_1">PWAVFile</a>(00324 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & format, 00325 <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> & name, 00326 <a class="code" href="classPFile.html#z125_0">OpenMode</a> mode = <a class="code" href="classPFile.html#z125_0s2">PFile::ReadWrite</a>, 00327 <span class="keywordtype">int</span> opts = <a class="code" href="classPFile.html#z125_1s3">PFile::ModeDefault</a> 00328 );00329
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -