diff options
| author | Tim-Philipp Müller <tim@centricular.net> | 2007-12-07 20:07:49 +0000 | 
|---|---|---|
| committer | Tim-Philipp Müller <tim@centricular.net> | 2007-12-07 20:07:49 +0000 | 
| commit | 915732f5b5902ee6bc592c4b1e1cfd45baf79ca5 (patch) | |
| tree | aa26e94d7cfaa92aa1c0fbee455e7482e53a69ec | |
| parent | 0f1cc10947820ced5bb91b1957278722278bf9b3 (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.
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | sys/oss/gstossaudio.c | 4 | ||||
| -rw-r--r-- | sys/oss/gstosssink.c | 19 | ||||
| -rw-r--r-- | sys/oss/gstosssrc.c | 23 | 
4 files changed, 48 insertions, 6 deletions
@@ -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: 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;    }  }  | 
