SYMBOL INDEX (476 symbols across 102 files) FILE: browser/src/App.tsx function initResolution (line 82) | function initResolution() { function initRotation (line 91) | function initRotation() { function requestPermission (line 98) | async function requestPermission(resolution?: Resolution) { FILE: browser/src/components/device-modal/serial-port.tsx type SerialPortProps (line 9) | type SerialPortProps = { FILE: browser/src/components/device-modal/video.tsx type VideoProps (line 11) | type VideoProps = { function getDevices (line 28) | async function getDevices() { function selectVideo (line 60) | async function selectVideo(videoId: string) { FILE: browser/src/components/keyboard/index.tsx type AltGrState (line 10) | interface AltGrState { constant ALTGR_THRESHOLD_MS (line 15) | const ALTGR_THRESHOLD_MS = 10; function handleKeyDown (line 44) | async function handleKeyDown(event: KeyboardEvent): Promise { function handleKeyUp (line 77) | async function handleKeyUp(event: KeyboardEvent): Promise { function handleCompositionStart (line 116) | function handleCompositionStart(): void { function handleCompositionEnd (line 121) | function handleCompositionEnd(): void { function handleBlur (line 126) | async function handleBlur(): Promise { function handleVisibilityChange (line 131) | async function handleVisibilityChange(): Promise { function releaseKeys (line 138) | async function releaseKeys(): Promise { function normalizeKeyCode (line 167) | function normalizeKeyCode(event: KeyboardEvent, os?: string): string { function handleKeyEvent (line 195) | async function handleKeyEvent(event: { type: 'keydown' | 'keyup'; code: ... FILE: browser/src/components/menu/audio/index.tsx function requestPermission (line 26) | async function requestPermission() { function closeModal (line 44) | function closeModal() { FILE: browser/src/components/menu/fullscreen/index.tsx function onFullscreenChange (line 8) | function onFullscreenChange() { function handleFullscreen (line 21) | function handleFullscreen() { FILE: browser/src/components/menu/index.tsx function toggleMenu (line 57) | function toggleMenu() { FILE: browser/src/components/menu/keyboard/paste.tsx function paste (line 13) | async function paste(): Promise { function send (line 43) | async function send(modifier: number, code: number): Promise { FILE: browser/src/components/menu/keyboard/shortcuts/index.tsx function addShortcut (line 42) | function addShortcut(shortcut: ShortcutInterface): void { function delShortcut (line 48) | function delShortcut(index: number): void { function handleOpenChange (line 54) | function handleOpenChange(open: boolean): void { FILE: browser/src/components/menu/keyboard/shortcuts/recorder.tsx constant MAX_KEYS (line 14) | const MAX_KEYS = 6; type RecorderProps (line 49) | interface RecorderProps { function saveShortcut (line 157) | function saveShortcut() { function clearShortcut (line 165) | function clearShortcut() { function closeModal (line 170) | function closeModal() { function toggleFullscreen (line 175) | function toggleFullscreen() { FILE: browser/src/components/menu/keyboard/shortcuts/shortcut.tsx type ShortcutProps (line 9) | type ShortcutProps = { function handleClick (line 16) | async function handleClick(): Promise { function sendShortcut (line 29) | async function sendShortcut(): Promise { FILE: browser/src/components/menu/keyboard/shortcuts/types.ts type KeyInfo (line 1) | interface KeyInfo { type Shortcut (line 6) | interface Shortcut { FILE: browser/src/components/menu/keyboard/virtual-keyboard.tsx function toggleKeyboard (line 11) | function toggleKeyboard() { FILE: browser/src/components/menu/mouse/direction.tsx function update (line 21) | function update(direction: string): void { FILE: browser/src/components/menu/mouse/index.tsx function initMouse (line 35) | function initMouse() { FILE: browser/src/components/menu/mouse/jiggler.tsx function update (line 21) | function update(mode: 'enable' | 'disable'): void { FILE: browser/src/components/menu/mouse/mode.tsx function update (line 19) | function update(mode: string) { FILE: browser/src/components/menu/mouse/speed.tsx constant MAX_INTERVAL (line 10) | const MAX_INTERVAL = 300; function update (line 24) | function update(speed: number): void { function interval2Speed (line 30) | function interval2Speed(interval: number) { function speed2Interval (line 37) | function speed2Interval(speed: number) { FILE: browser/src/components/menu/mouse/style.tsx function updateStyle (line 15) | function updateStyle(style: string) { FILE: browser/src/components/menu/serial-port/index.tsx function selectSerial (line 9) | async function selectSerial() { FILE: browser/src/components/menu/settings/index.tsx function openPage (line 10) | function openPage(url: string) { FILE: browser/src/components/menu/settings/language.tsx function changeLanguage (line 12) | function changeLanguage(lng: string) { FILE: browser/src/components/menu/video/device.tsx function getDevices (line 26) | async function getDevices() { function selectDevice (line 57) | async function selectDevice(device: MediaDevice) { FILE: browser/src/components/menu/video/resolution.tsx function showModal (line 44) | function showModal() { function submit (line 50) | function submit() { function updateResolution (line 67) | async function updateResolution(w: number, h: number) { function removeCustomResolution (line 84) | function removeCustomResolution(e: any) { FILE: browser/src/components/menu/video/rotation.tsx function updateRotation (line 24) | function updateRotation(rotation: VideoRotation): void { FILE: browser/src/components/menu/video/scale.tsx function updateScale (line 32) | async function updateScale(scale: number): Promise { FILE: browser/src/components/mouse/absolute.tsx function handleMouseDown (line 54) | function handleMouseDown(e: MouseEvent): void { function handleMouseUp (line 60) | function handleMouseUp(e: MouseEvent): void { function handleMouseMove (line 66) | function handleMouseMove(e: MouseEvent): void { function handleWheel (line 73) | function handleWheel(e: WheelEvent): void { function getCoordinate (line 91) | function getCoordinate(event: { clientX: number; clientY: number }): { x... function handleMouseEvent (line 141) | async function handleMouseEvent(event: MouseAbsoluteEvent): Promise { function disableEvent (line 172) | function disableEvent(event: Event): void { FILE: browser/src/components/mouse/relative.tsx function handleClick (line 38) | function handleClick(event: MouseEvent): void { function handleMouseDown (line 47) | function handleMouseDown(e: MouseEvent): void { function handleMouseUp (line 53) | function handleMouseUp(e: MouseEvent): void { function handleMouseMove (line 59) | function handleMouseMove(e: MouseEvent): void { function handleMouseWheel (line 73) | function handleMouseWheel(e: WheelEvent): void { function handlePointerLockChange (line 91) | function handlePointerLockChange(): void { function handleMouseEvent (line 112) | async function handleMouseEvent(event: MouseRelativeEvent): Promise { function showMessage (line 141) | function showMessage(): void { function disableEvent (line 153) | function disableEvent(event: Event): void { FILE: browser/src/components/mouse/touchpad.ts constant TAP_THRESHOLD (line 5) | const TAP_THRESHOLD = 8; constant DRAG_THRESHOLD (line 6) | const DRAG_THRESHOLD = 10; constant VELOCITY_THRESHOLD (line 7) | const VELOCITY_THRESHOLD = 0.3; constant LONG_PRESS_DELAY (line 8) | const LONG_PRESS_DELAY = 800; type TouchHandlerOptions (line 10) | interface TouchHandlerOptions { type TouchState (line 18) | interface TouchState { function createInitialTouchState (line 30) | function createInitialTouchState(): TouchState { function createTouchHandlers (line 44) | function createTouchHandlers(state: TouchState, options: TouchHandlerOpt... FILE: browser/src/components/mouse/types.ts type MouseButton (line 1) | enum MouseButton { type MouseMoveAbsoluteEvent (line 9) | interface MouseMoveAbsoluteEvent { type MouseMoveRelativeEvent (line 15) | interface MouseMoveRelativeEvent { type MouseButtonEvent (line 21) | interface MouseButtonEvent { type MouseWheelEvent (line 26) | interface MouseWheelEvent { type MouseAbsoluteEvent (line 31) | type MouseAbsoluteEvent = MouseMoveAbsoluteEvent | MouseButtonEvent | Mo... type MouseRelativeEvent (line 33) | type MouseRelativeEvent = MouseMoveRelativeEvent | MouseButtonEvent | Mo... FILE: browser/src/components/ui/kbd.tsx function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<'kbd'>) { function KbdGroup (line 18) | function KbdGroup({ className, ...props }: React.ComponentProps<'div'>) { FILE: browser/src/components/ui/scroll-area.tsx function ScrollArea (line 5) | function ScrollArea({ function ScrollBar (line 28) | function ScrollBar({ FILE: browser/src/components/virtual-keyboard/index.tsx type KeyboardProps (line 24) | type KeyboardProps = { function onKeyPress (line 36) | async function onKeyPress(key: string): Promise { function onKeyReleased (line 62) | async function onKeyReleased(key: string): Promise { function handleKeyEvent (line 76) | async function handleKeyEvent(event: { type: 'keydown' | 'keyup'; key: s... function getButtonTheme (line 85) | function getButtonTheme(): KeyboardButtonTheme[] { FILE: browser/src/i18n/index.ts function getResources (line 7) | function getResources(): Resource { function getCurrentLanguage (line 22) | function getCurrentLanguage(): string { FILE: browser/src/jotai/device.ts type VideoState (line 5) | type VideoState = 'disconnected' | 'connecting' | 'connected'; type SerialState (line 6) | type SerialState = 'notSupported' | 'disconnected' | 'connecting' | 'con... FILE: browser/src/libs/browser/index.ts type System (line 1) | type System = 'Windows' | 'macOS' | 'Linux' | 'Unknown'; type BrowserInfo (line 3) | interface BrowserInfo { function getOperatingSystem (line 8) | function getOperatingSystem(): System { function isChromeBrowser (line 33) | function isChromeBrowser(): boolean { function getBrowserInfo (line 56) | function getBrowserInfo(): BrowserInfo { FILE: browser/src/libs/device/index.ts class Device (line 4) | class Device { method constructor (line 8) | constructor() { method getInfo (line 13) | async getInfo() { method sendKeyboardData (line 22) | async sendKeyboardData(report: number[]): Promise { method sendMouseData (line 27) | async sendMouseData(report: number[]): Promise { FILE: browser/src/libs/device/proto.ts type CmdEvent (line 1) | enum CmdEvent { class CmdPacket (line 17) | class CmdPacket { method constructor (line 27) | constructor(addr: number = 0x00, cmd: number = 0x00, data: number[] = ... method encode (line 35) | encode(): number[] { method decode (line 39) | public decode(data: number[]): number { method findHead (line 86) | private findHead(lst: number[]): number { method save (line 97) | private save(addr: number, cmd: number, data: number[]): void { class InfoPacket (line 110) | class InfoPacket { method constructor (line 117) | constructor(data: number[]) { function getBit (line 134) | function getBit(number: number, bitPosition: number): number { FILE: browser/src/libs/device/serial-port.ts type WebSerialPort (line 3) | type WebSerialPort = { type Options (line 10) | type Options = { class SerialPort (line 16) | class SerialPort { method init (line 32) | async init(options: Options): Promise { method handleDisconnect (line 62) | private handleDisconnect(): void { method releaseReader (line 78) | private releaseReader(): void { method releaseWriter (line 88) | private releaseWriter(): void { method write (line 98) | async write(data: number[]): Promise { method read (line 114) | async read(minSize: number, delayAfterRead: number = 0): Promise { FILE: browser/src/libs/device/utils.ts function raceWithTimeout (line 1) | function raceWithTimeout(promise: Promise, ms: number): Promise { FILE: browser/src/libs/mouse/index.ts constant MAX_ABS_COORD (line 2) | const MAX_ABS_COORD = 4096; function getMouseButtonBit (line 14) | function getMouseButtonBit(button: number): number { class MouseReportRelative (line 39) | class MouseReportRelative { method buttonDown (line 42) | buttonDown(button: number): void { method buttonUp (line 46) | buttonUp(button: number): void { method buildReport (line 56) | buildReport(deltaX: number, deltaY: number, wheel: number = 0): number... method buildButtonReport (line 66) | buildButtonReport(): number[] { method reset (line 70) | reset(): number[] { method clamp (line 75) | private clamp(value: number, min: number, max: number): number { class MouseAbsoluteRelative (line 88) | class MouseAbsoluteRelative { method buttonDown (line 91) | buttonDown(button: number): void { method buttonUp (line 95) | buttonUp(button: number): void { method buildReport (line 105) | buildReport(x: number, y: number, wheel: number = 0): number[] { method buildButtonReport (line 122) | buildButtonReport(lastX: number, lastY: number): number[] { method reset (line 126) | reset(): number[] { method clamp (line 131) | private clamp(value: number, min: number, max: number): number { FILE: browser/src/libs/storage/index.ts constant LANGUAGE_KEY (line 3) | const LANGUAGE_KEY = 'nanokvm-usb-language'; constant VIDEO_DEVICE_ID_KEY (line 4) | const VIDEO_DEVICE_ID_KEY = 'nanokvm-usb-video-device-id'; constant VIDEO_RESOLUTION_KEY (line 5) | const VIDEO_RESOLUTION_KEY = 'nanokvm-usb-video-resolution'; constant CUSTOM_RESOLUTION_KEY (line 6) | const CUSTOM_RESOLUTION_KEY = 'nanokvm-usb-custom-resolution'; constant VIDEO_SCALE_KEY (line 7) | const VIDEO_SCALE_KEY = 'nanokvm-usb-video-scale'; constant VIDEO_ROTATION_KEY (line 8) | const VIDEO_ROTATION_KEY = 'nanokvm-usb-video-rotation'; constant IS_MENU_OPEN_KEY (line 9) | const IS_MENU_OPEN_KEY = 'nanokvm-is-menu-open'; constant MOUSE_STYLE_KEY (line 10) | const MOUSE_STYLE_KEY = 'nanokvm-usb-mouse-style'; constant MOUSE_MODE_KEY (line 11) | const MOUSE_MODE_KEY = 'nanokvm-usb-mouse-mode'; constant MOUSE_SCROLL_DIRECTION_KEY (line 12) | const MOUSE_SCROLL_DIRECTION_KEY = 'nanokvm-usb-mouse-scroll-direction'; constant MOUSE_SCROLL_INTERVAL_KEY (line 13) | const MOUSE_SCROLL_INTERVAL_KEY = 'nanokvm-usb-mouse-scroll-interval'; constant MOUSE_JIGGLER_MODE_KEY (line 14) | const MOUSE_JIGGLER_MODE_KEY = 'nanokvm-usb-mouse-jiggler-mode'; constant KEYBOARD_SHORTCUT_KEY (line 15) | const KEYBOARD_SHORTCUT_KEY = 'nanokvm-usb-keyboard-shortcut'; function getLanguage (line 17) | function getLanguage() { function setLanguage (line 21) | function setLanguage(language: string) { function setVideoDevice (line 25) | function setVideoDevice(id: string) { function getVideoDevice (line 29) | function getVideoDevice() { function setVideoResolution (line 33) | function setVideoResolution(width: number, height: number) { function getVideoResolution (line 37) | function getVideoResolution() { function getCustomResolutions (line 43) | function getCustomResolutions() { function setCustomResolution (line 49) | function setCustomResolution(width: number, height: number) { function removeCustomResolutions (line 59) | function removeCustomResolutions() { function getVideoScale (line 63) | function getVideoScale(): number | null { function setVideoScale (line 71) | function setVideoScale(scale: number): void { function getVideoRotation (line 75) | function getVideoRotation(): Rotation | null { function setVideoRotation (line 86) | function setVideoRotation(rotation: Rotation): void { function getIsMenuOpen (line 90) | function getIsMenuOpen(): boolean { function setIsMenuOpen (line 98) | function setIsMenuOpen(isOpen: boolean) { function getMouseStyle (line 102) | function getMouseStyle() { function setMouseStyle (line 106) | function setMouseStyle(mouse: string) { function getMouseMode (line 110) | function getMouseMode() { function setMouseMode (line 114) | function setMouseMode(mouse: string) { function getMouseScrollDirection (line 118) | function getMouseScrollDirection(): number | null { function setMouseScrollDirection (line 126) | function setMouseScrollDirection(direction: number): void { function getMouseScrollInterval (line 130) | function getMouseScrollInterval(): number | null { function setMouseScrollInterval (line 138) | function setMouseScrollInterval(interval: number): void { function getShortcuts (line 142) | function getShortcuts(): string | null { function setShortcuts (line 146) | function setShortcuts(shortcuts: string): void { function getMouseJigglerMode (line 150) | function getMouseJigglerMode(): 'enable' | 'disable' { function setMouseJigglerMode (line 155) | function setMouseJigglerMode(jiggler: 'enable' | 'disable'): void { FILE: browser/src/types.ts type Resolution (line 1) | type Resolution = { type Rotation (line 6) | type Rotation = 0 | 90 | 180 | 270; type MediaDevice (line 8) | type MediaDevice = { FILE: browser/src/vite-env.d.ts type Navigator (line 2) | interface Navigator { FILE: desktop/src/common/ipc-events.ts type IpcEvents (line 1) | enum IpcEvents { FILE: desktop/src/main/device/index.ts class Device (line 4) | class Device { method constructor (line 8) | constructor() { method getInfo (line 13) | async getInfo(): Promise { method sendKeyboardData (line 22) | async sendKeyboardData(report: number[]): Promise { method sendMouseData (line 27) | async sendMouseData(report: number[]): Promise { FILE: desktop/src/main/device/proto.ts type CmdEvent (line 1) | enum CmdEvent { class CmdPacket (line 17) | class CmdPacket { method constructor (line 27) | constructor(addr: number = 0x00, cmd: number = 0x00, data: number[] = ... method encode (line 35) | encode(): number[] { method decode (line 39) | public decode(data: number[]): number { method findHead (line 86) | private findHead(lst: number[]): number { method save (line 97) | private save(addr: number, cmd: number, data: number[]): void { class InfoPacket (line 110) | class InfoPacket { method constructor (line 117) | constructor(data: number[]) { function getBit (line 134) | function getBit(number: number, bitPosition: number): number { FILE: desktop/src/main/device/serial-port.ts type Options (line 3) | type Options = { class SerialPort (line 9) | class SerialPort { method constructor (line 16) | constructor() { method init (line 20) | async init(options: Options): Promise { method handleDisconnect (line 60) | private handleDisconnect(): void { method isDisconnectError (line 72) | private isDisconnectError(err: Error): boolean { method write (line 82) | async write(data: number[]): Promise { method read (line 91) | async read(minSize: number, sleep: number = 0): Promise { method close (line 120) | async close(): Promise { FILE: desktop/src/main/events/app.ts function registerApp (line 6) | function registerApp(): void { function getAppVersion (line 15) | function getAppVersion(): string { function getPlatform (line 19) | function getPlatform(): string { function openExternalUrl (line 23) | function openExternalUrl(_: IpcMainEvent, url: string, options?: OpenExt... function checkMediaPermission (line 27) | function checkMediaPermission(_: IpcMainInvokeEvent, media: 'camera' | '... function requestMediaPermission (line 32) | async function requestMediaPermission( function setFullScreen (line 49) | function setFullScreen(e: IpcMainEvent, flag: boolean): void { FILE: desktop/src/main/events/serial-port.ts function registerSerialPort (line 7) | function registerSerialPort(): void { function getSerialPorts (line 15) | async function getSerialPorts(): Promise { function openSerialPort (line 34) | async function openSerialPort( function closeSerialPort (line 56) | async function closeSerialPort(): Promise { function sendKeyboard (line 66) | async function sendKeyboard(_: IpcMainInvokeEvent, report: number[]): Pr... function sendMouse (line 74) | async function sendMouse(_: IpcMainInvokeEvent, report: number[]): Promi... FILE: desktop/src/main/events/updater.ts function registerUpdater (line 9) | function registerUpdater(win: BrowserWindow): void { FILE: desktop/src/main/index.ts function createWindow (line 13) | function createWindow(): void { FILE: desktop/src/preload/index.d.ts type Window (line 4) | interface Window { FILE: desktop/src/renderer/src/App.tsx type State (line 27) | type State = 'loading' | 'success' | 'failed' function requestMediaPermissions (line 57) | async function requestMediaPermissions(resolution?: Resolution): Promise... FILE: desktop/src/renderer/src/components/device/serial-port.tsx type Option (line 10) | type Option = { type SerialPortProps (line 15) | type SerialPortProps = { function getSerialPorts (line 52) | async function getSerialPorts(autoOpen: boolean): Promise { function selectSerialPort (line 65) | async function selectSerialPort(port: string, customBaudRate?: number): ... FILE: desktop/src/renderer/src/components/device/video.tsx type VideoProps (line 11) | type VideoProps = { function getDevices (line 28) | async function getDevices(autoOpen: boolean): Promise { function selectDevice (line 68) | async function selectDevice(videoId: string): Promise { function openCamera (line 86) | async function openCamera(videoId: string, audioId?: string): Promise { function handleKeyUp (line 77) | async function handleKeyUp(event: KeyboardEvent): Promise { function handleCompositionStart (line 120) | function handleCompositionStart(): void { function handleCompositionEnd (line 125) | function handleCompositionEnd(): void { function handleBlur (line 130) | async function handleBlur(): Promise { function handleVisibilityChange (line 135) | async function handleVisibilityChange(): Promise { function releaseKeys (line 142) | async function releaseKeys(): Promise { function initAltGr (line 171) | async function initAltGr(): Promise { function handleKeyEvent (line 180) | async function handleKeyEvent(event: { type: 'keydown' | 'keyup'; code: ... function sendReport (line 186) | async function sendReport(report: number[]): Promise { FILE: desktop/src/renderer/src/components/menu/audio/index.tsx function requestPermission (line 26) | async function requestPermission(): Promise { function closeModal (line 44) | function closeModal(): void { FILE: desktop/src/renderer/src/components/menu/index.tsx function toggleMenu (line 54) | function toggleMenu(): void { FILE: desktop/src/renderer/src/components/menu/keyboard/paste.tsx function paste (line 13) | async function paste(): Promise { function send (line 43) | async function send(modifier: number, code: number): Promise { FILE: desktop/src/renderer/src/components/menu/keyboard/shortcuts/index.tsx function addShortcut (line 42) | function addShortcut(shortcut: ShortcutInterface): void { function delShortcut (line 48) | function delShortcut(index: number): void { function handleOpenChange (line 54) | function handleOpenChange(open: boolean): void { FILE: desktop/src/renderer/src/components/menu/keyboard/shortcuts/recorder.tsx constant MAX_KEYS (line 14) | const MAX_KEYS = 6 type RecorderProps (line 49) | interface RecorderProps { function saveShortcut (line 157) | function saveShortcut(): void { function clearShortcut (line 165) | function clearShortcut(): void { function closeModal (line 170) | function closeModal(): void { FILE: desktop/src/renderer/src/components/menu/keyboard/shortcuts/shortcut.tsx type ShortcutProps (line 9) | type ShortcutProps = { function handleClick (line 16) | async function handleClick(): Promise { function sendShortcut (line 29) | async function sendShortcut(): Promise { function send (line 41) | async function send(report: number[]): Promise { FILE: desktop/src/renderer/src/components/menu/keyboard/shortcuts/types.ts type KeyInfo (line 1) | interface KeyInfo { type Shortcut (line 6) | interface Shortcut { FILE: desktop/src/renderer/src/components/menu/language/index.tsx function changeLanguage (line 13) | function changeLanguage(lng: string): void { FILE: desktop/src/renderer/src/components/menu/mouse/direction.tsx function update (line 21) | function update(direction: string): void { FILE: desktop/src/renderer/src/components/menu/mouse/jiggler.tsx function update (line 21) | function update(mode: 'enable' | 'disable'): void { FILE: desktop/src/renderer/src/components/menu/mouse/mode.tsx function update (line 21) | function update(mode: string): void { FILE: desktop/src/renderer/src/components/menu/mouse/speed.tsx constant MAX_INTERVAL (line 10) | const MAX_INTERVAL = 300 function update (line 24) | function update(speed: number): void { function interval2Speed (line 30) | function interval2Speed(interval: number): number { function speed2Interval (line 37) | function speed2Interval(speed: number): number { FILE: desktop/src/renderer/src/components/menu/mouse/style.tsx function updateStyle (line 26) | function updateStyle(style: string): void { FILE: desktop/src/renderer/src/components/menu/serial-port/index.tsx function getSerialPorts (line 49) | async function getSerialPorts(): Promise { function openSerialPort (line 54) | async function openSerialPort(port: string, customBaudRate?: number): Pr... function closeSerialPort (line 66) | async function closeSerialPort(): Promise { function handleBaudRateChange (line 72) | async function handleBaudRateChange(newBaudRate: number): Promise { FILE: desktop/src/renderer/src/components/menu/settings/about.tsx function open (line 44) | function open(url: string): void { FILE: desktop/src/renderer/src/components/menu/settings/appearance.tsx function changeLanguage (line 25) | function changeLanguage(value: string): void { function toggleMenu (line 32) | function toggleMenu(): void { FILE: desktop/src/renderer/src/components/menu/settings/index.tsx function changeTab (line 46) | function changeTab(tab: string): void { function closeModal (line 55) | function closeModal(): void { FILE: desktop/src/renderer/src/components/menu/settings/reset.tsx function handleReset (line 11) | function handleReset(): void { function confirmReset (line 15) | function confirmReset(): void { function cancelReset (line 21) | function cancelReset(): void { FILE: desktop/src/renderer/src/components/menu/settings/update.tsx type Status (line 8) | type Status = 'loading' | 'latest' | 'outdated' | 'downloading' | 'insta... function getVersion (line 65) | function getVersion(): void { function update (line 73) | function update(): void { FILE: desktop/src/renderer/src/components/menu/video/device.tsx function getDevices (line 25) | async function getDevices(): Promise { function selectDevice (line 58) | async function selectDevice(device: MediaDevice): Promise { FILE: desktop/src/renderer/src/components/menu/video/resolution.tsx function showModal (line 45) | function showModal(): void { function submit (line 51) | function submit(): void { function updateResolution (line 68) | async function updateResolution(w: number, h: number): Promise { function removeCustomResolution (line 85) | function removeCustomResolution(e: React.MouseEvent { FILE: desktop/src/renderer/src/components/mouse/absolute.tsx function getCoordinate (line 28) | function getCoordinate(event: { clientX: number; clientY: number }): { x... function disableEvent (line 62) | function disableEvent(event: Event): void { function handleMouseEvent (line 68) | function handleMouseEvent(event: MouseAbsoluteEvent): void { function handleMouseDown (line 99) | function handleMouseDown(e: MouseEvent): void { function handleMouseUp (line 105) | function handleMouseUp(e: MouseEvent): void { function handleMouseMove (line 111) | function handleMouseMove(e: MouseEvent): void { function handleWheel (line 118) | function handleWheel(e: WheelEvent): void { FILE: desktop/src/renderer/src/components/mouse/relative.tsx function handleClick (line 39) | function handleClick(event: MouseEvent): void { function handleMouseDown (line 48) | function handleMouseDown(e: MouseEvent): void { function handleMouseUp (line 54) | function handleMouseUp(e: MouseEvent): void { function handleMouseMove (line 60) | function handleMouseMove(e: MouseEvent): void { function handleMouseWheel (line 74) | function handleMouseWheel(e: WheelEvent): void { function handlePointerLockChange (line 92) | function handlePointerLockChange(): void { function handleMouseEvent (line 113) | function handleMouseEvent(event: MouseRelativeEvent): void { function showMessage (line 142) | function showMessage(): void { function disableEvent (line 154) | function disableEvent(event: Event): void { FILE: desktop/src/renderer/src/components/mouse/touchpad.ts constant TAP_THRESHOLD (line 5) | const TAP_THRESHOLD = 8 constant DRAG_THRESHOLD (line 6) | const DRAG_THRESHOLD = 10 constant VELOCITY_THRESHOLD (line 7) | const VELOCITY_THRESHOLD = 0.3 constant LONG_PRESS_DELAY (line 8) | const LONG_PRESS_DELAY = 800 type TouchHandlerOptions (line 10) | interface TouchHandlerOptions { type TouchState (line 18) | interface TouchState { function createInitialTouchState (line 30) | function createInitialTouchState(): TouchState { function createTouchHandlers (line 44) | function createTouchHandlers(state: TouchState, options: TouchHandlerOpt... FILE: desktop/src/renderer/src/components/mouse/types.ts type MouseButton (line 1) | enum MouseButton { type MouseMoveAbsoluteEvent (line 9) | interface MouseMoveAbsoluteEvent { type MouseMoveRelativeEvent (line 15) | interface MouseMoveRelativeEvent { type MouseButtonEvent (line 21) | interface MouseButtonEvent { type MouseWheelEvent (line 26) | interface MouseWheelEvent { type MouseAbsoluteEvent (line 31) | type MouseAbsoluteEvent = MouseMoveAbsoluteEvent | MouseButtonEvent | Mo... type MouseRelativeEvent (line 33) | type MouseRelativeEvent = MouseMoveRelativeEvent | MouseButtonEvent | Mo... FILE: desktop/src/renderer/src/components/ui/kbd.tsx function Kbd (line 3) | function Kbd({ className, ...props }: React.ComponentProps<'kbd'>) { function KbdGroup (line 18) | function KbdGroup({ className, ...props }: React.ComponentProps<'div'>) { FILE: desktop/src/renderer/src/components/ui/scroll-area.tsx function ScrollArea (line 5) | function ScrollArea({ function ScrollBar (line 28) | function ScrollBar({ FILE: desktop/src/renderer/src/components/virtual-keyboard/index.tsx type KeyboardProps (line 24) | interface KeyboardProps { function onKeyPress (line 36) | async function onKeyPress(key: string): Promise { function onKeyReleased (line 62) | async function onKeyReleased(key: string): Promise { function handleKeyEvent (line 76) | async function handleKeyEvent(event: { type: 'keydown' | 'keyup'; key: s... function sendReport (line 85) | async function sendReport(report: number[]): Promise { function getButtonTheme (line 89) | function getButtonTheme(): KeyboardButtonTheme[] { FILE: desktop/src/renderer/src/i18n/index.ts function getResources (line 7) | function getResources(): Resource { function getCurrentLanguage (line 22) | function getCurrentLanguage(): string { FILE: desktop/src/renderer/src/jotai/device.ts type VideoState (line 5) | type VideoState = 'disconnected' | 'connecting' | 'connected' type SerialState (line 6) | type SerialState = 'notSupported' | 'disconnected' | 'connecting' | 'con... FILE: desktop/src/renderer/src/libs/keyboard/keyboard.ts constant MAX_KEYS (line 3) | const MAX_KEYS = 6 class KeyboardReport (line 5) | class KeyboardReport { method keyDown (line 9) | keyDown(code: string): number[] { method keyUp (line 21) | keyUp(code: string): number[] { method reset (line 30) | reset(): number[] { method buildReport (line 42) | private buildReport(): number[] { method getModifier (line 54) | getModifier(): number { method getPressedKeyCount (line 58) | getPressedKeyCount(): number { FILE: desktop/src/renderer/src/libs/keyboard/keymap.ts function isModifier (line 269) | function isModifier(code: string): boolean { function getModifierBit (line 274) | function getModifierBit(code: string): number { function getKeycode (line 279) | function getKeycode(code: string): number | undefined { FILE: desktop/src/renderer/src/libs/media/camera.ts class Camera (line 3) | class Camera { method open (line 10) | public async open(id: string, width: number, height: number, audioId?:... method updateResolution (line 51) | public async updateResolution(width: number, height: number): Promise<... method close (line 55) | public close(): void { method getStream (line 62) | public getStream(): MediaStream | null { method isOpen (line 66) | public isOpen(): boolean { FILE: desktop/src/renderer/src/libs/media/permission.ts function checkPermission (line 4) | async function checkPermission(device: 'camera' | 'microphone'): Promise... function requestCameraPermission (line 21) | async function requestCameraPermission(resolution?: Resolution): Promise... function requestMicrophonePermission (line 47) | async function requestMicrophonePermission(): Promise { FILE: desktop/src/renderer/src/libs/mouse-jiggler/index.ts constant MOUSE_JIGGLER_INTERVAL (line 4) | const MOUSE_JIGGLER_INTERVAL = 15_000 class MouseJiggler (line 6) | class MouseJiggler { method constructor (line 12) | constructor() { method setMode (line 20) | setMode(mode: 'enable' | 'disable'): void { method moveEventCallback (line 33) | moveEventCallback(): void { method timeoutCallback (line 39) | timeoutCallback(): void { method sendJiggle (line 46) | async sendJiggle(): Promise { FILE: desktop/src/renderer/src/libs/mouse/index.ts constant MAX_ABS_COORD (line 2) | const MAX_ABS_COORD = 4096 function getMouseButtonBit (line 14) | function getMouseButtonBit(button: number): number { class MouseReportRelative (line 39) | class MouseReportRelative { method buttonDown (line 42) | buttonDown(button: number): void { method buttonUp (line 46) | buttonUp(button: number): void { method buildReport (line 56) | buildReport(deltaX: number, deltaY: number, wheel: number = 0): number... method buildButtonReport (line 66) | buildButtonReport(): number[] { method reset (line 70) | reset(): number[] { method clamp (line 75) | private clamp(value: number, min: number, max: number): number { class MouseAbsoluteRelative (line 88) | class MouseAbsoluteRelative { method buttonDown (line 91) | buttonDown(button: number): void { method buttonUp (line 95) | buttonUp(button: number): void { method buildReport (line 105) | buildReport(x: number, y: number, wheel: number = 0): number[] { method buildButtonReport (line 122) | buildButtonReport(lastX: number, lastY: number): number[] { method reset (line 126) | reset(): number[] { method clamp (line 131) | private clamp(value: number, min: number, max: number): number { FILE: desktop/src/renderer/src/libs/storage/expiry.ts type ItemWithExpiry (line 1) | type ItemWithExpiry = { function setWithExpiry (line 7) | function setWithExpiry(key: string, value: string, ttl: number): void { function getWithExpiry (line 19) | function getWithExpiry(key: string): string | null { FILE: desktop/src/renderer/src/libs/storage/index.ts constant LANGUAGE_KEY (line 5) | const LANGUAGE_KEY = 'nanokvm-usb-language' constant VIDEO_DEVICE_ID_KEY (line 6) | const VIDEO_DEVICE_ID_KEY = 'nanokvm-usb-video-device-id' constant VIDEO_RESOLUTION_KEY (line 7) | const VIDEO_RESOLUTION_KEY = 'nanokvm-usb-video-resolution' constant VIDEO_SCALE_KEY (line 8) | const VIDEO_SCALE_KEY = 'nanokvm-usb-video-scale' constant CUSTOM_RESOLUTION_KEY (line 9) | const CUSTOM_RESOLUTION_KEY = 'nanokvm-usb-custom-resolution' constant SERIAL_PORT_KEY (line 10) | const SERIAL_PORT_KEY = 'nanokvm-serial-port' constant IS_MENU_OPEN_KEY (line 11) | const IS_MENU_OPEN_KEY = 'nanokvm-is-menu-open' constant MOUSE_STYLE_KEY (line 12) | const MOUSE_STYLE_KEY = 'nanokvm-usb-mouse-style' constant MOUSE_MODE_KEY (line 13) | const MOUSE_MODE_KEY = 'nanokvm-usb-mouse-mode' constant MOUSE_SCROLL_DIRECTION_KEY (line 14) | const MOUSE_SCROLL_DIRECTION_KEY = 'nanokvm-usb-mouse-scroll-direction' constant SKIP_UPDATE_KEY (line 15) | const SKIP_UPDATE_KEY = 'nano-kvm-check-update' constant MOUSE_SCROLL_INTERVAL_KEY (line 16) | const MOUSE_SCROLL_INTERVAL_KEY = 'nanokvm-usb-mouse-scroll-interval' constant BAUD_RATE_KEY (line 17) | const BAUD_RATE_KEY = 'nanokvm-usb-baud-rate' constant MOUSE_JIGGLER_MODE_KEY (line 18) | const MOUSE_JIGGLER_MODE_KEY = 'nanokvm-usb-mouse-jiggler-mode' constant KEYBOARD_SHORTCUT_KEY (line 19) | const KEYBOARD_SHORTCUT_KEY = 'nanokvm-usb-keyboard-shortcuts' function getLanguage (line 21) | function getLanguage(): string | null { function setLanguage (line 25) | function setLanguage(language: string): void { function getVideoDevice (line 29) | function getVideoDevice(): string | null { function setVideoDevice (line 33) | function setVideoDevice(id: string): void { function getVideoResolution (line 37) | function getVideoResolution(): Resolution | undefined { function setVideoResolution (line 45) | function setVideoResolution(width: number, height: number): void { function getCustomResolutions (line 49) | function getCustomResolutions(): Resolution[] | undefined { function setCustomResolution (line 55) | function setCustomResolution(width: number, height: number): void { function removeCustomResolutions (line 66) | function removeCustomResolutions(): void { function getVideoScale (line 70) | function getVideoScale(): number | null { function setVideoScale (line 78) | function setVideoScale(scale: number): void { function getSerialPort (line 82) | function getSerialPort(): string | null { function setSerialPort (line 86) | function setSerialPort(port: string): void { function getBaudRate (line 90) | function getBaudRate(): number { function setBaudRate (line 98) | function setBaudRate(baudRate: number): void { function getIsMenuOpen (line 102) | function getIsMenuOpen(): boolean { function setIsMenuOpen (line 110) | function setIsMenuOpen(isOpen: boolean): void { function getMouseStyle (line 114) | function getMouseStyle(): string | null { function setMouseStyle (line 118) | function setMouseStyle(mouse: string): void { function getMouseMode (line 122) | function getMouseMode(): string | null { function setMouseMode (line 126) | function setMouseMode(mouse: string): void { function getMouseScrollDirection (line 130) | function getMouseScrollDirection(): number | null { function setMouseScrollDirection (line 138) | function setMouseScrollDirection(direction: number): void { function getMouseScrollInterval (line 142) | function getMouseScrollInterval(): number | null { function setMouseScrollInterval (line 150) | function setMouseScrollInterval(interval: number): void { function getSkipUpdate (line 154) | function getSkipUpdate(): boolean { function setSkipUpdate (line 159) | function setSkipUpdate(skip: boolean): void { function clearAllSettings (line 164) | function clearAllSettings(): void { function getMouseJigglerMode (line 179) | function getMouseJigglerMode(): 'enable' | 'disable' { function setMouseJigglerMode (line 184) | function setMouseJigglerMode(jiggler: 'enable' | 'disable'): void { function getShortcuts (line 188) | function getShortcuts(): string | null { function setShortcuts (line 192) | function setShortcuts(shortcuts: string): void { FILE: desktop/src/renderer/src/types.ts type Resolution (line 1) | type Resolution = { type MediaDevice (line 6) | type MediaDevice = {