mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 14:26:43 +00:00
gconf stuff
Original commit message from CVS: gconf stuff
This commit is contained in:
parent
7f07809cd9
commit
26019f6e28
5 changed files with 145 additions and 2 deletions
|
@ -1,3 +1,3 @@
|
||||||
SUBDIRS = audio idct resample riff floatcast
|
SUBDIRS = audio idct resample riff floatcast gconf
|
||||||
|
|
||||||
DIST_SUBDIRS = audio idct resample riff floatcast
|
DIST_SUBDIRS = audio idct resample riff floatcast gconf
|
||||||
|
|
17
gst-libs/gst/gconf/Makefile.am
Normal file
17
gst-libs/gst/gconf/Makefile.am
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
librarydir = $(prefix)/lib/gst
|
||||||
|
|
||||||
|
library_LTLIBRARIES = libgstgconf.la
|
||||||
|
|
||||||
|
libgstgconf_la_SOURCES = gconf.c
|
||||||
|
|
||||||
|
libgstgconfincludedir = $(includedir)/@PACKAGE@-@VERSION@/gst/gconf
|
||||||
|
libgstgconfinclude_HEADERS = gconf.h
|
||||||
|
|
||||||
|
noinst_PROGRAMS = test-gconf
|
||||||
|
|
||||||
|
test_gconf_CFLAGS = $(GST_CFLAGS) $(GCONF_CFLAGS)
|
||||||
|
test_gconf_LDADD = $(GST_LIBS) $(GCONF_LIBS) -lgstgconf
|
||||||
|
|
||||||
|
libgstgconf_la_LIBADD = $(GCONF_LIBS)
|
||||||
|
libgstgconf_la_CFLAGS = $(GST_CFLAGS) $(GCONF_CFLAGS)
|
||||||
|
libgstgconf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
93
gst-libs/gst/gconf/gconf.c
Normal file
93
gst-libs/gst/gconf/gconf.c
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
/*
|
||||||
|
* this library handles interaction with GConf
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gconf.h"
|
||||||
|
|
||||||
|
#define GST_GCONF_DIR "/system/gstreamer"
|
||||||
|
|
||||||
|
static GConfClient *_gst_gconf_client = NULL; /* GConf connection */
|
||||||
|
|
||||||
|
|
||||||
|
/* internal functions */
|
||||||
|
|
||||||
|
GConfClient *
|
||||||
|
gst_gconf_get_client (void)
|
||||||
|
{
|
||||||
|
if (!_gst_gconf_client)
|
||||||
|
_gst_gconf_client = gconf_client_get_default ();
|
||||||
|
|
||||||
|
return _gst_gconf_client;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* external functions */
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gst_gconf_get_string (const gchar *key)
|
||||||
|
{
|
||||||
|
GError *error = NULL;
|
||||||
|
gchar *value = NULL;
|
||||||
|
gchar *full_key = g_strdup_printf ("%s/%s", GST_GCONF_DIR, key);
|
||||||
|
|
||||||
|
g_print ("DEBUG: full key: %s\n", full_key);
|
||||||
|
|
||||||
|
value = gconf_client_get_string (gst_gconf_get_client (), full_key, &error);
|
||||||
|
g_free (full_key);
|
||||||
|
|
||||||
|
if (value)
|
||||||
|
return value;
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
// this is a good idea: return g_strdup (default_val);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_gconf_set_string (const gchar *key, const gchar *value)
|
||||||
|
{
|
||||||
|
gconf_client_set_string (gst_gconf_get_client (), key, value, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gst_gconf_render_bin (const gchar *key, GstElement **element)
|
||||||
|
{
|
||||||
|
GstElement *bin;
|
||||||
|
gchar *pipeline;
|
||||||
|
GError *error = NULL;
|
||||||
|
gchar *value = NULL;
|
||||||
|
|
||||||
|
value = gst_gconf_get_string (key);
|
||||||
|
|
||||||
|
pipeline = g_strdup_printf ("bin.( %s )", value);
|
||||||
|
bin = GST_ELEMENT (gst_parse_launch (pipeline, &error));
|
||||||
|
if (error)
|
||||||
|
{
|
||||||
|
g_print ("DEBUG: gstgconf: error parsing pipeline %s\n%s\n",
|
||||||
|
pipeline, error->message);
|
||||||
|
g_error_free (error);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
*element = bin;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
guint gst_gconf_notify_add (const gchar *key,
|
||||||
|
GConfClientNotifyFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
*/
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
plugin_init (GModule *module, GstPlugin *plugin)
|
||||||
|
{
|
||||||
|
gst_plugin_set_longname (plugin,
|
||||||
|
"Convenience routines for GConf interaction");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
GstPluginDesc plugin_desc = {
|
||||||
|
GST_VERSION_MAJOR,
|
||||||
|
GST_VERSION_MINOR,
|
||||||
|
"gstgconf",
|
||||||
|
plugin_init
|
||||||
|
};
|
||||||
|
|
23
gst-libs/gst/gconf/gconf.h
Normal file
23
gst-libs/gst/gconf/gconf.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef GST_GCONF_H
|
||||||
|
#define GST_GCONF_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this library handles interaction with GConf
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gst/gst.h>
|
||||||
|
#include <gconf/gconf-client.h>
|
||||||
|
|
||||||
|
gchar * gst_gconf_get_string (const gchar *key);
|
||||||
|
void gst_gconf_set_string (const gchar *key,
|
||||||
|
const gchar *value);
|
||||||
|
|
||||||
|
gboolean gst_gconf_render_bin (const gchar *key,
|
||||||
|
GstElement **element);
|
||||||
|
|
||||||
|
/*
|
||||||
|
guint gst_gconf_notify_add (const gchar *key,
|
||||||
|
GConfClientNotifyFunc func,
|
||||||
|
gpointer user_data);
|
||||||
|
*/
|
||||||
|
#endif /* GST_GCONF_H */
|
10
gst-libs/gst/gconf/test-gconf.c
Normal file
10
gst-libs/gst/gconf/test-gconf.c
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#include "gconf.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
printf ("Default video sink : %s\n",
|
||||||
|
gst_gconf_get_string ("default/videosink"));
|
||||||
|
printf ("Default audio sink : %s\n",
|
||||||
|
gst_gconf_get_string ("default/audiosink"));
|
||||||
|
}
|
Loading…
Reference in a new issue