projects
/
projects
/
chimara
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added guards for compiling without GStreamer
[projects/chimara/chimara.git]
/
libchimara
/
schannel.c
diff --git
a/libchimara/schannel.c
b/libchimara/schannel.c
index 696aaa2a7351f225ea9a009e44c1d0e3741d43f4..2e741d3fea1f330e1ba7b3abaa290a16e9fe351b 100644
(file)
--- a/
libchimara/schannel.c
+++ b/
libchimara/schannel.c
@@
-44,12
+44,19
@@
glk_schannel_create(glui32 rock)
g_free(pipeline_name);
/* Create GStreamer elements to put in the pipeline */
g_free(pipeline_name);
/* Create GStreamer elements to put in the pipeline */
- s->source = gst_element_factory_make("f
ak
esrc", NULL);
+ s->source = gst_element_factory_make("f
il
esrc", NULL);
s->filter = gst_element_factory_make("identity", NULL);
s->filter = gst_element_factory_make("identity", NULL);
- s->sink = gst_element_factory_make("fakesink", NULL);
+ s->sink = gst_element_factory_make("autoaudiosink", NULL);
+ if(!s->source || !s->filter || !s->sink) {
+ WARNING("Could not create one or more GStreamer elements");
+ goto fail;
+ }
+
gst_bin_add_many(GST_BIN(s->pipeline), s->source, s->filter, s->sink, NULL);
gst_bin_add_many(GST_BIN(s->pipeline), s->source, s->filter, s->sink, NULL);
- if(!gst_element_link_many(s->source, s->filter, s->sink, NULL))
+ if(!gst_element_link_many(s->source, s->filter, s->sink, NULL)) {
+ WARNING("Could not link GStreamer elements");
goto fail;
goto fail;
+ }
return s;
return s;
@@
-73,6
+80,7
@@
glk_schannel_destroy(schanid_t chan)
{
VALID_SCHANNEL(chan, return);
{
VALID_SCHANNEL(chan, return);
+#ifdef GSTREAMER_SOUND
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
glk_data->schannel_list = g_list_delete_link(glk_data->schannel_list, chan->schannel_list);
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
glk_data->schannel_list = g_list_delete_link(glk_data->schannel_list, chan->schannel_list);
@@
-88,6
+96,7
@@
glk_schannel_destroy(schanid_t chan)
chan->magic = MAGIC_FREE;
g_free(chan);
chan->magic = MAGIC_FREE;
g_free(chan);
+#endif
}
/**
}
/**
@@
-109,6
+118,7
@@
glk_schannel_iterate(schanid_t chan, glui32 *rockptr)
{
VALID_SCHANNEL_OR_NULL(chan, return NULL);
{
VALID_SCHANNEL_OR_NULL(chan, return NULL);
+#ifdef GSTREAMER_SOUND
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
GList *retnode;
ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
GList *retnode;
@@
-123,6
+133,9
@@
glk_schannel_iterate(schanid_t chan, glui32 *rockptr)
*rockptr = glk_schannel_get_rock(retval);
return retval;
*rockptr = glk_schannel_get_rock(retval);
return retval;
+#else
+ return NULL;
+#endif /* GSTREAMER_SOUND */
}
/**
}
/**
@@
-166,8
+179,7
@@
glk_schannel_get_rock(schanid_t chan)
glui32
glk_schannel_play(schanid_t chan, glui32 snd)
{
glui32
glk_schannel_play(schanid_t chan, glui32 snd)
{
- VALID_SCHANNEL(chan, return 0);
- return 0;
+ return glk_schannel_play_ext(chan, snd, 1, 0);
}
/**
}
/**