-
Notifications
You must be signed in to change notification settings - Fork 11
/
alsa_play.c
32 lines (25 loc) · 664 Bytes
/
alsa_play.c
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
// ©2017 Yuichiro Nakada
// clang -Os -o alsa_play alsa_play.c -lasound
#include <stdio.h>
#include "alsa.h"
int main(int argc, char *argv[])
{
//char *dev = "default"; // "plughw:0,0"
char *dev = "hw:0,0"; // BitPerfect
if (argc>1) dev = argv[1];
char *name = "alsa_record.dat";
if (argc>2) name = argv[2];
AUDIO a;
AUDIO_init(&a, dev, 48000, 1, 32, 1); // device, 48000 samplerate, 1 channels, 32 frame
int frame;
FILE *fp = fopen(name, "rb");
do {
if (!fread(a.buffer, a.size, 1, fp)) break;
//if (feof(fp)) break;
frame = AUDIO_play0(&a);
//printf("%d ", frame);
AUDIO_wait(&a, 100);
} while (1);
fclose(fp);
AUDIO_close(&a);
}