From 915732f5b5902ee6bc592c4b1e1cfd45baf79ca5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 7 Dec 2007 20:07:49 +0000 Subject: [PATCH] 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. --- ChangeLog | 8 ++++++++ sys/oss/gstossaudio.c | 4 +++- sys/oss/gstosssink.c | 19 +++++++++++++++++-- sys/oss/gstosssrc.c | 23 ++++++++++++++++++++--- 4 files changed, 48 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9230963..cff07bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-12-07 Tim-Philipp Müller + + * 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 * sys/oss/gstosssink.c: diff --git a/sys/oss/gstossaudio.c b/sys/oss/gstossaudio.c index 165e693..69c6745 100644 --- a/sys/oss/gstossaudio.c +++ b/sys/oss/gstossaudio.c @@ -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 */ diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index 83c8847..17f3964 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -77,6 +77,8 @@ #include "common.h" #include "gstosssink.h" +#include + 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; } } diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c index 3d8f3f7..36aa92d 100644 --- a/sys/oss/gstosssrc.c +++ b/sys/oss/gstosssrc.c @@ -67,6 +67,8 @@ #include "gstosssrc.h" #include "common.h" +#include + 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; } } -- 2.7.4