| 57 | } |
| 58 | #[tracing::instrument(level = "debug", skip(duration))] |
| 59 | pub fn set_position(duration: f64) { |
| 60 | let should_update = { |
| 61 | let mut last_time_update_lock = last_time_update.lock().unwrap(); |
| 62 | if last_time_update_lock.elapsed().as_secs() > 10 { |
| 63 | *last_time_update_lock = wasm_timer::Instant::now(); |
| 64 | true |
| 65 | } else { |
| 66 | false |
| 67 | } |
| 68 | }; |
| 69 | if should_update { |
| 70 | spawn_local(async move { |
| 71 | let res = crate::utils::invoke::set_position(duration).await; |
| 72 | if let Err(err) = res { |
| 73 | tracing::error!("Failed to set mpris position {:?}", err); |
| 74 | } |
| 75 | }); |
| 76 | } |
| 77 | } |