⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwavfile_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
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> &amp; header, <a class="code" href="classPBYTEArray.html">PBYTEArray</a> &amp; 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> &amp; <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> &amp; <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> &amp; file, <span class="keywordtype">void</span> * buf, PINDEX &amp; 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> &amp; file, <span class="keyword">const</span> <span class="keywordtype">void</span> * buf, PINDEX &amp; 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&lt;PWAVFileFormat&gt;</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&lt;PWAVFileFormat, unsigned&gt;</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> &amp; 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> &amp; 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> &amp; 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> &amp; 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> &amp; 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> &amp; 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> &amp; 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&lt;PWAVFileConverter, unsigned&gt;</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> &amp; 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> &amp; 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> &amp; 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> &amp; format,  00325       <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> &amp; 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 + -