数学建模社区-数学中国

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

作者: froggy    时间: 2004-6-25 21:57
标题: 急求:谁能帮我读读这么一小段程序!
<>有关于ACM压缩的BCB代码段:</P>
3 v; Z( R8 C8 \1 w2 Z3 Y+ r<>开始的时候有一个采样的过程和格式设定:</P>
; L/ X) g- A$ f5 {<>void CCompression::SetWaveFormat(int channels, long samplerate, int bitspersample)
& c, z0 d5 {3 Z; ?, D{- o1 M) I: O, \8 t$ z$ Q
memset(&amp;m_wfSrc, 0, sizeof(m_wfSrc));9 J) [. _% N* r6 d
m_wfSrc.cbSize = 0;4 a$ Y* n+ u2 t* Y" O
m_wfSrc.wFormatTag = WAVE_FORMAT_PCM; // pcm( ^" \4 }( c# Q* J% O
m_wfSrc.nChannels = channels; // mono
1 B" U! {! Z/ y( d m_wfSrc.nSamplesPerSec = samplerate; // 11.025 kHz
- T# ]  r8 i$ t0 Z( s m_wfSrc.wBitsPerSample = bitspersample; // 8 bit$ X" K& C4 ]% [; v) T, L
m_wfSrc.nBlockAlign = m_wfSrc.nChannels *m_wfSrc.wBitsPerSample / 8;. q; W: [1 \- E, ?7 p$ A; |
m_wfSrc.nAvgBytesPerSec = m_wfSrc.nSamplesPerSec * m_wfSrc.nBlockAlign;
# G1 z  G) x% C}</P>
) u3 M2 T) M1 z* \4 f
) B5 {3 ~6 q  u" ]0 `$ m5 G<>void CCompression::SetSrcSamples(long samples,unsigned char* pSrcData)! R! i% V; F* [
{
0 A) i+ n9 K  S- r int n=(int)(m_wfSrc.wBitsPerSample/8);</P>; ~+ C" [/ Z9 a- J* X
<> m_dwSrcSamples=samples;2 Q  K- n4 D' `$ r$ T
m_dwSrcBytes=(DWORD)(samples*n);
& R& N/ g) f3 f7 k" a m_pSrcData=(BYTE*)malloc(m_dwSrcBytes);
( V8 \1 d1 g& F9 {1 z( [$ s memcpy(m_pSrcData,pSrcData,m_dwSrcBytes);
! I3 z5 \7 r4 D6 u9 l& S}</P>
. F" N5 e! C2 ?7 [<>请教这段程序的功能!</P>" Z1 x% {9 S0 l0 _
<> // enumerate the formats it supports1 [& c5 y8 A& O8 A+ w7 N
DWORD dwSize = 0;8 V2 _8 H9 t* W3 ?8 H
mmr = acmMetrics((HACMOBJ)had, ACM_METRIC_MAX_SIZE_FORMAT, &amp;dwSize);
- Q6 J7 |( V  K0 e- x; C if (dwSize &lt; sizeof(WAVEFORMATEX)) dwSize = sizeof(WAVEFORMATEX); // for MS-PCM' C1 s! G- t) @( H) o+ o
WAVEFORMATEX* pwf = (WAVEFORMATEX*) malloc(dwSize);
2 p& c) v1 W  |) b: A. ^8 s memset(pwf, 0, dwSize);# p" A' a( P5 f$ J
pwf-&gt;cbSize = LOWORD(dwSize) - sizeof(WAVEFORMATEX);
4 F1 z6 L: w& Q; @4 ]# b pwf-&gt;wFormatTag = pdi-&gt;wFormatTag;</P># ~) h( U! p! Q: B  T" f* ^& V
<>还有这段是长度转换部分PCM-PCM。但是我不清楚具体的实现原理,以及这样做的目的!</P>
+ e- E- N9 n5 k; N/ i2 @<>谢谢!</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