changeset 276:e040962f4f4c

Error checking.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 23 Dec 2004 18:02:00 +0000
parents 1aff28a25848
children c27763d388d9
files src/xmms-sid.c
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmms-sid.c	Thu Dec 23 17:04:05 2004 +0000
+++ b/src/xmms-sid.c	Thu Dec 23 18:02:00 2004 +0000
@@ -272,8 +272,7 @@
  t_xs_status myStatus;
  t_xs_tuneinfo *myTune;
  gboolean audioOpen = FALSE, doPlay = FALSE;
- guint audioGot;
- gint songLength;
+ gint audioGot, songLength;
 #ifdef XS_BUF_DYNAMIC
  gchar *audioBuffer = NULL, *oversampleBuffer = NULL;
 #else
@@ -396,6 +395,16 @@
 		} else 
 		audioGot = myStatus.sidPlayer->plrFillBuffer(&myStatus, audioBuffer, XS_AUDIOBUF_SIZE);
 
+	/* Check for errors */
+	if (audioGot < 0)
+		{
+		XSERR("Audio rendering or rate-conversion failed.\n",
+		XS_MUTEX_LOCK(xs_status);
+		xs_status.isError = TRUE;
+		XS_MUTEX_UNLOCK(xs_status);
+		goto xs_err_exit;
+		}
+
 	/* I <3 visualice/haujobb */
 	xs_plugin_ip.add_vis_pcm(
 		xs_plugin_ip.output->written_time(),