class

KVMManagerV4cr

Inherits Reference < Object

Updated KVM manager using V4cr for video capture instead of FFmpeg

Constants

Log = ::Log.for(self)

Constructors

new(video_device : String = "/dev/video1", audio_device : String = "hw:1,0", width : UInt32 = 640_u32, height : UInt32 = 480_u32, fps : Int32 = 30, video_jpeg_quality : Int32 = 100, ecm_enabled = false, disable_mouse : Bool = false, disable_ethernet : Bool = false, disable_mass_storage : Bool = false, hotplug_interval : Time::Span = 60.seconds)
Source

Class methods

perform_system_cleanup

Static method for a full system cleanup before startup

Source

Instance methods

audio_device
Source
audio_running?
Source
audio_streamer

Expose audio_streamer for endpoint use

Source
available_qualities
Source
cleanup

Cleanup method to be called on application exit

Source
disable_ecm
Source
ecm_status
Source
enable_ecm

ECM/usb0 network interface and DHCP control

Source
ensure_decompressed_image(image : String | Nil) : NamedTuple(success: Bool, raw_image: String | Nil, message: String | Nil)

Ensure the image is a raw .img file, return the raw image filename to use for mounting

Source
ethernet_disabled?
Source
handle_video_device_failure

Handle video device re-detection if current device fails

Source
height
Source
hotplug_active?
Source
keyboard_enabled?
Source
mass_storage_disabled?
Source
mass_storage_manager

Safely get mass storage manager for API access

Source
mouse_device_absolute

Returns the absolute mouse device path

Source
mouse_disabled?
Source
mouse_enabled?
Source
release_all_keys

Emergency method to release all stuck keys

Source
selected_quality
Source
send_keys(keys : Array(String), modifiers : Array(String) = [] of String)
Source
send_mouse_absolute_move(x : Int32, y : Int32, buttons : Array(String) = [] of String)

Send absolute mouse move (for absolute pointer device)

Source
send_mouse_click(button : String)
Source
send_mouse_move(x : Int32, y : Int32)
Source
send_mouse_move_with_buttons(x : Int32, y : Int32, buttons : Array(String))
Source
send_mouse_press(button : String)
Source
send_mouse_release(button : String)
Source
send_mouse_wheel(wheel_delta : Int32)
Source
send_text(text : String)
Source
setup_hid_devices
Source
start_audio_stream(output_io : IO)
Source
start_video_stream
Source
status
Source
stop_audio_stream
Source
stop_hotplug_polling
Source
stop_video_stream
Source
upload_and_decompress_image(uploaded_path : String, orig_filename : String) : NamedTuple(success: Bool, message: String, filename: String | Nil)

Upload and decompress a disk image, always storing as .img

Source
video_capture
Source
video_device
Source
video_device_available?

Check if current video device is available

Source
video_device_present?
Source
video_quality=(quality : String) : Bool

Change video quality (resolution@fps string)

Source
video_running?
Source
width
Source