Skip to main content

lux_native/
lib.rs

1#[cfg(feature = "kg")]
2pub mod kg;
3#[cfg(feature = "kw")]
4pub mod kw;
5#[cfg(feature = "mg")]
6pub mod mg;
7#[cfg(feature = "tx")]
8pub mod tx;
9#[cfg(feature = "wy")]
10pub mod wy;
11
12use lux_core::traits::MusicSource;
13use lux_core::types::Source;
14use std::sync::Arc;
15
16pub fn get_native_source(source: &Source) -> Option<Arc<dyn MusicSource>> {
17    match source {
18        #[cfg(feature = "wy")]
19        Source::NetEase => Some(Arc::new(wy::NetEaseSource)),
20        #[cfg(feature = "kw")]
21        Source::Kuwo => Some(Arc::new(kw::KuwoSource)),
22        #[cfg(feature = "kg")]
23        Source::Kugou => Some(Arc::new(kg::KugouSource)),
24        #[cfg(feature = "tx")]
25        Source::QQ => Some(Arc::new(tx::QQSource)),
26        #[cfg(feature = "mg")]
27        Source::Migu => Some(Arc::new(mg::MiguSource)),
28        _ => None,
29    }
30}