DynamicSignal: Reformat to match conventions

This commit is contained in:
Stephan Sundermann 2014-11-25 11:13:44 +01:00
parent 5b386f21fb
commit db3ffc2a70

View file

@ -29,27 +29,32 @@ using System.Reflection;
using System.Runtime.InteropServices;
using System.Collections;
namespace Gst {
namespace Gst
{
delegate void GClosureMarshal (IntPtr closure, ref GLib.Value retval, uint argc, IntPtr argsPtr,
IntPtr invocation_hint, IntPtr data);
public delegate void SignalHandler (object o, SignalArgs args);
public static class DynamicSignal {
public static class DynamicSignal
{
private static readonly int gvalue_struct_size = Marshal.SizeOf (typeof(GLib.Value));
class ObjectSignalKey {
class ObjectSignalKey
{
object o;
string signal_name;
public ObjectSignalKey (object o, string name) {
public ObjectSignalKey (object o, string name)
{
this.o = o;
signal_name = name;
}
public override bool Equals (object o) {
public override bool Equals (object o)
{
if (o is ObjectSignalKey) {
ObjectSignalKey k = (ObjectSignalKey)o;
return k.o.Equals (this.o) && signal_name.Equals (k.signal_name);
@ -57,12 +62,14 @@ namespace Gst {
return base.Equals (o);
}
public override int GetHashCode() {
public override int GetHashCode ()
{
return o.GetHashCode () ^ signal_name.GetHashCode ();
}
}
class SignalInfo {
class SignalInfo
{
uint handlerId;
IntPtr closure;
Delegate registeredHandler;
@ -71,7 +78,8 @@ namespace Gst {
public IntPtr Closure {
get {
return closure;
} set {
}
set {
closure = value;
}
}
@ -79,7 +87,8 @@ namespace Gst {
public uint HandlerId {
get {
return handlerId;
} set {
}
set {
handlerId = value;
}
}
@ -87,7 +96,8 @@ namespace Gst {
public Delegate RegisteredHandler {
get {
return registeredHandler;
} set {
}
set {
registeredHandler = value;
}
}
@ -95,12 +105,14 @@ namespace Gst {
public Type ArgsType {
get {
return argsType;
} set {
}
set {
argsType = value;
}
}
public SignalInfo (uint handlerId, IntPtr closure, Delegate registeredHandler) {
public SignalInfo (uint handlerId, IntPtr closure, Delegate registeredHandler)
{
this.handlerId = handlerId;
this.closure = closure;
this.registeredHandler = registeredHandler;
@ -113,7 +125,8 @@ namespace Gst {
this.argsType = parms [1].ParameterType;
}
public void UpdateArgsType (Delegate d) {
public void UpdateArgsType (Delegate d)
{
if (!IsCompatibleDelegate (d))
throw new Exception ("Incompatible delegate");
@ -134,7 +147,8 @@ namespace Gst {
throw new Exception ("Incompatible delegate");
}
public bool IsCompatibleDelegate (Delegate d) {
public bool IsCompatibleDelegate (Delegate d)
{
if (!IsValidDelegate (d))
return false;
@ -149,7 +163,8 @@ namespace Gst {
return true;
}
public static bool IsValidDelegate (Delegate d) {
public static bool IsValidDelegate (Delegate d)
{
MethodInfo mi = d.Method;
if (mi.ReturnType != typeof(void))
@ -171,23 +186,27 @@ namespace Gst {
static GClosureMarshal marshalHandler = new GClosureMarshal (OnMarshal);
public static void Connect (GLib.Object o, string name, SignalHandler handler) {
public static void Connect (GLib.Object o, string name, SignalHandler handler)
{
Connect (o, name, false, (Delegate)handler);
}
public static void Connect (GLib.Object o, string name,
bool after, SignalHandler handler) {
bool after, SignalHandler handler)
{
Connect (o, name, after, (Delegate)handler);
}
public static void Connect (GLib.Object o, string name, Delegate handler) {
public static void Connect (GLib.Object o, string name, Delegate handler)
{
Connect (o, name, false, handler);
}
static int g_closure_sizeof = gstsharp_g_closure_sizeof ();
public static void Connect (GLib.Object o, string name,
bool after, Delegate handler) {
bool after, Delegate handler)
{
Delegate newHandler;
ObjectSignalKey k = new ObjectSignalKey (o, name);
@ -217,7 +236,8 @@ namespace Gst {
[DllImport ("libgstreamersharpglue-1.0.0.dll")]
static extern int gstsharp_g_closure_sizeof ();
public static void Disconnect (GLib.Object o, string name, Delegate handler) {
public static void Disconnect (GLib.Object o, string name, Delegate handler)
{
ObjectSignalKey k = new ObjectSignalKey (o, name);
if (SignalHandlers [k] != null) {
SignalInfo si = (SignalInfo)SignalHandlers [k];
@ -232,7 +252,8 @@ namespace Gst {
}
static void OnMarshal (IntPtr closure, ref GLib.Value retval, uint argc, IntPtr argsPtr,
IntPtr ihint, IntPtr data) {
IntPtr ihint, IntPtr data)
{
object[] args = new object[argc - 1];
object o = ((GLib.Value)Marshal.PtrToStructure (argsPtr, typeof(GLib.Value))).Val;
@ -270,16 +291,19 @@ namespace Gst {
[DllImport ("libgobject-2.0-0.dll")]
static extern void g_closure_set_meta_marshal (IntPtr closure, IntPtr data, GClosureMarshal marshal);
class GTypeSignalKey {
class GTypeSignalKey
{
GType type;
string signal_name;
public GTypeSignalKey (GType type, string name) {
public GTypeSignalKey (GType type, string name)
{
this.type = type;
signal_name = name;
}
public override bool Equals (object o) {
public override bool Equals (object o)
{
if (o is GTypeSignalKey) {
GTypeSignalKey k = (GTypeSignalKey)o;
return k.type.Equals (this.type) && signal_name.Equals (k.signal_name);
@ -287,12 +311,14 @@ namespace Gst {
return base.Equals (o);
}
public override int GetHashCode() {
public override int GetHashCode ()
{
return type.GetHashCode () ^ signal_name.GetHashCode ();
}
}
struct SignalQuery {
struct SignalQuery
{
public uint signal_id;
public string signal_name;
public GType itype;
@ -304,7 +330,8 @@ namespace Gst {
static Hashtable SignalEmitInfo = new Hashtable ();
public static object Emit (GLib.Object o, string name, params object[] parameters) {
public static object Emit (GLib.Object o, string name, params object[] parameters)
{
SignalQuery query;
IntPtr type = gstsharp_g_type_from_instance (o.Handle);
GType gtype = new GType (type);
@ -413,7 +440,8 @@ namespace Gst {
static extern void g_signal_emitv (GLib.Value[] parameters, uint signal_id, uint detail, ref GLib.Value return_value);
[StructLayout (LayoutKind.Sequential)]
struct GSignalQuery {
struct GSignalQuery
{
public uint signal_id;
public IntPtr signal_name;
public IntPtr itype;