(
state: jack_sys::jack_transport_state_t,
pos: *mut jack_sys::jack_position_t,
data: *mut libc::c_void,
)
| 201 | } |
| 202 | |
| 203 | unsafe extern "C" fn sync<N, P>( |
| 204 | state: jack_sys::jack_transport_state_t, |
| 205 | pos: *mut jack_sys::jack_position_t, |
| 206 | data: *mut libc::c_void, |
| 207 | ) -> libc::c_int |
| 208 | where |
| 209 | N: 'static + Send + Sync + NotificationHandler, |
| 210 | P: 'static + Send + ProcessHandler, |
| 211 | { |
| 212 | let res = catch_unwind(|| { |
| 213 | let Some(ctx) = CallbackContext::<N, P>::from_raw(data) else { |
| 214 | return false; |
| 215 | }; |
| 216 | let is_ready = ctx.process.sync( |
| 217 | &ctx.client, |
| 218 | crate::Transport::state_from_ffi(state), |
| 219 | &*(pos as *mut crate::TransportPosition), |
| 220 | ); |
| 221 | if !is_ready { |
| 222 | ctx.mark_invalid(false); |
| 223 | } |
| 224 | is_ready |
| 225 | }); |
| 226 | match res { |
| 227 | Ok(true) => 1, |
| 228 | Ok(false) => 0, |
| 229 | Err(err) => { |
| 230 | if let Some(ctx) = CallbackContext::<N, P>::from_raw(data) { |
| 231 | ctx.mark_invalid(true) |
| 232 | } |
| 233 | eprintln!("{err:?}"); |
| 234 | std::mem::forget(err); |
| 235 | 0 |
| 236 | } |
| 237 | } |
| 238 | } |
| 239 | |
| 240 | unsafe extern "C" fn freewheel<N, P>(starting: libc::c_int, data: *mut libc::c_void) |
| 241 | where |
nothing calls this directly
no test coverage detected