Refactor|Audio|Client: Moved audio::ISoundPlayer functionality
Each audio driver now implements a specialized audio::Sound which hides the details of interacting with any underlying logical player mechanism (meaning that (for example) one can now simply instruct audio::Sound's to 'play' themselves).
Next step: Introduce audio::CdTrack and audio::Music instances to perform a similar role to audio::Sound, for the relevant players. Once all functionality has been relocated and the APIs redesigned we can then look to completely virtualize the 'player' abstraction.
Refactor|Audio|Client: Moved audio::ISoundPlayer functionality
Each audio driver now implements a specialized audio::Sound which
hides the details of interacting with any underlying logical player
mechanism (meaning that (for example) one can now simply instruct
audio::Sound's to 'play' themselves).
Next step: Introduce audio::CdTrack and audio::Music instances to
perform a similar role to audio::Sound, for the relevant players.
Once all functionality has been relocated and the APIs redesigned
we can then look to completely virtualize the 'player' abstraction.