struct SuperScope : Controller { enum : uint { X, Y, Trigger, Cursor, Turbo, Pause, }; SuperScope(uint port); auto data() -> uint2; auto latch(bool data) -> void; auto latch() -> void override; auto draw(uint32_t* data, uint pitch, uint width, uint height) -> void override; private: bool latched; uint counter; int x; int y; bool trigger; bool cursor; bool turbo; bool pause; bool offscreen; bool oldturbo; bool triggerlock; bool pauselock; uint prev; };