Skip to content

Commit

Permalink
failed attempt provider impl
Browse files Browse the repository at this point in the history
  • Loading branch information
HolbyFPV committed Sep 26, 2024
1 parent c07c356 commit c160d9c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 5 deletions.
20 changes: 17 additions & 3 deletions packages/desktop/src/providers/media/media_provider.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use anyhow::Result;
use serde::{Deserialize, Serialize};
use tokio::{sync::mpsc::Sender, time};
use windows::{
Foundation::{EventRegistrationToken, TypedEventHandler},
Media::Control::{
Expand All @@ -9,7 +10,10 @@ use windows::{
},
};

use crate::impl_interval_provider;
use crate::{
impl_interval_provider,
providers::{Provider, ProviderOutput, ProviderResult},
};

#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
Expand All @@ -35,7 +39,9 @@ pub struct MediaProvider {
}

impl MediaProvider {
pub fn new() -> anyhow::Result<MediaProvider> {
pub fn new(
config: MediaProviderConfig,
) -> anyhow::Result<MediaProvider> {
let session_manager =
GlobalSystemMediaTransportControlsSessionManager::RequestAsync()?
.get()?;
Expand All @@ -46,7 +52,7 @@ impl MediaProvider {
current_session,
};

let media_props = provider.get_media_properties()?;
let media_props = provider.get_media_properties()?;
println!("{:?}", media_props.title);

Ok(provider)
Expand All @@ -64,4 +70,12 @@ impl MediaProvider {
}
}

impl Provider for MediaProvider {
async fn run(&self, emit_result_tx: Sender<ProviderResult>) {
if let Err(err) = self.create_socket(emit_result_tx.clone()).await {
emit_result_tx.send(Err(err).into()).await;
}
}
}

// impl_interval_provider!(MediaProvider, true);
2 changes: 1 addition & 1 deletion packages/desktop/src/providers/provider_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pub enum ProviderConfig {
Ip(IpProviderConfig),
#[cfg(windows)]
Komorebi(KomorebiProviderConfig),
// Media(MediaProviderConfig),
Media(MediaProviderConfig),
Memory(MemoryProviderConfig),
Network(NetworkProviderConfig),
Weather(WeatherProviderConfig),
Expand Down
5 changes: 4 additions & 1 deletion packages/desktop/src/providers/provider_ref.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use tracing::{info, warn};

use super::{
battery::BatteryProvider, cpu::CpuProvider, host::HostProvider,
ip::IpProvider, memory::MemoryProvider, network::NetworkProvider,
ip::IpProvider, media::MediaProvider, memory::MemoryProvider, network::NetworkProvider,
weather::WeatherProvider, Provider, ProviderConfig, ProviderOutput,
SharedProviderState,
};
Expand Down Expand Up @@ -173,6 +173,9 @@ impl ProviderRef {
ProviderConfig::Komorebi(config) => {
Box::new(KomorebiProvider::new(config))
}
ProviderConfig::Media(config) => {
Box::new(MediaProvider::new(config))
}
ProviderConfig::Memory(config) => {
Box::new(MemoryProvider::new(config, shared_state.sysinfo.clone()))
}
Expand Down

0 comments on commit c160d9c

Please sign in to comment.