[gstreamermm] const and usage corrections of Gst::RingBufferSpec.



commit 977787bab3b9a765ef87c74f12b56f7da38b3194
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Tue May 12 00:22:28 2009 -0400

    const and usage corrections of Gst::RingBufferSpec.
---
 ChangeLog                     |   14 ++++++++++++++
 gstreamer/src/audiofilter.ccg |   10 +++-------
 gstreamer/src/audiofilter.hg  |    2 +-
 gstreamer/src/audiosink.ccg   |    2 +-
 gstreamer/src/audiosink.hg    |    2 +-
 gstreamer/src/audiosrc.ccg    |    2 +-
 gstreamer/src/audiosrc.hg     |    2 +-
 gstreamer/src/ringbuffer.ccg  |   12 +++++-------
 gstreamer/src/ringbuffer.hg   |    8 ++++----
 9 files changed, 31 insertions(+), 23 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9ad06f5..77171b6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2009-05-12  José Alburquerque  <jaalburqu svn gnome org>
+
+	* gstreamer/src/audiofilter.ccg:
+	* gstreamer/src/audiofilter.hg:
+	* gstreamer/src/audiosink.ccg:
+	* gstreamer/src/audiosink.hg:
+	* gstreamer/src/audiosrc.ccg:
+	* gstreamer/src/audiosrc.hg:
+	* gstreamer/src/ringbuffer.ccg:
+	* gstreamer/src/ringbuffer.hg: const corrections of
+	Gst::RingBufferSpec usages.  Also corrected logical use so that
+	copying from a GstRingBufferSpec is done only after API that in fact
+	modifies the GstRingBufferSpec.
+
 2009-05-11  José Alburquerque  <jaalburqu svn gnome org>
 
 	* gstreamer/src/audiosink.ccg:
diff --git a/gstreamer/src/audiofilter.ccg b/gstreamer/src/audiofilter.ccg
index c8bdc1a..ca3ca2e 100644
--- a/gstreamer/src/audiofilter.ccg
+++ b/gstreamer/src/audiofilter.ccg
@@ -46,9 +46,7 @@ gboolean AudioFilter_Class::setup_vfunc_callback(GstAudioFilter* self, GstRingBu
       #endif //GLIBMM_EXCEPTIONS_ENABLED
         Gst::RingBufferSpec spec(format);
         // Call the virtual member method, which derived classes might override.
-        gboolean const result = static_cast<int>(obj->setup_vfunc(spec));
-        spec.copy_fields_to(*format);
-        return result;
+        return static_cast<int>(obj->setup_vfunc(spec));
       #ifdef GLIBMM_EXCEPTIONS_ENABLED
       }
       catch(...)
@@ -71,7 +69,7 @@ gboolean AudioFilter_Class::setup_vfunc_callback(GstAudioFilter* self, GstRingBu
   typedef gboolean RType;
   return RType();
 }
