Added a real error dialog
This commit is contained in:
parent
da02e3234e
commit
cf307ff86d
47
src/mixer.c
47
src/mixer.c
|
@ -110,6 +110,7 @@ static DesktopMenubar _mixer_menubar[] =
|
||||||
|
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
|
static int _mixer_error(Mixer * mixer, char const * message, int ret);
|
||||||
static mixer_ctrl_t * _mixer_get(Mixer * mixer, int dev);
|
static mixer_ctrl_t * _mixer_get(Mixer * mixer, int dev);
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,8 +149,7 @@ Mixer * mixer_new(char const * device, MixerOrientation orientation)
|
||||||
mixer->mc_cnt = 0;
|
mixer->mc_cnt = 0;
|
||||||
if(mixer->fd < 0)
|
if(mixer->fd < 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: %s: %s\n", PACKAGE, device,
|
_mixer_error(NULL, device, 0);
|
||||||
strerror(errno));
|
|
||||||
mixer_delete(mixer);
|
mixer_delete(mixer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -393,9 +393,7 @@ int mixer_set_enum(Mixer * mixer, GtkWidget * widget)
|
||||||
#endif
|
#endif
|
||||||
if(ioctl(mixer->fd, AUDIO_MIXER_WRITE, p) == 0)
|
if(ioctl(mixer->fd, AUDIO_MIXER_WRITE, p) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(stderr, "%s: %s: %s\n", PACKAGE, "AUDIO_MIXER_WRITE",
|
return _mixer_error(mixer, "AUDIO_MIXER_WRITE", 1);
|
||||||
strerror(errno));
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -429,9 +427,7 @@ int mixer_set_value(Mixer * mixer, GtkWidget * widget, gdouble value)
|
||||||
#endif
|
#endif
|
||||||
if(ioctl(mixer->fd, AUDIO_MIXER_WRITE, p) == 0)
|
if(ioctl(mixer->fd, AUDIO_MIXER_WRITE, p) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
fprintf(stderr, "%s: %s: %s\n", PACKAGE, "AUDIO_MIXER_WRITE",
|
return _mixer_error(mixer, "AUDIO_MIXER_WRITE", 1);
|
||||||
strerror(errno));
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -474,8 +470,7 @@ void mixer_properties(Mixer * mixer)
|
||||||
}
|
}
|
||||||
if(ioctl(mixer->fd, AUDIO_GETDEV, &ad) != 0)
|
if(ioctl(mixer->fd, AUDIO_GETDEV, &ad) != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: %s: %s\n", PACKAGE, "AUDIO_GETDEV",
|
_mixer_error(mixer, "AUDIO_GETDEV", 1);
|
||||||
strerror(errno));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mixer->properties = gtk_dialog_new_with_buttons(_("Mixer properties"),
|
mixer->properties = gtk_dialog_new_with_buttons(_("Mixer properties"),
|
||||||
|
@ -576,6 +571,35 @@ void mixer_show_class(Mixer * mixer, char const * name)
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
/* functions */
|
/* functions */
|
||||||
|
/* mixer_error */
|
||||||
|
static int _error_text(char const * message, int ret);
|
||||||
|
|
||||||
|
static int _mixer_error(Mixer * mixer, char const * message, int ret)
|
||||||
|
{
|
||||||
|
GtkWidget * dialog;
|
||||||
|
char const * error;
|
||||||
|
|
||||||
|
if(mixer == NULL)
|
||||||
|
return _error_text(message, ret);
|
||||||
|
error = strerror(errno);
|
||||||
|
dialog = gtk_message_dialog_new(GTK_WINDOW(mixer->window),
|
||||||
|
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
|
||||||
|
GTK_BUTTONS_CLOSE, "%s", _("Error"));
|
||||||
|
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
|
||||||
|
"%s: %s", message, error);
|
||||||
|
gtk_window_set_title(GTK_WINDOW(dialog), _("Error"));
|
||||||
|
gtk_dialog_run(GTK_DIALOG(dialog));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int _error_text(char const * message, int ret)
|
||||||
|
{
|
||||||
|
fputs(PACKAGE ": ", stderr);
|
||||||
|
perror(message);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* mixer_get */
|
/* mixer_get */
|
||||||
static mixer_ctrl_t * _mixer_get(Mixer * mixer, int dev)
|
static mixer_ctrl_t * _mixer_get(Mixer * mixer, int dev)
|
||||||
{
|
{
|
||||||
|
@ -598,8 +622,7 @@ static mixer_ctrl_t * _mixer_get(Mixer * mixer, int dev)
|
||||||
p->un.value.num_channels = md.un.v.num_channels;
|
p->un.value.num_channels = md.un.v.num_channels;
|
||||||
if(ioctl(mixer->fd, AUDIO_MIXER_READ, p) != 0)
|
if(ioctl(mixer->fd, AUDIO_MIXER_READ, p) != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: %s: %s\n", PACKAGE, "AUDIO_MIXER_READ",
|
_mixer_error(mixer, "AUDIO_MIXER_READ", 0);
|
||||||
strerror(errno));
|
|
||||||
free(p);
|
free(p);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user