import rcade/player /// State of a player's spinner (rotary encoder). pub type Spinner { Spinner(step_delta: Int, angle: Float, step_resolution: Int) } /// Read a player's spinner state. The step delta is is reset to 0 on read. pub fn read(player: player.Player) -> Spinner { do_read(player.to_int(player)) } @external(javascript, "./spinner_ffi.mjs", "read_spinner") fn do_read(player: Int) -> Spinner /// Reset a player's spinner angle to 0. pub fn reset_angle(player: player.Player) -> Nil { do_reset_angle(player.to_int(player)) } @external(javascript, "./spinner_ffi.mjs", "reset_angle") fn do_reset_angle(player: Int) -> Nil /// Whether the spinner hardware is connected. @external(javascript, "./spinner_ffi.mjs", "connected") pub fn connected() -> Bool