diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2004-01-18 21:46:58 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2004-01-18 21:46:58 +0000 |
commit | 3b0cf935f687c359319104d7b0dd7d73c90da6a9 (patch) | |
tree | fc4cb9722017426795998bce5cb783e6eaae0365 /sys/oss | |
parent | 272db0c22e45b45e88f11a52b793bab588a02534 (diff) |
use new error signal and classification
Original commit message from CVS:
use new error signal and classification
Diffstat (limited to 'sys/oss')
-rw-r--r-- | sys/oss/gstosselement.c | 38 | ||||
-rw-r--r-- | sys/oss/gstosselement.h | 5 | ||||
-rw-r--r-- | sys/oss/gstosssink.c | 6 | ||||
-rw-r--r-- | sys/oss/gstosssrc.c | 8 |
4 files changed, 30 insertions, 27 deletions
diff --git a/sys/oss/gstosselement.c b/sys/oss/gstosselement.c index 756a893c..c2774856 100644 --- a/sys/oss/gstosselement.c +++ b/sys/oss/gstosselement.c @@ -24,6 +24,7 @@ #include "config.h" #endif +#include "gst-libs/gst/gst-i18n-plugin.h" #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> @@ -679,37 +680,32 @@ gst_osselement_open_audio (GstOssElement *oss) if (oss->fd < 0) { switch (errno) { case EBUSY: - gst_element_error (GST_ELEMENT (oss), - "osselement: Unable to open %s (in use ?)", - oss->device); - break; - case EISDIR: - gst_element_error (GST_ELEMENT (oss), - "osselement: Device %s is a directory", - oss->device); + gst_element_error (oss, RESOURCE, BUSY, + (_("OSS device %s is already in use by another program."), oss->device), NULL); break; case EACCES: case ETXTBSY: - gst_element_error (GST_ELEMENT (oss), - "osselement: Cannot access %s, check permissions", - oss->device); + if (mode == GST_OSSELEMENT_WRITE) + gst_element_error (oss, RESOURCE, OPEN_WRITE, + (_("Could not access device %s, check it's permissions"), oss->device), GST_ERROR_SYSTEM); + else + gst_element_error (oss, RESOURCE, OPEN_READ, + (_("Could not access device %s, check it's permissions"), oss->device), GST_ERROR_SYSTEM); break; case ENXIO: case ENODEV: case ENOENT: - gst_element_error (GST_ELEMENT (oss), - "osselement: Cannot access %s, does it exist ?", - oss->device); + gst_element_error (oss, RESOURCE, NOT_FOUND, + (_("Device %s does not exist"), oss->device), GST_ERROR_SYSTEM); break; - case EROFS: - gst_element_error (GST_ELEMENT (oss), - "osselement: Cannot access %s, read-only filesystem ?", - oss->device); default: /* FIXME: strerror is not threadsafe */ - gst_element_error (GST_ELEMENT (oss), - "osselement: Cannot open %s, generic error: %s", - oss->device, strerror (errno)); + if (mode == GST_OSSELEMENT_WRITE) + gst_element_error (oss, RESOURCE, OPEN_WRITE, + (_("Could not open device \"%s\" for writing"), oss->device), GST_ERROR_SYSTEM); + else + gst_element_error (oss, RESOURCE, OPEN_READ, + (_("Could not open device \"%s\" for reading"), oss->device), GST_ERROR_SYSTEM); break; } return FALSE; diff --git a/sys/oss/gstosselement.h b/sys/oss/gstosselement.h index 895f2059..86659d59 100644 --- a/sys/oss/gstosselement.h +++ b/sys/oss/gstosselement.h @@ -46,6 +46,11 @@ G_BEGIN_DECLS typedef struct _GstOssElement GstOssElement; typedef struct _GstOssElementClass GstOssElementClass; +/* debugging category */ +GST_DEBUG_CATEGORY_EXTERN (oss_debug); +//#define GST_CAT_DEFAULT oss_debug + + typedef enum { GST_OSSELEMENT_READ, GST_OSSELEMENT_WRITE, diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index 3c21eca5..31a41653 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -103,7 +103,7 @@ static GstElementClass *parent_class = NULL; static guint gst_osssink_signals[LAST_SIGNAL] = { 0 }; GType -gst_osssink_get_type (void) +gst_osssink_get_type (void) { static GType osssink_type = 0; @@ -120,6 +120,7 @@ gst_osssink_get_type (void) (GInstanceInitFunc)gst_osssink_init, }; osssink_type = g_type_register_static (GST_TYPE_OSSELEMENT, "GstOssSink", &osssink_info, 0); + //GST_DEBUG_CATEGORY_INIT (oss_debug, "oss", 0, "OSS element"); } return osssink_type; @@ -202,6 +203,7 @@ gst_osssink_init (GstOssSink *osssink) gst_pad_set_chain_function (osssink->sinkpad, gst_osssink_chain); + GST_DEBUG ("initializing osssink"); osssink->bufsize = 4096; osssink->chunk_size = 4096; osssink->mute = FALSE; @@ -349,7 +351,7 @@ gst_osssink_chain (GstPad *pad, GstData *_data) if (!GST_OSSELEMENT (osssink)->bps) { gst_buffer_unref (buf); - gst_element_error (GST_ELEMENT (osssink), "capsnego was never performed, unknown data type"); + gst_element_error (osssink, CORE, NEGOTIATION, NULL, ("format wasn't negotiated before chain function")); return; } diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c index 1edba80f..fbe04cc2 100644 --- a/sys/oss/gstosssrc.c +++ b/sys/oss/gstosssrc.c @@ -305,13 +305,14 @@ gst_osssrc_get (GstPad *pad) /* nothing was negotiated, we can decide on a format */ if (!gst_osssrc_negotiate (pad)) { gst_buffer_unref (buf); - gst_element_error (GST_ELEMENT (src), "could not negotiate format"); + gst_element_error (src, CORE, NEGOTIATION, NULL, NULL); return GST_DATA (gst_event_new (GST_EVENT_INTERRUPT)); } } if (GST_OSSELEMENT (src)->bps == 0) { gst_buffer_unref (buf); - gst_element_error (GST_ELEMENT (src), "no format negotiated"); + gst_element_error (src, CORE, NEGOTIATION, NULL, + ("format wasn't negotiated before chain function")); return GST_DATA (gst_event_new (GST_EVENT_INTERRUPT)); } @@ -319,8 +320,7 @@ gst_osssrc_get (GstPad *pad) src->buffersize); if (readbytes < 0) { gst_buffer_unref (buf); - gst_element_error (GST_ELEMENT (src), "error reading data (%s)", - strerror (errno)); + gst_element_error (src, RESOURCE, READ, NULL, GST_ERROR_SYSTEM); return GST_DATA (gst_event_new (GST_EVENT_INTERRUPT)); } |