Commit inicial: G Radio Player
Sistema de automatización de radio en Rust (GTK4 + GStreamer): reproductor principal con crossfade y ducking, scheduler de comerciales, refill de playlist, y herramientas auxiliares (pautaje, parrilla, botonera, visor, buscador, playlist, grabador, reportes). Incluye sistema de skins y modos de Players (paneles de reproducción configurables).
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# Eventos
|
||||
|
||||
Los **eventos** son acciones programadas que suenan de forma emergente: interrumpen la música brevemente, reproducen el audio, y la música se reanuda. Comparten el mismo formato `.com` que los comerciales.
|
||||
|
||||
## Archivos `.com` de eventos
|
||||
|
||||
Ruta: `~/.gradio/data/eventos/<hora>/<minuto>.com`
|
||||
|
||||
- Mismo formato que comerciales: `/ruta/audio.mp3|máscara_días|fecha_inicio|fecha_fin`
|
||||
- Ejemplo: `~/.gradio/data/eventos/12/0.com` = evento del mediodía
|
||||
|
||||
## Cola activa `eventoslist`
|
||||
|
||||
`~/.gradio/data/tmp/eventoslist` — lista de rutas que el player procesará como evento emergente.
|
||||
|
||||
El player detecta cuando esta cola tiene contenido y la procesa de inmediato (interrumpe brevemente la música).
|
||||
|
||||
## Diferencia entre Comerciales, Eventos y Eventos-en-Espera
|
||||
|
||||
| Aspecto | Comerciales | Eventos | Eventos-en-Espera |
|
||||
|---------|-------------|---------|-------------------|
|
||||
| Directorio | `data/comerciales/` | `data/eventos/` | `data/eventos-espera/` |
|
||||
| Cola activa | `tmp/comercialeslist4` | `tmp/eventoslist` | `tmp/eventos-esperalist` |
|
||||
| Típico uso | Publicidad programada | Cuñas institucionales, separadores | Acciones espontáneas del operador |
|
||||
| Scheduler | `comercial-scheduler` | `comercial-scheduler` | `comercial-scheduler` |
|
||||
|
||||
## Comandos útiles
|
||||
|
||||
```bash
|
||||
# Ver eventos programados para hoy a las 12:00
|
||||
cat ~/.gradio/data/eventos/12/0.com
|
||||
|
||||
# Ver cola activa de eventos
|
||||
cat ~/.gradio/data/tmp/eventoslist
|
||||
|
||||
# Disparar un evento inmediatamente (reproducir ahora)
|
||||
echo "/ruta/cuña.mp3" > ~/.gradio/data/tmp/eventoslist
|
||||
|
||||
# Agregar evento al mediodía todos los días
|
||||
mkdir -p ~/.gradio/data/eventos/12
|
||||
echo "/ruta/cuña_mediodia.mp3|1234567|20250101|20261231" >> ~/.gradio/data/eventos/12/0.com
|
||||
|
||||
# Vaciar la cola activa de eventos
|
||||
> ~/.gradio/data/tmp/eventoslist
|
||||
|
||||
# Ver estado general del sistema (incluye num_eventos)
|
||||
cat ~/.gradio/data/tmp/estado.json | python3 -c "import sys,json; d=json.load(sys.stdin); print('Eventos en cola:', d['num_eventos'])"
|
||||
```
|
||||
|
||||
## Estado en `estado.json`
|
||||
|
||||
El campo `eventos_activos` indica si hay un evento reproduciéndose ahora mismo. `num_eventos` muestra cuántos hay en cola.
|
||||
|
||||
# Eventos en Espera
|
||||
|
||||
Los **eventos en espera** son acciones programadas que el operador prepara con antelación para disparar cuando lo decida, o que el scheduler carga automáticamente. Son el equivalente de una "lista de espera" de efectos.
|
||||
|
||||
## Archivos `.com`
|
||||
|
||||
Ruta: `~/.gradio/data/eventos-espera/<hora>/<minuto>.com`
|
||||
|
||||
- Mismo formato que comerciales y eventos: `/ruta/audio.mp3|máscara_días|fecha_inicio|fecha_fin`
|
||||
- Ejemplo: `~/.gradio/data/eventos-espera/9/30.com` = evento en espera a las 9:30
|
||||
|
||||
## Cola activa `eventos-esperalist`
|
||||
|
||||
`~/.gradio/data/tmp/eventos-esperalist` — lista de rutas pendientes en espera.
|
||||
|
||||
El player la monitorea: cuando tiene contenido, lo reproduce en modo emergente (igual que `eventoslist`).
|
||||
|
||||
## Uso típico
|
||||
|
||||
Los eventos en espera se usan para:
|
||||
- Anuncios de noticias que salen al aire cuando el operador decide
|
||||
- Efectos especiales cargados con antelación
|
||||
- Separadores y cortinas que se reproducen bajo demanda
|
||||
|
||||
## Comandos útiles
|
||||
|
||||
```bash
|
||||
# Ver cola de eventos en espera
|
||||
cat ~/.gradio/data/tmp/eventos-esperalist
|
||||
|
||||
# Poner un audio en la cola de espera (listo para reproducir)
|
||||
echo "/ruta/noticia_urgente.mp3" > ~/.gradio/data/tmp/eventos-esperalist
|
||||
|
||||
# Agregar sin borrar los anteriores
|
||||
echo "/ruta/efecto.mp3" >> ~/.gradio/data/tmp/eventos-esperalist
|
||||
|
||||
# Vaciar la cola de espera
|
||||
> ~/.gradio/data/tmp/eventos-esperalist
|
||||
|
||||
# Programar evento en espera para las 10:30 todos los lunes-viernes
|
||||
mkdir -p ~/.gradio/data/eventos-espera/10
|
||||
echo "/ruta/noticia.mp3|12345|20250601|20251231" >> ~/.gradio/data/eventos-espera/10/30.com
|
||||
|
||||
# Estado: cuántos hay en la cola de espera
|
||||
cat ~/.gradio/data/tmp/estado.json | python3 -c "import sys,json; d=json.load(sys.stdin); print('En espera:', d['num_eventos_espera'])"
|
||||
```
|
||||
|
||||
## Resumen de las tres colas
|
||||
|
||||
```bash
|
||||
# Ver el estado de todas las colas a la vez
|
||||
echo "=== MÚSICA (playlist4) ==="
|
||||
wc -l ~/.gradio/data/tmp/playlist4
|
||||
echo "=== COMERCIALES activos ==="
|
||||
cat ~/.gradio/data/tmp/comercialeslist4
|
||||
echo "=== EVENTOS activos ==="
|
||||
cat ~/.gradio/data/tmp/eventoslist
|
||||
echo "=== EVENTOS EN ESPERA ==="
|
||||
cat ~/.gradio/data/tmp/eventos-esperalist
|
||||
```
|
||||
Reference in New Issue
Block a user