-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaudio_ky.c
65 lines (51 loc) · 1.03 KB
/
audio_ky.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <assert.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#define CHAIN (16)
#define BLOCK (32)
#define MAX_SIZE (1024)
int main(int argc, char* argv[])
{
char rec_file_name[15] = {'\0'};
FILE *rec_file_fp[CHAIN];
int audio_file_fd;
char buf[MAX_SIZE ];
fd_set rfds;
int i,j,ret,step;
for (i=0; i<CHAIN; i++)
{
sprintf(rec_file_name, "audio_%d.pcm", i);
rec_file_fp[i] = fopen(rec_file_name,"w");
}
audio_file_fd = open("/dev/kyaudio", O_RDONLY);
assert(audio_file_fd>0);
/* Watch audio_file_fd to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
while (1)
{
ret = read(audio_file_fd,buf,MAX_SIZE);
if (0 != ret%32)
{
printf("automan debug!in select!\n");
select(audio_file_fd+1, &rfds, NULL, NULL,NULL);
continue;
}
else
{
for(j=0,step=0;j<BLOCK;j++)
{
for (i=0; i<CHAIN;i++)
{
ret = fwrite(buf+step,2,1,rec_file_fp[i]);
step += 2;
}
}
}
}
return 0;
}