Implémentation du WebRenderer et améliorations du serveur
Ajout de la fonctionnalité WebRenderer permettant au navigateur de se connecter comme renderer UPnP. - Implémentation du composant Vue useWebRenderer pour gérer la connexion WebSocket et le contrôle audio - Ajout d'un proxy WebSocket dans Vite pour rediriger les requêtes /api/webrenderer/ws vers le serveur - Modification du serveur pour permettre l'enregistrement dynamique de routes et extraction du JoinHandle - Améliorations du parsing des métadonnées AVTransport pour gérer les types String et DIDLLite - Ajout de la détection et du nommage des navigateurs dans le WebRenderer - Mise à jour des dépendances avec tower 0.5.2 - Correction de la gestion des threads lors de l'arrêt du serveur HTTP
This commit is contained in:
@@ -31,6 +31,11 @@ fn avtransporturimetadataparser(value: &str) -> Result<Box<dyn Reflect>, StateVa
|
||||
}
|
||||
|
||||
fn avtransporturimetadatamarshal(value: &dyn Reflect) -> Result<String, StateVariableError> {
|
||||
// Si c'est déjà une String, on la retourne directement
|
||||
if let Some(s) = value.as_any().downcast_ref::<String>() {
|
||||
return Ok(s.clone());
|
||||
}
|
||||
// Sinon, on essaie de convertir depuis DIDLLite
|
||||
let didl = value
|
||||
.downcast_ref::<DIDLLite>()
|
||||
.ok_or_else(|| StateVariableError::ConversionError("DIDLLite".into()))?;
|
||||
@@ -45,6 +50,8 @@ pub static AVTRANSPORTURIMETADATA: Lazy<Arc<StateVariable>> =
|
||||
|
||||
sv.set_value_parser(Arc::new(avtransporturimetadataparser))
|
||||
.expect("Failed to set parser");
|
||||
sv.set_value_marshaler(Arc::new(avtransporturimetadatamarshal))
|
||||
.expect("Failed to set marshaler");
|
||||
Arc::new(sv)
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user