let get_source_state s = match geti s `source_state with
(* | 0x0000 -> `initial (* <= there is no 0x0000 state but its reported in bytecode !?! *)*)
| 0x1011 -> `initial
| 0x1012 -> `playing
| 0x1013 -> `paused
| 0x1014 -> `stopped
| r -> failwith (Printf.sprintf "unknown source state (0x%04X)" r)