From 9734ec29cca25d63c4aaaec9e16309efa9086479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 15 Nov 2017 17:03:19 +0200 Subject: [PATCH] Implement macros for Element::message_full_with_details() Allows attaching arbitrary structures to error/warning/info messages --- gstreamer/src/element.rs | 237 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) diff --git a/gstreamer/src/element.rs b/gstreamer/src/element.rs index e9823afaf..a240a0c79 100644 --- a/gstreamer/src/element.rs +++ b/gstreamer/src/element.rs @@ -551,6 +551,85 @@ macro_rules! gst_element_error( line!(), ); }}; + + ($obj:expr, $err:expr, ($msg:expr), [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + Some($msg), + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($msg:expr), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + Some($msg), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + None, + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + Some(format!($($msg)*)), + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + Some(format!($($msg)*)), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Error, + $err, + None, + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; ); #[macro_export] @@ -627,6 +706,85 @@ macro_rules! gst_element_warning( line!(), ); }}; + + ($obj:expr, $err:expr, ($msg:expr), [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + Some($msg), + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($msg:expr), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + Some($msg), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + None, + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + Some(format!($($msg)*)), + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + Some(format!($($msg)*)), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Warning, + $err, + None, + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; ); #[macro_export] @@ -703,6 +861,85 @@ macro_rules! gst_element_info( line!(), ); }}; + + ($obj:expr, $err:expr, ($msg:expr), [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + Some($msg), + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($msg:expr), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + Some($msg), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$debug:expr], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + None, + Some($debug), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + Some(format!($($msg)*)), + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, ($($msg:tt)*), details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + Some(format!($($msg)*)), + None, + file!(), + module_path!(), + line!(), + $details, + ); + }}; + ($obj:expr, $err:expr, [$($debug:tt)*], details: $details:expr) => { { + use $crate::ElementExtManual; + $obj.message_full_with_details( + $crate::ElementMessageType::Info, + $err, + None, + Some(format!($($debug)*)), + file!(), + module_path!(), + line!(), + $details, + ); + }}; ); #[cfg(test)]