(&self)
| 178 | } |
| 179 | |
| 180 | pub fn subscribe(&self) -> FrameSubscription { |
| 181 | *self.inner.state.lock().unwrap() = SessionState::Streaming; |
| 182 | let previous = self |
| 183 | .inner |
| 184 | .active_frame_subscribers |
| 185 | .fetch_add(1, Ordering::Relaxed); |
| 186 | if previous == 0 { |
| 187 | self.inner.native.set_client_foreground(true); |
| 188 | } |
| 189 | self.inner.start_refresh_pump(); |
| 190 | FrameSubscription { |
| 191 | inner: self.inner.clone(), |
| 192 | receiver: self.inner.sender.subscribe(), |
| 193 | } |
| 194 | } |
| 195 | |
| 196 | pub fn latest_keyframe(&self) -> Option<SharedFrame> { |
| 197 | self.inner.latest_keyframe.read().unwrap().clone() |
no test coverage detected