From 2ccd6d43466b22514ec4c9655eee3f36a729ebd3 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Thu, 3 Feb 2005 12:16:00 +0000 Subject: sys/qcam/gstqcamsrc.c: Use GST_ELEMENT_ERROR, not g_warning, if open failed. Original commit message from CVS: * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state), (gst_qcamsrc_open): Use GST_ELEMENT_ERROR, not g_warning, if open failed. --- sys/qcam/gstqcamsrc.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'sys/qcam/gstqcamsrc.c') diff --git a/sys/qcam/gstqcamsrc.c b/sys/qcam/gstqcamsrc.c index 48480225..c08453ba 100644 --- a/sys/qcam/gstqcamsrc.c +++ b/sys/qcam/gstqcamsrc.c @@ -388,19 +388,22 @@ gst_qcamsrc_change_state (GstElement * element) { g_return_val_if_fail (GST_IS_QCAMSRC (element), FALSE); - /* if going down into NULL state, close the file if it's open */ - if (GST_STATE_PENDING (element) == GST_STATE_NULL) { - if (GST_FLAG_IS_SET (element, GST_QCAMSRC_OPEN)) - gst_qcamsrc_close (GST_QCAMSRC (element)); - /* otherwise (READY or higher) we need to open the sound card */ - } else { - if (!GST_FLAG_IS_SET (element, GST_QCAMSRC_OPEN)) { - GST_DEBUG ("opening"); - if (!gst_qcamsrc_open (GST_QCAMSRC (element))) { - GST_DEBUG ("open failed"); - return GST_STATE_FAILURE; + switch (GST_STATE_TRANSITION (element)) { + case GST_STATE_READY_TO_NULL: + if (GST_FLAG_IS_SET (element, GST_QCAMSRC_OPEN)) + gst_qcamsrc_close (GST_QCAMSRC (element)); + break; + case GST_STATE_NULL_TO_READY: + if (!GST_FLAG_IS_SET (element, GST_QCAMSRC_OPEN)) { + GST_DEBUG ("opening"); + if (!gst_qcamsrc_open (GST_QCAMSRC (element))) { + GST_DEBUG ("open failed"); + return GST_STATE_FAILURE; + } } - } + break; + default: + break; } if (GST_ELEMENT_CLASS (parent_class)->change_state) @@ -413,7 +416,8 @@ static gboolean gst_qcamsrc_open (GstQCamSrc * qcamsrc) { if (qc_open (qcamsrc->qcam)) { - g_warning ("qcamsrc: Cannot open QuickCam.\n"); + GST_ELEMENT_ERROR (qcamsrc, RESOURCE, OPEN_READ, (NULL), + ("Failed to open QuickCam")); return FALSE; } -- cgit v1.2.1