From 38496eca7d782b418e59dadea8f3be0d5c312375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 1 Aug 2017 13:58:50 +0100 Subject: [PATCH] Pass events by value instead of reference --- Gir_Gst.toml | 20 +++++++++++++ examples/src/bin/events.rs | 2 +- gstreamer/src/auto/alias.rs | 2 +- gstreamer/src/auto/bin.rs | 2 +- gstreamer/src/auto/bus.rs | 2 +- gstreamer/src/auto/child_proxy.rs | 2 +- gstreamer/src/auto/clock.rs | 2 +- gstreamer/src/auto/date_time.rs | 2 +- gstreamer/src/auto/device.rs | 2 +- gstreamer/src/auto/device_monitor.rs | 2 +- gstreamer/src/auto/device_provider.rs | 2 +- gstreamer/src/auto/device_provider_factory.rs | 2 +- gstreamer/src/auto/element.rs | 11 +------- gstreamer/src/auto/element_factory.rs | 2 +- gstreamer/src/auto/enums.rs | 2 +- gstreamer/src/auto/flags.rs | 2 +- gstreamer/src/auto/functions.rs | 2 +- gstreamer/src/auto/ghost_pad.rs | 2 +- gstreamer/src/auto/mod.rs | 2 +- gstreamer/src/auto/object.rs | 2 +- gstreamer/src/auto/pad.rs | 28 +------------------ gstreamer/src/auto/pad_template.rs | 2 +- gstreamer/src/auto/pipeline.rs | 2 +- gstreamer/src/auto/plugin.rs | 2 +- gstreamer/src/auto/preset.rs | 2 +- gstreamer/src/auto/proxy_pad.rs | 2 +- gstreamer/src/auto/stream.rs | 2 +- gstreamer/src/auto/stream_collection.rs | 2 +- gstreamer/src/auto/tag_setter.rs | 2 +- gstreamer/src/auto/u_r_i_handler.rs | 2 +- gstreamer/src/element.rs | 9 ++++++ gstreamer/src/pad.rs | 24 ++++++++++++++++ 32 files changed, 82 insertions(+), 64 deletions(-) diff --git a/Gir_Gst.toml b/Gir_Gst.toml index b218ffcc1..653b4d694 100644 --- a/Gir_Gst.toml +++ b/Gir_Gst.toml @@ -227,6 +227,11 @@ status = "generate" # correct mutability ignore = true + [[object.function]] + name = "send_event" + # Pass by value + ignore = true + [[object]] name = "Gst.ElementFactory" status = "generate" @@ -385,6 +390,21 @@ status = "generate" # Correct mutability ignore = true + [[object.function]] + name = "event_default" + # Pass by value + ignore = true + + [[object.function]] + name = "push_event" + # Pass by value + ignore = true + + [[object.function]] + name = "send_event" + # Pass by value + ignore = true + [[object]] name = "Gst.GhostPad" status = "generate" diff --git a/examples/src/bin/events.rs b/examples/src/bin/events.rs index 39ccfdd96..a39efcd05 100644 --- a/examples/src/bin/events.rs +++ b/examples/src/bin/events.rs @@ -24,7 +24,7 @@ fn main() { println!("sending eos"); let ev = Event::new_eos().build(); - pipeline.send_event(&ev); + pipeline.send_event(ev); glib::Continue(false) }); diff --git a/gstreamer/src/auto/alias.rs b/gstreamer/src/auto/alias.rs index a24bcb28e..62e79c98f 100644 --- a/gstreamer/src/auto/alias.rs +++ b/gstreamer/src/auto/alias.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT #[allow(unused_imports)] diff --git a/gstreamer/src/auto/bin.rs b/gstreamer/src/auto/bin.rs index ba39b703c..9a859d113 100644 --- a/gstreamer/src/auto/bin.rs +++ b/gstreamer/src/auto/bin.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ChildProxy; diff --git a/gstreamer/src/auto/bus.rs b/gstreamer/src/auto/bus.rs index 48cbf4db7..81fd05d1d 100644 --- a/gstreamer/src/auto/bus.rs +++ b/gstreamer/src/auto/bus.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ClockTime; diff --git a/gstreamer/src/auto/child_proxy.rs b/gstreamer/src/auto/child_proxy.rs index 4f7917f03..f721e77aa 100644 --- a/gstreamer/src/auto/child_proxy.rs +++ b/gstreamer/src/auto/child_proxy.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ffi; diff --git a/gstreamer/src/auto/clock.rs b/gstreamer/src/auto/clock.rs index 8c10c68a9..31cec2368 100644 --- a/gstreamer/src/auto/clock.rs +++ b/gstreamer/src/auto/clock.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ClockTime; diff --git a/gstreamer/src/auto/date_time.rs b/gstreamer/src/auto/date_time.rs index 1422343f4..8caa113a1 100644 --- a/gstreamer/src/auto/date_time.rs +++ b/gstreamer/src/auto/date_time.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ffi; diff --git a/gstreamer/src/auto/device.rs b/gstreamer/src/auto/device.rs index 3eb663222..d50cf8cb5 100644 --- a/gstreamer/src/auto/device.rs +++ b/gstreamer/src/auto/device.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Caps; diff --git a/gstreamer/src/auto/device_monitor.rs b/gstreamer/src/auto/device_monitor.rs index b7eec1be4..dc0f1dfa3 100644 --- a/gstreamer/src/auto/device_monitor.rs +++ b/gstreamer/src/auto/device_monitor.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Bus; diff --git a/gstreamer/src/auto/device_provider.rs b/gstreamer/src/auto/device_provider.rs index 77918af07..16ec9fa62 100644 --- a/gstreamer/src/auto/device_provider.rs +++ b/gstreamer/src/auto/device_provider.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Bus; diff --git a/gstreamer/src/auto/device_provider_factory.rs b/gstreamer/src/auto/device_provider_factory.rs index c0e6aa76a..be434abc5 100644 --- a/gstreamer/src/auto/device_provider_factory.rs +++ b/gstreamer/src/auto/device_provider_factory.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use DeviceProvider; diff --git a/gstreamer/src/auto/element.rs b/gstreamer/src/auto/element.rs index ccf25aaff..d3eda14ce 100644 --- a/gstreamer/src/auto/element.rs +++ b/gstreamer/src/auto/element.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Bus; @@ -7,7 +7,6 @@ use Clock; use ClockTime; use ElementFactory; use Error; -use Event; use Format; use Iterator; use Message; @@ -181,8 +180,6 @@ pub trait ElementExt { fn seek_simple(&self, format: Format, seek_flags: SeekFlags, seek_pos: i64) -> Result<(), glib::error::BoolError>; - fn send_event(&self, event: &Event) -> bool; - fn set_base_time(&self, time: ClockTime); fn set_bus(&self, bus: &Bus); @@ -509,12 +506,6 @@ impl + IsA> ElementExt for O { } } - fn send_event(&self, event: &Event) -> bool { - unsafe { - from_glib(ffi::gst_element_send_event(self.to_glib_none().0, event.to_glib_full())) - } - } - fn set_base_time(&self, time: ClockTime) { unsafe { ffi::gst_element_set_base_time(self.to_glib_none().0, time); diff --git a/gstreamer/src/auto/element_factory.rs b/gstreamer/src/auto/element_factory.rs index ca17505ed..245909872 100644 --- a/gstreamer/src/auto/element_factory.rs +++ b/gstreamer/src/auto/element_factory.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Caps; diff --git a/gstreamer/src/auto/enums.rs b/gstreamer/src/auto/enums.rs index 136acda74..0e90957f6 100644 --- a/gstreamer/src/auto/enums.rs +++ b/gstreamer/src/auto/enums.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ffi; diff --git a/gstreamer/src/auto/flags.rs b/gstreamer/src/auto/flags.rs index 1c161b00e..7397d69fc 100644 --- a/gstreamer/src/auto/flags.rs +++ b/gstreamer/src/auto/flags.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ffi; diff --git a/gstreamer/src/auto/functions.rs b/gstreamer/src/auto/functions.rs index cb6a933d8..89c515b5e 100644 --- a/gstreamer/src/auto/functions.rs +++ b/gstreamer/src/auto/functions.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Bin; diff --git a/gstreamer/src/auto/ghost_pad.rs b/gstreamer/src/auto/ghost_pad.rs index 2a0cdfe3a..38048c34d 100644 --- a/gstreamer/src/auto/ghost_pad.rs +++ b/gstreamer/src/auto/ghost_pad.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Object; diff --git a/gstreamer/src/auto/mod.rs b/gstreamer/src/auto/mod.rs index abfd5e0ba..efa00ca22 100644 --- a/gstreamer/src/auto/mod.rs +++ b/gstreamer/src/auto/mod.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT mod bin; diff --git a/gstreamer/src/auto/object.rs b/gstreamer/src/auto/object.rs index 97da89e18..d4f68f5f4 100644 --- a/gstreamer/src/auto/object.rs +++ b/gstreamer/src/auto/object.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ClockTime; diff --git a/gstreamer/src/auto/pad.rs b/gstreamer/src/auto/pad.rs index 46d1f78dd..8a2b99845 100644 --- a/gstreamer/src/auto/pad.rs +++ b/gstreamer/src/auto/pad.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Caps; @@ -87,8 +87,6 @@ pub trait PadExt { //fn create_stream_id_printf_valist<'a, P: IsA, Q: Into>>(&self, parent: &P, stream_id: Q, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported) -> Option; - fn event_default<'a, P: IsA + 'a, Q: Into>>(&self, parent: Q, event: &Event) -> bool; - //fn forward>>(&self, forward: /*Unknown conversion*//*Unimplemented*/PadForwardFunction, user_data: P) -> bool; fn get_allowed_caps(&self) -> Option; @@ -161,8 +159,6 @@ pub trait PadExt { fn peer_query_position(&self, format: Format) -> Option; - fn push_event(&self, event: &Event) -> bool; - //fn push_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn; fn query_accept_caps(&self, caps: &Caps) -> bool; @@ -175,8 +171,6 @@ pub trait PadExt { fn query_position(&self, format: Format) -> Option; - fn send_event(&self, event: &Event) -> bool; - //fn set_activate_function_full>>(&self, activate: /*Unknown conversion*//*Unimplemented*/PadActivateFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify); //fn set_activatemode_function_full>>(&self, activatemode: /*Unknown conversion*//*Unimplemented*/PadActivateModeFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify); @@ -265,14 +259,6 @@ impl + IsA> PadExt for O { // unsafe { TODO: call ffi::gst_pad_create_stream_id_printf_valist() } //} - fn event_default<'a, P: IsA + 'a, Q: Into>>(&self, parent: Q, event: &Event) -> bool { - let parent = parent.into(); - let parent = parent.to_glib_none(); - unsafe { - from_glib(ffi::gst_pad_event_default(self.to_glib_none().0, parent.0, event.to_glib_full())) - } - } - //fn forward>>(&self, forward: /*Unknown conversion*//*Unimplemented*/PadForwardFunction, user_data: P) -> bool { // unsafe { TODO: call ffi::gst_pad_forward() } //} @@ -481,12 +467,6 @@ impl + IsA> PadExt for O { } } - fn push_event(&self, event: &Event) -> bool { - unsafe { - from_glib(ffi::gst_pad_push_event(self.to_glib_none().0, event.to_glib_full())) - } - } - //fn push_list(&self, list: /*Ignored*/&mut BufferList) -> FlowReturn { // unsafe { TODO: call ffi::gst_pad_push_list() } //} @@ -529,12 +509,6 @@ impl + IsA> PadExt for O { } } - fn send_event(&self, event: &Event) -> bool { - unsafe { - from_glib(ffi::gst_pad_send_event(self.to_glib_none().0, event.to_glib_full())) - } - } - //fn set_activate_function_full>>(&self, activate: /*Unknown conversion*//*Unimplemented*/PadActivateFunction, user_data: P, notify: /*Unknown conversion*//*Unimplemented*/DestroyNotify) { // unsafe { TODO: call ffi::gst_pad_set_activate_function_full() } //} diff --git a/gstreamer/src/auto/pad_template.rs b/gstreamer/src/auto/pad_template.rs index f1b3789a4..be4f423bb 100644 --- a/gstreamer/src/auto/pad_template.rs +++ b/gstreamer/src/auto/pad_template.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Caps; diff --git a/gstreamer/src/auto/pipeline.rs b/gstreamer/src/auto/pipeline.rs index 405b1e634..2398fa511 100644 --- a/gstreamer/src/auto/pipeline.rs +++ b/gstreamer/src/auto/pipeline.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Bin; diff --git a/gstreamer/src/auto/plugin.rs b/gstreamer/src/auto/plugin.rs index 8287d109f..6e56f9dcb 100644 --- a/gstreamer/src/auto/plugin.rs +++ b/gstreamer/src/auto/plugin.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Error; diff --git a/gstreamer/src/auto/preset.rs b/gstreamer/src/auto/preset.rs index d3f6fe6e0..1f351d349 100644 --- a/gstreamer/src/auto/preset.rs +++ b/gstreamer/src/auto/preset.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use ffi; diff --git a/gstreamer/src/auto/proxy_pad.rs b/gstreamer/src/auto/proxy_pad.rs index d90952d74..dc8739796 100644 --- a/gstreamer/src/auto/proxy_pad.rs +++ b/gstreamer/src/auto/proxy_pad.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Iterator; diff --git a/gstreamer/src/auto/stream.rs b/gstreamer/src/auto/stream.rs index 91c00bc46..e0ceb7f09 100644 --- a/gstreamer/src/auto/stream.rs +++ b/gstreamer/src/auto/stream.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT #[cfg(feature = "v1_10")] diff --git a/gstreamer/src/auto/stream_collection.rs b/gstreamer/src/auto/stream_collection.rs index f1a564b30..745ced656 100644 --- a/gstreamer/src/auto/stream_collection.rs +++ b/gstreamer/src/auto/stream_collection.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Object; diff --git a/gstreamer/src/auto/tag_setter.rs b/gstreamer/src/auto/tag_setter.rs index 47cce12ea..05fc14463 100644 --- a/gstreamer/src/auto/tag_setter.rs +++ b/gstreamer/src/auto/tag_setter.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Element; diff --git a/gstreamer/src/auto/u_r_i_handler.rs b/gstreamer/src/auto/u_r_i_handler.rs index 3e6166325..319b103cb 100644 --- a/gstreamer/src/auto/u_r_i_handler.rs +++ b/gstreamer/src/auto/u_r_i_handler.rs @@ -1,4 +1,4 @@ -// This file was generated by gir (a01311c+) from gir-files (???) +// This file was generated by gir (f00d658) from gir-files (???) // DO NOT EDIT use Error; diff --git a/gstreamer/src/element.rs b/gstreamer/src/element.rs index 3f4f63a0f..bca494dec 100644 --- a/gstreamer/src/element.rs +++ b/gstreamer/src/element.rs @@ -12,6 +12,7 @@ use glib; use glib::IsA; use glib::translate::{from_glib, ToGlibPtr}; use QueryRef; +use Event; use miniobject::MiniObject; use ffi; @@ -44,6 +45,8 @@ impl Element { pub trait ElementExtManual { fn query(&self, query: &mut QueryRef) -> bool; + + fn send_event(&self, event: Event) -> bool; } impl> ElementExtManual for O { @@ -55,4 +58,10 @@ impl> ElementExtManual for O { )) } } + + fn send_event(&self, event: Event) -> bool { + unsafe { + from_glib(ffi::gst_element_send_event(self.to_glib_none().0, event.into_ptr())) + } + } } diff --git a/gstreamer/src/pad.rs b/gstreamer/src/pad.rs index d33f4cd82..d09cec5c3 100644 --- a/gstreamer/src/pad.rs +++ b/gstreamer/src/pad.rs @@ -86,6 +86,10 @@ pub trait PadExtManual { ) -> bool; fn proxy_query_caps(&self, query: &mut QueryRef) -> bool; fn proxy_query_accept_caps(&self, query: &mut QueryRef) -> bool; + + fn event_default<'a, P: IsA<::Object> + 'a, Q: Into>>(&self, parent: Q, event: Event) -> bool; + fn push_event(&self, event: Event) -> bool; + fn send_event(&self, event: Event) -> bool; } impl> PadExtManual for O { @@ -205,6 +209,26 @@ impl> PadExtManual for O { )) } } + + fn event_default<'a, P: IsA<::Object> + 'a, Q: Into>>(&self, parent: Q, event: Event) -> bool { + let parent = parent.into(); + let parent = parent.to_glib_none(); + unsafe { + from_glib(ffi::gst_pad_event_default(self.to_glib_none().0, parent.0, event.into_ptr())) + } + } + + fn push_event(&self, event: Event) -> bool { + unsafe { + from_glib(ffi::gst_pad_push_event(self.to_glib_none().0, event.into_ptr())) + } + } + + fn send_event(&self, event: Event) -> bool { + unsafe { + from_glib(ffi::gst_pad_send_event(self.to_glib_none().0, event.into_ptr())) + } + } } unsafe extern "C" fn trampoline_pad_probe(