7 #include "../include/mixer_ordinary.h"
11 static void help(void)
14 "Usage: omixer [OPTION]...\n\n"
16 "-P,--pname playback PCM device\n"
17 "-C,--cname capture PCM device\n"
21 int main(int argc, char *argv[])
23 struct option long_option[] =
25 {"help", 0, NULL, 'h'},
26 {"pname", 1, NULL, 'P'},
27 {"cname", 1, NULL, 'C'},
30 int err, morehelp, result = EXIT_SUCCESS;
31 char *pname = "default", *cname = "default";
32 snd_pcm_t *phandle = NULL, *chandle = NULL;
38 if ((c = getopt_long(argc, argv, "hP:C:", long_option, NULL)) < 0)
45 pname = strdup(optarg);
48 cname = strdup(optarg);
58 if (strcmp(pname, "-")) {
59 err = snd_pcm_open(&phandle, pname, SND_PCM_STREAM_PLAYBACK, 0);
61 fprintf(stderr, "Playback PCM open error: %s\n", snd_strerror(err));
62 result = EXIT_FAILURE;
67 if (strcmp(cname, "-")) {
68 err = snd_pcm_open(&chandle, cname, SND_PCM_STREAM_CAPTURE, 0);
71 snd_pcm_close(phandle);
72 fprintf(stderr, "Capture PCM open error: %s\n", snd_strerror(err));
73 result = EXIT_FAILURE;
78 err = sndo_mixer_open_pcm(&handle, phandle, chandle, NULL);
80 fprintf(stderr, "mixer open error: %s\n", snd_strerror(err));
81 result = EXIT_FAILURE;
83 sndo_mixer_close(handle);
87 snd_pcm_close(chandle);
89 snd_pcm_close(phandle);
90 snd_config_update_free_global(); /* to keep valgrind happy */