数学建模社区-数学中国

标题: 急求:谁能帮我读读这么一小段程序! [打印本页]

作者: froggy    时间: 2004-6-25 21:57
标题: 急求:谁能帮我读读这么一小段程序!
<>有关于ACM压缩的BCB代码段:</P>
. T' O& [9 K2 z<>开始的时候有一个采样的过程和格式设定:</P>( B, y) v6 x& ?8 }( \
<>void CCompression::SetWaveFormat(int channels, long samplerate, int bitspersample)$ q9 O$ r0 k5 J5 ?& {/ [/ |4 }( A* U
{) f" \5 V- C7 r8 e/ ^2 O, [
memset(&amp;m_wfSrc, 0, sizeof(m_wfSrc));) D  w1 n! l- ^# i( z/ U9 S- p
m_wfSrc.cbSize = 0;
; K) f" X" M' l m_wfSrc.wFormatTag = WAVE_FORMAT_PCM; // pcm$ p  B/ ], N; G; T) H2 a  R: H
m_wfSrc.nChannels = channels; // mono
8 i. m+ n) d' S/ Z* ^ m_wfSrc.nSamplesPerSec = samplerate; // 11.025 kHz6 _9 q, _4 c' g) {: }6 e
m_wfSrc.wBitsPerSample = bitspersample; // 8 bit
) B' W2 ]# Z4 | m_wfSrc.nBlockAlign = m_wfSrc.nChannels *m_wfSrc.wBitsPerSample / 8;3 X7 U. d9 W! O' P
m_wfSrc.nAvgBytesPerSec = m_wfSrc.nSamplesPerSec * m_wfSrc.nBlockAlign;. \/ u' Z8 g  B+ f4 V
}</P>
( t) O1 @: R' u
+ [: `7 F7 y6 h, f$ `4 n9 K$ ]<>void CCompression::SetSrcSamples(long samples,unsigned char* pSrcData)
2 c- J2 ~: u# c4 O3 v& y; E{7 _8 z! A0 g+ ]( v& [* e
int n=(int)(m_wfSrc.wBitsPerSample/8);</P>0 ~/ U- x6 i2 t, x& t
<> m_dwSrcSamples=samples;
- ~3 Y- H0 G# f8 ?9 A m_dwSrcBytes=(DWORD)(samples*n);
. ^& E% y4 H2 f2 ?6 f" O m_pSrcData=(BYTE*)malloc(m_dwSrcBytes);( a4 y' W( }) `
memcpy(m_pSrcData,pSrcData,m_dwSrcBytes);, E# {, Q$ D& o' N% C+ h
}</P>
6 M, I! p# s3 y0 R7 a* \2 B+ ?<>请教这段程序的功能!</P>2 i( V! Y$ B& X! D8 _
<> // enumerate the formats it supports, H# |* P4 m. f: q& e
DWORD dwSize = 0;
$ Y; P) ?" I* V& @" d. z0 I: L mmr = acmMetrics((HACMOBJ)had, ACM_METRIC_MAX_SIZE_FORMAT, &amp;dwSize);' M! b! I7 s5 w4 x6 w& `4 \
if (dwSize &lt; sizeof(WAVEFORMATEX)) dwSize = sizeof(WAVEFORMATEX); // for MS-PCM
" f9 P, c) _! ~  g6 \4 n WAVEFORMATEX* pwf = (WAVEFORMATEX*) malloc(dwSize);
1 B/ Q. q, h" B8 [5 y memset(pwf, 0, dwSize);& Y4 R# ]  _, |2 C  ^3 |
pwf-&gt;cbSize = LOWORD(dwSize) - sizeof(WAVEFORMATEX);
9 l" _( O( {+ X+ U/ k% m) M* Q' r pwf-&gt;wFormatTag = pdi-&gt;wFormatTag;</P>
# s5 o) W3 O- L' W0 E8 K<>还有这段是长度转换部分PCM-PCM。但是我不清楚具体的实现原理,以及这样做的目的!</P>
+ I& Z& T) ?5 Y1 R/ @<>谢谢!</P>
作者: ilikenba    时间: 2004-6-27 22:05
<>前面的两个函数应该是一个起创立m_wfSrc结构,并设置了它内部的成员!另一个的作用就是拷贝了一个结构!</P><>最后那个实现的原理我不懂!需要查查资料!</P>
作者: doudou0710    时间: 2004-6-27 22:12
爱莫能助
作者: xShandow    时间: 2004-6-30 11:42
这个有点像是GSM模块中的程序.难道和手机短信有关?是发送模块吗.




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5