Fix instanciation of GLib.SignalArgs subclasses from the BindingHelper and the samples

This commit is contained in:
Sebastian Dröge 2009-04-04 16:53:59 +02:00
parent 22b082ed9c
commit 5e8d19e2be
4 changed files with 12 additions and 25 deletions

View file

@ -44,8 +44,11 @@ namespace Gst
}
if(raiseDelegate != null) {
raiseDelegate.DynamicInvoke(new object [] { o,
Activator.CreateInstance(type, new object [] { args }) });
GLib.SignalArgs new_args = (GLib.SignalArgs) Activator.CreateInstance (type);
new_args.RetVal = args.RetVal;
new_args.Args = args.Args;
raiseDelegate.DynamicInvoke(new object [] { o, new_args });
}
}
}

View file

@ -16,16 +16,12 @@ namespace Gst
public class NewDecodedPadArgs : GLib.SignalArgs
{
public NewDecodedPadArgs(GLib.SignalArgs args) : base(args)
{
}
public Gst.Pad Pad {
get { return (Gst.Pad)Args[1]; }
get { return (Gst.Pad)Args[0]; }
}
public bool Last {
get { return (bool)Args[2]; }
get { return (bool)Args[1]; }
}
}

View file

@ -15,10 +15,6 @@ namespace Gst
public class HaveTypeArgs : GLib.SignalArgs
{
public HaveTypeArgs(GLib.SignalArgs args) : base(args)
{
}
public uint Probability {
get { return (uint)Args[0]; }
}
@ -42,29 +38,21 @@ namespace Gst
{
return ElementFactory.Make("typefind", name) as TypeFindElement;
}
/*
protected virtual void OnHaveType(object o, GLib.SignalArgs args)
{
BindingHelper.InvokeProxySignalDelegate(have_type_delegate, typeof(HaveTypeArgs), o, args);
}
*/
public event GLib.DynamicSignalHandler HaveType {
add {
/*
have_type_delegate = BindingHelper.AddProxySignalDelegate(this, "have-type",
OnHaveType, have_type_delegate, value);
*/
GLib.DynamicSignal.Connect(this, "have-type", value);
}
remove {
/*
have_type_delegate = BindingHelper.RemoveProxySignalDelegate(this, "have-type",
OnHaveType, have_type_delegate, value);
*/
GLib.DynamicSignal.Disconnect(this, "have-type", value);
}
}