📄 raw.cpp
字号:
// $Revision: 1.1.1.1 $
#include "wavestream.h"
#include "raw.h"
uint flength(FILE *stream);
int craw::start_read()
{
info->length = ::flength(info->pf)/2;
info->ch = 1;
info->fs = 8000;
info->bits = 16;
info->offset = 0x8000; // offset
info->read_write = 0; // read
info->types = 1; // LSB first
return 0; // normal return
}
int craw::start_write(uint format)
{
return 0;
}
void craw::end_read()
{
}
void craw::end_write()
{
}
#ifdef _TEST_
#ifdef _OSTREAM_
void help()
{
printf(" useage %wav [options] \n");
printf(" options:\n");
printf(" -o filename : assign output file \n");
printf(" -f fs : assign sample frequency\n");
printf(" -b bits : assign bits per sample (8/16)\n");
printf(" -s : stereo mode\n");
printf(" -h : show this message\n");
exit(0);
}
int main(int argc,char **argv)
{
int fs,ch,bits;
char *fname;
int sample;
argc--;
argv++;
fs = 8000; ch = 1; bits = 16;
fname = "out.wav";
while (argc > 0) {
if( argv[0][0] == '-' ) {
switch(argv[0][1]) {
case 'f' : fs = atoi(argv[1]);
argc--; argv++;
break;
case 's' : ch = 2;
break;
case 'm' : ch = 1;
break;
case 'b' : bits = atoi(argv[1]);
bits = (bits>8) ? 16 : 8;
argc--; argv++;
break;
case 'o' : fname = argv[1];
argc--; argv++;
break;
case 'h' : help();
default :
printf("unkown opiton %s !\n",argv[0]);
help();
}
}
argc--;
argv++;
}
wavestream os(fname,fs);
os.setChannels(ch);
os.setBitsPerSample(bits);
os.start_write(RIFF);
while(scanf("%d",&sample) != EOF) {
os.write((void*)&sample,1);
};
os.end_write();
return 0;
}
#else
int main(int argc,char **argv)
{
short sample;
if(argc<2) return 0;
wavestream is(argv[1]);
is.start_read();
while(is.read(&sample,1)){
printf("%d\n",sample);
}
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -