SYMBOL INDEX (1305 symbols across 114 files) FILE: mm-client-common/bin/uniffi-bindgen.rs function main (line 5) | fn main() { FILE: mm-client-common/src/attachment.rs type AttachmentConfig (line 20) | pub struct AttachmentConfig { type VideoStreamParams (line 65) | pub struct VideoStreamParams { type AudioStreamParams (line 75) | pub struct AudioStreamParams { type Attachment (line 87) | pub struct Attachment { method new (line 102) | pub(crate) async fn new( method send (line 220) | fn send(&self, msg: impl Into, fin: bool) { method request_video_refresh (line 234) | pub fn request_video_refresh(&self, stream_seq: u64) { method keyboard_input (line 244) | pub fn keyboard_input(&self, key: input::Key, state: input::KeyState, ... method pointer_entered (line 257) | pub fn pointer_entered(&self) { method pointer_left (line 263) | pub fn pointer_left(&self) { method pointer_motion (line 268) | pub fn pointer_motion(&self, x: f64, y: f64) { method relative_pointer_motion (line 273) | pub fn relative_pointer_motion(&self, x: f64, y: f64) { method pointer_input (line 278) | pub fn pointer_input(&self, button: input::Button, state: input::Butto... method pointer_scroll (line 291) | pub fn pointer_scroll(&self, scroll_type: input::ScrollType, x: f64, y... method gamepad_available (line 303) | pub fn gamepad_available(&self, pad: input::Gamepad) { method gamepad_unavailable (line 313) | pub fn gamepad_unavailable(&self, id: u64) { method gamepad_motion (line 318) | pub fn gamepad_motion(&self, id: u64, axis: input::GamepadAxis, value:... method gamepad_input (line 330) | pub fn gamepad_input( method detach (line 347) | pub async fn detach(&self) -> Result<(), ClientError> { type AttachmentDelegate (line 171) | pub trait AttachmentDelegate: Send + Sync + std::fmt::Debug { method video_stream_start (line 173) | fn video_stream_start(&self, stream_seq: u64, params: VideoStreamParams); method video_packet (line 176) | fn video_packet(&self, packet: Arc); method dropped_video_packet (line 179) | fn dropped_video_packet(&self, dropped: packet::DroppedPacket); method audio_stream_start (line 182) | fn audio_stream_start(&self, stream_seq: u64, params: AudioStreamParams); method audio_packet (line 185) | fn audio_packet(&self, packet: Arc); method update_cursor (line 188) | fn update_cursor( method lock_pointer (line 197) | fn lock_pointer(&self, x: f64, y: f64); method release_pointer (line 200) | fn release_pointer(&self); method display_params_changed (line 205) | fn display_params_changed( method error (line 213) | fn error(&self, err: ClientError); method attachment_ended (line 216) | fn attachment_ended(&self); type AttachmentState (line 354) | pub(crate) struct AttachmentState { method handle_message (line 378) | pub(crate) fn handle_message(&mut self, msg: protocol::MessageType) { method handle_close (line 538) | pub(crate) fn handle_close(mut self, err: Option) { FILE: mm-client-common/src/conn.rs constant DEFAULT_PORT (line 7) | const DEFAULT_PORT: u16 = 9599; constant MAX_QUIC_PACKET_SIZE (line 8) | const MAX_QUIC_PACKET_SIZE: usize = 1350; constant SOCKET (line 10) | const SOCKET: mio::Token = mio::Token(0); constant WAKER (line 11) | const WAKER: mio::Token = mio::Token(1); type ConnError (line 27) | pub enum ConnError { method from (line 49) | fn from(e: std::io::Error) -> Self { type ConnEvent (line 55) | pub(crate) enum ConnEvent { type OutgoingMessage (line 61) | pub(crate) struct OutgoingMessage { type Conn (line 67) | pub(crate) struct Conn { method new (line 90) | pub fn new( method waker (line 167) | pub fn waker(&self) -> Arc { method run (line 171) | pub fn run(&mut self, connect_timeout: time::Duration) -> Result<(), C... method pump_stream (line 351) | fn pump_stream(&mut self, sid: u64) -> Result { method send_message (line 415) | fn send_message( method start_shutdown (line 440) | fn start_shutdown(&mut self) -> Result<(), ConnError> { function gen_scid (line 450) | fn gen_scid() -> quiche::ConnectionId<'static> { function resolve_server (line 459) | fn resolve_server(hostport: &str) -> Result<(String, SocketAddr), ConnEr... FILE: mm-client-common/src/conn/hostport.rs type MalformedHostPort (line 6) | pub(crate) struct MalformedHostPort; method fmt (line 9) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function split_host_port (line 26) | pub(crate) fn split_host_port( function find (line 77) | fn find(buf: &[u8], c: u8) -> Option { function rfind (line 81) | fn rfind(buf: &[u8], c: u8) -> Option { function test_split_host_port (line 90) | fn test_split_host_port() { FILE: mm-client-common/src/display_params.rs type DisplayParams (line 10) | pub struct DisplayParams { type Error (line 18) | type Error = ValidationError; method try_from (line 20) | fn try_from(msg: protocol::VirtualDisplayParameters) -> Result Self { FILE: mm-client-common/src/input.rs type Gamepad (line 18) | pub struct Gamepad { type Error (line 33) | type Error = ValidationError; method try_from (line 35) | fn try_from(value: protocol::Gamepad) -> Result { function from (line 24) | fn from(value: Gamepad) -> Self { FILE: mm-client-common/src/lib.rs type ClientError (line 40) | pub enum ClientError { type ConnHandle (line 62) | struct ConnHandle { method close (line 73) | fn close(self) -> Result<(), Option> { type ClientState (line 94) | enum ClientState { type Roundtrip (line 99) | struct Roundtrip { type InnerClient (line 105) | struct InnerClient { method next_stream_id (line 111) | fn next_stream_id(&mut self) -> u64 { method close (line 118) | fn close(&mut self) -> Result<(), ClientError> { type Client (line 145) | pub struct Client { method reconnect (line 154) | async fn reconnect(&self) -> Result, Clie... method initiate_stream (line 189) | async fn initiate_stream( method roundtrip (line 251) | async fn roundtrip( method new (line 264) | pub async fn new( method stats (line 287) | pub fn stats(&self) -> stats::ClientStats { method list_applications (line 291) | pub async fn list_applications( method fetch_application_image (line 311) | pub async fn fetch_application_image( method list_sessions (line 329) | pub async fn list_sessions( method launch_session (line 346) | pub async fn launch_session( method end_session (line 373) | pub async fn end_session(&self, id: u64, timeout: time::Duration) -> R... method update_session_display_params (line 382) | pub async fn update_session_display_params( method attach_session (line 403) | pub async fn attach_session( function spawn_conn (line 456) | async fn spawn_conn( type InFlight (line 507) | struct InFlight { function conn_reactor (line 513) | fn conn_reactor( function conn_reactor_handle_incoming (line 602) | fn conn_reactor_handle_incoming(in_flight: &mut InFlight, ev: conn::Conn... FILE: mm-client-common/src/logging.rs type LogLevel (line 8) | pub enum LogLevel { method from (line 18) | fn from(value: log::Level) -> Self { type LogDelegate (line 31) | pub trait LogDelegate: Send + Sync + std::fmt::Debug { method log (line 32) | fn log(&self, level: LogLevel, target: String, msg: String); type LogWrapper (line 35) | struct LogWrapper(Arc); method enabled (line 38) | fn enabled(&self, metadata: &log::Metadata) -> bool { method log (line 42) | fn log(&self, record: &log::Record) { method flush (line 53) | fn flush(&self) {} function set_log_level (line 58) | fn set_log_level(level: LogLevel) { function set_logger (line 73) | fn set_logger(logger: Arc) { FILE: mm-client-common/src/packet.rs type Packet (line 11) | pub struct Packet { method pts (line 29) | pub fn pts(&self) -> u64 { method stream_seq (line 33) | pub fn stream_seq(&self) -> u64 { method seq (line 37) | pub fn seq(&self) -> u64 { method hierarchical_layer (line 41) | pub fn hierarchical_layer(&self) -> u32 { method data (line 45) | pub fn data(&self) -> Vec { method len (line 62) | pub fn len(&self) -> usize { method is_empty (line 66) | pub fn is_empty(&self) -> bool { method copy_to_slice (line 71) | pub fn copy_to_slice(&self, mut dst: &mut [u8]) { type DroppedPacket (line 20) | pub struct DroppedPacket { FILE: mm-client-common/src/packet/ring.rs constant RING_TARGET_SIZE (line 12) | const RING_TARGET_SIZE: usize = 5; type Chunk (line 14) | pub(crate) trait Chunk { method seq (line 15) | fn seq(&self) -> u64; method stream_seq (line 16) | fn stream_seq(&self) -> u64; method chunk (line 17) | fn chunk(&self) -> u32; method num_chunks (line 18) | fn num_chunks(&self) -> u32; method data (line 19) | fn data(&self) -> bytes::Bytes; method pts (line 20) | fn pts(&self) -> u64; method hierarchical_layer (line 21) | fn hierarchical_layer(&self) -> u32; method fec_metadata (line 22) | fn fec_metadata(&self) -> Option; method seq (line 26) | fn seq(&self) -> u64 { method stream_seq (line 30) | fn stream_seq(&self) -> u64 { method chunk (line 34) | fn chunk(&self) -> u32 { method num_chunks (line 38) | fn num_chunks(&self) -> u32 { method data (line 42) | fn data(&self) -> bytes::Bytes { method pts (line 46) | fn pts(&self) -> u64 { method hierarchical_layer (line 50) | fn hierarchical_layer(&self) -> u32 { method fec_metadata (line 54) | fn fec_metadata(&self) -> Option { method seq (line 60) | fn seq(&self) -> u64 { method stream_seq (line 64) | fn stream_seq(&self) -> u64 { method chunk (line 68) | fn chunk(&self) -> u32 { method num_chunks (line 72) | fn num_chunks(&self) -> u32 { method data (line 76) | fn data(&self) -> bytes::Bytes { method pts (line 80) | fn pts(&self) -> u64 { method hierarchical_layer (line 84) | fn hierarchical_layer(&self) -> u32 { method fec_metadata (line 88) | fn fec_metadata(&self) -> Option { type FECDecoder (line 94) | enum FECDecoder { type WipPacket (line 103) | struct WipPacket { method new (line 112) | fn new(incoming: impl Chunk) -> Result { method insert (line 146) | fn insert(&mut self, incoming: impl Chunk) -> Result<(), PacketRingErr... method is_complete (line 179) | fn is_complete(&mut self) -> bool { method complete (line 197) | fn complete(self) -> Packet { type PacketRingError (line 227) | pub(crate) enum PacketRingError { type PacketRing (line 239) | pub(crate) struct PacketRing { method new (line 248) | pub(crate) fn new() -> Self { method recv_chunk (line 252) | pub(crate) fn recv_chunk(&mut self, incoming: impl Chunk) -> Result<()... method drain_completed (line 321) | pub(crate) fn drain_completed(&mut self, stream_seq: u64) -> DrainComp... method discard (line 326) | pub(crate) fn discard(&mut self, stream_seq: u64) { type DrainCompleted (line 333) | pub(crate) struct DrainCompleted<'a>(&'a mut PacketRing, u64); type Item (line 336) | type Item = Result; method next (line 338) | fn next(&mut self) -> Option { function test_ring (line 374) | fn test_ring() { function test_ring_drop (line 414) | fn test_ring_drop() { function make_chunks (line 457) | fn make_chunks(seq: u64, chunks: &[&[u8]]) -> Vec { FILE: mm-client-common/src/pixel_scale.rs type PixelScale (line 10) | pub struct PixelScale { constant ONE (line 16) | pub const ONE: Self = Self { method new (line 21) | pub fn new(numerator: u32, denominator: u32) -> Self { method is_fractional (line 28) | pub fn is_fractional(&self) -> bool { method round_up (line 32) | pub fn round_up(self) -> Self { method fmt (line 41) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Error (line 47) | type Error = ValidationError; method try_from (line 49) | fn try_from(scale: protocol::PixelScale) -> Result { function from (line 64) | fn from(scale: PixelScale) -> Self { FILE: mm-client-common/src/session.rs type Application (line 15) | pub struct Application { type Error (line 23) | type Error = ValidationError; method try_from (line 25) | fn try_from(value: protocol::application_list::Application) -> Result<... type Session (line 48) | pub struct Session { type Error (line 56) | type Error = ValidationError; method try_from (line 58) | fn try_from(msg: protocol::session_list::Session) -> Result ClientStats { type ClientStats (line 27) | pub struct ClientStats { FILE: mm-client-common/src/validation.rs type ValidationError (line 6) | pub enum ValidationError { FILE: mm-client/build.rs function main (line 11) | fn main() { function compile_shader (line 32) | fn compile_shader( FILE: mm-client/src/audio.rs type DecodePacket (line 20) | trait DecodePacket { method decode (line 21) | fn decode(&mut self, input: &[u8], output: &mut [T]) -> anyhow::Result... function decode (line 25) | fn decode(&mut self, packet: &[u8], output: &mut [f32]) -> anyhow::Resul... function decode (line 32) | fn decode(&mut self, packet: &[u8], output: &mut [i16]) -> anyhow::Resul... type StreamWrapper (line 39) | trait StreamWrapper { method new (line 41) | fn new( method sync (line 48) | fn sync(&mut self, pts: u64); method send_packet (line 49) | fn send_packet(&mut self, packet: Arc) -> anyhow::Resu... method new (line 66) | fn new( method sync (line 213) | fn sync(&mut self, pts: u64) { method send_packet (line 217) | fn send_packet(&mut self, packet: Arc) -> anyhow::Resu... type StreamInner (line 52) | struct StreamInner { method drop (line 228) | fn drop(&mut self) { type AudioStream (line 244) | pub struct AudioStream { method new (line 257) | pub fn new() -> anyhow::Result { method sync (line 276) | pub fn sync(&mut self, pts: u64) { method reset (line 282) | pub fn reset( method recv_packet (line 312) | pub fn recv_packet(&mut self, packet: Arc) -> anyhow::... function select_conf (line 335) | fn select_conf( FILE: mm-client/src/audio/buffer.rs type PlaybackBuffer (line 7) | pub struct PlaybackBuffer function new (line 22) | pub fn new() -> Self { function len (line 30) | pub fn len(&self) -> usize { function buffer (line 35) | pub fn buffer(&mut self, pts: u64, frames: &[F]) { function current_pts (line 41) | pub fn current_pts(&self) -> u64 { function drain (line 49) | pub fn drain(&mut self) -> Draining { function skip (line 54) | pub fn skip(&mut self, frames: usize) { type Draining (line 71) | pub struct Draining<'a, F> type Item (line 82) | type Item = F; method next (line 84) | fn next(&mut self) -> Option { FILE: mm-client/src/bin/latency-test.rs constant APP_DIMENSION (line 21) | const APP_DIMENSION: u32 = 256; constant DEFAULT_TIMEOUT (line 22) | const DEFAULT_TIMEOUT: time::Duration = time::Duration::from_secs(1); type Cli (line 27) | struct Cli { type AppEvent (line 42) | pub enum AppEvent { method fmt (line 49) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method from (line 61) | fn from(event: AttachmentEvent) -> Self { method from (line 67) | fn from(event: VideoStreamEvent) -> Self { type App (line 77) | struct App { method resumed (line 156) | fn resumed(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { method window_event (line 172) | fn window_event( method about_to_wait (line 180) | fn about_to_wait(&mut self, event_loop: &winit::event_loop::ActiveEven... method user_event (line 191) | fn user_event(&mut self, event_loop: &winit::event_loop::ActiveEventLo... method exiting (line 206) | fn exiting(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop) { type LatencyTest (line 84) | struct LatencyTest { method event (line 220) | fn event(&mut self, event: AppEvent) -> anyhow::Result { method send_space (line 273) | fn send_space(&mut self) { method check_frame (line 289) | fn check_frame(&mut self) -> anyhow::Result<()> { method check_block (line 323) | fn check_block(&mut self, idx: usize) -> bool { method submit_copy (line 335) | unsafe fn submit_copy(&mut self) -> anyhow::Result<()> { function main (line 107) | fn main() -> anyhow::Result<()> { function start_test (line 403) | fn start_test( function init_logging (line 491) | fn init_logging() -> anyhow::Result<()> { FILE: mm-client/src/bin/mmclient.rs constant DEFAULT_CONNECT_TIMEOUT (line 30) | const DEFAULT_CONNECT_TIMEOUT: time::Duration = time::Duration::from_sec... constant DEFAULT_REQUEST_TIMEOUT (line 31) | const DEFAULT_REQUEST_TIMEOUT: time::Duration = time::Duration::from_sec... constant MAX_FRAME_TIME (line 33) | const MAX_FRAME_TIME: time::Duration = time::Duration::from_nanos(1_000_... constant RESIZE_COOLDOWN (line 34) | const RESIZE_COOLDOWN: time::Duration = time::Duration::from_millis(500); type Resolution (line 37) | enum Resolution { method from (line 45) | fn from(s: &str) -> Self { type Cli (line 62) | struct Cli { type AttachmentWindow (line 117) | struct AttachmentWindow { method handle_window_event (line 315) | fn handle_window_event(&mut self, event: winit::event::WindowEvent) ->... method handle_app_event (line 504) | fn handle_app_event( method idle (line 659) | fn idle(&mut self, client: &client::Client) -> anyhow::Result { method schedule_next_frame (line 761) | fn schedule_next_frame( method motion_vector_to_attachment_space (line 778) | fn motion_vector_to_attachment_space(&self, x: f64, y: f64) -> Option<... type App (line 156) | struct App { method resumed (line 207) | fn resumed(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { method window_event (line 222) | fn window_event( method device_event (line 246) | fn device_event( method user_event (line 265) | fn user_event(&mut self, event_loop: &winit::event_loop::ActiveEventLo... method about_to_wait (line 274) | fn about_to_wait(&mut self, event_loop: &winit::event_loop::ActiveEven... method exiting (line 283) | fn exiting(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop) { type AppEvent (line 165) | pub enum AppEvent { method from (line 173) | fn from(event: VideoStreamEvent) -> Self { method from (line 184) | fn from(value: AttachmentEvent) -> Self { method from (line 190) | fn from(event: GamepadEvent) -> Self { method fmt (line 196) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function main (line 802) | pub fn main() -> anyhow::Result<()> { function init_window (line 853) | fn init_window( function init_logging (line 1038) | fn init_logging() -> anyhow::Result<()> { function determine_ui_scale (line 1077) | fn determine_ui_scale(scale_factor: f64) -> client::pixel_scale::PixelSc... function determine_resolution (line 1106) | fn determine_resolution(resolution: Resolution, width: u32, height: u32)... function filter_sessions (line 1118) | fn filter_sessions(sessions: Vec, app: &str) -> Vec anyhow::Result<()> { function cmd_list_sessions (line 1174) | fn cmd_list_sessions(args: &Cli, client: &client::Client) -> anyhow::Res... function cmd_kill (line 1212) | fn cmd_kill(args: &Cli, client: &client::Client) -> anyhow::Result<()> { FILE: mm-client/src/cursor.rs function load_cursor_image (line 8) | pub fn load_cursor_image(image: &[u8], hs_x: u32, hs_y: u32) -> anyhow::... function cursor_icon_from_proto (line 25) | pub fn cursor_icon_from_proto(icon: protocol::update_cursor::CursorIcon)... FILE: mm-client/src/delegate.rs type AttachmentProxy (line 13) | pub struct AttachmentProxy + std::fmt::Debug + ... function new (line 18) | pub fn new(proxy: winit::event_loop::EventLoopProxy) -> Self { function proxy (line 22) | fn proxy(&self, ev: AttachmentEvent) { type AttachmentEvent (line 27) | pub enum AttachmentEvent { method fmt (line 49) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function video_stream_start (line 95) | fn video_stream_start(&self, stream_seq: u64, params: client::VideoStrea... function video_packet (line 99) | fn video_packet(&self, packet: Arc) { function dropped_video_packet (line 103) | fn dropped_video_packet(&self, dropped: client::DroppedPacket) { function audio_stream_start (line 107) | fn audio_stream_start(&self, stream_seq: u64, params: client::AudioStrea... function audio_packet (line 111) | fn audio_packet(&self, packet: Arc) { function update_cursor (line 115) | fn update_cursor( function lock_pointer (line 130) | fn lock_pointer(&self, x: f64, y: f64) { function release_pointer (line 134) | fn release_pointer(&self) { function display_params_changed (line 138) | fn display_params_changed( function error (line 149) | fn error(&self, err: client::ClientError) { function attachment_ended (line 154) | fn attachment_ended(&self) { FILE: mm-client/src/flash.rs constant FLASH_DURATION (line 7) | const FLASH_DURATION: time::Duration = time::Duration::from_millis(1350); constant FADE_OUT_AFTER (line 8) | const FADE_OUT_AFTER: time::Duration = time::Duration::from_millis(1000); type Flash (line 10) | pub struct Flash { method new (line 15) | pub fn new() -> Self { method set_message (line 19) | pub fn set_message(&mut self, s: &str) { method build (line 23) | pub fn build(&mut self, ui: &imgui::Ui) -> anyhow::Result<()> { method default (line 69) | fn default() -> Self { FILE: mm-client/src/font.rs function load_ui_font (line 13) | pub fn load_ui_font() -> anyhow::Result { FILE: mm-client/src/gamepad.rs type GamepadEvent (line 15) | pub enum GamepadEvent { type RemoteGamepad (line 23) | struct RemoteGamepad { method update_dpad (line 39) | fn update_dpad( type DpadState (line 31) | struct DpadState { function spawn_gamepad_monitor (line 104) | pub fn spawn_gamepad_monitor( function handle_gilrs_event (line 205) | fn handle_gilrs_event( function input_event (line 272) | fn input_event( function gamepad_id (line 280) | fn gamepad_id(uuid: [u8; 16]) -> u64 { function layout (line 287) | fn layout(pad: gilrs::Gamepad) -> GamepadLayout { function girls_axis_to_proto (line 294) | fn girls_axis_to_proto(axis: gilrs::Axis) -> Option { function gilrs_button_to_proto (line 308) | fn gilrs_button_to_proto(button: gilrs::Button) -> Option { FILE: mm-client/src/keys.rs function winit_key_to_proto (line 8) | pub fn winit_key_to_proto(key: KeyCode) -> Key { FILE: mm-client/src/overlay.rs type Overlay (line 11) | pub struct Overlay { method new (line 22) | pub fn new(fps: u32) -> Self { method reposition (line 34) | pub fn reposition(&mut self) { method update_params (line 38) | pub fn update_params(&mut self, params: &protocol::Attached) { method build (line 44) | pub fn build(&mut self, ui: &imgui::Ui) -> anyhow::Result<()> { function stat_row (line 131) | fn stat_row(ui: &imgui::Ui, label: impl AsRef, value: impl AsRef Self { type PushConstants (line 46) | struct PushConstants { type Renderer (line 52) | pub struct Renderer { method new (line 118) | pub fn new( method recreate_swapchain (line 162) | unsafe fn recreate_swapchain(&mut self) -> Result<()> { method handle_event (line 578) | pub fn handle_event(&mut self, event: &winit::event::WindowEvent) -> a... method resize (line 604) | pub fn resize(&mut self, width: u32, height: u32) { method scale_factor_changed (line 614) | fn scale_factor_changed(&mut self, scale_factor: f64) -> anyhow::Resul... method bind_video_texture (line 627) | pub fn bind_video_texture( method get_texture_aspect (line 642) | pub fn get_texture_aspect(&self) -> Option<(f64, f64)> { method render (line 656) | pub unsafe fn render(&mut self, ui_builder: F) -> Result<()> method destroy_swapchain (line 914) | unsafe fn destroy_swapchain(&mut self, mut swapchain: Swapchain) { type VideoTexture (line 73) | struct VideoTexture { type Swapchain (line 79) | struct Swapchain { type InFlightFrame (line 102) | struct InFlightFrame { type SwapImage (line 112) | struct SwapImage { function select_surface_format (line 951) | fn select_surface_format( method drop (line 999) | fn drop(&mut self) { function import_imgui_font (line 1008) | fn import_imgui_font( function calculate_aspect (line 1036) | fn calculate_aspect(width: u32, height: u32, tex_width: u32, tex_height:... FILE: mm-client/src/stats.rs type Stats (line 19) | pub struct Stats { method set_connection_rtt (line 37) | pub fn set_connection_rtt(&self, rtt: time::Duration) { method frame_received (line 42) | pub fn frame_received(&self, stream_seq: u64, seq: u64, len: usize) { method frame_rendered (line 56) | pub fn frame_rendered(&self, stream_seq: u64, seq: u64) { method frame_discarded (line 76) | pub fn frame_discarded(&self, stream_seq: u64, seq: u64) { method video_bitrate (line 85) | pub fn video_bitrate(&self) -> f32 { method video_latency (line 90) | pub fn video_latency(&self) -> f32 { type InFlightFrame (line 23) | struct InFlightFrame(time::Instant); type Inner (line 25) | struct Inner { method default (line 99) | fn default() -> Self { FILE: mm-client/src/video.rs constant DECODER_INIT_TIMEOUT (line 21) | const DECODER_INIT_TIMEOUT: time::Duration = time::Duration::from_secs(5); type Undecoded (line 23) | type Undecoded = std::sync::Arc; type FrameMetadata (line 26) | pub struct FrameMetadata { type YUVPicture (line 33) | struct YUVPicture { type ColorSpace (line 40) | pub enum ColorSpace { type VideoStreamParams (line 46) | pub struct VideoStreamParams { method default (line 54) | fn default() -> Self { type VideoStreamEvent (line 64) | pub enum VideoStreamEvent { type StreamState (line 69) | enum StreamState { method fmt (line 77) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type VideoStream (line 91) | pub struct VideoStream + Send + 'static> { function new (line 98) | pub fn new(vk: Arc, proxy: winit::event_loop::EventLoopProxy<... function reset (line 109) | pub fn reset( function recv_packet (line 137) | pub fn recv_packet(&mut self, buf: Undecoded) -> anyhow::Result<()> { function prepare_frame (line 200) | pub fn prepare_frame(&mut self) -> anyhow::Result> { function mark_frame_rendered (line 209) | pub fn mark_frame_rendered(&mut self) { function is_ready (line 218) | pub fn is_ready(&self) -> bool { type CPUDecoder (line 226) | struct CPUDecoder { method send_packet (line 679) | fn send_packet(&mut self, buf: Undecoded) -> anyhow::Result<()> { method prepare_frame (line 695) | pub fn prepare_frame(&mut self) -> anyhow::Result anyhow::Result<()> { method prerecord_upload (line 785) | unsafe fn prerecord_upload(&self) -> anyhow::Result<()> { type DecoderInit (line 253) | struct DecoderInit { method new (line 265) | fn new( method send_packet (line 338) | fn send_packet(&mut self, buf: Undecoded) -> anyhow::Result { method into_decoder (line 417) | fn into_decoder( method drop (line 919) | fn drop(&mut self) { function receive_frame (line 934) | fn receive_frame( function copy_packet (line 958) | fn copy_packet(pkt: &mut ffmpeg::Packet, buf: Undecoded) -> anyhow::Resu... function copy_frame (line 983) | fn copy_frame( function get_hw_format (line 1025) | unsafe extern "C" fn get_hw_format( function read_format_list (line 1067) | unsafe fn read_format_list( FILE: mm-client/src/vulkan.rs type VkDebugContext (line 27) | pub struct VkDebugContext { type VkQueue (line 32) | pub struct VkQueue { type VkDeviceInfo (line 37) | pub struct VkDeviceInfo { method query (line 74) | fn query( method is_integrated (line 217) | pub fn is_integrated(&self) -> bool { type VkContext (line 52) | pub struct VkContext { method new (line 223) | pub unsafe fn new(window: Arc, debug: bool) -> ... method drop (line 509) | fn drop(&mut self) { function contains (line 531) | fn contains(list: &[CString], str: &'static CStr) -> bool { function init_tracy_context (line 535) | fn init_tracy_context( function select_memory_type (line 596) | pub fn select_memory_type( function get_queue_with_command_pool (line 620) | fn get_queue_with_command_pool(device: &ash::Device, idx: u32) -> Result... function create_command_buffer (line 637) | pub fn create_command_buffer( type VkImage (line 657) | pub struct VkImage { method new (line 667) | pub fn new( method wrap (line 714) | pub fn wrap( method extent (line 732) | pub fn extent(&self) -> vk::Extent2D { method rect (line 739) | pub fn rect(&self) -> vk::Rect2D { method drop (line 748) | fn drop(&mut self) { function bind_memory_for_image (line 756) | pub unsafe fn bind_memory_for_image( function create_image_view (line 797) | pub unsafe fn create_image_view( type VkHostBuffer (line 834) | pub struct VkHostBuffer { function create_host_buffer (line 840) | pub fn create_host_buffer( function destroy_host_buffer (line 877) | pub unsafe fn destroy_host_buffer(device: &ash::Device, buffer: &VkHostB... type VkTimestampQueryPool (line 883) | pub struct VkTimestampQueryPool { method cmd_reset (line 889) | pub unsafe fn cmd_reset(&self, device: &ash::Device, command_buffer: v... method fetch_results (line 893) | pub fn fetch_results(&self, device: &ash::Device) -> anyhow::Result Result Result anyhow::Result... function create_ycbcr_sampler_conversion (line 954) | pub fn create_ycbcr_sampler_conversion( function get_ycbcr_conversion_properties (line 982) | pub fn get_ycbcr_conversion_properties( function vulkan_debug_utils_callback (line 1007) | unsafe extern "system" fn vulkan_debug_utils_callback( function cmd_image_barrier (line 1034) | pub fn cmd_image_barrier( FILE: mm-docgen/src/bin/config-docgen.rs constant FRONT_MATTER (line 11) | const FRONT_MATTER: &str = r#" function main (line 20) | fn main() { FILE: mm-docgen/src/bin/protocol-docgen.rs constant FRONT_MATTER (line 9) | const FRONT_MATTER: &str = r#" function main (line 18) | fn main() { function emit_comments (line 57) | fn emit_comments(lines: &mut Vec) { function emit_message_code_block (line 77) | fn emit_message_code_block(lines: &mut Vec) { FILE: mm-protocol/build.rs function main (line 5) | fn main() -> std::io::Result<()> { FILE: mm-protocol/src/lib.rs type ProtobufError (line 16) | enum ProtobufError { type ProtocolError (line 24) | pub enum ProtocolError { constant MAX_MESSAGE_SIZE (line 39) | pub const MAX_MESSAGE_SIZE: usize = 1048576; constant ALPN_PROTOCOL_VERSION (line 42) | pub const ALPN_PROTOCOL_VERSION: &[u8] = b"mm00"; function decode_message (line 143) | pub fn decode_message(buf: &[u8]) -> Result<(MessageType, usize), Protoc... function encode_message (line 174) | pub fn encode_message(msg: &MessageType, buf: &mut [u8]) -> Result Resul... function get_varint32 (line 215) | fn get_varint32(buf: &mut octets::Octets) -> Result { function invalid_message_type (line 275) | fn invalid_message_type() { FILE: mm-protocol/src/timestamp.rs type Error (line 10) | type Error = ProtocolError; function try_from (line 12) | fn try_from(value: Timestamp) -> Result { method from (line 25) | fn from(value: time::SystemTime) -> Self { FILE: mm-server/build.rs function main (line 11) | fn main() { function compile_shader (line 76) | fn compile_shader<'a>( function save_keymap (line 114) | fn save_keymap( FILE: mm-server/src/codec.rs type VideoCodec (line 14) | pub enum VideoCodec { type Error (line 27) | type Error = anyhow::Error; method try_from (line 29) | fn try_from(codec: protocol::VideoCodec) -> anyhow::Result { type AudioCodec (line 22) | pub enum AudioCodec { type Error (line 50) | type Error = anyhow::Error; method try_from (line 52) | fn try_from(codec: protocol::AudioCodec) -> anyhow::Result { function from (line 40) | fn from(codec: VideoCodec) -> Self { function from (line 61) | fn from(codec: AudioCodec) -> Self { function probe_codec (line 68) | pub fn probe_codec(_vk: Arc, codec: VideoCodec) -> bool { FILE: mm-server/src/color.rs type ColorSpace (line 13) | pub enum ColorSpace { method from_primaries_and_tf (line 25) | pub fn from_primaries_and_tf( type VideoProfile (line 40) | pub enum VideoProfile { type Error (line 48) | type Error = String; method try_from (line 50) | fn try_from(profile: protocol::VideoProfile) -> Result Self { type TransferFunction (line 69) | pub enum TransferFunction { type Primaries (line 76) | pub enum Primaries { FILE: mm-server/src/config.rs constant MAX_APP_PATH_COMPONENTS (line 27) | const MAX_APP_PATH_COMPONENTS: usize = 8; constant MAX_IMAGE_SIZE (line 28) | pub const MAX_IMAGE_SIZE: u64 = 1024 * 1024; type NonZeroOrInf (line 38) | pub(super) enum NonZeroOrInf { method deserialize (line 44) | fn deserialize(deserializer: D) -> Result type Config (line 72) | pub(super) struct Config { method new (line 170) | pub fn new(path: Option<&PathBuf>, includes: &[PathBuf]) -> anyhow::Re... method build (line 191) | fn build(cfg: Option, includes: &[PathBuf]) -> anyhow:... method validate (line 277) | fn validate(&self) -> anyhow::Result<()> { type ServerConfig (line 86) | pub(super) struct ServerConfig { type DefaultAppSettings (line 101) | pub(super) struct DefaultAppSettings { type AppConfig (line 111) | pub(super) struct AppConfig { type Config (line 127) | pub struct Config { method new (line 170) | pub fn new(path: Option<&PathBuf>, includes: &[PathBuf]) -> anyhow::Re... method build (line 191) | fn build(cfg: Option, includes: &[PathBuf]) -> anyhow:... method validate (line 277) | fn validate(&self) -> anyhow::Result<()> { type ServerConfig (line 136) | pub struct ServerConfig { type AppConfig (line 150) | pub struct AppConfig { type HomeIsolationMode (line 163) | pub enum HomeIsolationMode { method default (line 323) | fn default() -> Self { function collect_includes (line 328) | fn collect_includes(p: impl AsRef) -> anyhow::Result) -> anyhow::Result<(String, parsed::... function locate_default_config_file (line 372) | fn locate_default_config_file() -> Option { function validate_app (line 385) | fn validate_app( function validate_app_path (line 466) | fn validate_app_path(p: String) -> anyhow::Result> { function validate_app_path_component (line 485) | fn validate_app_path_component(component: Component) -> Option { function config_from_str (line 519) | fn config_from_str(s: &str) -> anyhow::Result { function test_default (line 525) | fn test_default() { function test_only_app (line 536) | fn test_only_app() { function tls_required_for_global_addr (line 557) | fn tls_required_for_global_addr() { function tls_required_for_unspecified (line 582) | fn tls_required_for_unspecified() { function tls_not_required_for_tailscale (line 605) | fn tls_not_required_for_tailscale() { function app_paths (line 622) | fn app_paths() { FILE: mm-server/src/container.rs type ContainerHandle (line 23) | pub struct ContainerHandle { method pid (line 37) | pub fn pid(&self) -> Pid { method pidfd (line 41) | pub(crate) fn pidfd(&self) -> BorrowedFd<'_> { method signal (line 45) | pub fn signal(&mut self, signal: Signal) -> anyhow::Result<()> { method wait (line 52) | pub fn wait(&mut self) -> anyhow::Result<()> { method fs_mount (line 68) | pub fn fs_mount( method fuse_mount (line 90) | pub fn fuse_mount( method as_fd (line 31) | fn as_fd(&self) -> BorrowedFd<'_> { method drop (line 103) | fn drop(&mut self) { FILE: mm-server/src/container/ipc.rs type EventfdBarrier (line 12) | pub struct EventfdBarrier { method new (line 19) | pub fn new() -> io::Result<(Self, Self)> { method sync (line 37) | pub fn sync(&self, timeout: time::Duration) -> rustix::io::Result<()> { function fd_oneshot (line 51) | pub fn fd_oneshot() -> io::Result<(FdSender, FdReceiver)> { type FdSender (line 56) | pub struct FdSender(uds::UnixSeqpacketConn); method send_timeout (line 59) | pub fn send_timeout(self, fd: OwnedFd, timeout: time::Duration) -> io:... type FdReceiver (line 70) | pub struct FdReceiver(uds::UnixSeqpacketConn); method recv_timeout (line 73) | pub fn recv_timeout(self, timeout: time::Duration) -> io::Result rustix::io::Result<()> { function wait_eventfd (line 100) | fn wait_eventfd(fd: impl AsFd, timeout: time::Duration) -> rustix::io::R... FILE: mm-server/src/container/runtime.rs constant SYNC_TIMEOUT (line 40) | const SYNC_TIMEOUT: time::Duration = time::Duration::from_secs(5); constant SYNC_TIMEOUT (line 43) | const SYNC_TIMEOUT: time::Duration = time::Duration::from_secs(1); type DevBindMount (line 46) | struct DevBindMount { constant DEV_BIND_MOUNTS (line 51) | const DEV_BIND_MOUNTS: &[DevBindMount] = &[ type UnbufferedStderr (line 112) | struct UnbufferedStderr<'a>(BorrowedFd<'a>); function write_str (line 116) | fn write_str(&mut self, s: &str) -> std::fmt::Result { function _must (line 139) | unsafe fn _must(_op: &str, res: rustix::io::Result) -> T { type SetupHook (line 167) | type SetupHook = Box anyhow::... type Container (line 182) | pub struct Container { method new (line 209) | pub fn new( method intern_run_path (line 300) | pub fn intern_run_path(&self) -> &Path { method extern_run_path (line 304) | pub fn extern_run_path(&self) -> &Path { method bind_mount (line 308) | pub fn bind_mount(&mut self, src: impl AsRef, dst: impl AsRef, dst: impl... method setup_hook (line 318) | pub fn setup_hook( method pre_exec (line 325) | pub unsafe fn pre_exec(&mut self, f: impl FnMut() -> io::Result<()> + ... method set_env (line 329) | pub fn set_env(&mut self, key: K, val: V) method set_stdout (line 337) | pub fn set_stdout(&mut self, stdio: T) -> anyhow::Result<()> { method set_stderr (line 344) | pub fn set_stderr(&mut self, stdio: T) -> anyhow::Result<()> { method spawn (line 354) | pub fn spawn(mut self) -> anyhow::Result { method child_after_fork (line 427) | unsafe fn child_after_fork( function set_uid_map (line 650) | fn set_uid_map(child_pid: i32, uid: rustix::fs::Uid, gid: rustix::fs::Gi... function run_in_container (line 683) | fn run_in_container(ns_pidfd: impl AsFd, stderr: Option, mode: impl Into) -> rustix::io::R... function detach_mount (line 838) | fn detach_mount(path: impl AsRef) -> rustix::io::Result { function reattach_mount (line 848) | fn reattach_mount(fd: OwnedFd, path: impl AsRef) -> rustix::io::Re... function mount_fs (line 858) | fn mount_fs( function sync_barrier (line 892) | fn sync_barrier(barrier: &ipc::EventfdBarrier) -> rustix::io::Result<()> { function make_putenv (line 897) | fn make_putenv(k: impl AsRef, v: impl AsRef) -> CString { function validate_exe (line 907) | fn validate_exe(p: impl AsRef) -> anyhow::Result { function echo (line 938) | fn echo() -> anyhow::Result<()> { function test_validate_exe (line 955) | fn test_validate_exe() { FILE: mm-server/src/encoder.rs type Encoder (line 34) | pub enum Encoder { method new (line 40) | pub fn new( method submit_encode (line 53) | pub unsafe fn submit_encode( method input_format (line 65) | pub fn input_format(&self) -> vk::Format { method create_input_image (line 72) | pub fn create_input_image(&mut self) -> anyhow::Result { method request_refresh (line 79) | pub fn request_refresh(&mut self) { type EncoderInner (line 87) | struct EncoderInner { method new (line 110) | pub fn new( method create_input_image (line 281) | fn create_input_image(&self, profile: &mut vk::VideoProfileInfoKHR) ->... method submit_encode (line 350) | pub unsafe fn submit_encode( method drop (line 707) | fn drop(&mut self) { type EncoderOutputFrame (line 743) | struct EncoderOutputFrame { method new (line 771) | pub fn new( type TracingContext (line 763) | struct TracingContext { method drop (line 879) | fn drop(&mut self) { type Sink (line 900) | pub trait Sink: Send + 'static { method write_frame (line 901) | fn write_frame( type QueryResults (line 912) | struct QueryResults { function writer_thread (line 921) | fn writer_thread( function list_format_props (line 1011) | fn list_format_props<'a>( function bind_session_memory (line 1031) | fn bind_session_memory( function default_profile (line 1090) | fn default_profile(op: vk::VideoCodecOperationFlagsKHR) -> vk::VideoProf... function default_hdr10_profile (line 1098) | fn default_hdr10_profile(op: vk::VideoCodecOperationFlagsKHR) -> vk::Vid... function default_encode_usage (line 1106) | fn default_encode_usage(driver_version: DriverVersion) -> vk::VideoEncod... function single_profile_list_info (line 1120) | fn single_profile_list_info<'a>( function default_structure (line 1130) | fn default_structure( FILE: mm-server/src/encoder/dpb.rs type DpbPicture (line 12) | pub struct DpbPicture { type DpbPool (line 21) | pub struct DpbPool { method new (line 31) | pub fn new( method new_separate_images (line 65) | pub fn new_separate_images( method setup_pic (line 104) | pub fn setup_pic(&self) -> DpbPicture { method get_pic (line 116) | pub fn get_pic(&self, id: u32) -> Option { method mark_active (line 127) | pub fn mark_active(&mut self, slot: usize, id: u32) { method mark_inactive (line 136) | pub fn mark_inactive(&mut self, slot: usize) { method clear (line 142) | pub fn clear(&mut self) { function create_dpb_image (line 151) | fn create_dpb_image( FILE: mm-server/src/encoder/gop_structure.rs type GopFrame (line 7) | pub struct GopFrame { type HierarchicalP (line 29) | pub struct HierarchicalP { method new (line 40) | pub fn new(layers: u32, gop_size: u32) -> Self { method next_frame (line 57) | pub fn next_frame(&mut self) -> GopFrame { method request_refresh (line 108) | pub fn request_refresh(&mut self) { method required_dpb_size (line 112) | pub fn required_dpb_size(&self) -> usize { method layer_framerate (line 119) | pub fn layer_framerate(&self, layer: u32, base_framerate: u32) -> (u32... function temporal_layer (line 131) | fn temporal_layer(frame: u32, layers: u32) -> u32 { function test_temporal_layer_4_layers (line 144) | fn test_temporal_layer_4_layers() { function test_gop (line 156) | fn test_gop() { function test_flat (line 234) | fn test_flat() { FILE: mm-server/src/encoder/h264.rs type H264Metadata (line 46) | struct H264Metadata { type H264Encoder (line 51) | pub struct H264Encoder { method new (line 65) | pub fn new( method submit_encode (line 296) | pub unsafe fn submit_encode( method input_format (line 529) | pub fn input_format(&self) -> vk::Format { method create_input_image (line 533) | pub fn create_input_image(&mut self) -> anyhow::Result { method request_refresh (line 537) | pub fn request_refresh(&mut self) { FILE: mm-server/src/encoder/h265.rs type H265Metadata (line 42) | struct H265Metadata { type H265Encoder (line 48) | pub struct H265Encoder { method new (line 62) | pub fn new( method submit_encode (line 382) | pub unsafe fn submit_encode( method input_format (line 663) | pub fn input_format(&self) -> vk::Format { method create_input_image (line 667) | pub fn create_input_image(&mut self) -> anyhow::Result { method request_refresh (line 671) | pub fn request_refresh(&mut self) { FILE: mm-server/src/encoder/rate_control.rs constant BASELINE_AVG_BITRATE_MBPS (line 13) | const BASELINE_AVG_BITRATE_MBPS: [f32; 10] = [2.5, 3.0, 4.0, 5.0, 6.0, 8... constant BASELINE_PEAK_BITRATE_MBPS (line 14) | const BASELINE_PEAK_BITRATE_MBPS: [f32; 10] = constant BASELINE_DIMS (line 16) | const BASELINE_DIMS: f32 = 1920.0 * 1080.0; constant VBV_SIZE (line 17) | const VBV_SIZE: u32 = 2500; type RateControlMode (line 20) | pub enum RateControlMode { method as_vk_flags (line 27) | pub fn as_vk_flags(&self) -> vk::VideoEncodeRateControlModeFlagsKHR { type CascadingQp (line 37) | pub struct CascadingQp { method layer (line 43) | pub fn layer(&self, layer: u32) -> u32 { type VbrSettings (line 49) | pub struct VbrSettings { type LayeredVbr (line 57) | pub struct LayeredVbr { method layer (line 65) | pub fn layer(&self, layer: u32) -> VbrSettings { function select_rc_mode (line 82) | pub fn select_rc_mode( function layer_qp (line 141) | fn layer_qp(target_qp: u32, layer: u32) -> u32 { FILE: mm-server/src/encoder/stats.rs type EncodeStats (line 10) | pub struct EncodeStats { method record_frame_size (line 79) | pub fn record_frame_size(&self, is_keyframe: bool, layer: u32, len: us... method fmt (line 100) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Inner (line 14) | struct Inner { method default (line 22) | fn default() -> Self { type LayerStats (line 34) | struct LayerStats { method new (line 42) | fn new(start: time::Instant) -> Self { method record_frame_size (line 51) | fn record_frame_size(&mut self, len: usize) { method fmt (line 65) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function calculate_rate (line 116) | fn calculate_rate(dur: time::Duration, total: u64) -> f32 { FILE: mm-server/src/main.rs type Cli (line 33) | struct Cli { function main (line 57) | fn main() -> Result<()> { function init_logging (line 141) | fn init_logging(bug_report_dir: Option>) -> Result<()> { function preflight_checks (line 181) | fn preflight_checks(cfg: &config::Config, vk: &vulkan::VkContext) -> any... function linux_version (line 229) | fn linux_version() -> Option<(u32, u32)> { function sysctl (line 241) | fn sysctl(name: &str) -> bool { function save_vulkaninfo (line 250) | fn save_vulkaninfo(bug_report_dir: impl AsRef) { function test_linux_version (line 263) | fn test_linux_version() { FILE: mm-server/src/pixel_scale.rs type PixelScale (line 11) | pub struct PixelScale(pub u32, pub u32); constant ONE (line 14) | pub const ONE: Self = Self(1, 1); method is_fractional (line 16) | pub fn is_fractional(&self) -> bool { method ceil (line 20) | pub fn ceil(self) -> Self { method fmt (line 26) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Error (line 47) | type Error = anyhow::Error; method try_from (line 49) | fn try_from(scale: protocol::PixelScale) -> anyhow::Result { method default (line 32) | fn default() -> Self { type FractionalScaleError (line 38) | pub struct FractionalScaleError; method fmt (line 41) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { function from (line 65) | fn from(value: PixelScale) -> Self { type Error (line 71) | type Error = FractionalScaleError; function try_from (line 73) | fn try_from(value: PixelScale) -> Result { function from (line 83) | fn from(scale: PixelScale) -> Self { FILE: mm-server/src/server.rs constant MAX_QUIC_PACKET_SIZE (line 34) | const MAX_QUIC_PACKET_SIZE: usize = 1350; constant SOCKET (line 36) | const SOCKET: mio::Token = mio::Token(0); constant WAKER (line 37) | const WAKER: mio::Token = mio::Token(1); type Server (line 39) | pub struct Server { method new (line 90) | pub fn new( method local_addr (line 193) | pub fn local_addr(&self) -> anyhow::Result { method closer (line 197) | pub fn closer(&self) -> WakingSender<()> { method run (line 202) | pub fn run(&mut self) -> anyhow::Result<()> { method recv (line 485) | fn recv(&mut self, mut pkt: BytesMut, from: SocketAddr) -> anyhow::Res... type Outgoing (line 61) | struct Outgoing { type StreamWorker (line 66) | pub struct StreamWorker { type ClientConnection (line 72) | pub struct ClientConnection { method update_timeout (line 695) | fn update_timeout(&mut self) -> anyhow::Result<()> { method read_messages (line 705) | fn read_messages( method write_message (line 776) | fn write_message( method flush_partial_write (line 818) | fn flush_partial_write(&mut self, sid: u64) -> anyhow::Result { method send_dgram (line 847) | fn send_dgram(&mut self, msg: Vec) -> anyhow::Result<()> { method err_stream (line 862) | fn err_stream( method send_periodic_keepalive (line 883) | fn send_periodic_keepalive(&mut self) -> quiche::Result<()> { function self_signed_tls_ctx (line 674) | fn self_signed_tls_ctx(addr: SocketAddr) -> anyhow::Result quiche::ConnectionId<'static> { FILE: mm-server/src/server/handlers.rs type ServerError (line 26) | struct ServerError(protocol::error::ErrorCode, Option); type Context (line 28) | struct Context { method send_err (line 37) | fn send_err(&self, err: ServerError) { type Result (line 55) | type Result = std::result::Result; function dispatch (line 57) | pub fn dispatch( function roundtrip (line 113) | fn roundtrip(f: F, ctx: &Context, req: Req) function list_applications (line 131) | fn list_applications( function fetch_img (line 156) | fn fetch_img( function launch_session (line 197) | fn launch_session( function list_sessions (line 273) | fn list_sessions(ctx: &Context, _msg: protocol::ListSessions) -> Result<... function update_session (line 292) | fn update_session(ctx: &Context, msg: protocol::UpdateSession) -> Result... function end_session (line 321) | fn end_session(ctx: &Context, msg: protocol::EndSession) -> Result Vec, max_size: u64) -> anyhow::Result { function test_read_file (line 366) | fn test_read_file() -> anyhow::Result<()> { FILE: mm-server/src/server/handlers/attachment.rs function from (line 23) | fn from(params: DisplayParams) -> Self { type AttachmentHandler (line 35) | struct AttachmentHandler<'a> { type AttachmentError (line 57) | enum AttachmentError { function attach (line 62) | pub fn attach(ctx: &super::Context, msg: protocol::Attach) -> Result<(),... function new (line 78) | fn new(ctx: &'a super::Context, msg: protocol::Attach) -> Result Result<(), ServerError> { function handle_attachment_message (line 265) | fn handle_attachment_message( function handle_session_event (line 535) | fn handle_session_event(&mut self, event: SessionEvent) -> Result<(), At... function send (line 644) | fn send(&self, msg: impl Into) { function key_to_evdev (line 649) | fn key_to_evdev(key: protocol::keyboard_input::Key) -> Option { function axis_to_evdev (line 788) | fn axis_to_evdev(axis: protocol::gamepad_motion::GamepadAxis) -> Option<... function gamepad_button_to_evdev (line 801) | fn gamepad_button_to_evdev(button: protocol::gamepad_input::GamepadButto... function cursor_icon_to_proto (line 829) | fn cursor_icon_to_proto(icon: cursor_icon::CursorIcon) -> protocol::upda... FILE: mm-server/src/server/handlers/attachment/stats.rs type AttachmentStats (line 10) | pub struct AttachmentStats { method new (line 21) | pub fn new(app_id: String) -> Self { method record_frame (line 35) | pub fn record_frame(&mut self, _seq: u64, len: usize, duration: time::... FILE: mm-server/src/server/handlers/validation.rs type ValidationError (line 18) | pub enum ValidationError { type Result (line 23) | type Result = std::result::Result; function validate_display_params (line 25) | pub fn validate_display_params( function validate_attachment (line 46) | pub fn validate_attachment( function validate_resolution (line 74) | pub fn validate_resolution(resolution: Option) -> Result... function validate_ui_scale (line 91) | pub fn validate_ui_scale(ui_scale: Option) -> Resu... function validate_profile (line 104) | fn validate_profile(profile: i32) -> Result { function validate_video_codec (line 119) | pub fn validate_video_codec(codec: i32) -> Result { function validate_preset (line 132) | pub fn validate_preset(preset: u32) -> Result { function validate_framerate (line 139) | pub fn validate_framerate(framerate: u32) -> Result { function validate_audio_codec (line 146) | pub fn validate_audio_codec(codec: i32) -> Result { function validate_sample_rate (line 159) | pub fn validate_sample_rate(sample_rate: u32) -> Result { function validate_channels (line 169) | pub fn validate_channels(channels: Option) -> R... function validate_gamepad (line 191) | pub fn validate_gamepad(gamepad: Option) -> Result<(u... function validate_gamepad_id (line 201) | pub fn validate_gamepad_id(id: u64) -> Result { function validate_gamepad_layout (line 209) | pub fn validate_gamepad_layout(layout: i32) -> Result { FILE: mm-server/src/server/mdns.rs type MdnsService (line 10) | pub struct MdnsService { method new (line 16) | pub fn new( method drop (line 71) | fn drop(&mut self) { function mdns_hostname (line 96) | fn mdns_hostname() -> anyhow::Result { function mdns_instance_name (line 113) | fn mdns_instance_name(hostname: &str) -> anyhow::Result { FILE: mm-server/src/server/sendmmsg.rs type SendMmsg (line 15) | pub struct SendMmsg<'a> { function sendmsg (line 23) | pub fn sendmsg(mut self, buf: &'a [u8], addr: SocketAddr, txtime: time::... function finish (line 34) | pub fn finish(&mut self, fd: &impl AsRawFd) -> Result<(), nix::Error> { function new (line 64) | pub fn new<'a>() -> SendMmsg<'a> { function set_so_txtime (line 69) | pub fn set_so_txtime(sock: &impl AsFd) -> anyhow::Result<()> { function std_time_to_u64 (line 81) | fn std_time_to_u64(time: &std::time::Instant) -> u64 { FILE: mm-server/src/server/stream.rs type StreamWriter (line 14) | pub struct StreamWriter { method new (line 31) | pub fn new( method write_video_frame (line 64) | pub fn write_video_frame( method write_audio_frame (line 128) | pub fn write_audio_frame( type Chunk (line 183) | pub struct Chunk { function iter_chunks (line 190) | pub fn iter_chunks( function iter_chunks_fec (line 228) | fn iter_chunks_fec(buf: Bytes, mtu: usize, ratio: f32) -> impl Iterator<... function test_iter_chunks (line 254) | fn test_iter_chunks() { function test_iter_chunks_fec (line 279) | fn test_iter_chunks_fec() { FILE: mm-server/src/session.rs constant ATTACH_TIMEOUT (line 33) | const ATTACH_TIMEOUT: time::Duration = time::Duration::from_secs(10); type Session (line 35) | pub struct Session { method launch (line 63) | pub fn launch( method update_display_params (line 133) | pub fn update_display_params(&mut self, display_params: DisplayParams)... method attach (line 153) | pub fn attach( method detach (line 210) | pub fn detach(&mut self, attachment: Attachment) -> anyhow::Result<()> { method stop (line 229) | pub fn stop(self) -> anyhow::Result<()> { method supports_stream (line 243) | pub fn supports_stream(&self, params: VideoStreamParams) -> bool { type Attachment (line 53) | pub struct Attachment { FILE: mm-server/src/session/audio.rs type EncodeFrame (line 21) | struct EncodeFrame { type Encoder (line 26) | struct Encoder { method drop (line 32) | fn drop(&mut self) { type EncodePipeline (line 45) | pub struct EncodePipeline { method new (line 57) | pub fn new( method stop_stream (line 93) | pub fn stop_stream(&mut self) { method restart_stream (line 97) | pub fn restart_stream(&mut self, params: AudioStreamParams) -> anyhow:... method drop (line 186) | fn drop(&mut self) { FILE: mm-server/src/session/audio/buffer.rs type PlaybackBuffer (line 12) | pub enum PlaybackBuffer function new (line 27) | pub fn new(sample_spec: pulse::SampleSpec, output_spec: pulse::SampleSpe... function buffer (line 52) | fn buffer(&self) -> &Buffer { function buffer_mut (line 59) | fn buffer_mut(&mut self) -> &mut Buffer { function len_bytes (line 66) | pub fn len_bytes(&self) -> usize { function len_frames (line 70) | pub fn len_frames(&self) -> usize { function is_empty (line 74) | pub fn is_empty(&self) -> bool { function write (line 78) | pub fn write(&mut self, payload: &[u8]) { function drain (line 86) | pub fn drain(&mut self, num_frames: usize) -> Option { type Frame (line 124) | type Frame = L::Frame; function next (line 126) | fn next(&mut self) -> Self::Frame { function is_exhausted (line 133) | fn is_exhausted(&self) -> bool { type Buffer (line 141) | pub struct Buffer function new (line 155) | pub fn new(sample_spec: pulse::SampleSpec) -> Self { function len_bytes (line 164) | fn len_bytes(&self) -> usize { function len_frames (line 168) | fn len_frames(&self) -> usize { function read_frame (line 173) | fn read_frame(&mut self) -> Option { function read_sample (line 190) | fn read_sample(&mut self) -> Option { function drain (line 211) | fn drain(&mut self, num_frames: usize) -> Option> { type Frame (line 227) | type Frame = F; function next (line 229) | fn next(&mut self) -> Self::Frame { type Drain (line 235) | struct Drain<'a, S: dasp::Signal> { type Frame (line 241) | type Frame = S::Frame; function is_exhausted (line 243) | fn is_exhausted(&self) -> bool { function next (line 247) | fn next(&mut self) -> Self::Frame { method drop (line 258) | fn drop(&mut self) { function passthrough (line 277) | fn passthrough() { function downmix (line 314) | fn downmix() { FILE: mm-server/src/session/audio/pulse.rs constant WAKER (line 26) | const WAKER: mio::Token = mio::Token(0); constant LISTENER (line 27) | const LISTENER: mio::Token = mio::Token(1); constant CLOCK (line 28) | const CLOCK: mio::Token = mio::Token(2); constant CAPTURE_SAMPLE_RATE (line 31) | pub const CAPTURE_SAMPLE_RATE: u32 = 48000; constant CAPTURE_CHANNEL_COUNT (line 32) | pub const CAPTURE_CHANNEL_COUNT: u32 = 2; constant CAPTURE_SPEC (line 33) | pub const CAPTURE_SPEC: pulse::SampleSpec = pulse::SampleSpec { constant CLOCK_RATE_HZ (line 40) | const CLOCK_RATE_HZ: u32 = 100; constant SINK_NAME (line 42) | const SINK_NAME: &CStr = cstr!("magic_mirror"); type StreamState (line 45) | pub enum StreamState { type PlaybackStream (line 52) | struct PlaybackStream { type Client (line 62) | struct Client { type ServerState (line 71) | struct ServerState { type PulseServer (line 79) | pub struct PulseServer { method new (line 93) | pub fn new( method run (line 210) | pub fn run(&mut self) -> anyhow::Result<()> { method recv (line 292) | fn recv(&mut self, client_token: mio::Token) -> anyhow::Result<()> { method clock_tick (line 366) | fn clock_tick(&mut self) -> anyhow::Result<()> { function handle_command (line 494) | fn handle_command( function sample_spec_from_format (line 786) | fn sample_spec_from_format(f: &pulse::FormatInfo) -> anyhow::Result anyhow::Result<&str> { function handle_stream_write (line 834) | fn handle_stream_write( function configure_buffer (line 902) | fn configure_buffer(attr: &mut pulse::stream::BufferAttr, spec: &pulse::... function write_reply (line 956) | fn write_reply( FILE: mm-server/src/session/compositor.rs type Compositor (line 54) | pub struct Compositor { method new (line 84) | pub fn new( method update_display_params (line 119) | pub fn update_display_params( method composite_frame (line 171) | pub fn composite_frame( method idle (line 242) | pub fn idle(&mut self, active: bool) -> anyhow::Result<()> { type ClientState (line 266) | pub struct ClientState { method initialized (line 271) | fn initialized(&self, _client_id: wayland_server::backend::ClientId) {} method disconnected (line 272) | fn disconnected( function create_globals (line 280) | pub fn create_globals(dh: &wayland_server::DisplayHandle) { function create_global (line 301) | fn create_global( FILE: mm-server/src/session/compositor/buffers.rs type Buffer (line 29) | pub struct Buffer { method dimensions (line 38) | pub fn dimensions(&self) -> glam::UVec2 { type BufferBacking (line 46) | pub enum BufferBacking { type PlaneMetadata (line 65) | pub struct PlaneMetadata { method release_buffers (line 76) | pub fn release_buffers(&mut self) -> anyhow::Result<()> { function import_shm_buffer (line 146) | pub fn import_shm_buffer( function import_dmabuf_buffer (line 193) | pub fn import_dmabuf_buffer( function validate_buffer_parameters (line 331) | pub fn validate_buffer_parameters( constant DMA_BUF_SYNC_READ (line 373) | pub(super) const DMA_BUF_SYNC_READ: u32 = 1 << 0; constant DMA_BUF_SYNC_WRITE (line 374) | pub(super) const DMA_BUF_SYNC_WRITE: u32 = 1 << 1; type dma_buf_export_sync_file (line 378) | struct dma_buf_export_sync_file { type dma_buf_import_sync_file (line 385) | struct dma_buf_import_sync_file { type ExportSyncFile (line 390) | pub(super) struct ExportSyncFile(dma_buf_export_sync_file); method new (line 393) | pub(super) fn new(flags: u32) -> Self { type Output (line 407) | type Output = RawFd; constant IS_MUTATING (line 409) | const IS_MUTATING: bool = true; method opcode (line 411) | fn opcode(&self) -> Opcode { method as_ptr (line 415) | fn as_ptr(&mut self) -> *mut c_void { method output_from_ptr (line 419) | unsafe fn output_from_ptr( type ImportSyncFile (line 398) | pub(super) struct ImportSyncFile(dma_buf_import_sync_file); method new (line 401) | pub(super) fn new(fd: RawFd, flags: u32) -> Self { type Output (line 435) | type Output = (); constant IS_MUTATING (line 437) | const IS_MUTATING: bool = true; method opcode (line 439) | fn opcode(&self) -> Opcode { method as_ptr (line 443) | fn as_ptr(&mut self) -> *mut c_void { method output_from_ptr (line 447) | unsafe fn output_from_ptr( function import_dmabuf_fence_as_semaphore (line 464) | pub fn import_dmabuf_fence_as_semaphore( function import_sync_file_as_semaphore (line 476) | pub unsafe fn import_sync_file_as_semaphore( function export_sync_file (line 494) | pub unsafe fn export_sync_file(dmabuf: impl AsFd, flags: u32) -> anyhow:... function attach_sync_file (line 507) | pub unsafe fn attach_sync_file( FILE: mm-server/src/session/compositor/buffers/modifiers.rs constant SUPPORTED_DRM_FORMATS (line 21) | pub const SUPPORTED_DRM_FORMATS: &[(DrmFourcc, vk::Format, bool, usize)]... function fourcc_to_vk (line 52) | pub fn fourcc_to_vk(fourcc: DrmFourcc) -> Option<(vk::Format, bool)> { function fourcc_bpp (line 59) | pub fn fourcc_bpp(fourcc: DrmFourcc) -> Option { type CachedDmabufFeedback (line 66) | pub struct CachedDmabufFeedback { method contains (line 73) | pub fn contains(&self, modifier: u64) -> bool { method new (line 79) | pub fn new(vk: Arc) -> anyhow::Result { method emit_dmabuf_feedback (line 129) | pub fn emit_dmabuf_feedback( function query_drm_format_modifiers (line 149) | unsafe fn query_drm_format_modifiers( function verify_dmabuf_support (line 171) | pub unsafe fn verify_dmabuf_support( FILE: mm-server/src/session/compositor/buffers/syncobj_timeline.rs type SyncobjTimeline (line 20) | pub struct SyncobjTimeline(Arc); method import (line 79) | pub fn import( method new_timeline_point (line 93) | pub fn new_timeline_point(&self, value: u64) -> SyncobjTimelinePoint { type TimelineHandle (line 22) | struct TimelineHandle { method drop (line 29) | fn drop(&mut self) { type SyncobjTimelinePoint (line 35) | pub struct SyncobjTimelinePoint { method signal (line 41) | pub fn signal(&self) -> io::Result<()> { method import_as_semaphore (line 51) | pub fn import_as_semaphore(&self, semaphore: vk::Semaphore) -> anyhow:... FILE: mm-server/src/session/compositor/dispatch.rs function make_u64 (line 22) | fn make_u64(hi: u32, lo: u32) -> u64 { FILE: mm-server/src/session/compositor/dispatch/shm.rs type ShmPool (line 21) | pub struct ShmPool { method bind (line 28) | fn bind( method request (line 41) | fn request( method request (line 95) | fn request( method destroyed (line 188) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wl_buffer.rs method request (line 10) | fn request( method destroyed (line 25) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wl_compositor.rs method bind (line 20) | fn bind( method request (line 33) | fn request( method request (line 58) | fn request( method destroyed (line 134) | fn destroyed( method request (line 145) | fn request( method request (line 158) | fn request( FILE: mm-server/src/session/compositor/dispatch/wl_data_device_manager.rs method bind (line 15) | fn bind( method request (line 28) | fn request( method request (line 50) | fn request( method request (line 63) | fn request( FILE: mm-server/src/session/compositor/dispatch/wl_drm.rs method bind (line 8) | fn bind( method request (line 24) | fn request( function dev_path (line 36) | pub fn dev_path(dev: libc::dev_t) -> std::io::Result { FILE: mm-server/src/session/compositor/dispatch/wl_output.rs method bind (line 10) | fn bind( method request (line 26) | fn request( method destroyed (line 37) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wl_seat.rs method bind (line 13) | fn bind( method request (line 27) | fn request( method request (line 57) | fn request( method destroyed (line 94) | fn destroyed( method request (line 105) | fn request( method destroyed (line 116) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wl_shm.rs method bind (line 23) | fn bind( method request (line 38) | fn request( method request (line 83) | fn request( method destroyed (line 174) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wp_fractional_scale.rs method bind (line 15) | fn bind( method request (line 30) | fn request( method request (line 68) | fn request( FILE: mm-server/src/session/compositor/dispatch/wp_linux_dmabuf.rs method bind (line 24) | fn bind( method request (line 37) | fn request( type Params (line 65) | enum Params { method request (line 82) | fn request( function validate_create (line 206) | fn validate_create( method request (line 278) | fn request( FILE: mm-server/src/session/compositor/dispatch/wp_linux_drm_syncobj.rs method bind (line 21) | fn bind( method request (line 36) | fn request( method request (line 89) | fn request( method destroyed (line 140) | fn destroyed( method request (line 160) | fn request( FILE: mm-server/src/session/compositor/dispatch/wp_pointer_constraints.rs method bind (line 15) | fn bind( method request (line 30) | fn request( method request (line 74) | fn request( method destroyed (line 85) | fn destroyed( method request (line 96) | fn request( FILE: mm-server/src/session/compositor/dispatch/wp_presentation.rs method bind (line 11) | fn bind( method request (line 25) | fn request( method request (line 64) | fn request( FILE: mm-server/src/session/compositor/dispatch/wp_relative_pointer.rs method bind (line 15) | fn bind( method request (line 30) | fn request( method request (line 54) | fn request( method destroyed (line 65) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/wp_text_input.rs method bind (line 14) | fn bind( method request (line 27) | fn request( method request (line 49) | fn request( method destroyed (line 60) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/xdg_shell.rs method bind (line 16) | fn bind( method request (line 29) | fn request( method request (line 70) | fn request( method destroyed (line 113) | fn destroyed( method request (line 137) | fn request( method request (line 151) | fn request( method request (line 176) | fn request( method destroyed (line 216) | fn destroyed( FILE: mm-server/src/session/compositor/dispatch/xwayland_shell.rs method bind (line 15) | fn bind( method can_view (line 26) | fn can_view(client: wayland_server::Client, _global_data: &()) -> bool { method request (line 35) | fn request( method request (line 59) | fn request( FILE: mm-server/src/session/compositor/oneshot_render.rs function shm_to_png (line 14) | pub fn shm_to_png(buffer: &VkHostBuffer, format: PlaneMetadata) -> anyho... FILE: mm-server/src/session/compositor/output.rs method emit_output_params (line 10) | pub fn emit_output_params(&mut self) { function configure_output (line 18) | pub fn configure_output(output: &wl_output::WlOutput, params: DisplayPar... FILE: mm-server/src/session/compositor/sealed.rs type SealedFile (line 14) | pub struct SealedFile { method new (line 20) | pub fn new(name: impl AsRef, contents: &[u8]) -> anyhow::Result<... method size (line 42) | pub fn size(&self) -> usize { method as_raw_fd (line 48) | fn as_raw_fd(&self) -> std::os::unix::prelude::RawFd { method as_fd (line 54) | fn as_fd(&self) -> BorrowedFd<'_> { FILE: mm-server/src/session/compositor/seat.rs type KeyState (line 31) | pub enum KeyState { type ButtonState (line 38) | pub enum ButtonState { function from (line 44) | fn from(value: ButtonState) -> Self { type Pointer (line 53) | struct Pointer { type PointerLock (line 59) | struct PointerLock { type Cursor (line 67) | pub enum Cursor { type Seat (line 81) | pub struct Seat { method get_pointer (line 127) | pub fn get_pointer(&mut self, wl_pointer: wl_pointer::WlPointer) { method get_relative_pointer (line 139) | pub fn get_relative_pointer( method get_keyboard (line 148) | pub fn get_keyboard(&mut self, wl_keyboard: wl_keyboard::WlKeyboard) { method get_text_input (line 165) | pub fn get_text_input(&mut self, wp_text_input: zwp_text_input_v3::Zwp... method destroy_pointer (line 169) | pub fn destroy_pointer(&mut self, wl_pointer: &wl_pointer::WlPointer) { method destroy_relative_pointer (line 189) | pub fn destroy_relative_pointer( method destroy_keyboard (line 196) | pub fn destroy_keyboard(&mut self, wl_keyboard: &wl_keyboard::WlKeyboa... method destroy_text_input (line 200) | pub fn destroy_text_input(&mut self, wp_text_input: &zwp_text_input_v3... method lift_pointer (line 204) | pub fn lift_pointer(&mut self, serial: &Serial) { method update_pointer (line 222) | pub fn update_pointer( method relative_pointer_motion (line 281) | pub fn relative_pointer_motion(&mut self, surface_vector: impl Into) { method pointer_axis_discrete (line 326) | pub fn pointer_axis_discrete(&mut self, vector: impl Into) { method pointer_input (line 341) | pub fn pointer_input( method pointer_frame (line 364) | pub fn pointer_frame(&mut self) { method focused_pointers (line 376) | fn focused_pointers(&mut self) -> impl Iterator impl Iterator bool { method text_input_char (line 468) | pub fn text_input_char(&mut self, serial: &Serial, ch: char) { method focused_text_inputs (line 481) | fn focused_text_inputs(&mut self) -> impl Iterator Option { method keyboard_focus (line 498) | pub fn keyboard_focus(&self) -> Option { method pointer_coords (line 502) | pub fn pointer_coords(&self) -> Option { method pointer_locked (line 506) | pub fn pointer_locked(&self) -> Option { method has_lock (line 514) | pub fn has_lock(&self, wl_surface: &wl_surface::WlSurface) -> bool { method create_lock (line 529) | pub fn create_lock( method destroy_lock (line 553) | pub fn destroy_lock(&mut self, wp_locked_pointer: &zwp_locked_pointer_... method default (line 100) | fn default() -> Self { method handle_input_event (line 575) | pub fn handle_input_event(&mut self, ev: ControlMessage) { method update_pointer_lock (line 683) | pub fn update_pointer_lock(&mut self) { method set_cursor (line 729) | pub fn set_cursor(&mut self, wl_pointer: &wl_pointer::WlPointer, cursor:... method dispatch_cursor (line 773) | pub fn dispatch_cursor(&mut self) { method render_cursor (line 801) | pub fn render_cursor(&mut self) -> anyhow::Result<()> { function send_axis_discrete (line 865) | fn send_axis_discrete(pointer: &wl_pointer::WlPointer, axis: wl_pointer:... FILE: mm-server/src/session/compositor/serial.rs type Serial (line 7) | pub struct Serial(AtomicU32); method new (line 12) | pub fn new() -> Self { method next (line 16) | pub fn next(&self) -> u32 { constant START (line 9) | const START: u32 = 1000; FILE: mm-server/src/session/compositor/shm.rs type ShmPool (line 19) | pub struct ShmPool { type Pool (line 26) | pub struct Pool { method new (line 33) | pub fn new(fd: OwnedFd, size: usize) -> anyhow::Result { method data (line 39) | pub fn data(&self, offset: usize, len: usize) -> &[u8] { method resize (line 44) | pub fn resize(&mut self, new_size: usize) -> anyhow::Result<()> { method unmap (line 58) | fn unmap(&mut self) { function map (line 71) | unsafe fn map(fd: impl AsFd, size: usize) -> anyhow::Result<*mut u8> { method drop (line 89) | fn drop(&mut self) { FILE: mm-server/src/session/compositor/stack.rs method map_surface (line 16) | pub fn map_surface(&mut self, id: SurfaceKey, buffer_id: BufferKey) { method unmap_surface (line 51) | pub fn unmap_surface(&mut self, id: SurfaceKey) { method raise_x11_surface (line 64) | pub fn raise_x11_surface(&mut self, serial: u64) { method raise_surface_at (line 75) | fn raise_surface_at(&mut self, position: usize) { method update_focus_and_visibility (line 87) | pub fn update_focus_and_visibility(&mut self, active: bool) -> anyhow::R... method surface_under (line 176) | pub fn surface_under( method surfaces_ready (line 195) | pub fn surfaces_ready(&self) -> bool { FILE: mm-server/src/session/compositor/surface.rs type Surface (line 34) | pub struct Surface { method new (line 59) | pub fn new(wl_surface: wl_surface::WlSurface) -> Self { method reconfigure (line 84) | pub fn reconfigure(&mut self, params: DisplayParams, xwin: Option<&xwa... method surface_coords (line 134) | pub fn surface_coords(&self, coords: impl Into) -> Option... method effective_scale (line 163) | pub fn effective_scale(&self) -> PixelScale { method fmt (line 169) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type DoubleBuffered (line 197) | pub struct DoubleBuffered { method default (line 203) | fn default() -> Self { type CommitResult (line 212) | pub enum CommitResult { function promote (line 219) | pub fn promote(&mut self) -> CommitResult { type SurfaceRole (line 240) | pub enum SurfaceRole { type Visibility (line 252) | pub enum Visibility { type SurfaceConfiguration (line 260) | pub struct SurfaceConfiguration { type PendingBuffer (line 273) | pub enum PendingBuffer { type ContentUpdate (line 279) | pub struct ContentUpdate { type PendingPresentationFeedback (line 298) | pub struct PendingPresentationFeedback( type CommitError (line 303) | pub struct CommitError(pub xdg_surface::Error, pub String); method surface_commit (line 307) | pub fn surface_commit(&mut self, id: SurfaceKey) -> Result<(), CommitErr... method surface_destroyed (line 474) | pub fn surface_destroyed(&mut self, id: SurfaceKey) { method set_surface_role (line 485) | pub fn set_surface_role(&mut self, id: SurfaceKey, role: SurfaceRole) ->... method configure_surfaces (line 497) | pub fn configure_surfaces(&mut self) -> anyhow::Result<()> { method send_presentation_feedback (line 589) | pub fn send_presentation_feedback(&mut self) -> anyhow::Result<()> { function buffer_vector_to_surface (line 631) | pub fn buffer_vector_to_surface(coords: impl Into, scale: P... function surface_vector_to_buffer (line 638) | pub fn surface_vector_to_buffer(coords: impl Into, scale: P... FILE: mm-server/src/session/compositor/xwayland.rs type XWayland (line 24) | pub struct XWayland { method spawn (line 75) | pub fn spawn( method poll_ready (line 161) | pub fn poll_ready(&mut self) -> anyhow::Result anyhow::Result { method display (line 65) | pub fn display(&self) -> String { method inner_path (line 69) | pub fn inner_path(&self) -> PathBuf { function unset_cloexec (line 190) | fn unset_cloexec(socket_fd: impl AsFd) -> Result<(), rustix::io::Errno> { FILE: mm-server/src/session/compositor/xwayland/xwm.rs type XWindow (line 65) | pub struct XWindow { method fmt (line 87) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Xwm (line 110) | pub struct Xwm { method new (line 124) | pub fn new(x11_socket: mio::net::UnixStream) -> anyhow::Result { method display_fd (line 227) | pub fn display_fd(&self) -> BorrowedFd { method xwindow_for_serial (line 231) | pub fn xwindow_for_serial(&self, serial: u64) -> Option<&XWindow> { method configure_window (line 237) | pub fn configure_window( method set_focus (line 327) | pub fn set_focus(&self, window: Option) -> anyhow::Result<()> { method insert_xwayland (line 383) | pub fn insert_xwayland( method dispatch_xwm (line 392) | pub fn dispatch_xwm(&mut self) -> anyhow::Result<()> { method delayed_map_xwin (line 401) | pub fn delayed_map_xwin(&mut self, serial: u64) { function handle_event (line 423) | fn handle_event(state: &mut Compositor, ev: protocol::Event) -> anyhow::... function fetch_string_property (line 783) | fn fetch_string_property( function fetch_class (line 811) | fn fetch_class( function fetch_hints (line 830) | fn fetch_hints( function fetch_protocols (line 841) | fn fetch_protocols( function replace_window_list (line 862) | fn replace_window_list( function get_atom_name (line 877) | fn get_atom_name( FILE: mm-server/src/session/control.rs type DisplayParams (line 16) | pub struct DisplayParams { type VideoStreamParams (line 24) | pub struct VideoStreamParams { type AudioStreamParams (line 33) | pub struct AudioStreamParams { type ControlMessage (line 39) | pub enum ControlMessage { type SessionEvent (line 89) | pub enum SessionEvent { FILE: mm-server/src/session/handle.rs type Client (line 13) | struct Client { type Inner (line 18) | struct Inner { type SessionHandle (line 23) | pub struct SessionHandle(Arc>, Arc); method new (line 26) | pub fn new(waker: Arc) -> Self { method insert_client (line 35) | pub fn insert_client( method remove_client (line 47) | pub fn remove_client(&self, id: u64) { method remove_all (line 51) | pub fn remove_all(&self) { method dispatch (line 55) | pub fn dispatch(&self, event: SessionEvent) { method dispatch_audio_frame (line 62) | pub fn dispatch_audio_frame(&self, pts: u64, frame: bytes::Bytes, stre... method dispatch_video_frame (line 77) | pub fn dispatch_video_frame( method wake (line 101) | pub fn wake(&self) -> std::io::Result<()> { method kick_clients (line 105) | pub fn kick_clients(&self) { method num_attachments (line 112) | pub fn num_attachments(&self) -> usize { FILE: mm-server/src/session/input.rs type GamepadLayout (line 28) | pub enum GamepadLayout { type InputDeviceManager (line 35) | pub struct InputDeviceManager { method new (line 129) | pub fn new(container: &mut Container) -> anyhow::Result { method plug_gamepad (line 186) | pub fn plug_gamepad( type DeviceState (line 40) | struct DeviceState { type InputManagerState (line 48) | struct InputManagerState { method device_by_id (line 54) | fn device_by_id(&self, id: u64) -> Option<&DeviceState> { method device_by_devname (line 58) | fn device_by_devname(&self, name: impl AsRef) -> Option<&Device... method device_by_eventname (line 62) | fn device_by_eventname(&self, name: impl AsRef) -> Option<&Devi... type GamepadHandle (line 70) | pub struct GamepadHandle { method axis (line 76) | pub(crate) fn axis(&mut self, axis_code: u32, value: f64) { method trigger (line 85) | pub(crate) fn trigger(&mut self, trigger_code: u32, value: f64) { method input (line 94) | pub(crate) fn input(&mut self, button_code: u32, state: ButtonState) { method frame (line 119) | pub(crate) fn frame(&mut self) { function run_in_container_with_gamepads (line 274) | fn run_in_container_with_gamepads(cmd: impl AsRef<[T]>) -> anyhow::Re... function list_devices_subsystem (line 304) | fn list_devices_subsystem() -> anyhow::Result<()> { FILE: mm-server/src/session/input/udevfs.rs constant ENOENT (line 20) | const ENOENT: i32 = rustix::io::Errno::NOENT.raw_os_error(); constant UDEV_INPUT_DATA (line 22) | const UDEV_INPUT_DATA: &[u8] = r#"E:ID_INPUT=1 constant ZERO_TTL (line 33) | const ZERO_TTL: time::Duration = time::Duration::ZERO; type Entry (line 36) | struct Entry { type InodeCache (line 43) | struct InodeCache { method get_or_insert (line 50) | fn get_or_insert( method lookup_name (line 78) | fn lookup_name(&self, inode: u64) -> Option<(PathBuf, Option)> { method reply_add_dirs (line 88) | fn reply_add_dirs

( method cache_dir (line 117) | fn cache_dir(&mut self, p: impl AsRef, dev: Option) -> fuse... method cache_file (line 139) | fn cache_file(&mut self, p: impl AsRef, dev: Option, len: u... method cache_symlink (line 161) | fn cache_symlink(&mut self, p: impl AsRef, dev: Option) -> ... type UdevFs (line 194) | pub struct UdevFs { method new (line 200) | pub fn new(state: Arc>) -> Self { method lookup (line 213) | fn lookup( method getattr (line 381) | fn getattr( method readlink (line 396) | fn readlink(&mut self, _req: &fuse::Request<'_>, ino: u64, reply: fuse... method read (line 424) | fn read( method readdir (line 471) | fn readdir( method access (line 558) | fn access(&mut self, _req: &fuse::Request<'_>, _ino: u64, _mask: i32, ... method release (line 562) | fn release( function make_input_uevent (line 576) | fn make_input_uevent(_dev: &DeviceState) -> Vec { function make_evdev_uevent (line 588) | fn make_evdev_uevent(dev: &DeviceState) -> Vec { function matches_prefix_with_name (line 598) | fn matches_prefix_with_name(p: &Path, prefix: impl AsRef) -> Optio... FILE: mm-server/src/session/reactor.rs constant READY_TIMEOUT (line 36) | const READY_TIMEOUT: std::time::Duration = time::Duration::from_secs(30); constant DISPLAY (line 38) | const DISPLAY: mio::Token = mio::Token(0); constant ACCEPT (line 39) | const ACCEPT: mio::Token = mio::Token(1); constant CHILD (line 40) | const CHILD: mio::Token = mio::Token(2); constant WAKER (line 41) | const WAKER: mio::Token = mio::Token(3); constant TIMER (line 42) | const TIMER: mio::Token = mio::Token(4); constant XDISPLAY (line 44) | const XDISPLAY: mio::Token = mio::Token(10); constant XWAYLAND (line 45) | const XWAYLAND: mio::Token = mio::Token(11); constant XWAYLAND_READY (line 46) | const XWAYLAND_READY: mio::Token = mio::Token(12); type Reactor (line 48) | pub struct Reactor { method run (line 86) | pub fn run( method main_loop (line 325) | fn main_loop( method idle (line 470) | fn idle(&mut self) -> anyhow::Result<()> { method active (line 511) | fn active(&self) -> bool { method update_display_params (line 515) | fn update_display_params(&mut self, params: DisplayParams) -> anyhow::... method frame (line 602) | fn frame(&mut self) -> anyhow::Result<()> { method attach (line 636) | fn attach( method handle_control_message (line 663) | fn handle_control_message(&mut self, msg: ControlMessage) -> anyhow::R... function gen_socket_name (line 763) | fn gen_socket_name() -> OsString { function dump_child_output (line 769) | fn dump_child_output(pipe: &mut impl BufRead, debug_log: &mut Option anyhow::Result { method composite_surface (line 217) | pub unsafe fn composite_surface( method end_and_submit (line 365) | pub unsafe fn end_and_submit(&mut self) -> anyhow::Result bool { function cmd_upload_shm (line 726) | pub unsafe fn cmd_upload_shm( function disjoint_plane_formats (line 759) | fn disjoint_plane_formats(format: vk::Format) -> Option<(vk::Format, vk:... FILE: mm-server/src/session/video/composite.rs constant BLEND_FORMAT (line 13) | pub const BLEND_FORMAT: vk::Format = vk::Format::R16G16B16A16_SFLOAT; type SurfaceColorSpace (line 18) | enum SurfaceColorSpace { method from (line 25) | fn from(cs: ColorSpace) -> Self { type SurfacePC (line 37) | struct SurfacePC { type CompositePipeline (line 49) | pub struct CompositePipeline { method new (line 58) | pub fn new(vk: Arc) -> anyhow::Result { method begin_compositing (line 202) | pub unsafe fn begin_compositing(&self, cb: vk::CommandBuffer, render_t... method composite_surface (line 249) | pub unsafe fn composite_surface( method end_compositing (line 311) | pub unsafe fn end_compositing(&self, cb: vk::CommandBuffer) { method drop (line 317) | fn drop(&mut self) { FILE: mm-server/src/session/video/convert.rs type InputTextureColorSpace (line 18) | enum InputTextureColorSpace { method from (line 25) | fn from(cs: ColorSpace) -> Self { type OutputProfile (line 37) | enum OutputProfile { method from (line 43) | fn from(profile: VideoProfile) -> Self { type ConvertPushConstants (line 53) | struct ConvertPushConstants { type ConvertPipeline (line 58) | pub struct ConvertPipeline { method new (line 69) | pub fn new(vk: Arc, semiplanar: bool) -> anyhow::Result>; type ServerState (line 16) | pub struct ServerState { method new (line 27) | pub fn new(vk: Arc, cfg: Config) -> Self { method generate_session_id (line 37) | pub fn generate_session_id(&mut self) -> (usize, u64) { method tick (line 45) | pub fn tick(&mut self) -> anyhow::Result<()> { FILE: mm-server/src/vulkan.rs type Vendor (line 26) | pub enum Vendor { type DriverVersion (line 33) | pub enum DriverVersion { type VkContext (line 39) | pub struct VkContext { method new (line 353) | pub fn new(enable_debug: bool) -> Result { type VkDebugContext (line 56) | pub struct VkDebugContext { type VkQueue (line 62) | pub struct VkQueue { method new (line 72) | pub fn new( type VkDeviceInfo (line 120) | pub struct VkDeviceInfo { method query (line 140) | fn query(instance: &ash::Instance, device: vk::PhysicalDevice) -> Resu... function vulkan_debug_utils_callback (line 633) | unsafe extern "system" fn vulkan_debug_utils_callback( method drop (line 666) | fn drop(&mut self) { function init_tracy_context (line 693) | fn init_tracy_context( function select_memory_type (line 756) | pub fn select_memory_type( type VkImage (line 780) | pub struct VkImage { method new (line 791) | pub fn new( method wrap (line 842) | pub fn wrap( method extent (line 862) | pub fn extent(&self) -> vk::Extent2D { method rect (line 869) | pub fn rect(&self) -> vk::Rect2D { method drop (line 878) | fn drop(&mut self) { function bind_memory_for_image (line 887) | pub unsafe fn bind_memory_for_image( function create_image_view (line 928) | pub unsafe fn create_image_view( type VkHostBuffer (line 963) | pub struct VkHostBuffer { method new (line 974) | pub fn new( method wrap (line 1028) | pub(crate) fn wrap( method copy_from_slice (line 1050) | pub fn copy_from_slice(&mut self, src: &[u8]) { method drop (line 1057) | fn drop(&mut self) { type VkTimestampQueryPool (line 1066) | pub struct VkTimestampQueryPool { method cmd_reset (line 1072) | pub unsafe fn cmd_reset(&self, device: &ash::Device, command_buffer: v... method fetch_results (line 1076) | pub fn fetch_results(&self, device: &ash::Device) -> anyhow::Result anyhow::Result... function allocate_command_buffer (line 1121) | pub fn allocate_command_buffer( function begin_command_buffer (line 1142) | pub unsafe fn begin_command_buffer( function insert_image_barrier (line 1155) | pub fn insert_image_barrier( function contains_extension (line 1196) | fn contains_extension(list: &[CString], str: &CStr) -> bool { FILE: mm-server/src/vulkan/chain.rs function test_chain (line 134) | fn test_chain() { FILE: mm-server/src/vulkan/drm.rs type DrmDevice (line 13) | pub struct DrmDevice(File); method new (line 25) | pub fn new(dev: dev_t) -> anyhow::Result { method as_fd (line 16) | fn as_fd(&self) -> BorrowedFd<'_> { FILE: mm-server/src/vulkan/timeline.rs type VkTimelineSemaphore (line 17) | pub struct VkTimelineSemaphore(Arc); method new (line 56) | pub fn new(vk: Arc, initial_value: u64) -> anyhow::Result, fd: OwnedFd) -> anyhow::Res... method new_point (line 90) | pub fn new_point(&self, value: u64) -> VkTimelinePoint { method as_semaphore (line 94) | pub fn as_semaphore(&self) -> vk::Semaphore { type Inner (line 19) | struct Inner { type VkTimelinePoint (line 25) | pub struct VkTimelinePoint(Arc, u64); type Output (line 34) | type Output = Self; method add (line 36) | fn add(self, rhs: u64) -> Self { method add_assign (line 50) | fn add_assign(&mut self, rhs: u64) { method value (line 100) | pub fn value(&self) -> u64 { method timeline (line 104) | pub fn timeline(&self) -> VkTimelineSemaphore { method wait (line 109) | pub unsafe fn wait(&self) -> anyhow::Result<()> { method signal (line 122) | pub unsafe fn signal(&self) -> anyhow::Result<()> { method poll (line 133) | pub unsafe fn poll(&self) -> anyhow::Result { function from (line 28) | fn from(value: VkTimelinePoint) -> Self { type Output (line 42) | type Output = VkTimelinePoint; function add (line 44) | fn add(self, rhs: u64) -> Self::Output { method drop (line 141) | fn drop(&mut self) { FILE: mm-server/src/vulkan/video.rs type VideoQueueExt (line 9) | pub struct VideoQueueExt { method new (line 16) | pub fn new(entry: &ash::Entry, instance: &ash::Instance, device: &ash:... method name (line 26) | pub fn name() -> &'static std::ffi::CStr { method bind_video_session_memory (line 32) | pub unsafe fn bind_video_session_memory( method cmd_begin_video_coding (line 49) | pub unsafe fn cmd_begin_video_coding( method cmd_control_video_coding (line 59) | pub unsafe fn cmd_control_video_coding( method cmd_end_video_coding (line 69) | pub unsafe fn cmd_end_video_coding( method create_video_session (line 79) | pub unsafe fn create_video_session( method create_video_session_parameters (line 96) | pub unsafe fn create_video_session_parameters( method destroy_video_session (line 113) | pub unsafe fn destroy_video_session( method destroy_video_session_parameters (line 127) | pub unsafe fn destroy_video_session_parameters( method get_physical_device_video_capabilities (line 141) | pub unsafe fn get_physical_device_video_capabilities( method get_physical_device_video_format_properties (line 157) | pub unsafe fn get_physical_device_video_format_properties( method get_video_session_memory_requirements (line 174) | pub unsafe fn get_video_session_memory_requirements( method update_video_session_parameters (line 190) | pub unsafe fn update_video_session_parameters( type VideoDecodeQueueExt (line 204) | pub struct VideoDecodeQueueExt { method new (line 210) | pub fn new(entry: &ash::Entry, instance: &ash::Instance) -> Self { method cmd_decode_video (line 220) | pub unsafe fn cmd_decode_video( type VideoEncodeQueueExt (line 229) | pub struct VideoEncodeQueueExt { method new (line 236) | pub fn new(entry: &ash::Entry, instance: &ash::Instance, device: &ash:... method get_physical_device_video_encode_quality_level_properties (line 247) | pub unsafe fn get_physical_device_video_encode_quality_level_properties( method cmd_encode_video (line 265) | pub unsafe fn cmd_encode_video( method get_encoded_video_session_parameters (line 275) | pub unsafe fn get_encoded_video_session_parameters( function read_into_uninitialized_vector (line 303) | pub(crate) unsafe fn read_into_uninitialized_vector { method clone (line 13) | fn clone(&self) -> Self { function new (line 22) | pub fn new(waker: Arc, sender: crossbeam_channel::Sender)... function send (line 31) | pub fn send(&self, msg: T) -> Result<(), crossbeam_channel::SendError> { function try_send (line 37) | pub fn try_send(&self, msg: T) -> Result<(), crossbeam_channel::TrySendE... type WakingOneshot (line 44) | pub struct WakingOneshot { function new (line 50) | pub fn new(waker: Arc, sender: oneshot::Sender) -> Self { function send (line 54) | pub fn send(self, msg: T) -> Result<(), oneshot::SendError> { FILE: test-apps/bin/color.rs type ImguiContext (line 28) | struct ImguiContext { type PushConstants (line 35) | struct PushConstants { type VkDebugContext (line 42) | struct VkDebugContext { type DeviceInfo (line 47) | struct DeviceInfo { type VkQueue (line 53) | pub struct VkQueue { type Renderer (line 58) | struct Renderer { method new (line 115) | fn new(window: Rc, debug: bool) -> anyhow::Resu... method recreate_swapchain (line 411) | unsafe fn recreate_swapchain(&mut self) -> anyhow::Result<()> { method handle_event (line 745) | fn handle_event(&mut self, event: &winit::event::Event) -> anyho... method resize (line 766) | fn resize(&mut self, width: u32, height: u32) { method render (line 776) | unsafe fn render(&mut self) -> anyhow::Result<()> { method destroy_swapchain (line 1049) | unsafe fn destroy_swapchain(&mut self, mut swapchain: Swapchain) { type Swapchain (line 88) | struct Swapchain { type InFlightFrame (line 102) | struct InFlightFrame { type SwapImage (line 109) | struct SwapImage { method drop (line 1077) | fn drop(&mut self) { function main (line 1103) | fn main() -> anyhow::Result<()> { function query_device (line 1166) | fn query_device( function get_queue_with_command_pool (line 1223) | fn get_queue_with_command_pool(device: &ash::Device, idx: u32) -> Result... function create_fence (line 1240) | fn create_fence(device: &ash::Device, signalled: bool) -> Result Result anyhow::Result bool { function colorspace_supported (line 1340) | fn colorspace_supported(colorspace: vk::ColorSpaceKHR) -> bool { function vulkan_debug_utils_callback (line 1354) | unsafe extern "system" fn vulkan_debug_utils_callback( FILE: test-apps/bin/cursorlock.rs function main (line 15) | fn main() { type Player (line 25) | struct Player; type CameraSensitivity (line 28) | struct CameraSensitivity(Vec2); method default (line 31) | fn default() -> Self { type WorldModelCamera (line 44) | struct WorldModelCamera; type CursorLocked (line 47) | struct CursorLocked(bool); constant DEFAULT_RENDER_LAYER (line 52) | const DEFAULT_RENDER_LAYER: usize = 0; constant VIEW_MODEL_RENDER_LAYER (line 56) | const VIEW_MODEL_RENDER_LAYER: usize = 1; function spawn_view_model (line 58) | fn spawn_view_model( function spawn_world_model (line 112) | fn spawn_world_model( function spawn_lights (line 139) | fn spawn_lights(mut commands: Commands) { function move_player (line 152) | fn move_player( function toggle_cursor_lock (line 171) | fn toggle_cursor_lock(input: Res>, mut cursor_locke... function update_cursor (line 177) | fn update_cursor( FILE: test-apps/bin/latency.rs constant BLOCK_SIZE (line 11) | const BLOCK_SIZE: f32 = 32.0; constant STARTING_POS (line 12) | const STARTING_POS: Vec3 = Vec3::new(-BLOCK_SIZE / 2.0, BLOCK_SIZE / 2.0... type InputMode (line 15) | enum InputMode { type Cli (line 24) | struct Cli { type Box (line 33) | struct Box(i8); function main (line 35) | fn main() { function setup (line 65) | fn setup(mut commands: Commands, input_mode: Res) { function move_box (line 86) | fn move_box( FILE: test-apps/build.rs function main (line 9) | fn main() { function compile_shader (line 30) | fn compile_shader(