数学建模社区-数学中国

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

作者: froggy    时间: 2004-6-25 21:57
标题: 急求:谁能帮我读读这么一小段程序!
<>有关于ACM压缩的BCB代码段:</P>* L% ?) H, K; \: L. E
<>开始的时候有一个采样的过程和格式设定:</P>7 O/ n. {( m* Y2 `' C+ g8 ~
<>void CCompression::SetWaveFormat(int channels, long samplerate, int bitspersample); z# u# g5 k( @$ B
{
8 d6 `+ g* V& L  r$ \* T memset(&amp;m_wfSrc, 0, sizeof(m_wfSrc));
7 n0 t& Z2 _1 h m_wfSrc.cbSize = 0;9 z, m2 ~4 k) V
m_wfSrc.wFormatTag = WAVE_FORMAT_PCM; // pcm
: q+ \+ l2 n- e1 @; l$ A m_wfSrc.nChannels = channels; // mono
4 v; B& u1 q( y$ x, @ m_wfSrc.nSamplesPerSec = samplerate; // 11.025 kHz% H' V. f, m4 f% `; o: Q3 g
m_wfSrc.wBitsPerSample = bitspersample; // 8 bit
$ {* l9 V; r7 m m_wfSrc.nBlockAlign = m_wfSrc.nChannels *m_wfSrc.wBitsPerSample / 8;! h4 \3 K' Q; g
m_wfSrc.nAvgBytesPerSec = m_wfSrc.nSamplesPerSec * m_wfSrc.nBlockAlign;
' ~5 I* z# j" @7 i* a}</P>
8 o  N. M; @  G. J  u' O% j4 W8 ^1 c7 x2 l0 X$ [: y" w3 `) h
<>void CCompression::SetSrcSamples(long samples,unsigned char* pSrcData)
! P; I' D4 H: d{( ~: {0 A. @3 ~2 y2 M) p
int n=(int)(m_wfSrc.wBitsPerSample/8);</P>+ M" @" K/ v+ A+ t  @2 f4 g
<> m_dwSrcSamples=samples;1 b) f; @8 L, K3 ?& x  c8 C- M
m_dwSrcBytes=(DWORD)(samples*n);- z8 ?2 y2 s- w; k6 w. c* I1 R
m_pSrcData=(BYTE*)malloc(m_dwSrcBytes);' C! f, a' A/ k1 O3 r1 e
memcpy(m_pSrcData,pSrcData,m_dwSrcBytes);* |; H0 L8 i" D/ C
}</P>) [% `# r& p% s
<>请教这段程序的功能!</P>9 I8 m- v: t5 l" \$ J! R8 F
<> // enumerate the formats it supports& o7 J$ q, W" o6 ^" l
DWORD dwSize = 0;
* {# t' Z# `% T! @7 W. E mmr = acmMetrics((HACMOBJ)had, ACM_METRIC_MAX_SIZE_FORMAT, &amp;dwSize);
  c- }5 `2 ~' z* ]; } if (dwSize &lt; sizeof(WAVEFORMATEX)) dwSize = sizeof(WAVEFORMATEX); // for MS-PCM4 z( T: f" Q% |( z) A3 Z2 a
WAVEFORMATEX* pwf = (WAVEFORMATEX*) malloc(dwSize);8 ]$ t! j, @  N$ p4 o) Q
memset(pwf, 0, dwSize);
2 r5 A: E  \' Z' x$ q& [ pwf-&gt;cbSize = LOWORD(dwSize) - sizeof(WAVEFORMATEX);
" @' O( e) O. f  H5 T' B) P6 J1 X pwf-&gt;wFormatTag = pdi-&gt;wFormatTag;</P>
$ V2 c$ U- y! l7 X3 p<>还有这段是长度转换部分PCM-PCM。但是我不清楚具体的实现原理,以及这样做的目的!</P>9 s/ O. t1 C' s! q& e" {) O
<>谢谢!</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