Can now choose the mixer device from the command line

This commit is contained in:
Pierre Pronchery 2009-12-13 17:32:02 +00:00
parent f87127e638
commit 4736107bd4
3 changed files with 16 additions and 6 deletions

View File

@ -26,7 +26,8 @@
/* usage */
static int _usage(void)
{
fputs("Usage: " PACKAGE "\n", stderr);
fputs("Usage: " PACKAGE " [-d device]\n"
" -d The mixer device to use\n", stderr);
return 1;
}
@ -35,18 +36,23 @@ static int _usage(void)
int main(int argc, char * argv[])
{
int o;
char const * device = NULL;
Mixer * mixer;
while((o = getopt(argc, argv, "")) != -1)
while((o = getopt(argc, argv, "d:")) != -1)
switch(o)
{
case 'd':
device = optarg;
break;
default:
return _usage();
}
if(optind != argc)
return _usage();
gtk_init(&argc, &argv);
mixer = mixer_new();
if((mixer = mixer_new(device)) == NULL)
return 2;
gtk_main();
mixer_delete(mixer);
return 0;

View File

@ -111,7 +111,7 @@ static GtkWidget * _new_set(Mixer * mixer, int dev, struct audio_mixer_set * s);
static GtkWidget * _new_value(Mixer * mixer, int dev,
struct audio_mixer_value * v);
Mixer * mixer_new(void)
Mixer * mixer_new(char const * device)
{
Mixer * mixer;
GtkAccelGroup * group;
@ -127,7 +127,9 @@ Mixer * mixer_new(void)
if((mixer = malloc(sizeof(*mixer))) == NULL)
return NULL;
mixer->fd = open("/dev/mixer", O_RDWR);
if(device == NULL)
device = "/dev/mixer";
mixer->fd = open(device, O_RDWR);
mixer->window = NULL;
mixer->properties = NULL;
mixer->about = NULL;
@ -135,6 +137,8 @@ Mixer * mixer_new(void)
mixer->mc_cnt = 0;
if(mixer->fd < 0)
{
fprintf(stderr, "%s: %s: %s\n", PACKAGE, device,
strerror(errno));
mixer_delete(mixer);
return NULL;
}

View File

@ -27,7 +27,7 @@ typedef struct _Mixer Mixer;
/* functions */
Mixer * mixer_new(void);
Mixer * mixer_new(char const * device);
void mixer_delete(Mixer * mixer);
/* accessors */