Only in .: .libs
Only in .: Makefile
Only in .: config.log
Only in .: config.status
Only in .: libtool
Only in ./src: .deps
Only in ./src: .libs
Only in ./src: Makefile
Only in ./src: config.h
Only in ./src: libxmmssid.la
Only in ./src: stamp-h1
diff -u -r ../xmms-sid-0.8.0beta9-org/src/xmms-sid.c ./src/xmms-sid.c
--- ../xmms-sid-0.8.0beta9-org/src/xmms-sid.c	Mon Feb 23 19:18:17 2004
+++ ./src/xmms-sid.c	Wed Feb 25 17:08:40 2004
@@ -258,6 +258,9 @@
  guint audioGot;
  gint songLength;
  gchar audioBuffer[XS_BUFSIZE];
+ gint silence_bytes = 0;
+ gint silence_mode = 0;
+ gint silence_end_time = 0;
 
  /* Initialize */
  pthread_mutex_lock(&xs_mutex);
@@ -334,7 +337,36 @@
 
 	/* Output audio */
 	if (xs_status.isPlaying && (xs_status.currSong == myStatus.currSong))
+	        {
 		xs_plugin_ip.output->write_audio(audioBuffer, audioGot);
+
+		if (xs_cfg.maxSilentTimeEnable)
+		        {
+			gint i;
+			for (i = 0; i < audioGot; i++)
+			        {
+				if (((char *) audioBuffer)[i] != 0)
+				        break;
+				}
+
+			silence_bytes = (i == audioGot) ? silence_bytes + audioGot : 0;
+
+			/* for now, assume 2 bytes per sample */
+			if (silence_mode == 0 && silence_bytes >= (2 * myStatus.audioFrequency * myStatus.audioChannels * xs_cfg.maxSilentTime))
+			        {
+				silence_mode = 1;
+				silence_end_time = xs_plugin_ip.output->written_time();
+				/* fprintf(stderr, "silence_mode = 1, time = %d\n", silence_end_time); */
+				}
+			}
+		        if (silence_mode && xs_plugin_ip.output->output_time() >= silence_end_time)
+			        {
+			        myStatus.isPlaying = FALSE;
+				silence_mode = 0;
+				silence_bytes = 0;
+				}
+
+		}
 
 	/* Check if we have played enough */
 	if (xs_cfg.playMaxTimeEnable)
Only in ./src: xmms-sid.c~
Only in ./src: xmms-sid.lo
Only in ./src: xs_about.lo
diff -u -r ../xmms-sid-0.8.0beta9-org/src/xs_config.c ./src/xs_config.c
--- ../xmms-sid-0.8.0beta9-org/src/xs_config.c	Mon Feb 23 19:15:17 2004
+++ ./src/xs_config.c	Wed Feb 25 16:14:17 2004
@@ -78,6 +78,9 @@
 	{CTYPE_STR,	&xs_cfg.titleFormat,		"titleFormat"},
 
 	{CTYPE_INT,	&xs_cfg.playerEngine,		"playerEngine"},
+
+	{CTYPE_BOOL,	&xs_cfg.maxSilentTimeEnable,	"maxSilentTimeEnable"},
+	{CTYPE_INT,	&xs_cfg.maxSilentTime,		"maxSilentTime"}
 };
 
 const gint xs_cfgtable_max = (sizeof(xs_cfgtable) / sizeof(t_xs_cfg_item));
@@ -214,6 +217,9 @@
  xs_cfg.playMaxTime		= 150;
  xs_cfg.songlenDBEnable		= FALSE;
  xs_strcalloc(&xs_cfg.songlenDBPath, "~/C64Music/Songlengths.txt");
+
+ xs_cfg.maxSilentTimeEnable     = TRUE;
+ xs_cfg.maxSilentTime           = 15; /* seconds */
 
  xs_cfg.stilDBEnable		= FALSE;
  xs_strcalloc(&xs_cfg.stilDBPath, "~/C64Music/DOCUMENTS/STIL.txt");
Only in ./src: xs_config.c~
diff -u -r ../xmms-sid-0.8.0beta9-org/src/xs_config.h ./src/xs_config.h
--- ../xmms-sid-0.8.0beta9-org/src/xs_config.h	Fri Jan 16 04:36:14 2004
+++ ./src/xs_config.h	Wed Feb 25 16:12:31 2004
@@ -108,6 +108,9 @@
 	gchar		*titleFormat;
 
 	gint		playerEngine;
+
+        gboolean        maxSilentTimeEnable;    /* skip to next song on silence? */
+        gint            maxSilentTime;          /* time of silence in seconds to skip to next song */
 } xs_cfg;
 
 
Only in ./src: xs_config.h~
Only in ./src: xs_config.lo
Only in ./src: xs_genui.lo
Only in ./src: xs_glade.lo
Only in ./src: xs_init.lo
Only in ./src: xs_interface.lo
Only in ./src: xs_length.lo
Only in ./src: xs_md5.lo
Only in ./src: xs_nanosid.lo
diff -u -r ../xmms-sid-0.8.0beta9-org/src/xs_sidplay.h ./src/xs_sidplay.h
--- ../xmms-sid-0.8.0beta9-org/src/xs_sidplay.h	Wed Jan 14 23:53:36 2004
+++ ./src/xs_sidplay.h	Wed Feb 25 16:16:00 2004
@@ -4,6 +4,9 @@
  * Create the SID-tune description string from the tune's information
  * formatted by the user-specified format-string.
  */
+
+#include <string.h>
+
 #define VBUFSIZE	(1024)
 #define VPUTCH(MCH)	if (iIndex < VBUFSIZE) tmpBuf[iIndex++] = MCH;
 #define VPUTSTR(MSTR)	{if (MSTR) {if ((iIndex + strlen(MSTR) + 1) < VBUFSIZE){strcpy(&tmpBuf[iIndex], MSTR);iIndex += strlen(MSTR); } else iIndex = VBUFSIZE;}}

