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 */
|
/* usage */
|
||||||
static int _usage(void)
|
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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,18 +36,23 @@ static int _usage(void)
|
||||||
int main(int argc, char * argv[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
int o;
|
int o;
|
||||||
|
char const * device = NULL;
|
||||||
Mixer * mixer;
|
Mixer * mixer;
|
||||||
|
|
||||||
while((o = getopt(argc, argv, "")) != -1)
|
while((o = getopt(argc, argv, "d:")) != -1)
|
||||||
switch(o)
|
switch(o)
|
||||||
{
|
{
|
||||||
|
case 'd':
|
||||||
|
device = optarg;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return _usage();
|
return _usage();
|
||||||
}
|
}
|
||||||
if(optind != argc)
|
if(optind != argc)
|
||||||
return _usage();
|
return _usage();
|
||||||
gtk_init(&argc, &argv);
|
gtk_init(&argc, &argv);
|
||||||
mixer = mixer_new();
|
if((mixer = mixer_new(device)) == NULL)
|
||||||
|
return 2;
|
||||||
gtk_main();
|
gtk_main();
|
||||||
mixer_delete(mixer);
|
mixer_delete(mixer);
|
||||||
return 0;
|
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,
|
static GtkWidget * _new_value(Mixer * mixer, int dev,
|
||||||
struct audio_mixer_value * v);
|
struct audio_mixer_value * v);
|
||||||
|
|
||||||
Mixer * mixer_new(void)
|
Mixer * mixer_new(char const * device)
|
||||||
{
|
{
|
||||||
Mixer * mixer;
|
Mixer * mixer;
|
||||||
GtkAccelGroup * group;
|
GtkAccelGroup * group;
|
||||||
|
@ -127,7 +127,9 @@ Mixer * mixer_new(void)
|
||||||
|
|
||||||
if((mixer = malloc(sizeof(*mixer))) == NULL)
|
if((mixer = malloc(sizeof(*mixer))) == NULL)
|
||||||
return 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->window = NULL;
|
||||||
mixer->properties = NULL;
|
mixer->properties = NULL;
|
||||||
mixer->about = NULL;
|
mixer->about = NULL;
|
||||||
|
@ -135,6 +137,8 @@ Mixer * mixer_new(void)
|
||||||
mixer->mc_cnt = 0;
|
mixer->mc_cnt = 0;
|
||||||
if(mixer->fd < 0)
|
if(mixer->fd < 0)
|
||||||
{
|
{
|
||||||
|
fprintf(stderr, "%s: %s: %s\n", PACKAGE, device,
|
||||||
|
strerror(errno));
|
||||||
mixer_delete(mixer);
|
mixer_delete(mixer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ typedef struct _Mixer Mixer;
|
||||||
|
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
Mixer * mixer_new(void);
|
Mixer * mixer_new(char const * device);
|
||||||
void mixer_delete(Mixer * mixer);
|
void mixer_delete(Mixer * mixer);
|
||||||
|
|
||||||
/* accessors */
|
/* accessors */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user