mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 08:17:01 +00:00
81 lines
3.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|