blob: 04207b23711517b4ffb3697c19ade029a4689a6b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
// sam_player.c
//
// 20060811 Markku Alén
//
// rel-0-2
#include "sam.h"
#include "wave.h"
static unsigned char wave_buffer[200000];
static wave_t wave = { 1, 44100, 8, 0, 1, wave_buffer };
int main(int argc, char **argv)
{
int argi;
char *arg, c, buf[200], *p;
unsigned int wave_length;
p = buf;
for(argi = 1;argi < argc;argi++)
{
arg = argv[argi];
do
{
c = *(arg++);
if(c >= 'a' && c <= 'z')
c = (c - 'a') + 'A';
if(c != '\"')
{
if(p < &buf[sizeof(buf) - 1])
*(p++) = (c != '\0') ? c : ' ';
}
}while(c != '\0');
}
*p = '\0';
sam_init();
wave_length = sizeof(wave_buffer);
sam_recite(buf, wave.samples_per_sec, wave_buffer, &wave_length);
if(wave_length > 0)
{
if(wave_length > sizeof(wave_buffer))
wave_length = sizeof(wave_buffer);
wave.frame_size = wave_length;
(void)wave_out(&wave);
}
return 0;
}
|