1 class LoggedAudio : public Audio
2 {
3
4 public:
5 LoggedAudio(Audio &wrapped)
6 : wrapped_(wrapped)
7 {}
8
9 virtual void playSound(int soundID)
10 {
11 log("play sound");
12 wrapped_.playSound(soundID);
13 }
14
15 virtual void stopSound(int soundID)
16 {
17 log("stop sound");
18 wrapped_.stopSound(soundID);
19 }
20
21 virtual void stopAllSounds()
22 {
23 log("stop all sounds");
24 wrapped_.stopAllSounds();
25 }
26
27 private:
28 void log(const char* message)
29 {
30 // Code to log message...
31 }
32
33 Audio &wrapped_;
34
35 };