/* * Initialize XMMS-SID */ gboolean xs_init (void) { XSDEBUG("xs_init()\n"); /* Initialize and get configuration */ xs_init_configuration(); /* Initialize subsystems */ xs_reinit(); return TRUE; }
/* * Initialization functions */ bool_t xs_init(void) { bool_t success; /* Initialize and get configuration */ xs_init_configuration(); pthread_mutex_lock(&xs_status_mutex); pthread_mutex_lock(&xs_cfg_mutex); /* Initialize status and sanitize configuration */ memset(&xs_status, 0, sizeof(xs_status)); if (xs_cfg.audioFrequency < 8000) xs_cfg.audioFrequency = 8000; xs_status.audioFrequency = xs_cfg.audioFrequency; xs_status.audioChannels = xs_cfg.audioChannels; /* Try to initialize emulator engine */ success = xs_sidplayfp_init(&xs_status); /* Get settings back, in case the chosen emulator backend changed them */ xs_cfg.audioFrequency = xs_status.audioFrequency; xs_cfg.audioChannels = xs_status.audioChannels; pthread_mutex_unlock(&xs_status_mutex); pthread_mutex_unlock(&xs_cfg_mutex); if (! success) return FALSE; /* Initialize song-length database */ xs_songlen_close(); if (xs_cfg.songlenDBEnable && (xs_songlen_init() != 0)) { xs_error("Error initializing song-length database!\n"); } /* Initialize STIL database */ xs_stil_close(); if (xs_cfg.stilDBEnable && (xs_stil_init() != 0)) { xs_error("Error initializing STIL database!\n"); } return TRUE; }