From: Sebastian Dröge Date: Tue, 12 May 2009 10:04:53 +0000 (+0200) Subject: Add Gst.Interfaces.Tuner* bindings X-Git-Tag: 1.19.3~483^2~616 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75c1fe23d19b5e5cbd9f6e06497946e4c706a0d0;p=platform%2Fupstream%2Fgstreamer.git Add Gst.Interfaces.Tuner* bindings --- diff --git a/gstreamer-sharp/Gstreamer.metadata b/gstreamer-sharp/Gstreamer.metadata index 63da23a..2f75772 100644 --- a/gstreamer-sharp/Gstreamer.metadata +++ b/gstreamer-sharp/Gstreamer.metadata @@ -1023,7 +1023,27 @@ 1 1 - 1 + + Tuner + + + + + GstTunerChannel + GstTunerChannel + GstTunerChannel + GstTunerChannel + EmitChannelChanged + EmitNormChanged + EmitFrequencyChanged + EmitSignalChanged + + TunerChannel + /api/namespace/interface[@cname='GstTuner'] + + TunerNorm + 1 + /api/namespace/interface[@cname='GstTuner'] VideoOrientation out diff --git a/gstreamer-sharp/Makefile.am b/gstreamer-sharp/Makefile.am index 1c948c5..39425bf 100644 --- a/gstreamer-sharp/Makefile.am +++ b/gstreamer-sharp/Makefile.am @@ -91,7 +91,9 @@ customs = \ TagList.custom \ TypeFind.custom \ TypeFindFactory.custom \ - MixerTrack.custom + MixerTrack.custom \ + TunerNorm.custom \ + TunerChannel.custom build_customs = $(addprefix $(srcdir)/, $(customs)) diff --git a/gstreamer-sharp/TunerChannel.custom b/gstreamer-sharp/TunerChannel.custom new file mode 100644 index 0000000..2091437 --- /dev/null +++ b/gstreamer-sharp/TunerChannel.custom @@ -0,0 +1,31 @@ +public TunerChannel (string label, TunerChannelFlags flags, float freq_multiplicator, ulong min_frequency, ulong max_frequency, int min_signal, int max_signal) { + unsafe { + IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + label_offset); + *raw_ptr = GLib.Marshaller.StringToPtrGStrdup (label); + + } + unsafe { + int* raw_ptr = (int*) ( ( (byte*) Handle) + flags_offset); + *raw_ptr = (int) flags; + } + unsafe { + float* raw_ptr = (float*) ( ( (byte*) Handle) + freq_multiplicator_offset); + *raw_ptr = freq_multiplicator; + } + unsafe { + UIntPtr* raw_ptr = (UIntPtr*) ( ( (byte*) Handle) + min_frequency_offset); + *raw_ptr = (UIntPtr) min_frequency; + } + unsafe { + UIntPtr* raw_ptr = (UIntPtr*) ( ( (byte*) Handle) + max_frequency_offset); + *raw_ptr = (UIntPtr) max_frequency; + } + unsafe { + int* raw_ptr = (int*) ( ( (byte*) Handle) + min_signal_offset); + *raw_ptr = min_signal; + } + unsafe { + int* raw_ptr = (int*) ( ( (byte*) Handle) + max_signal_offset); + *raw_ptr = max_signal; + } +} diff --git a/gstreamer-sharp/TunerNorm.custom b/gstreamer-sharp/TunerNorm.custom new file mode 100644 index 0000000..59ed734 --- /dev/null +++ b/gstreamer-sharp/TunerNorm.custom @@ -0,0 +1,28 @@ + [DllImport ("gstreamersharpglue-0.10")] + extern static uint gst__interfacessharp_gst__interfaces_tunernorm_get_framerate_offset (); + + static uint framerate_offset = gst__interfacessharp_gst__interfaces_tunernorm_get_framerate_offset (); + public Gst.Fraction Framerate { + get { + unsafe { + IntPtr raw_ptr = (IntPtr)(((byte*)Handle) + framerate_offset); + GLib.Value v = (GLib.Value) Marshal.PtrToStructure (raw_ptr, typeof (GLib.Value)); + return (Gst.Fraction) v.Val; + } + } + } + + [DllImport ("gstreamer-0.10.dll") ] + private static extern void gst_value_set_fraction (IntPtr v, int numerator, int denominator); + + public TunerNorm (string label, Gst.Fraction framerate) { + unsafe { + IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + label_offset); + *raw_ptr = GLib.Marshaller.StringToPtrGStrdup (label); + + } + unsafe { + IntPtr raw_ptr = (IntPtr)(((byte*)Handle) + framerate_offset); + gst_value_set_fraction (raw_ptr, framerate.Numerator, framerate.Denominator); + } + } diff --git a/gstreamer-sharp/glue/Makefile.am b/gstreamer-sharp/glue/Makefile.am index 98fe6cd..4c512a2 100644 --- a/gstreamer-sharp/glue/Makefile.am +++ b/gstreamer-sharp/glue/Makefile.am @@ -16,7 +16,8 @@ libgstreamersharpglue_0_10_la_SOURCES = \ typefind.c \ indexentry.c \ indexfactory.c \ - mixertrack.c + mixertrack.c \ + tunernorm.c nodist_libgstreamersharpglue_0_10_la_SOURCES = generated.c diff --git a/gstreamer-sharp/glue/tunernorm.c b/gstreamer-sharp/glue/tunernorm.c new file mode 100644 index 0000000..c7b3efb --- /dev/null +++ b/gstreamer-sharp/glue/tunernorm.c @@ -0,0 +1,8 @@ +#include + +guint +gst__interfacessharp_gst__interfaces_tunernorm_get_framerate_offset (void) +{ + return (guint)G_STRUCT_OFFSET (GstTunerNorm, framerate); +} +