common.c
来自「Fax and soft modem source code. - Slow m」· C语言 代码 · 共 62 行
C
62 行
/*********************************************************
**********************************************************
common.c
**********************************************************
**********************************************************/
/* Modem for MIPS AJF January 1995
Common routines */
#include <stdio.h>
#include <complex.h>
#include <sinegen.h>
#include <myaudio.h>
#include "modem.h"
static void writemsg(char*, char*, word, word, word);
global void sendfreqs(float f1, float f2, float t) /* send 2 tones */
{ sinegen *sgen1 = new sinegen(f1);
sinegen *sgen2 = new sinegen(f2);
int ns = (int) (t * SAMPLERATE);
for (int i = 0; i < ns; i++)
{ float val = (sgen1 -> fnext()) + (sgen2 -> fnext());
outsample(val);
}
delete sgen1; delete sgen2;
}
global void sendfreq(float f, float t) /* send a single tone */
{ sinegen *sgen = new sinegen(f);
int ns = (int) (t * SAMPLERATE);
for (int i = 0; i < ns; i++)
{ float val = sgen -> fnext();
outsample(val);
}
delete sgen;
}
global void sendpause(float t) /* silence */
{ int ns = (int) (t * SAMPLERATE);
for (int i = 0; i < ns; i++) outsample(0.0);
}
global void giveup(char *msg, word p1, word p2, word p3)
{ writemsg("Error", msg, p1, p2, p2);
exit(1);
}
global void infomsg(char *msg, word p1, word p2, word p3)
{ writemsg("Info", msg, p1, p2, p3);
}
static void writemsg(char *typ, char *msg, word p1, word p2, word p3)
{ fprintf(stderr, "*** %s: ", typ);
fprintf(stderr, msg, p1, p2, p3);
putc('\r', stderr); /* in case we're in raw mode */
putc('\n', stderr);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?