Some substantial work has been done under #18 (all the commits mentioned there) to redesign the emulator code into independently cusomisable 'devices', such as screen windows implementing all the GUI features, tape players, keyboards, etc. This gives this work a dedicated ticket for better visibility.
The idea is to give users the freedom of composing their own emulation systems comprised of arbitrary sets of devices. For example, a user may want to have an emulator that has no keyboards or to have two GUI windows (probably serving different purposes) or to have a custom playback player (other than the RZX one).
This work is an important step towards figuring out the desired high-level design of the whole emulation framework.
A sub-task of #18.
Some substantial work has been done under #18 (all the commits mentioned there) to redesign the emulator code into independently cusomisable 'devices', such as screen windows implementing all the GUI features, tape players, keyboards, etc. This gives this work a dedicated ticket for better visibility.
The idea is to give users the freedom of composing their own emulation systems comprised of arbitrary sets of devices. For example, a user may want to have an emulator that has no keyboards or to have two GUI windows (probably serving different purposes) or to have a custom playback player (other than the RZX one).
This work is an important step towards figuring out the desired high-level design of the whole emulation framework.