Déplacer cache registry dans les crates individuelles (pattern singleton)

Au lieu d'avoir un cache_registry centralisé dans pmoupnp qui créait
des dépendances circulaires, chaque crate a maintenant son propre
singleton global :

- pmoaudiocache : register_audio_cache() + get_audio_cache()
- pmocovers : register_cover_cache() + get_cover_cache()

Changes:
- Add singleton pattern to pmoaudiocache/src/lib.rs
- Add singleton pattern to pmocovers/src/lib.rs
- Add once_cell dependency to both crates
- Update pmoplaylist to use pmoaudiocache::get_audio_cache() as fallback
- Update pmoupnp/upnp_server.rs to use register_* functions
- Update pmoupnp/lib.rs to reexport only get_* (not register_*)
- Remove pmoupnp/src/cache_registry.rs (no longer needed)

pmoupnp réexporte get_audio_cache() et get_cover_cache() pour
compatibilité avec le code existant (pmosource, etc.).
This commit is contained in:
Claude
2025-11-05 20:48:52 +00:00
parent a6cb7ac5e1
commit e06a8d95df
9 changed files with 107 additions and 274 deletions

View File

@@ -312,8 +312,8 @@ pub(crate) fn audio_cache() -> Result<Arc<pmoaudiocache::Cache>> {
.get()
.cloned()
.or_else(|| {
// Fallback: essayer pmoupnp si disponible
pmoupnp::get_audio_cache()
// Fallback: essayer le registre global de pmoaudiocache
pmoaudiocache::get_audio_cache()
})
.ok_or_else(|| crate::Error::ManagerNotInitialized)
}