pub struct Core { /* private fields */ }
Methods from Deref<Target = CoreRef>§
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<Registry, 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 !RefUnwindSafe for Core
impl !Send for Core
impl !Sync for Core
impl Unpin for Core
impl !UnwindSafe for Core
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