gstreamer/gstreamer-sharp/Task.custom
Sebastian Dröge 48a5bce689 Fix the Gst.Task bindings
What still needs to be done is to add a way to set
a custom lock to the task, currently a newly created
task can only get a lock by making it a pad task.
2009-04-27 12:34:20 +02:00

39 lines
933 B
Text

[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_task_get_cond_offset ();
static uint cond_offset = gstsharp_gst_task_get_cond_offset ();
private IntPtr CondPtr {
get {
unsafe {
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + cond_offset);
return (*raw_ptr);
}
}
}
[DllImport ("libglib-2.0-0.dll") ]
static extern void g_cond_wait (IntPtr cond, IntPtr mutex);
[DllImport ("libglib-2.0-0.dll") ]
static extern void g_cond_signal (IntPtr cond);
public void Wait () {
g_cond_wait (CondPtr, LockPtr);
}
public void Signal () {
g_cond_signal (CondPtr);
}
[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_task_get_running_offset ();
static uint running_offset = gstsharp_gst_task_get_running_offset ();
public bool IsRunning {
get {
unsafe {
bool* raw_ptr = (bool*) ( ( (byte*) Handle) + running_offset);
return (*raw_ptr);
}
}
}