#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "xmms/configfile.h" typedef ConfigFile * Xmms__Config; #define xmms_cfg_DESTROY xmms_cfg_free #define xmms_cfg_write xmms_cfg_write_string MODULE = Xmms::Config PACKAGE = Xmms::Config PREFIX = xmms_cfg_ PROTOTYPES: disable SV * xmms_cfg_file(self) SV *self CODE: RETVAL = newSV(0); sv_setpvf(RETVAL, "%s/.xmms/config", g_get_home_dir()); OUTPUT: RETVAL SV * xmms_cfg_perlfile(self) SV *self CODE: RETVAL = newSV(0); sv_setpvf(RETVAL, "%s/.xmms/config.perl", g_get_home_dir()); OUTPUT: RETVAL Xmms::Config xmms_cfg_new(svclass, filename=NULL) SV *svclass gchar *filename CODE: RETVAL = NULL; if (filename) { RETVAL = xmms_cfg_open_file(filename); } if (!RETVAL) { RETVAL = xmms_cfg_new(); } OUTPUT: RETVAL void xmms_cfg_DESTROY(cfg) Xmms::Config cfg gboolean xmms_cfg_write_file(cfg, filename) Xmms::Config cfg gchar *filename void xmms_cfg_remove_key(cfg, section, key) Xmms::Config cfg gchar *section gchar *key SV * xmms_cfg_read(cfg, section, key) Xmms::Config cfg gchar *section gchar *key PREINIT: gchar *value; CODE: if (!xmms_cfg_read_string(cfg, section, key, &value)) { XSRETURN_UNDEF; } RETVAL = newSV(0); sv_setpv(RETVAL, value); g_free(value); OUTPUT: RETVAL void xmms_cfg_write(cfg, section, key, value) Xmms::Config cfg gchar *section gchar *key gchar *value