Files
virtual-controller/server/http_server.py
T
Paul Lipscomb 4db7165797 Initial tablet POC: project restructure + WebSocket/HTTP server + JS client
- Restructured project into /app, /server, /client with run.py entry point
- WSServer (QWebSocketServer) with log_signal, start/stop, client tracking
- HTTP server serves /client on port 8080
- Vanilla JS client: faders, toggles, transport, drag-to-arrange, lock/save layout
- Start Tablet button + floating Tablet log window in app UI
- Preset broadcast on load/switch, DAW state relay, hardware sync via widget_update
- Widget colors synced from app palette, toggle state fixed (sends 0/127 correctly)
- Layout saved per preset UUID back to presets.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 23:44:30 -04:00

26 lines
705 B
Python

import os
import threading
from http.server import SimpleHTTPRequestHandler, HTTPServer
_CLIENT_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "client")
class _Handler(SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, directory=_CLIENT_DIR, **kwargs)
def log_message(self, fmt, *args):
pass
def start_http_server(port=8080):
server = HTTPServer(("0.0.0.0", port), _Handler)
thread = threading.Thread(target=server.serve_forever, daemon=True)
thread.start()
return server
def stop_http_server(server):
if server:
threading.Thread(target=server.shutdown, daemon=True).start()