gstreamer/gstreamer-sharp/MixerMessage.cs
Sebastian Dröge aa7bb8fa1c Use internal glib-sharp copy everywhere and make it work side-by-side with real glib-sharp
glib-sharp will only get a new release with the new API that we need for
3.0 in a year or something. Instead of waiting a year before we can release
something we now have our own internal copy of glib-sharp trunk that will
be dropped once glib-sharp 3.0 is released.

Everything is now compilable and working without any additional patches.
2009-08-05 16:57:20 +02:00

81 lines
3.5 KiB
C#

namespace Gst.Interfaces {
using System;
using System.Runtime.InteropServices;
using System.Reflection;
using Gst.GLib;
using Gst;
using Gst.Interfaces;
public static class MixerMessage {
[DllImport("libgstinterfaces-0.10.dll") ]
static extern int gst_mixer_message_get_type (IntPtr message);
public static Gst.Interfaces.MixerMessageType MessageGetType (Gst.Message message) {
int raw_ret = gst_mixer_message_get_type (message == null ? IntPtr.Zero : message.Handle);
Gst.Interfaces.MixerMessageType ret = (Gst.Interfaces.MixerMessageType) raw_ret;
return ret;
}
[DllImport("libgstinterfaces-0.10.dll") ]
static extern void gst_mixer_message_parse_mute_toggled (IntPtr message, out IntPtr track, out bool mute);
public static void ParseMuteToggled (Gst.Message message, out Gst.Interfaces.MixerTrack track, out bool mute) {
IntPtr native_ptr;
gst_mixer_message_parse_mute_toggled (message == null ? IntPtr.Zero : message.Handle, out native_ptr, out mute);
track = (MixerTrack) Gst.GLib.Object.GetObject (native_ptr, false);
}
[DllImport("libgstinterfaces-0.10.dll") ]
static extern void gst_mixer_message_parse_option_changed (IntPtr message, out IntPtr options, out IntPtr value);
public static void ParseOptionChanged (Gst.Message message, out Gst.Interfaces.MixerOptions options, out string value) {
IntPtr native_value;
IntPtr native_options;
gst_mixer_message_parse_option_changed (message == null ? IntPtr.Zero : message.Handle, out native_options, out native_value);
options = (MixerOptions) Gst.GLib.Object.GetObject (native_options, false);
value = Gst.GLib.Marshaller.Utf8PtrToString (native_value);
}
[DllImport("libgstinterfaces-0.10.dll") ]
static extern void gst_mixer_message_parse_record_toggled (IntPtr message, out IntPtr track, out bool record);
public static void ParseRecordToggled (Gst.Message message, out Gst.Interfaces.MixerTrack track, out bool record) {
IntPtr native_ptr;
gst_mixer_message_parse_record_toggled (message == null ? IntPtr.Zero : message.Handle, out native_ptr, out record);
track = (MixerTrack) Gst.GLib.Object.GetObject (native_ptr, false);
}
[DllImport("libgstinterfaces-0.10.dll") ]
static extern void gst_mixer_message_parse_volume_changed (IntPtr message, out IntPtr track, out IntPtr volumes, out int num_channels);
public static void ParseVolumeChanged (Gst.Message message, out Gst.Interfaces.MixerTrack track, out int[] volumes) {
IntPtr native_track;
IntPtr native_volumes;
int n_native_volumes;
gst_mixer_message_parse_volume_changed (message == null ? IntPtr.Zero : message.Handle, out native_track, out native_volumes, out n_native_volumes);
track = (MixerTrack) Gst.GLib.Object.GetObject (native_track, false);
volumes = new int[n_native_volumes];
for (int i = 0; i < n_native_volumes; i++)
volumes[i] = Marshal.ReadInt32 (native_volumes, i * 4);
Gst.GLib.Marshaller.Free (native_volumes);
}
[DllImport("libgstinterfaces-0.10.dll") ]
static extern void gst_mixer_message_parse_options_list_changed (IntPtr message, out IntPtr options);
public static void ParseOptionsListChanged (Gst.Message message, out Gst.Interfaces.MixerOptions options) {
IntPtr native_options;
gst_mixer_message_parse_options_list_changed (message == null ? IntPtr.Zero : message.Handle, out native_options);
options = (MixerOptions) Gst.GLib.Object.GetObject (native_options, false);
}
}
}