/* rygel-base-configuration.c generated by valac 0.56.1, 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.1 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 library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

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

enum  {
	RYGEL_BASE_CONFIGURATION_0_PROPERTY,
	RYGEL_BASE_CONFIGURATION_NUM_PROPERTIES
};
static GParamSpec* rygel_base_configuration_properties[RYGEL_BASE_CONFIGURATION_NUM_PROPERTIES];

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

static gchar* rygel_base_configuration_real_get_interface (RygelBaseConfiguration* self,
                                                    GError** error);
static gchar** rygel_base_configuration_real_get_interfaces (RygelBaseConfiguration* self,
                                                      GError** error);
static gint rygel_base_configuration_real_get_port (RygelBaseConfiguration* self,
                                             GError** error);
static gboolean rygel_base_configuration_real_get_transcoding (RygelBaseConfiguration* self,
                                                        GError** error);
static gboolean rygel_base_configuration_real_get_allow_upload (RygelBaseConfiguration* self,
                                                         GError** error);
static gboolean rygel_base_configuration_real_get_allow_deletion (RygelBaseConfiguration* self,
                                                           GError** error);
static gchar* rygel_base_configuration_real_get_log_levels (RygelBaseConfiguration* self,
                                                     GError** error);
static gchar* rygel_base_configuration_real_get_plugin_path (RygelBaseConfiguration* self,
                                                      GError** error);
static gchar* rygel_base_configuration_real_get_engine_path (RygelBaseConfiguration* self,
                                                      GError** error);
static gchar* rygel_base_configuration_real_get_media_engine (RygelBaseConfiguration* self,
                                                       GError** error);
static gchar* rygel_base_configuration_real_get_video_upload_folder (RygelBaseConfiguration* self,
                                                              GError** error);
static gchar* rygel_base_configuration_real_get_music_upload_folder (RygelBaseConfiguration* self,
                                                              GError** error);
static gchar* rygel_base_configuration_real_get_picture_upload_folder (RygelBaseConfiguration* self,
                                                                GError** error);
static gboolean rygel_base_configuration_real_get_enabled (RygelBaseConfiguration* self,
                                                    const gchar* section,
                                                    GError** error);
static gchar* rygel_base_configuration_real_get_title (RygelBaseConfiguration* self,
                                                const gchar* section,
                                                GError** error);
static gchar* rygel_base_configuration_real_get_string (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);
static gint rygel_base_configuration_real_get_int (RygelBaseConfiguration* self,
                                            const gchar* section,
                                            const gchar* key,
                                            gint min,
                                            gint max,
                                            GError** error);
static GeeArrayList* rygel_base_configuration_real_get_int_list (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);
static GType rygel_base_configuration_get_type_once (void);

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

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

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

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

static gint
rygel_base_configuration_real_get_port (RygelBaseConfiguration* self,
                                        GError** error)
{
	GError* _tmp0_;
	gint _tmp1_ = -1;
	GError* _inner_error0_ = NULL;
	_tmp0_ = g_error_new_literal (RYGEL_CONFIGURATION_ERROR, RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET, _ ("Not implemented"));
	_inner_error0_ = _tmp0_;
	g_propagate_error (error, _inner_error0_);
	return _tmp1_;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,
                                     gpointer klass_data)
{
	rygel_base_configuration_parent_class = g_type_class_peek_parent (klass);
	((RygelBaseConfigurationClass *) klass)->get_interface = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_interface;
	((RygelBaseConfigurationClass *) klass)->get_interfaces = (gchar** (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_interfaces;
	((RygelBaseConfigurationClass *) klass)->get_port = (gint (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_port;
	((RygelBaseConfigurationClass *) klass)->get_transcoding = (gboolean (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_transcoding;
	((RygelBaseConfigurationClass *) klass)->get_allow_upload = (gboolean (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_allow_upload;
	((RygelBaseConfigurationClass *) klass)->get_allow_deletion = (gboolean (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_allow_deletion;
	((RygelBaseConfigurationClass *) klass)->get_log_levels = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_log_levels;
	((RygelBaseConfigurationClass *) klass)->get_plugin_path = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_plugin_path;
	((RygelBaseConfigurationClass *) klass)->get_engine_path = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_engine_path;
	((RygelBaseConfigurationClass *) klass)->get_media_engine = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_media_engine;
	((RygelBaseConfigurationClass *) klass)->get_video_upload_folder = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_video_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_music_upload_folder = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_music_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_picture_upload_folder = (gchar* (*) (RygelBaseConfiguration*, GError**)) rygel_base_configuration_real_get_picture_upload_folder;
	((RygelBaseConfigurationClass *) klass)->get_enabled = (gboolean (*) (RygelBaseConfiguration*, const gchar*, GError**)) rygel_base_configuration_real_get_enabled;
	((RygelBaseConfigurationClass *) klass)->get_title = (gchar* (*) (RygelBaseConfiguration*, const gchar*, GError**)) rygel_base_configuration_real_get_title;
	((RygelBaseConfigurationClass *) klass)->get_string = (gchar* (*) (RygelBaseConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_real_get_string;
	((RygelBaseConfigurationClass *) klass)->get_string_list = (GeeArrayList* (*) (RygelBaseConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_real_get_string_list;
	((RygelBaseConfigurationClass *) klass)->get_int = (gint (*) (RygelBaseConfiguration*, const gchar*, const gchar*, gint, gint, GError**)) rygel_base_configuration_real_get_int;
	((RygelBaseConfigurationClass *) klass)->get_int_list = (GeeArrayList* (*) (RygelBaseConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_real_get_int_list;
	((RygelBaseConfigurationClass *) klass)->get_bool = (gboolean (*) (RygelBaseConfiguration*, const gchar*, const gchar*, GError**)) rygel_base_configuration_real_get_bool;
}

static void
rygel_base_configuration_rygel_configuration_interface_init (RygelConfigurationIface * iface,
                                                             gpointer iface_data)
{
	rygel_base_configuration_rygel_configuration_parent_iface = g_type_interface_peek_parent (iface);
	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,
                                        gpointer klass)
{
}

/**
 * Base class that can be used for configuration implementations.
 *
 * Mainly useful to only implement a small subset of the configuration.
 */
static GType
rygel_base_configuration_get_type_once (void)
{
	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);
	return rygel_base_configuration_type_id;
}

GType
rygel_base_configuration_get_type (void)
{
	static volatile gsize rygel_base_configuration_type_id__once = 0;
	if (g_once_init_enter (&rygel_base_configuration_type_id__once)) {
		GType rygel_base_configuration_type_id;
		rygel_base_configuration_type_id = rygel_base_configuration_get_type_once ();
		g_once_init_leave (&rygel_base_configuration_type_id__once, rygel_base_configuration_type_id);
	}
	return rygel_base_configuration_type_id__once;
}

