123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package dezukvm
- import (
- "imuslab.com/dezukvm/dezukvmd/mod/kvmaux"
- "imuslab.com/dezukvm/dezukvmd/mod/kvmhid"
- "imuslab.com/dezukvm/dezukvmd/mod/usbcapture"
- )
- type UsbKvmDeviceOption struct {
- /* Device Paths */
- USBKVMDevicePath string `json:"usb_kvm_device_path"` // Path to the USB KVM HID device (e.g., /dev/ttyUSB0)
- AuxMCUDevicePath string `json:"aux_mcu_device_path"` // Path to the auxiliary MCU device (e.g., /dev/ttyACM0)
- VideoCaptureDevicePath string `json:"video_capture_device_path"` // Path to the video capture device (e.g., /dev/video0)
- AudioCaptureDevicePath string `json:"audio_capture_device_path"` // Path to the audio capture device (e.g., /dev/snd/pcmC1D0c)
- /* Capture Settings */
- CaptureVideoResolutionWidth int `json:"capture_video_resolution_width"` // Video capture resolution width in pixels, e.g., 1920
- CaptureeVideoResolutionHeight int `json:"capture_video_resolution_height"` // Video capture resolution height in pixels, e.g., 1080
- CaptureeVideoFPS int `json:"capture_video_resolution_fps"` // Video capture frames per second, e.g., 25
- CaptureAudioSampleRate int `json:"capture_audio_sample_rate"` // Audio capture sample rate in Hz, e.g., 48000
- CaptureAudioChannels int `json:"capture_audio_channels"` // Number of audio channels, e.g., 2 for stereo
- CaptureAudioBytesPerSample int `json:"capture_audio_bytes_per_sample"` // Bytes per audio sample, e.g., 2 for 16-bit audio
- CaptureAudioFrameSize int `json:"capture_audio_frame_size"` // Size of each audio frame in bytes, e.g., 1920
- /* Communication Settings */
- USBKVMBaudrate int `json:"usb_kvm_baudrate"` // Baudrate for USB KVM HID communication, e.g., 115200
- AuxMCUBaudrate int `json:"aux_mcu_baudrate"` // Baudrate for auxiliary MCU communication, e.g., 115200
- }
- type UsbKvmDeviceInstance struct {
- Config *UsbKvmDeviceOption
- /* Processed Configs */
- captureConfig *usbcapture.Config
- videoResoltuionConfig *usbcapture.CaptureResolution
- /* Internals */
- uuid string // Session UUID obtained from AuxMCU
- usbKVMController *kvmhid.Controller
- auxMCUController *kvmaux.AuxMcu
- usbCaptureDevice *usbcapture.Instance
- parent *DezukVM
- }
- type RuntimeOptions struct {
- EnableLog bool `json:"enable_log"` // Enable or disable logging
- }
- type DezukVM struct {
- UsbKvmInstance []*UsbKvmDeviceInstance
- /* Internals */
- occupiedUUIDs map[string]bool // Track occupied UUIDs to prevent duplicate connections
- option *RuntimeOptions // Runtime options
- }
|