[gstreamermm] Repaired classes with a slot member to signal per instance if a slot has been set or not.
- From: José Alburquerque <jaalburqu src gnome org>
- To: svn-commits-list gnome org
- Subject: [gstreamermm] Repaired classes with a slot member to signal per instance if a slot has been set or not.
- Date: Tue, 19 May 2009 21:34:38 -0400 (EDT)
commit a23ad7a4ed6c3ef92ccf0de2c67358e9a191f0a5
Author: José Alburquerque <jaalburqu svn gnome org>
Date: Tue May 19 21:31:44 2009 -0400
Repaired classes with a slot member to signal per instance if a slot has been set or not.
---
ChangeLog | 10 ++++++++++
gstreamer/src/audioclock.ccg | 29 ++++++++++++++++-------------
gstreamer/src/audioclock.hg | 3 ++-
gstreamer/src/ringbuffer.ccg | 28 +++++++++++++++-------------
gstreamer/src/ringbuffer.hg | 3 ++-
gstreamer/src/task.ccg | 30 +++++++++++++++++-------------
gstreamer/src/task.hg | 3 ++-
7 files changed, 64 insertions(+), 42 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cb4e3db..8e674c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2009-05-19 José Alburquerque <jaalburqu svn gnome org>
+ * gstreamer/src/audioclock.ccg:
+ * gstreamer/src/audioclock.hg:
+ * gstreamer/src/ringbuffer.ccg:
+ * gstreamer/src/ringbuffer.hg:
+ * gstreamer/src/task.ccg:
+ * gstreamer/src/task.hg: Repaired classes with a slot member to signal
+ per instance if a slot has been set or not.
+
+2009-05-19 José Alburquerque <jaalburqu svn gnome org>
+
* gstreamer/gstreamermm/init.h:
* gstreamer/src/audioclock.ccg:
* gstreamer/src/bin.ccg:
diff --git a/gstreamer/src/audioclock.ccg b/gstreamer/src/audioclock.ccg
index 8a7d9b5..ff569ea 100644
--- a/gstreamer/src/audioclock.ccg
+++ b/gstreamer/src/audioclock.ccg
@@ -44,11 +44,24 @@ static GstClockTime AudioClock_GetTime_gstreamermm_callback(GstClock* clock, voi
namespace Gst
{
+AudioClock::AudioClock(const Glib::ConstructParams& construct_params)
+:
+ Gst::SystemClock(construct_params),
+ _slot_set(false)
+{}
+
+AudioClock::AudioClock(GstAudioClock* castitem)
+:
+ Gst::SystemClock((GstSystemClock*)(castitem)),
+ _slot_set(false)
+{}
+
+
AudioClock::AudioClock(const Glib::ustring& name, const SlotGetTime& time_slot)
- : _CONSTRUCT("name", name.c_str())
+ : _CONSTRUCT("name", name.c_str()),
+ _slot_set(true)
{
slot = new SlotGetTime(time_slot);
- _slot_set(true);
//The following lines are taken verbatim from gst_audio_clock_new() after the
//call to g_object_new() because it seems that bug #545782 will not be
@@ -57,20 +70,10 @@ AudioClock::AudioClock(const Glib::ustring& name, const SlotGetTime& time_slot)
gobj()->user_data = &slot;
}
-bool AudioClock::_slot_set(bool mark_set) const
-{
- static bool slot_set = false;
-
- if(mark_set)
- slot_set = true;
-
- return slot_set;
-}
-
AudioClock::~AudioClock()
{
- if(_slot_set())
+ if(_slot_set)
delete slot;
}
diff --git a/gstreamer/src/audioclock.hg b/gstreamer/src/audioclock.hg
index 2e8ee0d..c85aaed 100644
--- a/gstreamer/src/audioclock.hg
+++ b/gstreamer/src/audioclock.hg
@@ -37,6 +37,7 @@ class AudioClock : public Gst::SystemClock
{
_CLASS_GOBJECT(AudioClock, GstAudioClock, GST_AUDIO_CLOCK, Gst::SystemClock, GstSystemClock)
_CUSTOM_DTOR()
+ _CUSTOM_CTOR_CAST()
public:
/** For example,
@@ -67,7 +68,7 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
SlotGetTime* slot;
- bool _slot_set(bool mark_set = false) const;
+ bool _slot_set;
#endif
};
diff --git a/gstreamer/src/ringbuffer.ccg b/gstreamer/src/ringbuffer.ccg
index b8f8b62..c39597c 100644
--- a/gstreamer/src/ringbuffer.ccg
+++ b/gstreamer/src/ringbuffer.ccg
@@ -98,28 +98,30 @@ void RingBufferSpec::copy_fields_to(GstRingBufferSpec& spec) const
memcpy(spec.silence_sample, silence_sample, sizeof(spec.silence_sample));
}
+RingBuffer::RingBuffer(const Glib::ConstructParams& construct_params)
+:
+ Gst::Object(construct_params),
+ _slot_set(false)
+{}
+
+RingBuffer::RingBuffer(GstRingBuffer* castitem)
+:
+ Gst::Object((GstObject*)(castitem)),
+ _slot_set(false)
+{}
+
void RingBuffer::set_fill_slot(const SlotFill& slot)
{
- if(_slot_set())
+ if(_slot_set)
delete this->slot;
this->slot = new SlotFill(slot);
- _slot_set(true);
+ _slot_set = true;
gst_ring_buffer_set_callback(gobj(), &RingBuffer_Fill_gstreamermm_callback,
this->slot);
}
-bool RingBuffer::_slot_set(bool mark_set) const
-{
- static bool slot_set = false;
-
- if(mark_set)
- slot_set = true;
-
- return slot_set;
-}
-
bool RingBuffer::acquire(const Gst::RingBufferSpec& spec)
{
GstRingBufferSpec gst_spec;
@@ -139,7 +141,7 @@ bool RingBuffer::parse_caps(Gst::RingBufferSpec& spec, const Glib::RefPtr<Gst::C
RingBuffer::~RingBuffer()
{
// Delete task's slot upon destruction
- if(_slot_set())
+ if(_slot_set)
delete slot;
}
diff --git a/gstreamer/src/ringbuffer.hg b/gstreamer/src/ringbuffer.hg
index 03ac2ab..fe2364c 100644
--- a/gstreamer/src/ringbuffer.hg
+++ b/gstreamer/src/ringbuffer.hg
@@ -128,6 +128,7 @@ class RingBuffer : public Gst::Object
{
_CLASS_GOBJECT(RingBuffer, GstRingBuffer, GST_RING_BUFFER, Gst::Object, GstObject)
_CUSTOM_DTOR()
+ _CUSTOM_CTOR_CAST()
public:
/** For example,
@@ -199,7 +200,7 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
SlotFill* slot;
- bool _slot_set(bool mark_set = false) const;
+ bool _slot_set;
#endif
};
diff --git a/gstreamer/src/task.ccg b/gstreamer/src/task.ccg
index d0f22d7..7030ecc 100644
--- a/gstreamer/src/task.ccg
+++ b/gstreamer/src/task.ccg
@@ -41,14 +41,28 @@ static void Task_Task_gstreamermm_callback(void* data)
namespace Gst
{
+Task::Task(const Glib::ConstructParams& construct_params)
+:
+ Object(construct_params),
+ _slot_set(false)
+{}
+
+Task::Task(GstTask* castitem)
+:
+ Object((GstObject*)(castitem)),
+ _slot_set(false)
+{}
+
+
Task::Task(const SlotTask& task_slot)
-: _CONSTRUCT()
+:
+ _CONSTRUCT(),
+ _slot_set(true)
{
//Create a copy of the slot. A pointer to this copy will be passed through
//the call back's data parameter. It will be destroyed in the Task's
//destructor
slot = new SlotTask(task_slot);
- _slot_set(true);
// These lines are taken verbatim from gst_task_create() after calling
// g_object_new().
@@ -56,20 +70,10 @@ Task::Task(const SlotTask& task_slot)
gobj()->data = &slot;
}
-bool Task::_slot_set(bool mark_set) const
-{
- static bool slot_set = false;
-
- if(mark_set)
- slot_set = true;
-
- return slot_set;
-}
-
Task::~Task()
{
// Delete task's slot upon destruction
- if(_slot_set())
+ if(_slot_set)
delete slot;
}
diff --git a/gstreamer/src/task.hg b/gstreamer/src/task.hg
index dc42219..cb038ff 100644
--- a/gstreamer/src/task.hg
+++ b/gstreamer/src/task.hg
@@ -60,6 +60,7 @@ _WRAP_ENUM(TaskState, GstTaskState)
class Task : public Object
{
_CLASS_GOBJECT(Task, GstTask, GST_TASK, Object, GstObject)
+ _CUSTOM_CTOR_CAST()
_CUSTOM_DTOR()
public:
@@ -94,7 +95,7 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
SlotTask* slot;
- bool _slot_set(bool mark_set = false) const;
+ bool _slot_set;
#endif
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]