Audio|Client|Refactor: Moved more sound playback state to audio::Sound
Logical Sounds now take on greater responsibility and help to guide playback behavior rather than leaving it all up to the Channels. With the logical sounds now tracking their emitters and playback modifiers this allows the Channels to concentrate on the lower-level concerns, such as interfacing with the external audio library/plugin.
Todo: More work remains to properly separate playback concerns between these components. For example, the sound Stage could use audiences to notify interested parties when high-level playback events occur (such as when starting a new logical Sound, which the Mixer should respond to by selecting a Channel on which to play).
Audio|Client|Refactor: Moved more sound playback state to audio::Sound
Logical Sounds now take on greater responsibility and help to guide
playback behavior rather than leaving it all up to the Channels. With
the logical sounds now tracking their emitters and playback modifiers
this allows the Channels to concentrate on the lower-level concerns,
such as interfacing with the external audio library/plugin.
Todo: More work remains to properly separate playback concerns between
these components. For example, the sound Stage could use audiences to
notify interested parties when high-level playback events occur (such
as when starting a new logical Sound, which the Mixer should respond
to by selecting a Channel on which to play).