aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/base_game_music.h
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-12-09 16:31:47 +0100
committerEinar Johan Trøan Sømåen2012-12-09 16:31:47 +0100
commit115e60e7cb10b271ce727f563b1dc3ff37c193a8 (patch)
treece07852d35dc19241a7d8b1b214fefacb6f6d151 /engines/wintermute/base/base_game_music.h
parent83ecd85e7838dc54ff8608d1971817cf5cb17048 (diff)
downloadscummvm-rg350-115e60e7cb10b271ce727f563b1dc3ff37c193a8.tar.gz
scummvm-rg350-115e60e7cb10b271ce727f563b1dc3ff37c193a8.tar.bz2
scummvm-rg350-115e60e7cb10b271ce727f563b1dc3ff37c193a8.zip
WINTERMUTE: Split out the music-related functionality of BaseGame to a separate class.
Diffstat (limited to 'engines/wintermute/base/base_game_music.h')
-rw-r--r--engines/wintermute/base/base_game_music.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/engines/wintermute/base/base_game_music.h b/engines/wintermute/base/base_game_music.h
new file mode 100644
index 0000000000..058a8cadef
--- /dev/null
+++ b/engines/wintermute/base/base_game_music.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+/*
+ * This file is based on WME Lite.
+ * http://dead-code.org/redir.php?target=wmelite
+ * Copyright (c) 2011 Jan Nedoma
+ */
+
+#ifndef WINTERMUTE_BASE_GAME_MUSIC_H
+#define WINTERMUTE_BASE_GAME_MUSIC_H
+
+#include "common/scummsys.h"
+
+
+namespace Wintermute {
+
+#define NUM_MUSIC_CHANNELS 5
+class BasePersistenceManager;
+class BaseSound;
+class ScStack;
+class ScScript;
+class BaseGame;
+class BaseGameMusic {
+public:
+ BaseGameMusic(BaseGame *gameRef);
+ void cleanup();
+
+ bool scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack, const char *name);
+
+ bool resumeMusic(int channel);
+ bool setMusicStartTime(int channel, uint32 time);
+ bool pauseMusic(int channel);
+ bool stopMusic(int channel);
+ bool playMusic(int channel, const char *filename, bool looping = true, uint32 loopStart = 0);
+ bool updateMusicCrossfade();
+
+ bool persistChannels(BasePersistenceManager *persistMgr);
+ bool persistCrossfadeSettings(BasePersistenceManager *persistMgr);
+private:
+ BaseGame *_gameRef;
+ BaseSound *_music[NUM_MUSIC_CHANNELS];
+ uint32 _musicStartTime[NUM_MUSIC_CHANNELS];
+ bool _musicCrossfadeRunning;
+ bool _musicCrossfadeSwap;
+ uint32 _musicCrossfadeStartTime;
+ uint32 _musicCrossfadeLength;
+ int _musicCrossfadeChannel1;
+ int _musicCrossfadeChannel2;
+};
+
+} // end of namespace Wintermute
+
+#endif