MCPcopy Create free account
hub / github.com/bajrangCoder/setu / sync_playback_state

Method sync_playback_state

src/components/audio_player.rs:104–128  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

102 if self.playback_state != PlaybackState::Playing {
103 return;
104 }
105
106 let Some(ref backend) = self.backend else {
107 self.playback_state = PlaybackState::Stopped;
108 return;
109 };
110
111 if let Ok(backend) = backend.lock() {
112 let sink_empty = backend.player.empty();
113 let sink_position = backend.player.get_pos();
114
115 self.current_position = if sink_empty {
116 self.total_duration.unwrap_or(sink_position)
117 } else {
118 self.clamp_to_duration(sink_position)
119 };
120
121 if sink_empty {
122 self.playback_state = PlaybackState::Stopped;
123 }
124 }
125 }
126
127 pub fn toggle_playback(&mut self, cx: &mut Context<Self>) {
128 match self.playback_state {
129 PlaybackState::Stopped | PlaybackState::Error => self.play(cx),
130 PlaybackState::Playing => self.pause(cx),
131 PlaybackState::Paused => self.resume(cx),

Callers 1

renderMethod · 0.80

Calls 1

clamp_to_durationMethod · 0.80

Tested by

no test coverage detected