Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
516 kaklik 1
	#include <stdio.h>
2
	#include <stdlib.h>
3
	#include <alsa/asoundlib.h>
4
 
519 kaklik 5
	int exact_rate = 44100;
516 kaklik 6
 
7
	main (int argc, char *argv[])
8
	{
519 kaklik 9
		int i;
10
		int err;
11
		short buf[128];
12
		snd_pcm_t *capture_handle;
516 kaklik 13
		snd_pcm_hw_params_t *hw_params;
14
 
519 kaklik 15
		if ((err = snd_pcm_open (&capture_handle, argv[1], SND_PCM_STREAM_CAPTURE, 0)) < 0) {
516 kaklik 16
			fprintf (stderr, "cannot open audio device %s (%s)\n", 
17
				 argv[1],
18
				 snd_strerror (err));
19
			exit (1);
20
		}
21
 
520 kaklik 22
fprintf (stdout,"nastaveni formatu");
23
 
516 kaklik 24
		if ((err = snd_pcm_hw_params_malloc (&hw_params)) < 0) {
25
			fprintf (stderr, "cannot allocate hardware parameter structure (%s)\n",
26
				 snd_strerror (err));
27
			exit (1);
28
		}
29
 
519 kaklik 30
		if ((err = snd_pcm_hw_params_any (capture_handle, hw_params)) < 0) {
516 kaklik 31
			fprintf (stderr, "cannot initialize hardware parameter structure (%s)\n",
32
				 snd_strerror (err));
33
			exit (1);
34
		}
35
 
519 kaklik 36
		if ((err = snd_pcm_hw_params_set_access (capture_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {
516 kaklik 37
			fprintf (stderr, "cannot set access type (%s)\n",
38
				 snd_strerror (err));
39
			exit (1);
40
		}
41
 
519 kaklik 42
		if ((err = snd_pcm_hw_params_set_format (capture_handle, hw_params, SND_PCM_FORMAT_S16_LE)) < 0) {
516 kaklik 43
			fprintf (stderr, "cannot set sample format (%s)\n",
44
				 snd_strerror (err));
45
			exit (1);
46
		}
520 kaklik 47
fprintf (stdout,"nastaveni formatu");
519 kaklik 48
 
49
		if ((err = snd_pcm_hw_params_set_rate_near (capture_handle, hw_params, &exact_rate, 0)) < 0) {
516 kaklik 50
			fprintf (stderr, "cannot set sample rate (%s)\n",
51
				 snd_strerror (err));
52
			exit (1);
53
		}
520 kaklik 54
fprintf (stdout,"nastaveni vzorkovani");
516 kaklik 55
 
519 kaklik 56
		if ((err = snd_pcm_hw_params_set_channels (capture_handle, hw_params, 2)) < 0) {
516 kaklik 57
			fprintf (stderr, "cannot set channel count (%s)\n",
58
				 snd_strerror (err));
59
			exit (1);
60
		}
61
 
519 kaklik 62
fprintf (stdout,"nastaveni poctu kanalu");
63
 
64
		if ((err = snd_pcm_hw_params (capture_handle, hw_params)) < 0) {
516 kaklik 65
			fprintf (stderr, "cannot set parameters (%s)\n",
66
				 snd_strerror (err));
67
			exit (1);
68
		}
519 kaklik 69
 
70
fprintf (stdout,"nastaveni parametru");
516 kaklik 71
 
72
		snd_pcm_hw_params_free (hw_params);
73
 
519 kaklik 74
		if ((err = snd_pcm_prepare (capture_handle)) < 0) {
516 kaklik 75
			fprintf (stderr, "cannot prepare audio interface for use (%s)\n",
76
				 snd_strerror (err));
77
			exit (1);
78
		}
519 kaklik 79
fprintf (stdout,"povoleni audia");
516 kaklik 80
 
519 kaklik 81
		for (i = 0; i < 10; ++i) {
82
			if ((err = snd_pcm_readi (capture_handle, buf, 128)) != 128) {
83
				fprintf (stderr, "read from audio interface failed (%s)\n",
84
					 snd_strerror (err));
85
				exit (1);
86
 
516 kaklik 87
			}
88
		}
89
 
519 kaklik 90
		snd_pcm_close (capture_handle);
516 kaklik 91
		exit (0);
92
	}