On avance...

This commit is contained in:
2025-09-06 17:45:28 +02:00
parent 83a0b62dd3
commit d1132e00cd
81 changed files with 6656 additions and 475 deletions

View File

@@ -2,45 +2,30 @@ package main
import (
"context"
"log"
"os"
"os/signal"
"syscall"
"time"
"gargoton.petite-maison-orange.fr/eric/pmomusic/internal/renderer"
"gargoton.petite-maison-orange.fr/eric/pmomusic/internal/upnp"
log "github.com/sirupsen/logrus"
"gargoton.petite-maison-orange.fr/eric/pmomusic/upnp"
"gargoton.petite-maison-orange.fr/eric/pmomusic/upnp/devices/mediarenderer"
)
func main() {
ctx, stop := signal.NotifyContext(
context.Background(),
syscall.SIGINT,
syscall.SIGTERM,
)
defer stop()
// Crée le serveur avec baseURL auto-déduite depuis lIP locale
server := upnp.NewServer("PMO Music Server", "PMO Factory", "Fake Server", "", 1400)
server := upnp.NewServer("pmomusic")
// Crée le renderer UPnP
rendererDevice := renderer.NewMusicRenderer("pmomusic Fake Renderer", "pmomusic", "fake model")
server.RegisterDevice("MusicRenderer", rendererDevice)
server.RegisterDevice("", mediarenderer.FakeRenderer)
// Lance le serveur HTTP
if err := server.Start(); err != nil {
log.Fatalf("Failed to start UPnP server: %v", err)
}
// Gère les signaux pour un arrêt propre
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
log.Println("UPnP MusicRenderer is running... Press Ctrl+C to stop.")
<-sigs
log.Println("Shutting down...")
// Dé-annonce SSDP (optionnel)
server.NotifyByeBye()
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
if err := server.Stop(ctx); err != nil {
log.Printf("Error shutting down UPnP server: %v", err)
if err := server.Run(ctx); err != nil {
log.Fatalf("server error: %v", err)
}
}