sys/oss/: Post decent (and translated) error message when we can't open the audio device for some reason.

Original commit message from CVS:
* sys/oss/gstossaudio.c: (plugin_init):
* sys/oss/gstosssink.c: (gst_oss_sink_open):
* sys/oss/gstosssrc.c: (gst_oss_src_open):
Post decent (and translated) error message when we can't
open the audio device for some reason.
This commit is contained in:
Tim-Philipp Müller 2007-12-07 20:07:49 +00:00
parent 0f1cc10947
commit 915732f5b5
4 changed files with 48 additions and 6 deletions

View file

@ -1,3 +1,11 @@
2007-12-07 Tim-Philipp Müller <tim at centricular dot net>
* sys/oss/gstossaudio.c: (plugin_init):
* sys/oss/gstosssink.c: (gst_oss_sink_open):
* sys/oss/gstosssrc.c: (gst_oss_src_open):
Post decent (and translated) error message when we can't
open the audio device for some reason.
2007-12-07 Jan Schmidt <jan.schmidt@sun.com>
* sys/oss/gstosssink.c:

View file

@ -28,6 +28,7 @@
#include "gstosssrc.h"
GST_DEBUG_CATEGORY (oss_debug);
#define GST_CAT_DEFAULT oss_debug
static gboolean
plugin_init (GstPlugin * plugin)
@ -44,7 +45,8 @@ plugin_init (GstPlugin * plugin)
GST_DEBUG_CATEGORY_INIT (oss_debug, "oss", 0, "OSS elements");
#ifdef ENABLE_NLS
setlocale (LC_ALL, "");
GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE,
LOCALEDIR);
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
#endif /* ENABLE_NLS */

View file

@ -77,6 +77,8 @@
#include "common.h"
#include "gstosssink.h"
#include <gst/gst-i18n-plugin.h>
GST_DEBUG_CATEGORY_EXTERN (oss_debug);
#define GST_CAT_DEFAULT oss_debug
@ -396,6 +398,8 @@ gst_oss_sink_open (GstAudioSink * asink)
switch (errno) {
case EBUSY:
goto busy;
case EACCES:
goto no_permission;
default:
goto open_failed;
}
@ -406,12 +410,23 @@ gst_oss_sink_open (GstAudioSink * asink)
/* ERRORS */
busy:
{
GST_ELEMENT_ERROR (oss, RESOURCE, BUSY, (NULL), (NULL));
GST_ELEMENT_ERROR (oss, RESOURCE, BUSY,
(_("Could not open audio device for playback. "
"Device is being used by another application.")), (NULL));
return FALSE;
}
no_permission:
{
GST_ELEMENT_ERROR (oss, RESOURCE, OPEN_WRITE,
(_("Could not open audio device for playback."
"You don't have permission to open the device.")),
GST_ERROR_SYSTEM);
return FALSE;
}
open_failed:
{
GST_ELEMENT_ERROR (oss, RESOURCE, OPEN_WRITE, (NULL), GST_ERROR_SYSTEM);
GST_ELEMENT_ERROR (oss, RESOURCE, OPEN_WRITE,
(_("Could not open audio device for playback.")), GST_ERROR_SYSTEM);
return FALSE;
}
}

View file

@ -67,6 +67,8 @@
#include "gstosssrc.h"
#include "common.h"
#include <gst/gst-i18n-plugin.h>
GST_DEBUG_CATEGORY_EXTERN (oss_debug);
#define GST_CAT_DEFAULT oss_debug
@ -342,8 +344,14 @@ gst_oss_src_open (GstAudioSrc * asrc)
mode |= O_NONBLOCK;
oss->fd = open (oss->device, mode, 0);
if (oss->fd == -1)
goto open_failed;
if (oss->fd == -1) {
switch (errno) {
case EACCES:
goto no_permission;
default:
goto open_failed;
}
}
if (!oss->mixer) {
oss->mixer = gst_ossmixer_new ("/dev/mixer", GST_OSS_MIXER_CAPTURE);
@ -355,11 +363,20 @@ gst_oss_src_open (GstAudioSrc * asrc)
}
return TRUE;
no_permission:
{
GST_ELEMENT_ERROR (oss, RESOURCE, OPEN_READ,
(_("Could not open audio device for recording."
"You don't have permission to open the device.")),
GST_ERROR_SYSTEM);
return FALSE;
}
open_failed:
{
GST_ELEMENT_ERROR (oss, RESOURCE, OPEN_READ,
(_("Could not open audio device for recording.")),
("Unable to open device %s for recording: %s",
oss->device, g_strerror (errno)), (NULL));
oss->device, g_strerror (errno)));
return FALSE;
}
}