📄 wavestream.h
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifndef _WAVESTREAM_
#define _WAVESTREAM_
#define RIFF 0x46464952
#define SUNPLUS 0xFF00FF00
#define RAW 0xFFFFFFFF
typedef unsigned int uint;
typedef unsigned short word;
typedef struct {
int fs;
int ch;
int bits;
int types; // 0: MSB first 1: LSB first
int offset;
FILE *pf;
int length;
int read_write; // 0: read, 1: write
int decode; // 0: raw data 1: decode data
} waveinfo;
class cwavefile {
public:
waveinfo *info;
public:
cwavefile(waveinfo *i) { info = i; };
~cwavefile() { };
virtual int start_read(){ return 0;};
virtual int start_write(uint format){return 0;};
virtual void end_read(){};
virtual void end_write(){};
virtual int read(void* buffer,int samples);
virtual int write(void* buffer,int samples);
virtual void SetDisplay(char *string) {};
virtual char* GetDisplay(){ return NULL; };
virtual void InitRegion(int Number){ return; };
virtual void NewRegion(int index,int id,char *label,int from,int len)
{ return; };
};
class wavestream {
private:
waveinfo info;
char *name;
uint isa();
cwavefile *pwavefile;
public:
wavestream(char *fname);
wavestream(char *fname,
int ifs,
int ibits=16,
int ich=1,
int ioffset=0,
int itypes=1);
~wavestream();
int start_read();
int start_write(uint format);
void end_read();
void end_write();
void InitRegion(int Number);
void NewRegion(int index,int id,char *label,int from,int len);
int read(void* buffer,int samples);
int write(void* buffer,int samples);
int getSampleFreq() { return info.fs; };
void setSampleFreq(int f) { info.fs = f; };
int getChannels() { return info.ch; };
void setChannels(int c) { info.ch = c; };
int getBitsPerSample() { return info.bits; };
void setBitsPerSample(int b) { info.bits = b; };
int getTypes() { return info.types; };
void setTypes(int t) { info.types = t; };
int getOffset() { return info.offset; };
void setOffset(int t) { info.offset = t;};
void setDecode(int sw) { info.decode = (sw) ? 1: 0; };
int getSpeechLength() { return info.length;};
char* GetDisplay();
void SetDisplay(char *text);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -