mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-04-21 21:43:17 +03:00
try out wayland
This commit is contained in:
144
libs/scrap/src/wayland/pipewire_dbus.rs
Normal file
144
libs/scrap/src/wayland/pipewire_dbus.rs
Normal file
@@ -0,0 +1,144 @@
|
||||
// This code was autogenerated with `dbus-codegen-rust -c blocking -m None`, see https://github.com/diwic/dbus-rs
|
||||
use dbus;
|
||||
#[allow(unused_imports)]
|
||||
use dbus::arg;
|
||||
use dbus::blocking;
|
||||
|
||||
pub trait OrgFreedesktopPortalScreenCast {
|
||||
fn create_session(&self, options: arg::PropMap) -> Result<dbus::Path<'static>, dbus::Error>;
|
||||
fn select_sources(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
options: arg::PropMap,
|
||||
) -> Result<dbus::Path<'static>, dbus::Error>;
|
||||
fn start(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
parent_window: &str,
|
||||
options: arg::PropMap,
|
||||
) -> Result<dbus::Path<'static>, dbus::Error>;
|
||||
fn open_pipe_wire_remote(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
options: arg::PropMap,
|
||||
) -> Result<arg::OwnedFd, dbus::Error>;
|
||||
fn available_source_types(&self) -> Result<u32, dbus::Error>;
|
||||
fn available_cursor_modes(&self) -> Result<u32, dbus::Error>;
|
||||
fn version(&self) -> Result<u32, dbus::Error>;
|
||||
}
|
||||
|
||||
impl<'a, T: blocking::BlockingSender, C: ::std::ops::Deref<Target = T>>
|
||||
OrgFreedesktopPortalScreenCast for blocking::Proxy<'a, C>
|
||||
{
|
||||
fn create_session(&self, options: arg::PropMap) -> Result<dbus::Path<'static>, dbus::Error> {
|
||||
self.method_call(
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"CreateSession",
|
||||
(options,),
|
||||
)
|
||||
.map(|r: (dbus::Path<'static>,)| r.0)
|
||||
}
|
||||
|
||||
fn select_sources(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
options: arg::PropMap,
|
||||
) -> Result<dbus::Path<'static>, dbus::Error> {
|
||||
self.method_call(
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"SelectSources",
|
||||
(session_handle, options),
|
||||
)
|
||||
.map(|r: (dbus::Path<'static>,)| r.0)
|
||||
}
|
||||
|
||||
fn start(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
parent_window: &str,
|
||||
options: arg::PropMap,
|
||||
) -> Result<dbus::Path<'static>, dbus::Error> {
|
||||
self.method_call(
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"Start",
|
||||
(session_handle, parent_window, options),
|
||||
)
|
||||
.map(|r: (dbus::Path<'static>,)| r.0)
|
||||
}
|
||||
|
||||
fn open_pipe_wire_remote(
|
||||
&self,
|
||||
session_handle: dbus::Path,
|
||||
options: arg::PropMap,
|
||||
) -> Result<arg::OwnedFd, dbus::Error> {
|
||||
self.method_call(
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"OpenPipeWireRemote",
|
||||
(session_handle, options),
|
||||
)
|
||||
.map(|r: (arg::OwnedFd,)| r.0)
|
||||
}
|
||||
|
||||
fn available_source_types(&self) -> Result<u32, dbus::Error> {
|
||||
<Self as blocking::stdintf::org_freedesktop_dbus::Properties>::get(
|
||||
&self,
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"AvailableSourceTypes",
|
||||
)
|
||||
}
|
||||
|
||||
fn available_cursor_modes(&self) -> Result<u32, dbus::Error> {
|
||||
<Self as blocking::stdintf::org_freedesktop_dbus::Properties>::get(
|
||||
&self,
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"AvailableCursorModes",
|
||||
)
|
||||
}
|
||||
|
||||
fn version(&self) -> Result<u32, dbus::Error> {
|
||||
<Self as blocking::stdintf::org_freedesktop_dbus::Properties>::get(
|
||||
&self,
|
||||
"org.freedesktop.portal.ScreenCast",
|
||||
"version",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
pub trait OrgFreedesktopPortalRequest {
|
||||
fn close(&self) -> Result<(), dbus::Error>;
|
||||
}
|
||||
|
||||
impl<'a, T: blocking::BlockingSender, C: ::std::ops::Deref<Target = T>> OrgFreedesktopPortalRequest
|
||||
for blocking::Proxy<'a, C>
|
||||
{
|
||||
fn close(&self) -> Result<(), dbus::Error> {
|
||||
self.method_call("org.freedesktop.portal.Request", "Close", ())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct OrgFreedesktopPortalRequestResponse {
|
||||
pub response: u32,
|
||||
pub results: arg::PropMap,
|
||||
}
|
||||
|
||||
impl arg::AppendAll for OrgFreedesktopPortalRequestResponse {
|
||||
fn append(&self, i: &mut arg::IterAppend) {
|
||||
arg::RefArg::append(&self.response, i);
|
||||
arg::RefArg::append(&self.results, i);
|
||||
}
|
||||
}
|
||||
|
||||
impl arg::ReadAll for OrgFreedesktopPortalRequestResponse {
|
||||
fn read(i: &mut arg::Iter) -> Result<Self, arg::TypeMismatchError> {
|
||||
Ok(OrgFreedesktopPortalRequestResponse {
|
||||
response: i.read()?,
|
||||
results: i.read()?,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl dbus::message::SignalArgs for OrgFreedesktopPortalRequestResponse {
|
||||
const NAME: &'static str = "Response";
|
||||
const INTERFACE: &'static str = "org.freedesktop.portal.Request";
|
||||
}
|
||||
Reference in New Issue
Block a user