MOTORES: pastillas configurables y destino (salida o capa)

Las pestanas de capa de la barra superior no valian: mezclaban navegar por el
panel con elegir sobre que se trabaja, y sacaban del panel de directo. Se
quitan y todo pasa a MOTORES, con dos decisiones separadas:

  DONDE  -> fila 'Donde se ve': SALIDA o una capa del mapping (+ crea una).
  QUE    -> las pastillas: combinaciones guardadas por el usuario.

Pinchar una pastilla la manda al destino elegido: con SALIDA cambia el motor
global, con una capa cambia SOLO esa capa y el resto sigue igual. Con una capa
elegida sus ajustes salen en MOTORES (la tarjeta de propiedades se mueve, no
se duplica: dos formularios para lo mismo se desincronizan a la primera).

Las pastillas son configurables: motor + preset + ajustes y su nombre, con
'Configurar pastillas'. Persisten en data/slots.json (gitignorado, es de cada
instalacion). De fabrica vienen los cinco motores de siempre, asi que quien
actualice se encuentra lo mismo que tenia. Hydra, Mezcla y projectM nativo
solo pueden ir a la salida, y al intentar mandarlos a una capa se dice.

Comprobado en Chromium por CDP, no con --dump-dom: ese fotografia el DOM al
cargar, antes de que llegue el estado por socket, y daba falsos "esta vacio".
Verificado que disparar sobre una capa deja el motor global intacto, que la
tarjeta de propiedades va y vuelve de su sitio, y que las pastillas nuevas se
guardan en disco.

De paso, dos fallos que aparecieron al probarlo:
- Restaurar la vista guardada corria al principio del fichero y llamaba a
  codigo que usa variables declaradas con let mas abajo: ReferenceError que
  se llevaba por delante el resto del script (socket incluido) y dejaba el
  panel en blanco. Ahora se restaura al final.
- #card-destino no estaba en la lista de 'order' del CSS, asi que caia a 0 y
  se colaba encima de las pastillas pese a ir despues en el HTML.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-08-02 16:47:01 +02:00
parent f017246f0e
commit 61543e1987
8 changed files with 602 additions and 146 deletions

View file

@ -50,9 +50,36 @@ para que no se te escapen.
El botón grande de encendido pone las visuales en marcha o las apaga. Apagar
deja el proyector en negro sin tener que apagar la Raspberry.
## Pastillas y destino
La pestaña MOTORES se maneja con **dos decisiones separadas**, y esa
separación es lo que la hace usable en directo:
- **Dónde se ve** — la fila de arriba: `SALIDA` (el proyector entero) o una
`CAPA` del mapping. El `+` crea una capa nueva y te deja ya sobre ella.
- **Pastillas** — los círculos: combinaciones tuyas guardadas (motor + preset
+ ajustes) con el nombre que les pongas.
Pinchar una pastilla la manda **al destino que tengas elegido**. Con `SALIDA`
cambia todo el proyector; con una capa elegida cambia solo esa zona y el resto
sigue igual. Con una capa elegida, además, sus ajustes (fuente, preset,
opacidad, mezcla) salen ahí mismo: no hace falta ir a MAPPING.
Con **Configurar pastillas** el toque deja de lanzar y pasa a editar: decides
qué hace cada una, la renombras, añades con el `+` o la borras. Se guardan en
el equipo (`data/slots.json`), así que al volver siguen ahí.
De fábrica vienen los cinco motores de siempre, así que puedes seguir usándolo
como antes y montarte las tuyas cuando quieras.
> **Hydra, Mezcla y projectM nativo solo van a pantalla completa.** Son
> motores globales, no fuentes que una capa sepa pintar. Si intentas mandarlos
> a una capa, el panel te lo dice en vez de no hacer nada.
## Los cinco motores
Se eligen con los botones redondos. Solo uno está activo a la vez.
Son los que vienen de fábrica en las pastillas. Solo uno está activo a la vez
en la salida.
![Visuales estilo MilkDrop](assets/milkdrop.jpg)