blob: 348b0b47b25df147c32f6ea00082f7bffd12c639 [file] [log] [blame]
/*
* module_config.c - Manage configuration of output module.
*
* Copyright (C) 2001, 2002, 2003, 2006 Brailcom, o.p.s.
*
* This is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1, or (at your option) any later
* version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* $Id: module_main_loop.c,v 1.17 2008-10-15 17:05:37 hanke Exp $
*/
#include "config.h"
#include <dotconf.h>
#ifndef USE_DLOPEN
#include <ltdl.h>
#endif
#include "spd_module_main.h"
#include "module_utils.h"
int module_config(const char *configfilename) {
int ret;
#ifndef USE_DLOPEN
/* Initialize ltdl's list of preloaded audio backends. */
LTDL_SET_PRELOADED_SYMBOLS();
#endif
module_num_dc_options = 0;
module_audio_id = 0;
ret = module_load();
if (ret == -1)
return -1;
if (configfilename == NULL) {
DBG("No config file specified, using defaults...\n");
return 0;
}
/* Add the LAST option */
module_dc_options = module_add_config_option(module_dc_options,
&module_num_dc_options,
"", 0, NULL, NULL,
0);
configfile =
dotconf_create((char*) configfilename, module_dc_options, 0,
CASE_INSENSITIVE);
if (!configfile) {
DBG("Can't read specified config file! Using defaults...\n");
return 0;
}
if (dotconf_command_loop(configfile) == 0) {
DBG("Error reading config file\n");
return -1;
}
dotconf_cleanup(configfile);
DBG("Configuration (pre) has been read from \"%s\"\n",
configfilename);
return 0;
}