summaryrefslogtreecommitdiffstats
path: root/sys/oss
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2007-12-07 20:07:49 +0000
committerTim-Philipp Müller <tim@centricular.net>2007-12-07 20:07:49 +0000
commit915732f5b5902ee6bc592c4b1e1cfd45baf79ca5 (patch)
treeaa26e94d7cfaa92aa1c0fbee455e7482e53a69ec /sys/oss
parent0f1cc10947820ced5bb91b1957278722278bf9b3 (diff)
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.
Diffstat (limited to 'sys/oss')
-rw-r--r--sys/oss/gstossaudio.c4
-rw-r--r--sys/oss/gstosssink.c19
-rw-r--r--sys/oss/gstosssrc.c23
3 files changed, 40 insertions, 6 deletions
diff --git a/sys/oss/gstossaudio.c b/sys/oss/gstossaudio.c
index 165e6931..69c6745a 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 83c88476..17f3964a 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -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;
}
}
diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c
index 3d8f3f75..36aa92dd 100644
--- a/sys/oss/gstosssrc.c
+++ b/sys/oss/gstosssrc.c
@@ -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;
}
}