-bool Gst::AudioFilter::setup_vfunc(Gst::RingBufferSpec& format) 
+bool Gst::AudioFilter::setup_vfunc(const Gst::RingBufferSpec& format) 
 {
   BaseClassType *const base = static_cast<BaseClassType*>(
       g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
@@ -81,9 +79,7 @@ bool Gst::AudioFilter::setup_vfunc(Gst::RingBufferSpec& format)
   {
     GstRingBufferSpec gst_spec;
     format.copy_fields_to(gst_spec);
-    bool const result = (*base->setup)(gobj(),&gst_spec);
-    format.copy_fields_from(gst_spec);
-    return result;
+    return (*base->setup)(gobj(),&gst_spec);
   }
 
   typedef bool RType;
diff --git a/gstreamer/src/audiofilter.hg b/gstreamer/src/audiofilter.hg
index 21f0fa8..65a3752 100644
--- a/gstreamer/src/audiofilter.hg
+++ b/gstreamer/src/audiofilter.hg
@@ -49,7 +49,7 @@ public:
 #ifdef GLIBMM_VFUNCS_ENABLED
   /** Virtual function, called whenever the format changes.
    */
-  virtual bool setup_vfunc(Gst::RingBufferSpec& format);
+  virtual bool setup_vfunc(const Gst::RingBufferSpec& format);
 #endif //GLIBMM_VFUNCS_ENABLED
 
 protected:
diff --git a/gstreamer/src/audiosink.ccg b/gstreamer/src/audiosink.ccg
index 7ad916d..726d03f 100644
--- a/gstreamer/src/audiosink.ccg
+++ b/gstreamer/src/audiosink.ccg
@@ -68,7 +68,7 @@ gboolean AudioSink_Class::prepare_vfunc_callback(GstAudioSink* self, GstRingBuff
   typedef gboolean RType;
   return RType();
 }
-bool Gst::AudioSink::prepare_vfunc(Gst::RingBufferSpec& spec) 
+bool Gst::AudioSink::prepare_vfunc(const Gst::RingBufferSpec& spec) 
 {
   BaseClassType *const base = static_cast<BaseClassType*>(
       g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
diff --git a/gstreamer/src/audiosink.hg b/gstreamer/src/audiosink.hg
index 48d7f82..03e7089 100644
--- a/gstreamer/src/audiosink.hg
+++ b/gstreamer/src/audiosink.hg
@@ -60,7 +60,7 @@ public:
 #ifdef GLIBMM_VFUNCS_ENABLED
   /** vfunc to prepare the device to operate with the specified parameters.
    */
-  virtual bool prepare_vfunc(Gst::RingBufferSpec& spec);
+  virtual bool prepare_vfunc(const Gst::RingBufferSpec& spec);
 #endif //GLIBMM_VFUNCS_ENABLED
 
   /** vfunc to undo operations done in prepare.
diff --git a/gstreamer/src/audiosrc.ccg b/gstreamer/src/audiosrc.ccg
index 18c0605..061a979 100644
--- a/gstreamer/src/audiosrc.ccg
+++ b/gstreamer/src/audiosrc.ccg
@@ -68,7 +68,7 @@ gboolean AudioSrc_Class::prepare_vfunc_callback(GstAudioSrc* self, GstRingBuffer
   typedef gboolean RType;
   return RType();
 }
-bool Gst::AudioSrc::prepare_vfunc(Gst::RingBufferSpec& spec) 
+bool Gst::AudioSrc::prepare_vfunc(const Gst::RingBufferSpec& spec) 
 {
   BaseClassType *const base = static_cast<BaseClassType*>(
       g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
diff --git a/gstreamer/src/audiosrc.hg b/gstreamer/src/audiosrc.hg
index 4af0771..065bd70 100644
--- a/gstreamer/src/audiosrc.hg
+++ b/gstreamer/src/audiosrc.hg
@@ -59,7 +59,7 @@ public:
 #ifdef GLIBMM_VFUNCS_ENABLED
   /** vfunc to configure device with spec.
    */
-  virtual bool prepare_vfunc(Gst::RingBufferSpec& spec);
+  virtual bool prepare_vfunc(const Gst::RingBufferSpec& spec);
 #endif //GLIBMM_VFUNCS_ENABLED
 
   /** vfunc to undo the configuration.
diff --git a/gstreamer/src/ringbuffer.ccg b/gstreamer/src/ringbuffer.ccg
index 061e4df..304af02 100644
--- a/gstreamer/src/ringbuffer.ccg
+++ b/gstreamer/src/ringbuffer.ccg
@@ -42,7 +42,7 @@ static void RingBuffer_Fill_gstreamermm_callback(GstRingBuffer* rbuf, guint8* da
 namespace Gst
 {
 
-RingBufferSpec::RingBufferSpec(GstRingBufferSpec* castitem)
+RingBufferSpec::RingBufferSpec(const GstRingBufferSpec* castitem)
 {
   if (castitem)
     copy_fields_from(*castitem);
@@ -53,7 +53,7 @@ RingBufferSpec::RingBufferSpec(GstRingBufferSpec* castitem)
   }
 }
 
-void RingBufferSpec::copy_fields_from(GstRingBufferSpec& spec)
+void RingBufferSpec::copy_fields_from(const GstRingBufferSpec& spec)
 {
   type = (Gst::BufferFormatType)(spec.type);
   format = (Gst::BufferFormat)(spec.format);
@@ -73,7 +73,7 @@ void RingBufferSpec::copy_fields_from(GstRingBufferSpec& spec)
   memcpy(silence_sample, spec.silence_sample, sizeof(silence_sample));
 }
 
-void RingBufferSpec::copy_fields_to(GstRingBufferSpec& spec)
+void RingBufferSpec::copy_fields_to(GstRingBufferSpec& spec) const
 {
   spec.type = (GstBufferFormatType)(type);
   spec.format = (GstBufferFormat)(format);
@@ -115,13 +115,11 @@ bool RingBuffer::_slot_set(bool mark_set) const
   return slot_set;
 }
 
-bool RingBuffer::acquire(Gst::RingBufferSpec& spec)
+bool RingBuffer::acquire(const Gst::RingBufferSpec& spec)
 {
   GstRingBufferSpec gst_spec;
   spec.copy_fields_to(gst_spec);
-  gboolean const result = gst_ring_buffer_acquire(gobj(), &gst_spec);
-  spec.copy_fields_from(gst_spec);
-  return result;
+  return gst_ring_buffer_acquire(gobj(), &gst_spec);
 }
 
 bool RingBuffer::parse_caps(Gst::RingBufferSpec& spec, const Glib::RefPtr<Gst::Caps>& caps)
diff --git a/gstreamer/src/ringbuffer.hg b/gstreamer/src/ringbuffer.hg
index af036b5..bfa0bef 100644
--- a/gstreamer/src/ringbuffer.hg
+++ b/gstreamer/src/ringbuffer.hg
@@ -40,7 +40,7 @@ class RingBufferSpec
   _CLASS_GENERIC(RingBufferSpec, GstRingBufferSpec)
 public:
   /// Construct a Gst::RingBufferSpec from a GstRingBufferSpec.
-  RingBufferSpec(GstRingBufferSpec* castitem);
+  RingBufferSpec(const GstRingBufferSpec* castitem);
 
   /** The caps that generated the Spec. */
   Glib::RefPtr<Gst::Caps> caps;
@@ -107,8 +107,8 @@ public:
   int           seglatency;
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-  void copy_fields_from(GstRingBufferSpec& spec);
-  void copy_fields_to(GstRingBufferSpec& spec);
+  void copy_fields_from(const GstRingBufferSpec& spec);
+  void copy_fields_to(GstRingBufferSpec& spec) const;
 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 };
 
@@ -157,7 +157,7 @@ public:
    *
    * @return true if the device could be acquired, false on error. MT safe. 
    */
-  bool acquire(Gst::RingBufferSpec& spec);
+  bool acquire(const Gst::RingBufferSpec& spec);
 
   _WRAP_METHOD(bool release(), gst_ring_buffer_release)
   _WRAP_METHOD(bool is_acquired() const, gst_ring_buffer_is_acquired)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]