aboutsummaryrefslogtreecommitdiff
path: root/sound/mixer.h
diff options
context:
space:
mode:
authorMax Horn2003-12-24 00:25:18 +0000
committerMax Horn2003-12-24 00:25:18 +0000
commite9269257f3da947eca3fb167b279fbe91650157a (patch)
tree62784e4ce6a708398f018855b6d672de6b0345db /sound/mixer.h
parent3f77642948a824e6e198c93a455fbf3fbab7e507 (diff)
downloadscummvm-rg350-e9269257f3da947eca3fb167b279fbe91650157a.tar.gz
scummvm-rg350-e9269257f3da947eca3fb167b279fbe91650157a.tar.bz2
scummvm-rg350-e9269257f3da947eca3fb167b279fbe91650157a.zip
turned PlayingSoundHandle into an 'opaque' (well not really :-) data type, mainly because people kept (accidentally and sometimes on purpose :-) misusing them
svn-id: r11881
Diffstat (limited to 'sound/mixer.h')
-rw-r--r--sound/mixer.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/sound/mixer.h b/sound/mixer.h
index 3ed2cd798f..d1bd379408 100644
--- a/sound/mixer.h
+++ b/sound/mixer.h
@@ -35,12 +35,22 @@
#endif
-typedef uint32 PlayingSoundHandle;
-
class AudioInputStream;
class Channel;
class File;
+class PlayingSoundHandle {
+ friend class Channel;
+ friend class SoundMixer;
+ int val;
+ int getIndex() const { return val - 1; }
+ void setIndex(int i) { val = i + 1; }
+ void resetIndex() { val = 0; }
+public:
+ PlayingSoundHandle() { resetIndex(); }
+ bool isActive() const { return val > 0; }
+};
+
class SoundMixer {
public:
typedef void PremixProc (void *param, int16 *data, uint len);