Add scss colors into rust via build-script, flesh out math evaluation in launcher, Restructure some code
This commit is contained in:
@@ -516,30 +516,32 @@ impl BackendThread<MediaMessage, Sender<MediaMessage>> for MediaBackend {
|
||||
return;
|
||||
};
|
||||
while let Ok(msg) = rx.recv() {
|
||||
let mut instance_guard = instance.lock().unwrap();
|
||||
if let Some(name) = &instance_guard.active_player
|
||||
&& let Some(status) = instance_guard.players.get(name)
|
||||
{
|
||||
match msg {
|
||||
MediaMessage::PlayerPlay => {
|
||||
if let PlayerStatus::Paused(_) = status {
|
||||
instance_guard.active_player_play(&connection).await;
|
||||
}
|
||||
let Some(name) = &instance.lock().unwrap().active_player.clone() else {
|
||||
continue;
|
||||
};
|
||||
let Some(status) = instance.lock().unwrap().players.get(name).cloned()
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
match msg {
|
||||
MediaMessage::PlayerPlay => {
|
||||
if let PlayerStatus::Paused(_) = status {
|
||||
MediaBackend::player_play(name, &connection).await;
|
||||
}
|
||||
MediaMessage::PlayerPause => {
|
||||
if let PlayerStatus::Playing(_) = status {
|
||||
instance_guard.active_player_pause(&connection).await;
|
||||
}
|
||||
}
|
||||
MediaMessage::PlayerStop => {
|
||||
if let PlayerStatus::Playing(_) | PlayerStatus::Paused(_) =
|
||||
status
|
||||
{
|
||||
instance_guard.active_player_stop(&connection).await;
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
MediaMessage::PlayerPause => {
|
||||
if let PlayerStatus::Playing(_) = status {
|
||||
MediaBackend::player_pause(name, &connection).await;
|
||||
instance.lock().unwrap().update_active_player();
|
||||
}
|
||||
}
|
||||
MediaMessage::PlayerStop => {
|
||||
if let PlayerStatus::Playing(_) | PlayerStatus::Paused(_) = status {
|
||||
MediaBackend::player_stop(name, &connection).await;
|
||||
instance.lock().unwrap().select_active_player(None);
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -756,54 +758,35 @@ impl MediaBackend {
|
||||
}
|
||||
}
|
||||
|
||||
async fn active_player_play(&self, connection: &zbus::Connection) {
|
||||
if let Some(player_name) = &self.active_player
|
||||
&& let Ok(proxy) = zbus::Proxy::new(
|
||||
connection,
|
||||
player_name.as_str(),
|
||||
MPRIS_PATH,
|
||||
MPRIS_PLAYER_INTERFACE,
|
||||
)
|
||||
.await
|
||||
async fn player_play(name: &str, connection: &zbus::Connection) {
|
||||
if let Ok(proxy) =
|
||||
zbus::Proxy::new(connection, name, MPRIS_PATH, MPRIS_PLAYER_INTERFACE).await
|
||||
&& let Err(e) = proxy.call_method("Play", &()).await
|
||||
{
|
||||
warn!(
|
||||
&LOGGER,
|
||||
"Error starting play for player: {player_name}, {e}"
|
||||
);
|
||||
warn!(&LOGGER, "Error starting play for player: {name}, {e}");
|
||||
}
|
||||
}
|
||||
|
||||
async fn active_player_pause(&mut self, connection: &zbus::Connection) {
|
||||
if let Some(player_name) = &self.active_player
|
||||
&& let Ok(proxy) = zbus::Proxy::new(
|
||||
connection,
|
||||
player_name.as_str(),
|
||||
MPRIS_PATH,
|
||||
MPRIS_PLAYER_INTERFACE,
|
||||
)
|
||||
.await
|
||||
async fn player_pause(name: &str, connection: &zbus::Connection) {
|
||||
if let Ok(proxy) =
|
||||
zbus::Proxy::new(connection, name, MPRIS_PATH, MPRIS_PLAYER_INTERFACE).await
|
||||
&& let Err(e) = proxy.call_method("Pause", &()).await
|
||||
{
|
||||
warn!(&LOGGER, "Error pausing player: {player_name}, {e}");
|
||||
self.select_active_player(self.active_player.clone());
|
||||
warn!(&LOGGER, "Error pausing player: {name}, {e}");
|
||||
}
|
||||
}
|
||||
|
||||
async fn active_player_stop(&mut self, connection: &zbus::Connection) {
|
||||
if let Some(player_name) = &self.active_player
|
||||
&& let Ok(proxy) = zbus::Proxy::new(
|
||||
connection,
|
||||
player_name.as_str(),
|
||||
MPRIS_PATH,
|
||||
MPRIS_PLAYER_INTERFACE,
|
||||
)
|
||||
.await
|
||||
async fn player_stop(name: &str, connection: &zbus::Connection) {
|
||||
if let Ok(proxy) =
|
||||
zbus::Proxy::new(connection, name, MPRIS_PATH, MPRIS_PLAYER_INTERFACE).await
|
||||
&& let Err(e) = proxy.call_method("Stop", &()).await
|
||||
{
|
||||
warn!(&LOGGER, "Error stopping player: {player_name}, {e}");
|
||||
warn!(&LOGGER, "Error stopping player: {name}, {e}");
|
||||
}
|
||||
self.select_active_player(None);
|
||||
}
|
||||
|
||||
fn update_active_player(&mut self) {
|
||||
self.select_active_player(self.active_player.clone());
|
||||
}
|
||||
|
||||
fn select_active_player(&mut self, changed_player: Option<String>) {
|
||||
|
||||
Reference in New Issue
Block a user