pub struct CoreRc { /* private fields */ }
Implementations§
Methods from Deref<Target = Core>§
pub fn as_raw(&self) -> &pw_core
pub fn as_raw_ptr(&self) -> *mut pw_core
pub fn add_listener_local(&self) -> ListenerLocalBuilder<'_>
pub fn get_registry(&self) -> Result<RegistryBox<'_>, Error>
pub fn sync(&self, seq: i32) -> Result<AsyncSeq, Error>
Sourcepub fn create_object<P: ProxyT>(
&self,
factory_name: &str,
properties: &impl AsRef<DictRef>,
) -> Result<P, Error>
pub fn create_object<P: ProxyT>( &self, factory_name: &str, properties: &impl AsRef<DictRef>, ) -> Result<P, Error>
Create a new object on the PipeWire server from a factory.
You will need specify what type you are expecting to be constructed by either using type inference or the turbofish syntax.
§Parameters
factory_name
the name of the factory to useproperties
extra properties that the new object will have
§Panics
If factory_name
contains a null byte.
§Returns
One of:
Ok(P)
on success, whereP
is the newly created objectErr(Error::CreationFailed)
if the object could not be createdErr(Error::WrongProxyType)
if the created type does not match the typeP
that the user is trying to create
§Examples
Creating a new link:
ⓘ
use pipewire as pw;
pw::init();
let mainloop = pw::MainLoop::new().expect("Failed to create Pipewire Mainloop");
let context = pw::Context::new(&mainloop).expect("Failed to create Pipewire Context");
let core = context
.connect(None)
.expect("Failed to connect to Pipewire Core");
// This call uses turbofish syntax to specify that we want a link.
let link = core.create_object::<pw::link::Link>(
// The actual name for a link factory might be different for your system,
// you should probably obtain a factory from the registry.
"link-factory",
&pw::properties! {
"link.output.port" => "1",
"link.input.port" => "2",
"link.output.node" => "3",
"link.input.node" => "4"
},
)
.expect("Failed to create object");
See pipewire/examples/create-delete-remote-objects.rs
in the crates repository for a more detailed example.
pub fn create_object_cstr<P: ProxyT>( &self, factory_name: &CStr, properties: &impl AsRef<DictRef>, ) -> Result<P, Error>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CoreRc
impl !RefUnwindSafe for CoreRc
impl !Send for CoreRc
impl !Sync for CoreRc
impl Unpin for CoreRc
impl !UnwindSafe for CoreRc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more