Open
Description
Related to #116
A lot of the core application logic is implemented directly in the context classes, which are only supposed to be dumb facades providing a flat API for interacting with the core logic classes underneath. In the same way that having core logic in the GUI makes it impossible to decouple the GUI from the core, so having core logic at the context level makes it impossible to decouple the contexts from the core and refactor the distributed API. Such logic must be moved into classes "below" the contexts and potentially owned by the contexts, as a prerequisite to rewriting the GUI.
This issue is a place to collect a list of all parts of the application logic that fall into this category:
- Audio context implements logic for adjusting volume.