/* rygel-base-configuration.c generated by valac 0.25.1.16-16e7a, the Vala compiler
 * generated from rygel-base-configuration.vala, do not modify */

/*
 * Copyright (C) 2012 Intel Corporation.
 *
 * Author: Jens Georg <jensg@openismus.com>
 *
 * This file is part of Rygel.
 *
 * Rygel 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 of the License, or
 * (at your option) any later version.
 *
 * Rygel 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 Lesser 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, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib/gi18n-lib.h>


#define RYGEL_TYPE_CONFIGURATION (rygel_configuration_get_type ())
#define RYGEL_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_CONFIGURATION, RygelConfiguration))
#define RYGEL_IS_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_CONFIGURATION))
#define RYGEL_CONFIGURATION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_TYPE_CONFIGURATION, RygelConfigurationIface))

typedef struct _RygelConfiguration RygelConfiguration;
typedef struct _RygelConfigurationIface RygelConfigurationIface;

#define RYGEL_TYPE_BASE_CONFIGURATION (rygel_base_configuration_get_type ())
#define RYGEL_BASE_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfiguration))
#define RYGEL_BASE_CONFIGURATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfigurationClass))
#define RYGEL_IS_BASE_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_BASE_CONFIGURATION))
#define RYGEL_IS_BASE_CONFIGURATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_BASE_CONFIGURATION))
#define RYGEL_BASE_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfigurationClass))

typedef struct _RygelBaseConfiguration RygelBaseConfiguration;
typedef struct _RygelBaseConfigurationClass RygelBaseConfigurationClass;
typedef struct _RygelBaseConfigurationPrivate RygelBaseConfigurationPrivate;

struct _RygelConfigurationIface {
	GTypeInterface parent_iface;
	gboolean (*get_upnp_enabled) (RygelConfiguration* self, GError** error);
	gchar* (*get_interface) (RygelConfiguration* self, GError** error);
	gchar** (*get_interfaces) (RygelConfiguration* self, GError** error);
	gint (*get_port) (RygelConfiguration* self, GError** error);
	gboolean (*get_transcoding) (RygelConfiguration* self, GError** error);
	gboolean (*get_allow_upload) (RygelConfiguration* self, GError** error);
	gboolean (*get_allow_deletion) (RygelConfiguration* self, GError** error);
	gchar* (*get_log_levels) (RygelConfiguration* self, GError** error);
	gchar* (*get_plugin_path) (RygelConfiguration* self, GError** error);
	gchar* (*get_engine_path) (RygelConfiguration* self, GError** error);
	gchar* (*get_media_engine) (RygelConfiguration* self, GError** error);
	gchar* (*get_video_upload_folder) (RygelConfiguration* self, GError** error);
	gchar* (*get_music_upload_folder) (RygelConfiguration* self, GError** error);
	gchar* (*get_picture_upload_folder) (RygelConfiguration* self, GError** error);
	gboolean (*get_enabled) (RygelConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_title) (RygelConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_string) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	GeeArrayList* (*get_string_list) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gint (*get_int) (RygelConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
	GeeArrayList* (*get_int_list) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gboolean (*get_bool) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
};

struct _RygelBaseConfiguration {
	GObject parent_instance;
	RygelBaseConfigurationPrivate * priv;
};

struct _RygelBaseConfigurationClass {
	GObjectClass parent_class;
	gboolean (*get_upnp_enabled) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_interface) (RygelBaseConfiguration* self, GError** error);
	gchar** (*get_interfaces) (RygelBaseConfiguration* self, GError** error);
	gint (*get_port) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_transcoding) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_allow_upload) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_allow_deletion) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_log_levels) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_plugin_path) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_engine_path) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_media_engine) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_video_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_music_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_picture_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_enabled) (RygelBaseConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_title) (RygelBaseConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_string) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	GeeArrayList* (*get_string_list) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gint (*get_int) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
	GeeArrayList* (*get_int_list) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gboolean (*get_bool) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
};

typedef enum  {
	RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET,
	RYGEL_CONFIGURATION_ERROR_VALUE_OUT_OF_RANGE
} RygelConfigurationError;
#define RYGEL_CONFIGURATION_ERROR rygel_configuration_error_quark ()

static gpointer rygel_base_configuration_parent_class = NULL;
static RygelConfigurationIface* rygel_base_configuration_rygel_configuration_parent_iface = NULL;

GType rygel_configuration_get_type (void) G_GNUC_CONST;
GType rygel_base_configuration_get_type (void) G_GNUC_CONST;
enum  {
	RYGEL_BASE_CONFIGURATION_DUMMY_PROPERTY
};
gboolean rygel_base_configuration_get_upnp_enabled (RygelBaseConfiguration* self, GError** error);
static gboolean rygel_base_configuration_real_get_upnp_enabled (RygelBaseConfiguration* self, GError** error);
GQuark rygel_configuration_error_quark (void);
gchar* rygel_base_configuration_get_interface (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_interface (RygelBaseConfiguration* self, GError** error);
gchar** rygel_base_configuration_get_interfaces (RygelBaseConfiguration* self, GError** error);
static gchar** rygel_base_configuration_real_get_interfaces (RygelBaseConfiguration* self, GError** error);
gint rygel_base_configuration_get_port (RygelBaseConfiguration* self, GError** error);
static gint rygel_base_configuration_real_get_port (RygelBaseConfiguration* self, GError** error);
gboolean rygel_base_configuration_get_transcoding (RygelBaseConfiguration* self, GError** error);
static gboolean rygel_base_configuration_real_get_transcoding (RygelBaseConfiguration* self, GError** error);
gboolean rygel_base_configuration_get_allow_upload (RygelBaseConfiguration* self, GError** error);
static gboolean rygel_base_configuration_real_get_allow_upload (RygelBaseConfiguration* self, GError** error);
gboolean rygel_base_configuration_get_allow_deletion (RygelBaseConfiguration* self, GError** error);
static gboolean rygel_base_configuration_real_get_allow_deletion (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_log_levels (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_log_levels (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_plugin_path (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_plugin_path (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_engine_path (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_engine_path (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_media_engine (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_media_engine (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_video_upload_folder (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_video_upload_folder (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_music_upload_folder (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_music_upload_folder (RygelBaseConfiguration* self, GError** error);
gchar* rygel_base_configuration_get_picture_upload_folder (RygelBaseConfiguration* self, GError** error);
static gchar* rygel_base_configuration_real_get_picture_upload_folder (RygelBaseConfiguration* self, GError** error);
gboolean rygel_base_configuration_get_enabled (RygelBaseConfiguration* self, const gchar* section, GError** error);
static gboolean rygel_base_configuration_real_get_enabled (RygelBaseConfiguration* self, const gchar* section, GError** error);
gchar* rygel_base_configuration_get_title (RygelBaseConfiguration* self, const gchar* section, GError** error);
static gchar* rygel_base_configuration_real_get_title (RygelBaseConfiguration* self, const gchar* section, GError** error);
gchar* rygel_base_configuration_get_string (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
static gchar* rygel_base_configuration_real_get_string (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
GeeArrayList* rygel_base_configuration_get_string_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
static GeeArrayList* rygel_base_configuration_real_get_string_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
gint rygel_base_configuration_get_int (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
static gint rygel_base_configuration_real_get_int (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
GeeArrayList* rygel_base_configuration_get_int_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
static GeeArrayList* rygel_base_configuration_real_get_int_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
gboolean rygel_base_configuration_get_bool (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
static gboolean rygel_base_configuration_real_get_bool (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
RygelBaseConfiguration* rygel_base_configuration_new (void);
RygelBaseConfiguration* rygel_base_configuration_construct (GType object_type);


static gboolean rygel_base_configuration_real_get_upnp_enabled (RygelBaseConfiguration* self, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_upnp_enabled (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_upnp_enabled (self, error);
}


static gchar* rygel_base_configuration_real_get_interface (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_interface (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_interface (self, error);
}


static gchar** rygel_base_configuration_real_get_interfaces (RygelBaseConfiguration* self, GError** error) {
	gchar** result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar** rygel_base_configuration_get_interfaces (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_interfaces (self, error);
}


static gint rygel_base_configuration_real_get_port (RygelBaseConfiguration* self, GError** error) {
	gint result = 0;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return 0;
	return result;
}


gint rygel_base_configuration_get_port (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, 0);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_port (self, error);
}


static gboolean rygel_base_configuration_real_get_transcoding (RygelBaseConfiguration* self, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_transcoding (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_transcoding (self, error);
}


static gboolean rygel_base_configuration_real_get_allow_upload (RygelBaseConfiguration* self, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_allow_upload (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_allow_upload (self, error);
}


static gboolean rygel_base_configuration_real_get_allow_deletion (RygelBaseConfiguration* self, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_allow_deletion (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_allow_deletion (self, error);
}


static gchar* rygel_base_configuration_real_get_log_levels (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_log_levels (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_log_levels (self, error);
}


static gchar* rygel_base_configuration_real_get_plugin_path (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_plugin_path (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_plugin_path (self, error);
}


static gchar* rygel_base_configuration_real_get_engine_path (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_engine_path (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_engine_path (self, error);
}


static gchar* rygel_base_configuration_real_get_media_engine (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_media_engine (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_media_engine (self, error);
}


static gchar* rygel_base_configuration_real_get_video_upload_folder (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_video_upload_folder (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_video_upload_folder (self, error);
}


static gchar* rygel_base_configuration_real_get_music_upload_folder (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_music_upload_folder (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_music_upload_folder (self, error);
}


static gchar* rygel_base_configuration_real_get_picture_upload_folder (RygelBaseConfiguration* self, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_picture_upload_folder (RygelBaseConfiguration* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_picture_upload_folder (self, error);
}


static gboolean rygel_base_configuration_real_get_enabled (RygelBaseConfiguration* self, const gchar* section, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, FALSE);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_enabled (RygelBaseConfiguration* self, const gchar* section, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_enabled (self, section, error);
}


static gchar* rygel_base_configuration_real_get_title (RygelBaseConfiguration* self, const gchar* section, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, NULL);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_title (RygelBaseConfiguration* self, const gchar* section, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_title (self, section, error);
}


static gchar* rygel_base_configuration_real_get_string (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* rygel_base_configuration_get_string (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_string (self, section, key, error);
}


static GeeArrayList* rygel_base_configuration_real_get_string_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	GeeArrayList* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


GeeArrayList* rygel_base_configuration_get_string_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_string_list (self, section, key, error);
}


static gint rygel_base_configuration_real_get_int (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error) {
	gint result = 0;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, 0);
	g_return_val_if_fail (key != NULL, 0);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return 0;
	return result;
}


gint rygel_base_configuration_get_int (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error) {
	g_return_val_if_fail (self != NULL, 0);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_int (self, section, key, min, max, error);
}


static GeeArrayList* rygel_base_configuration_real_get_int_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	GeeArrayList* result = NULL;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


GeeArrayList* rygel_base_configuration_get_int_list (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_int_list (self, section, key, error);
}


static gboolean rygel_base_configuration_real_get_bool (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	gboolean result = FALSE;
	const gchar* _tmp0_ = NULL;
	GError* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (section != NULL, FALSE);
	g_return_val_if_fail (key != NULL, FALSE);
	_tmp0_ = _ ("Not implemented");
	_tmp1_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _tmp0_);
	_inner_error_ = _tmp1_;
	g_propagate_error (error, _inner_error_);
	return FALSE;
	return result;
}


gboolean rygel_base_configuration_get_bool (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error) {
	g_return_val_if_fail (self != NULL, FALSE);
	return RYGEL_BASE_CONFIGURATION_GET_CLASS (self)->get_bool (self, section, key, error);
}


RygelBaseConfiguration* rygel_base_configuration_construct (GType object_type) {
	RygelBaseConfiguration * self = NULL;
	self = (RygelBaseConfiguration*) g_object_new (object_type, NULL);
	return self;
}


RygelBaseConfiguration* rygel_base_configuration_new (void) {
	return rygel_base_configuration_construct (RYGEL_TYPE_BASE_CONFIGURATION);
}


static void rygel_base_configuration_class_init (RygelBaseConfigurationClass * klass) {
	rygel_base_configuration_parent_class = g_type_class_peek_parent (klass);
	((RygelBaseConfigurationClass *) klass)->get_upnp_enabled = rygel_base_configuration_real_get_upnp_enabled;
	((RygelBaseConfigurationClass *) klass)->get_interface = rygel_base_configuration_real_get_interface;
	((RygelBaseConfigurationClass *) klass)->get_interfaces = rygel_base_configuration_real_get_interfaces;
	((RygelBaseConfigurationClass *) klass)->get_port = rygel_base_configuration_real_get_port;
	((RygelBaseConfigurationClass *) klass)->get_transcoding = rygel_base_configuration_real_get_transcoding;
	((RygelBaseConfigurationClass *) klass)->get_allow_upload = rygel_base_configuration_real_get_allow_upload;
	((RygelBaseConfigurationClass *) klass)->get_allow_deletion = rygel_base_configuration_real_get_allow_deletion;
	((RygelBaseConfigurationClass *) klass)->get_log_levels = rygel_base_configuration_real_get_log_levels;
	((RygelBaseConfigurationClass *) klass)->get_plugin_path = rygel_base_configuration_real_get_plugin_path;
	((RygelBaseConfigurationClass *) klass)->get_engine_path = rygel_base_configuration_real_get_engine_path;
	((RygelBaseConfigurationClass *) klass)->get_media_engine = rygel_base_configuration_real_get_media_engine;
	((RygelBaseConfigurationClass *) klass)->get_video_upload_folder = rygel_base_configuration_real_get_video_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_music_upload_folder = rygel_base_configuration_real_get_music_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_picture_upload_folder = rygel_base_configuration_real_get_picture_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_enabled = rygel_base_configuration_real_get_enabled;
	((RygelBaseConfigurationClass *) klass)->get_title = rygel_base_configuration_real_get_title;
	((RygelBaseConfigurationClass *) klass)->get_string = rygel_base_configuration_real_get_string;
	((RygelBaseConfigurationClass *) klass)->get_string_list = rygel_base_configuration_real_get_string_list;
	((RygelBaseConfigurationClass *) klass)->get_int = rygel_base_configuration_real_get_int;
	((RygelBaseConfigurationClass *) klass)->get_int_list = rygel_base_configuration_real_get_int_list;
	((RygelBaseConfigurationClass *) klass)->get_bool = rygel_base_configuration_real_get_bool;
}


static void rygel_base_configuration_rygel_configuration_interface_init (RygelConfigurationIface * iface) {
	rygel_base_configuration_rygel_configuration_parent_iface = g_type_interface_peek_parent (iface);
	iface->get_upnp_enabled = (gboolean (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_upnp_enabled;
	iface->get_interface = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_interface;
	iface->get_interfaces = (gchar** (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_interfaces;
	iface->get_port = (gint (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_port;
	iface->get_transcoding = (gboolean (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_transcoding;
	iface->get_allow_upload = (gboolean (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_allow_upload;
	iface->get_allow_deletion = (gboolean (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_allow_deletion;
	iface->get_log_levels = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_log_levels;
	iface->get_plugin_path = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_plugin_path;
	iface->get_engine_path = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_engine_path;
	iface->get_media_engine = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_media_engine;
	iface->get_video_upload_folder = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_video_upload_folder;
	iface->get_music_upload_folder = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_music_upload_folder;
	iface->get_picture_upload_folder = (gchar* (*)(RygelConfiguration*, GError**)) rygel_base_configuration_get_picture_upload_folder;
	iface->get_enabled = (gboolean (*)(RygelConfiguration*, const gchar*, GError**)) rygel_base_configuration_get_enabled;
	iface->get_title = (gchar* (*)(RygelConfiguration*, const gchar*, GError**)) rygel_base_configuration_get_title;
	iface->get_string = (gchar* (*)(RygelConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_get_string;
	iface->get_string_list = (GeeArrayList* (*)(RygelConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_get_string_list;
	iface->get_int = (gint (*)(RygelConfiguration*, const gchar*, const gchar*, gint, gint, GError**)) rygel_base_configuration_get_int;
	iface->get_int_list = (GeeArrayList* (*)(RygelConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_get_int_list;
	iface->get_bool = (gboolean (*)(RygelConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_get_bool;
}


static void rygel_base_configuration_instance_init (RygelBaseConfiguration * self) {
}


/**
 * Base class that can be used for configuration implementations.
 *
 * Mainly useful to only implement a small subset of the configuration.
 */
GType rygel_base_configuration_get_type (void) {
	static volatile gsize rygel_base_configuration_type_id__volatile = 0;
	if (g_once_init_enter (&rygel_base_configuration_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (RygelBaseConfigurationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rygel_base_configuration_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RygelBaseConfiguration), 0, (GInstanceInitFunc) rygel_base_configuration_instance_init, NULL };
		static const GInterfaceInfo rygel_configuration_info = { (GInterfaceInitFunc) rygel_base_configuration_rygel_configuration_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType rygel_base_configuration_type_id;
		rygel_base_configuration_type_id = g_type_register_static (G_TYPE_OBJECT, "RygelBaseConfiguration", &g_define_type_info, 0);
		g_type_add_interface_static (rygel_base_configuration_type_id, RYGEL_TYPE_CONFIGURATION, &rygel_configuration_info);
		g_once_init_leave (&rygel_base_configuration_type_id__volatile, rygel_base_configuration_type_id);
	}
	return rygel_base_configuration_type_id__volatile;
}



