Commit df29a15c authored by Matthias Klumpp's avatar Matthias Klumpp

New upstream version 3.6.6

parent 4903382e
......@@ -108,11 +108,11 @@ USE_RUNTIME_LINKER = $(shell grep "Linker" generated/gtkd/gtkc/atk.d)
ifeq ($(USE_RUNTIME_LINKER),)
SOFLAGS_GTKD = $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gtk+-3.0 librsvg-2.0))
SOFLAGS_GTKDGL = $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-3 $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gtkglext-3.0))
SOFLAGS_GTKDSV = $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-3 $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gtksourceview-3.0))
SOFLAGS_GSTREAMERD = $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-3 $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gstreamer-base-1.0))
SOFLAGS_VTED = $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-3 $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs vte-2.91))
SOFLAGS_PEASD = $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-3 $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs-only-l libpeas-1.0))
SOFLAGS_GTKDGL = $(LINKERFLAG)-L. $(LINKERFLAG)./libgtkd-$(MAJOR).so $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gtkglext-3.0))
SOFLAGS_GTKDSV = $(LINKERFLAG)-L. $(LINKERFLAG)./libgtkd-$(MAJOR).so $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gtksourceview-3.0))
SOFLAGS_GSTREAMERD = $(LINKERFLAG)-L. $(LINKERFLAG)./libgtkd-$(MAJOR).so $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs gstreamer-base-1.0))
SOFLAGS_VTED = $(LINKERFLAG)-L. $(LINKERFLAG)./libgtkd-$(MAJOR).so $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs vte-2.91))
SOFLAGS_PEASD = $(LINKERFLAG)-L. $(LINKERFLAG)./libgtkd-$(MAJOR).so $(subst -l,$(LINKERFLAG)-l,$(shell pkg-config --libs-only-l libpeas-1.0))
endif
#######################################################################
......@@ -132,7 +132,7 @@ ifeq ("$(OS)","Darwin")
shared-libs: shared-gtkd
else
libs: gtkd sv gstreamer vte peas
shared-libs: shared-gtkd shared-sv shared-gstreamer shared-vte
shared-libs: shared-gtkd shared-sv shared-gstreamer shared-vte shared-peas
endif
gtkd: $(LIBNAME_GTKD)
......@@ -220,7 +220,7 @@ $(BINNAME_DEMO): $(OBJECTS_DEMO)
$(if $(wildcard $(SONAME_GTKD)),$(eval LDFLAGS+= $(LINKERFLAG)-rpath=./))
$(if $(wildcard $(SONAME_GTKD)),$(if $(findstring "gdc","$(DC)"),$(eval LDFLAGS+=-shared-libphobos)))
$(if $(wildcard $(SONAME_GTKD)),$(if $(wildcard $(SONAME_GTKD).$(SO_VERSION)),,$(shell ln -s $(SONAME_GTKD) $(SONAME_GTKD).$(SO_VERSION))))
$(DC) $(OBJECTS_DEMO) $(output) $(LINKERFLAG)-L. $(LINKERFLAG)-lgtkd-$(MAJOR) $(LDFLAGS)
$(DC) $(OBJECTS_DEMO) $(output) $(if $(wildcard $(SONAME_GTKD)),$(LINKERFLAG)./libgtkd-$(MAJOR).so,$(LINKERFLAG)./libgtkd-$(MAJOR).a) $(LDFLAGS)
#######################################################################
......
......@@ -584,29 +584,29 @@ public class Bin : Element, ChildProxyIF
protected class OnDeepElementAddedDelegateWrapper
{
static OnDeepElementAddedDelegateWrapper[] listeners;
void delegate(Bin, Element, Bin) dlg;
gulong handlerId;
this(void delegate(Bin, Element, Bin) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onDeepElementAddedListeners ~= this;
}
void remove(OnDeepElementAddedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onDeepElementAddedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onDeepElementAddedListeners[index] = null;
onDeepElementAddedListeners = std.algorithm.remove(onDeepElementAddedListeners, index);
break;
}
}
}
}
OnDeepElementAddedDelegateWrapper[] onDeepElementAddedListeners;
/**
* Will be emitted after the element was added to sub_bin.
......@@ -642,29 +642,29 @@ public class Bin : Element, ChildProxyIF
protected class OnDeepElementRemovedDelegateWrapper
{
static OnDeepElementRemovedDelegateWrapper[] listeners;
void delegate(Bin, Element, Bin) dlg;
gulong handlerId;
this(void delegate(Bin, Element, Bin) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onDeepElementRemovedListeners ~= this;
}
void remove(OnDeepElementRemovedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onDeepElementRemovedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onDeepElementRemovedListeners[index] = null;
onDeepElementRemovedListeners = std.algorithm.remove(onDeepElementRemovedListeners, index);
break;
}
}
}
}
OnDeepElementRemovedDelegateWrapper[] onDeepElementRemovedListeners;
/**
* Will be emitted after the element was removed from sub_bin.
......@@ -700,29 +700,29 @@ public class Bin : Element, ChildProxyIF
protected class OnDoLatencyDelegateWrapper
{
static OnDoLatencyDelegateWrapper[] listeners;
bool delegate(Bin) dlg;
gulong handlerId;
this(bool delegate(Bin) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onDoLatencyListeners ~= this;
}
void remove(OnDoLatencyDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onDoLatencyListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onDoLatencyListeners[index] = null;
onDoLatencyListeners = std.algorithm.remove(onDoLatencyListeners, index);
break;
}
}
}
}
OnDoLatencyDelegateWrapper[] onDoLatencyListeners;
/**
* Will be emitted when the bin needs to perform latency calculations. This
......@@ -762,29 +762,29 @@ public class Bin : Element, ChildProxyIF
protected class OnElementAddedDelegateWrapper
{
static OnElementAddedDelegateWrapper[] listeners;
void delegate(Element, Bin) dlg;
gulong handlerId;
this(void delegate(Element, Bin) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onElementAddedListeners ~= this;
}
void remove(OnElementAddedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onElementAddedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onElementAddedListeners[index] = null;
onElementAddedListeners = std.algorithm.remove(onElementAddedListeners, index);
break;
}
}
}
}
OnElementAddedDelegateWrapper[] onElementAddedListeners;
/**
* Will be emitted after the element was added to the bin.
......@@ -817,29 +817,29 @@ public class Bin : Element, ChildProxyIF
protected class OnElementRemovedDelegateWrapper
{
static OnElementRemovedDelegateWrapper[] listeners;
void delegate(Element, Bin) dlg;
gulong handlerId;
this(void delegate(Element, Bin) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onElementRemovedListeners ~= this;
}
void remove(OnElementRemovedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onElementRemovedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onElementRemovedListeners[index] = null;
onElementRemovedListeners = std.algorithm.remove(onElementRemovedListeners, index);
break;
}
}
}
}
OnElementRemovedDelegateWrapper[] onElementRemovedListeners;
/**
* Will be emitted after the element was removed from the bin.
......
......@@ -628,29 +628,29 @@ public class Bus : ObjectGst
protected class OnMessageDelegateWrapper
{
static OnMessageDelegateWrapper[] listeners;
void delegate(Message, Bus) dlg;
gulong handlerId;
this(void delegate(Message, Bus) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onMessageListeners ~= this;
}
void remove(OnMessageDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onMessageListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onMessageListeners[index] = null;
onMessageListeners = std.algorithm.remove(onMessageListeners, index);
break;
}
}
}
}
OnMessageDelegateWrapper[] onMessageListeners;
/**
* A message has been posted on the bus. This signal is emitted from a
......@@ -685,29 +685,29 @@ public class Bus : ObjectGst
protected class OnSyncMessageDelegateWrapper
{
static OnSyncMessageDelegateWrapper[] listeners;
void delegate(Message, Bus) dlg;
gulong handlerId;
this(void delegate(Message, Bus) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onSyncMessageListeners ~= this;
}
void remove(OnSyncMessageDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onSyncMessageListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onSyncMessageListeners[index] = null;
onSyncMessageListeners = std.algorithm.remove(onSyncMessageListeners, index);
break;
}
}
}
}
OnSyncMessageDelegateWrapper[] onSyncMessageListeners;
/**
* A message has been posted on the bus. This signal is emitted from the
......
......@@ -230,29 +230,29 @@ public template ChildProxyT(TStruct)
protected class OnChildAddedDelegateWrapper
{
static OnChildAddedDelegateWrapper[] listeners;
void delegate(ObjectG, string, ChildProxyIF) dlg;
gulong handlerId;
this(void delegate(ObjectG, string, ChildProxyIF) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onChildAddedListeners ~= this;
}
void remove(OnChildAddedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onChildAddedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onChildAddedListeners[index] = null;
onChildAddedListeners = std.algorithm.remove(onChildAddedListeners, index);
break;
}
}
}
}
OnChildAddedDelegateWrapper[] onChildAddedListeners;
/**
* Will be emitted after the @object was added to the @child_proxy.
......@@ -286,29 +286,29 @@ public template ChildProxyT(TStruct)
protected class OnChildRemovedDelegateWrapper
{
static OnChildRemovedDelegateWrapper[] listeners;
void delegate(ObjectG, string, ChildProxyIF) dlg;
gulong handlerId;
this(void delegate(ObjectG, string, ChildProxyIF) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onChildRemovedListeners ~= this;
}
void remove(OnChildRemovedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onChildRemovedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onChildRemovedListeners[index] = null;
onChildRemovedListeners = std.algorithm.remove(onChildRemovedListeners, index);
break;
}
}
}
}
OnChildRemovedDelegateWrapper[] onChildRemovedListeners;
/**
* Will be emitted after the @object was removed from the @child_proxy.
......
......@@ -735,29 +735,29 @@ public class Clock : ObjectGst
protected class OnSyncedDelegateWrapper
{
static OnSyncedDelegateWrapper[] listeners;
void delegate(bool, Clock) dlg;
gulong handlerId;
this(void delegate(bool, Clock) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onSyncedListeners ~= this;
}
void remove(OnSyncedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onSyncedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onSyncedListeners[index] = null;
onSyncedListeners = std.algorithm.remove(onSyncedListeners, index);
break;
}
}
}
}
OnSyncedDelegateWrapper[] onSyncedListeners;
/**
* Signaled on clocks with GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC set once
......
......@@ -238,29 +238,29 @@ public class Device : ObjectGst
protected class OnRemovedDelegateWrapper
{
static OnRemovedDelegateWrapper[] listeners;
void delegate(Device) dlg;
gulong handlerId;
this(void delegate(Device) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onRemovedListeners ~= this;
}
void remove(OnRemovedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onRemovedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onRemovedListeners[index] = null;
onRemovedListeners = std.algorithm.remove(onRemovedListeners, index);
break;
}
}
}
}
OnRemovedDelegateWrapper[] onRemovedListeners;
/** */
gulong addOnRemoved(void delegate(Device) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
......
......@@ -295,29 +295,29 @@ public class DeviceProvider : ObjectGst
protected class OnProviderHiddenDelegateWrapper
{
static OnProviderHiddenDelegateWrapper[] listeners;
void delegate(string, DeviceProvider) dlg;
gulong handlerId;
this(void delegate(string, DeviceProvider) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onProviderHiddenListeners ~= this;
}
void remove(OnProviderHiddenDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onProviderHiddenListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onProviderHiddenListeners[index] = null;
onProviderHiddenListeners = std.algorithm.remove(onProviderHiddenListeners, index);
break;
}
}
}
}
OnProviderHiddenDelegateWrapper[] onProviderHiddenListeners;
/** */
gulong addOnProviderHidden(void delegate(string, DeviceProvider) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
......@@ -345,29 +345,29 @@ public class DeviceProvider : ObjectGst
protected class OnProviderUnhiddenDelegateWrapper
{
static OnProviderUnhiddenDelegateWrapper[] listeners;
void delegate(string, DeviceProvider) dlg;
gulong handlerId;
this(void delegate(string, DeviceProvider) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onProviderUnhiddenListeners ~= this;
}
void remove(OnProviderUnhiddenDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onProviderUnhiddenListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onProviderUnhiddenListeners[index] = null;
onProviderUnhiddenListeners = std.algorithm.remove(onProviderUnhiddenListeners, index);
break;
}
}
}
}
OnProviderUnhiddenDelegateWrapper[] onProviderUnhiddenListeners;
/** */
gulong addOnProviderUnhidden(void delegate(string, DeviceProvider) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
......
......@@ -1490,29 +1490,29 @@ public class Element : ObjectGst
protected class OnNoMorePadsDelegateWrapper
{
static OnNoMorePadsDelegateWrapper[] listeners;
void delegate(Element) dlg;
gulong handlerId;
this(void delegate(Element) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onNoMorePadsListeners ~= this;
}
void remove(OnNoMorePadsDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onNoMorePadsListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onNoMorePadsListeners[index] = null;
onNoMorePadsListeners = std.algorithm.remove(onNoMorePadsListeners, index);
break;
}
}
}
}
OnNoMorePadsDelegateWrapper[] onNoMorePadsListeners;
/**
* This signals that the element will not generate more dynamic pads.
......@@ -1544,29 +1544,29 @@ public class Element : ObjectGst
protected class OnPadAddedDelegateWrapper
{
static OnPadAddedDelegateWrapper[] listeners;
void delegate(Pad, Element) dlg;
gulong handlerId;
this(void delegate(Pad, Element) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onPadAddedListeners ~= this;
}
void remove(OnPadAddedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onPadAddedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onPadAddedListeners[index] = null;
onPadAddedListeners = std.algorithm.remove(onPadAddedListeners, index);
break;
}
}
}
}
OnPadAddedDelegateWrapper[] onPadAddedListeners;
/**
* a new #GstPad has been added to the element. Note that this signal will
......@@ -1603,29 +1603,29 @@ public class Element : ObjectGst
protected class OnPadRemovedDelegateWrapper
{
static OnPadRemovedDelegateWrapper[] listeners;
void delegate(Pad, Element) dlg;
gulong handlerId;
this(void delegate(Pad, Element) dlg)
{
this.dlg = dlg;
this.listeners ~= this;
onPadRemovedListeners ~= this;
}
void remove(OnPadRemovedDelegateWrapper source)
{
foreach(index, wrapper; listeners)
foreach(index, wrapper; onPadRemovedListeners)
{
if (wrapper.handlerId == source.handlerId)
{
listeners[index] = null;
listeners = std.algorithm.remove(listeners, index);
onPadRemovedListeners[index] = null;
onPadRemovedListeners = std.algorithm.remove(onPadRemovedListeners, index);
break;
}
}
}
}
OnPadRemovedDelegateWrapper[] onPadRemovedListeners;
/**
* a #GstPad has been removed from the element
......
......@@ -305,9 +305,15 @@ public class ObjectGst : ObjectG
*
* Returns: %TRUE if the given array could be filled, %FALSE otherwise
*/
public bool getGValueArray(string propertyName, GstClockTime timestamp, GstClockTime interval, uint nValues, Value values)
public bool getGValueArray(string propertyName, GstClockTime timestamp, GstClockTime interval, Value[] values)
{
return gst_object_get_g_value_array(gstObject, Str.toStringz(propertyName), timestamp, interval, nValues, (values is null) ? null : values.getValueStruct()) != 0;
GValue[] valuesArray = new GValue[values.length];
for ( int i = 0; i < values.length; i++ )
{
valuesArray[i] = *(values[i].getValueStruct());
}
return gst_object_get_g_value_array(gstObject, Str.toStringz(propertyName), timestamp, interval, cast(uint)values.length, valuesArray.ptr) != 0;
}
/**
......@@ -658,29 +664,29 @@ public class ObjectGst : ObjectG
protected class OnDeepNotifyDelegateWrapper
{
static OnDeepNotifyDelegateWrapper[] listeners;
void delegate(ObjectGst, ParamSpec, ObjectGst) dlg;
gulong handlerId;
this(void delegate(ObjectGst, ParamSpec, ObjectGst) dlg)
{