nkeynes@450: /** nkeynes@458: * $Id: config.h,v 1.2 2007-10-22 21:12:54 nkeynes Exp $ nkeynes@450: * nkeynes@450: * User configuration support nkeynes@450: * nkeynes@450: * Copyright (c) 2005 Nathan Keynes. nkeynes@450: * nkeynes@450: * This program is free software; you can redistribute it and/or modify nkeynes@450: * it under the terms of the GNU General Public License as published by nkeynes@450: * the Free Software Foundation; either version 2 of the License, or nkeynes@450: * (at your option) any later version. nkeynes@450: * nkeynes@450: * This program is distributed in the hope that it will be useful, nkeynes@450: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@450: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@450: * GNU General Public License for more details. nkeynes@450: */ nkeynes@450: nkeynes@450: #ifndef lxdream_config_H nkeynes@450: #define lxdream_config_H 1 nkeynes@450: nkeynes@450: #include nkeynes@450: nkeynes@450: #define CONFIG_TYPE_NONE 0 nkeynes@450: #define CONFIG_TYPE_FILE 1 nkeynes@450: #define CONFIG_TYPE_PATH 2 nkeynes@450: #define CONFIG_TYPE_KEY 3 nkeynes@450: nkeynes@450: #define DEFAULT_CONFIG_FILENAME "lxdreamrc" nkeynes@450: nkeynes@450: typedef struct lxdream_config_entry { nkeynes@450: const gchar *key; nkeynes@450: const int type; nkeynes@450: const gchar *default_value; nkeynes@450: gchar *value; nkeynes@450: } *lxdream_config_entry_t; nkeynes@450: nkeynes@450: typedef struct lxdream_config_group { nkeynes@450: const gchar *key; nkeynes@450: struct lxdream_config_entry *params; nkeynes@450: } *lxdream_config_group_t; nkeynes@450: nkeynes@450: #define CONFIG_BIOS_PATH 0 nkeynes@450: #define CONFIG_FLASH_PATH 1 nkeynes@450: #define CONFIG_DEFAULT_PATH 2 nkeynes@450: #define CONFIG_SAVE_PATH 3 nkeynes@450: #define CONFIG_BOOTSTRAP 4 nkeynes@450: nkeynes@450: extern struct lxdream_config_group lxdream_config_root[]; nkeynes@450: nkeynes@450: /* Global config values */ nkeynes@450: const gchar *lxdream_get_config_value( int key ); nkeynes@450: nkeynes@450: void lxdream_set_config_value( int key, const gchar *value ); nkeynes@458: gboolean lxdream_set_group_value( lxdream_config_group_t group, const gchar *key, const gchar *value ); nkeynes@450: /** nkeynes@450: * Search the standard locations for the configuration file: nkeynes@450: * $HOME/.lxdreamrc nkeynes@450: * $CWD/lxdreamrc nkeynes@450: * $SYSCONF_DIR/lxdreamrc nkeynes@450: * @return TRUE if the file was found, otherwise FALSE. nkeynes@450: */ nkeynes@450: gboolean lxdream_find_config( ); nkeynes@450: nkeynes@450: /** nkeynes@450: * Set the configuration file filename to the supplied string. nkeynes@450: * The string is copied internally (ie can be released by the nkeynes@450: * caller). nkeynes@450: */ nkeynes@450: void lxdream_set_config_filename( const gchar *filename ); nkeynes@450: nkeynes@450: /** nkeynes@450: * Load the configuration from the previously determined filename. nkeynes@450: */ nkeynes@450: gboolean lxdream_load_config( ); nkeynes@450: nkeynes@450: /** nkeynes@450: * Update the configuration nkeynes@450: */ nkeynes@450: gboolean lxdream_save_config( ); nkeynes@450: nkeynes@450: nkeynes@450: #endif /* !lxdream_config_H */