changeset 147:a7abcda7a86c

SLDB, STIL and emulation engine settings are now updated after properties have been changed, no need to restart XMMS anymore.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 06 Mar 2004 18:40:02 +0000
parents d9d776c6f4cd
children 1075c4d9f112
files src/xmms-sid.c src/xmms-sid.h src/xs_config.c
diffstat 3 files changed, 35 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmms-sid.c	Sat Mar 06 18:39:00 2004 +0000
+++ b/src/xmms-sid.c	Sat Mar 06 18:40:02 2004 +0000
@@ -119,20 +119,19 @@
 
 void	xs_subctrl_close(void);
 
+
 /*
- * Initialize XMMS-SID
+ * Re-initialize some settings
  */
-void xs_init(void)
+void xs_reinit(void)
 {
  gint iPlayer;
  gboolean isInitialized;
  
- XSDEBUG("xs_init()\n");
-
- /* Initialize and get configuration */
- memset(&xs_cfg, 0, sizeof(xs_cfg));
- xs_read_configuration();
-
+ /* Stop playing, if we are */
+ if (xs_status.isPlaying)
+	xs_stop();
+ 
  /* Initialize status */
  memset(&xs_status, 0, sizeof(xs_status));
  xs_status.audioFrequency	= xs_cfg.audioFrequency;
@@ -174,17 +173,35 @@
  XSDEBUG("init#2: %s, %i\n", (isInitialized) ? "OK" : "FAILED", iPlayer);
 
  /* Initialize song-length database */
+ xs_songlen_close();
  if (xs_cfg.songlenDBEnable && (xs_songlen_init() < 0))
-	{
+ 	{
 	XSERR("Error initializing song-length database!\n");
 	}
 	
  /* Initialize STIL database */
+ xs_stil_close();
  if (xs_cfg.stilDBEnable && (xs_stil_init() < 0))
  	{
  	XSERR("Error initializing STIL database!\n");
  	}
+}
 
+
+/*
+ * Initialize XMMS-SID
+ */
+void xs_init(void)
+{
+ XSDEBUG("xs_init()\n");
+
+ /* Initialize and get configuration */
+ memset(&xs_cfg, 0, sizeof(xs_cfg));
+ xs_read_configuration();
+
+ /* Initialize subsystems */
+ xs_reinit();
+ 
  XSDEBUG("OK\n");
 }
 
--- a/src/xmms-sid.h	Sat Mar 06 18:39:00 2004 +0000
+++ b/src/xmms-sid.h	Sat Mar 06 18:40:02 2004 +0000
@@ -96,6 +96,7 @@
  * Plugin function prototypes
  */
 void	xs_init(void);
+void	xs_reinit(void);
 void	xs_close(void);
 gint	xs_is_our_file(gchar *);
 void	xs_play_file(gchar *);
--- a/src/xs_config.c	Sat Mar 06 18:39:00 2004 +0000
+++ b/src/xs_config.c	Sat Mar 06 18:40:02 2004 +0000
@@ -435,14 +435,16 @@
 	}
 	}
 
+ /* Close window */
+ gtk_widget_destroy(xs_configwin);
+ xs_configwin = NULL;
+
+
  /* Write settings */
  xs_write_configuration();
 
-/* NOTICE/FIXME FIX ME: if songlendb or stildb settings changed, we need to flush and reread them */
-
- /* Close window */
- gtk_widget_destroy(xs_configwin);
- xs_configwin = NULL;
+ /* Re-initialize */
+ xs_reinit();
 }
 
 
@@ -659,6 +661,7 @@
  /* Other UI options */ 
 #ifndef HAVE_XMMSEXTRA
  gtk_widget_set_sensitive(LUW("cfg_ftitle_override"), FALSE);
+ xs_cfg.titleOverride = TRUE;
 #endif
 
 #ifndef HAVE_SONG_POSITION