Can now choose the mixer device from the command line
This commit is contained in:
parent
f87127e638
commit
4736107bd4
12
src/main.c
12
src/main.c
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue
Block a user