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

📄 voxcomn.h

📁 s1d13716的源码 windiws ce 或8位单片机
💻 H
字号:
/*
 * voxcomn.h
 *  
 * Ver0.10 98/07/29 H.Matsuoka  Start
 * Ver0.20 98/12/03 H.Matsuoka  clean up
 * Ver0.21 98/12/16 H.Matsuoka  change SPK_8BIT
 * Ver0.22 99/ 1/11 H.Matsuoka  change Slparam structure
 * Ver0.23 99/ 2/ 3 H.Matsuoka  add vox top level error
 *
 */

#ifndef VOXTOP_H
#define VOXTOP_H

extern char vsxTopError;
extern char adpTopError;
extern char voxTopError;
extern char vox2TopError;
extern char ppcTopError;

#define VOX_SUCCESS     1
#define VOX_BUF_FULL    -1
#define VOX_MAX_SAMPLE  -2
#define VSC_ERROR       -3

extern short SPK_VOLUME0;
extern short SPK_PREDATA;
extern short SPK_SOFTENING;

typedef struct {
    short offset;
    short shift;
    short limit;
} Slparam;


#ifdef SPK_8BIT
#define SPK_OFFSET    0x80  /* for 8bit D/A or PWM output */
#define SPK_LIMIT     0xfe  /* */
#define SPK_SHIFT     2     /* 10bit -> 8bit */
#define VSX_SPK_SHIFT 4     /* 12bit -> 8bit */
#define ADP_SPK_SHIFT 6     /* 14bit -> 8bit */
#else
#define SPK_OFFSET    0x200 /* for 10bit PWM output */
#define SPK_LIMIT     0x3fe /* */
#define SPK_SHIFT     0     /* 10bit -> 10bit */
#define VSX_SPK_SHIFT 2     /* 12bit -> 10bit */
#define ADP_SPK_SHIFT 4     /* 14bit -> 10bit */
#endif

#ifdef COMPRESS_TOOL
#define LIS_SHIFT     0
#define ADP_LIS_SHIFT 0
#define VSX_LIS_SHIFT 0
#define LIS_OFFSET    0
#else
#define LIS_OFFSET -512     /* for A/D convertor 10 bit unsigned data */
#define LIS_SHIFT     0     /* 10bit -> 10bit */
#define VSX_LIS_SHIFT 2     /* 10bit -> 12bit */
#define ADP_LIS_SHIFT 4     /* 10bit -> 14bit */
#endif
#endif  // #ifndef VOXTOP_H

#define SPLIS_LSHIFT    0x10
#define SPLIS_RSHIFT    0

#define PACKET_SIZE     128

#ifdef SPK_8BIT
#define SPK_PACKET_SIZE 128
#else
#define SPK_PACKET_SIZE 256
#endif 

#define SPLIS_BUF_SIZE  SPK_PACKET_SIZE*3


#ifdef CLOCK40
#define VOX_CPU_CLOCK   40000000
#define SPK_SOFT        1
#else
#define VOX_CPU_CLOCK   20000000
#define SPK_SOFT        3
#endif


/* vox top level function */

unsigned char* vsxSpeak(unsigned char*, int);
unsigned char* vsxListen(int, int, unsigned char*, unsigned char, short);

unsigned char* adpcmSpeak(unsigned char *);
unsigned char* adpcmListen(int, int, unsigned char *, unsigned char, unsigned char *);

unsigned char* voxSpeak(unsigned char *, int, int);
unsigned char* vox2Speak(unsigned char *, int, int);
unsigned char* voxListen(int , int , unsigned char *, unsigned char *);

unsigned char* ppcSpeak(unsigned char*, int, int);
unsigned char* ppcListen(int, int, unsigned char*, unsigned char*);

unsigned char* pcmSpeak(short *);
unsigned char* pcmListen(short *, int);

/* filter function */
int fltInit(int);
int fltFiltering(short *, short *, short);

/* common function */
void setSpeakVolume(short);
void setSpeakSoftening(char);
void voxCodecpy(int*, int*, int* );
void adpcmCodecpy(unsigned char);

/* speak and listen utility */
void slLis2Pcm(short* Src, short* Dst, int Length, Slparam* slParam);
void slPcm2Spk(short* Src, short* Dst, int Length, Slparam* slParam);




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -