forked from mirrors/gstreamer-rs
bus: Take ownership of the message in post()
This commit is contained in:
parent
20ac231146
commit
14f485d0b1
3 changed files with 14 additions and 14 deletions
|
@ -608,8 +608,8 @@ final_type = true
|
||||||
|
|
||||||
[[object.function]]
|
[[object.function]]
|
||||||
name = "post"
|
name = "post"
|
||||||
[object.function.return]
|
# transfer ownership of the message
|
||||||
bool_return_is_error = "Failed to post message"
|
manual = true
|
||||||
|
|
||||||
[[object]]
|
[[object]]
|
||||||
name = "Gst.Caps"
|
name = "Gst.Caps"
|
||||||
|
|
|
@ -76,16 +76,6 @@ impl Bus {
|
||||||
unsafe { from_glib_full(ffi::gst_bus_pop(self.to_glib_none().0)) }
|
unsafe { from_glib_full(ffi::gst_bus_pop(self.to_glib_none().0)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
#[doc(alias = "gst_bus_post")]
|
|
||||||
pub fn post(&self, message: &Message) -> Result<(), glib::error::BoolError> {
|
|
||||||
unsafe {
|
|
||||||
glib::result_from_gboolean!(
|
|
||||||
ffi::gst_bus_post(self.to_glib_none().0, message.to_glib_full()),
|
|
||||||
"Failed to post message"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[doc(alias = "gst_bus_remove_signal_watch")]
|
#[doc(alias = "gst_bus_remove_signal_watch")]
|
||||||
pub fn remove_signal_watch(&self) {
|
pub fn remove_signal_watch(&self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
|
|
@ -302,6 +302,16 @@ impl Bus {
|
||||||
future::ready(message_types.contains(&message_type))
|
future::ready(message_types.contains(&message_type))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[doc(alias = "gst_bus_post")]
|
||||||
|
pub fn post(&self, message: crate::Message) -> Result<(), glib::error::BoolError> {
|
||||||
|
unsafe {
|
||||||
|
glib::result_from_gboolean!(
|
||||||
|
ffi::gst_bus_post(self.to_glib_none().0, message.into_glib_ptr()),
|
||||||
|
"Failed to post message"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -382,7 +392,7 @@ mod tests {
|
||||||
BusSyncReply::Pass
|
BusSyncReply::Pass
|
||||||
});
|
});
|
||||||
|
|
||||||
bus.post(&crate::message::Eos::new()).unwrap();
|
bus.post(crate::message::Eos::new()).unwrap();
|
||||||
|
|
||||||
let msgs = msgs.lock().unwrap();
|
let msgs = msgs.lock().unwrap();
|
||||||
assert_eq!(msgs.len(), 1);
|
assert_eq!(msgs.len(), 1);
|
||||||
|
@ -400,7 +410,7 @@ mod tests {
|
||||||
let bus_stream = bus.stream();
|
let bus_stream = bus.stream();
|
||||||
|
|
||||||
let eos_message = crate::message::Eos::new();
|
let eos_message = crate::message::Eos::new();
|
||||||
bus.post(&eos_message).unwrap();
|
bus.post(eos_message).unwrap();
|
||||||
|
|
||||||
let bus_future = bus_stream.into_future();
|
let bus_future = bus_stream.into_future();
|
||||||
let (message, _) = futures_executor::block_on(bus_future);
|
let (message, _) = futures_executor::block_on(bus_future);
|
||||||
|
|
Loading…
Reference in a new issue