synth.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:1k
源码类别:

VC书籍

开发平台:

Visual C++

  1. # ifndef LIBMAD_SYNTH_H
  2. # define LIBMAD_SYNTH_H
  3. # include "fixed.h"
  4. # include "frame.h"
  5. struct mad_pcm {
  6.   unsigned int samplerate; /* 取样率 (Hz) */
  7.   unsigned short channels; /* 声道数 */
  8.   unsigned short length; /* 每声道取样数 */
  9.   mad_fixed_t samples[2][1152]; /* PCM 输出取样 [ch][sample] */
  10. };
  11. struct mad_synth {
  12.   mad_fixed_t filter[2][2][2][16][8]; /* 多相滤波输出 */
  13.    /* [ch][eo][peo][s][v] */
  14.   unsigned int phase; /* 当前处理阶段 */
  15.   struct mad_pcm pcm; /* PCM 输出 */
  16. };
  17. /* 单声道 PCM 选择 */
  18. enum {
  19.   MAD_PCM_CHANNEL_SINGLE = 0
  20. };
  21. /* 双声道 PCM 选择 */
  22. enum {
  23.   MAD_PCM_CHANNEL_DUAL_1 = 0,
  24.   MAD_PCM_CHANNEL_DUAL_2 = 1
  25. };
  26. /* 立体声 PCM 选择 */
  27. enum {
  28.   MAD_PCM_CHANNEL_STEREO_LEFT  = 0,
  29.   MAD_PCM_CHANNEL_STEREO_RIGHT = 1
  30. };
  31. void mad_synth_init(struct mad_synth *);
  32. # define mad_synth_finish(synth)  /* nothing */
  33. void mad_synth_mute(struct mad_synth *);
  34. void mad_synth_frame(struct mad_synth *, struct mad_frame const *);
  35. # endif