Ajout de la gestion de la durée dans les métadonnées UPnP

Cette mise à jour ajoute la gestion de la durée dans les métadonnées UPnP et OpenHome. Les changements incluent :

- Ajout de la dépendance `pmoutils` dans `pmocontrol`
- Mise à jour du modèle `Item` pour inclure le champ `duration`
- Implémentation de la sérialisation DIDL-Lite avec `pmodidl` et `pmoutils`
- Ajout de la gestion de la durée dans les renderers UPnP et OpenHome
- Extraction de la durée depuis les métadonnées DIDL-Lite
- Support du fallback vers la durée du DIDL lorsque l'ampli ne la retourne pas
- Mise à jour des constructeurs d'items pour inclure la durée calculée pour les streams radio

Ces modifications permettent une meilleure gestion des durées de pistes audio, notamment pour les streams radio avec des durées calculées à partir des timestamps de début/fin.
This commit is contained in:
2026-01-23 22:02:03 +01:00
parent 5cee6539c6
commit a13467bc2c
14 changed files with 296 additions and 39 deletions

View File

@@ -32,6 +32,16 @@ fn to_didl_lite(containers: &[Container], items: &[pmodidl::Item]) -> Result<Str
// Retourne uniquement le corps DIDL, sans préfixer une seconde déclaration XML.
let body = didl.to_xml();
// Log le DIDL généré pour déboguer (limité aux 500 premiers caractères)
if !items.is_empty() {
tracing::debug!(
"Generated DIDL-Lite with {} items: {}",
items.len(),
&body[..body.len().min(800)]
);
}
Ok(body)
}