Phone remote: LAN web page + WebSocket, QR pairing, blackout/freeze
remote-server.js: http + ws server (off by default, started from the panel,
port 8787 or next free), every request gated by a secret key embedded in a
QR code; the key persists in userData/remote.json so a phone's home-screen
shortcut survives restarts, 'Nuovo codice' revokes it. Phones send commands
that the panel executes through its own functions (transport, track pick,
effect next/prev/random/family/sequence, Auto VJ, pads, mapping on + visible
zones, blackout, freeze) and the panel pushes a compact live state at ~6 Hz
while a phone is connected (track + progress, effect, sequence, pads,
zones, meters, BPM). New panic controls in output and aux windows: blackout
(fade to black above every layer) and freeze (hold the last frame); also
available as panel buttons. src/remote.{html,css,js} is the touch UI in the
Neon Grid style, installable to the home screen, auto-reconnecting.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XVMQ2JhsJ77pGKqcvvFHqc
This commit is contained in:
1 parent
f246b8bdb8
commit
ab1ab89127
16 files changed
+973
-21
No files matched your search
+8
-1
@@ -50,5 +50,12 @@ contextBridge.exposeInMainWorld('djv', {
|
||||
// Convert Mixamo FBX files via Blender: animation clips / character models.
|
||||
convertAnim: (p) => ipcRenderer.invoke('anim:convert', p),
|
||||
convertModel: (p) => ipcRenderer.invoke('model:convert', p),
|
||||
readFile: (path) => ipcRenderer.invoke('file:read', path)
|
||||
readFile: (path) => ipcRenderer.invoke('file:read', path),
|
||||
// Phone remote: LAN server control, incoming commands, outgoing state.
|
||||
remoteStart: () => ipcRenderer.invoke('remote:start'),
|
||||
remoteStop: () => ipcRenderer.invoke('remote:stop'),
|
||||
remoteNewKey: () => ipcRenderer.invoke('remote:newKey'),
|
||||
remoteInfo: () => ipcRenderer.invoke('remote:info'),
|
||||
remoteState: (state) => ipcRenderer.send('remote:state', state),
|
||||
onRemote: (cb) => ipcRenderer.on('remote', (_e, m) => cb(m))
|
||||
});
|
||||
Reference in new issue
Block a user