Commit graph

123 commits

Author SHA1 Message Date
Max Horn
ce8c99bf62 Rename remaining OSystem methods to match our coding guidelines
svn-id: r15332
2004-09-28 20:19:37 +00:00
Travis Howell
95a52bf4b4 Fix compile
svn-id: r14898
2004-09-04 23:05:34 +00:00
Torbjörn Andersson
eff7b341d0 Fixed a glitch in the music fade-out code.
svn-id: r14888
2004-09-04 09:46:47 +00:00
Torbjörn Andersson
cb399b63d5 Added support for compressed music. I'm sure there are some glitches still
to fix, but it should work well enough for now.

In this rewrite of the music code, I removed the "save/restore music state"
function, since it just complicated things for a very small gain. It wasn't
in the original engine, and I added it just for the credits, so that the
previously playing music could be resumed afterwards. I might re-add it
later, but probably not.

svn-id: r14887
2004-09-04 09:27:17 +00:00
Torbjörn Andersson
4a6d5e4119 Cleanup. Removed the original DipMusic() code. If anyone wants to
implement it - personally I don't see the need - they can get it from CVS.

svn-id: r14819
2004-08-28 14:50:44 +00:00
Torbjörn Andersson
f004af9d4f Use the same code for opening the music clusters as for opening the speech
clusters. (No, that doesn't mean compressed music is support yet. This is
just a tiny little step closer.)

svn-id: r14794
2004-08-27 08:31:33 +00:00
Torbjörn Andersson
15fa71e1bf Explicitly cast value to uint32, since there was a report about compilation
problems. Perhaps this will fix it?

svn-id: r14762
2004-08-26 06:59:15 +00:00
Torbjörn Andersson
68acd13ad4 The original speech clusters are now decoded through a custom AudioStream
class, so they are handled the same way as the compressed clusters.

The next step will be to migrate the music playback to use the same class,
which means the fade-in/out logic needs to be separated from the decoding.
Once this is done, adding support for compressed music should be a piece of
cake.

svn-id: r14740
2004-08-25 06:55:15 +00:00
Torbjörn Andersson
44eca16eb6 Fixed the bug that caused Vorbis and FLAC to misbehave with compressed
speech. (Apparently it was just an accident that MP3 worked.)

Unfortunately I had to change the file format of the compressed files to
include both the compressed and uncompressed size, but since the tool to
create these files has only lived as an item in the patch tracker, no one
should have exptected it to be the final, working version, right? Right.

svn-id: r14698
2004-08-23 06:17:40 +00:00
Torbjörn Andersson
e00f9f4a97 Experimental (i.e. slightly broken) code for handling compressed speech.
The equally experimental compression tool is in patch #854561.

Support for compressed music will require some restructuring first.

svn-id: r14684
2004-08-22 14:28:11 +00:00
Torbjörn Andersson
f02a14427b Allowing both music streams to share the same rate converter only worked
by accident, and could cause bad noises during music cross-fades.

This wasn't a problem in 0.6.0 since all music is sampled at 22050 Hz,
which is the most likely output sample rate for ScummVM, so the converter
didn't actually have to do anything. Now, however, the output sample rate
could be anything.

I've given the music streams one converter each. In BS1, which uses similar
music code, it was already necessary to do this since some of its music is
sampled at 11025 Hz.

svn-id: r14237
2004-07-17 14:00:07 +00:00
Torbjörn Andersson
e554f46f71 Cleanup
svn-id: r13956
2004-06-12 09:53:45 +00:00
Torbjörn Andersson
bc77ba431a Simplified the handling of sound effects. It's not necessary for the driver
to keep its own copy of the sound data. It could be even further simplified
(I don't really see any reason for having two different sound queues), but
I seem to have reached a point of stability here and I don't want to jinx
it by making further changes yet.

svn-id: r13705
2004-05-01 10:42:23 +00:00
Torbjörn Andersson
8f8185f035 Major revamping of the BS2 memory manager and, some small changes to the
resource manager. All new code! All new bugs!

svn-id: r13603
2004-04-23 07:02:11 +00:00
Torbjörn Andersson
0fc86ef674 Fixed a slight logic error in the music fading. At this point the code
should only check if the music is fading, not in which direction. (Also
made a minor cleanup.)

svn-id: r13235
2004-03-13 12:05:01 +00:00
Max Horn
c6752cccf5 renamed more OSystem methods to follow our naming scheme; renamed NewGuiColor to OverlayColor; fixed some calls to error() in the SDL backend
svn-id: r13087
2004-02-28 12:58:13 +00:00
Torbjörn Andersson
55556c813c Proper handling of BS2 cutscene lead-outs, plus some other minor fixes.
svn-id: r12907
2004-02-15 14:22:54 +00:00
Torbjörn Andersson
802a301a16 Removed some of the #includes from sword2.h
svn-id: r12739
2004-02-05 14:19:07 +00:00
Max Horn
176aa74827 Renamed the 'pan' effect of the mixer to 'balance', since that is what we actually do; applied patch #886786 which corrects a bug in the balance code
svn-id: r12665
2004-01-29 18:15:27 +00:00
Torbjörn Andersson
673862dbfd Made a separate function out of the code that retrieves information about
an in-memory WAV file. At the moment it's only used in one place, which is
a bit silly, but I hope to use it for the cutscene player to figure out
when to start the lead-out music.

(To do that I'll need to know how long the cutscene is, though. I haven't
looked into how to find that out yet.)

svn-id: r12424
2004-01-16 08:16:23 +00:00
Torbjörn Andersson
4980331ecf I accidentally introduced a bug when I changed the fading that would cause
fading-up music to distort and eventually deteriorate into white noise.

This was because I allowed _fade to be set on channels that weren't playing
and because I only checked _fade for equality when deciding when to stop
the fading. It should work much better now, I think.

svn-id: r12392
2004-01-14 18:33:30 +00:00
Torbjörn Andersson
b17d77eae9 Changed the music fading so that volume is increased when ABS(_fading)
grows larger, both when fading up or down. This fixes the problem where the
volume would "jump" when changing the fading "direction" of a stream.

Also changed the logic for deciding which music stream to stop if both
streams are playing and a third stream is started. Before it always tried
to pick the one that was fading down. Now it will pick the one with the
lowest volume, assuming that the more faded a stream is the lower its
volume.

Together, this should fix some abrupt music changes at the watchman's hut,
where it would sometimes start two music streams in rapid succession.

svn-id: r12372
2004-01-14 08:06:56 +00:00
Torbjörn Andersson
c75f5efd2f Sync the credits so that the text scroll and music will last for about the
same amount of time. I don't think the original did this, but it turned out
to be pretty easy.

svn-id: r12334
2004-01-12 08:01:25 +00:00
Torbjörn Andersson
7309705db5 cleanup
svn-id: r12322
2004-01-11 16:53:33 +00:00
Torbjörn Andersson
6d0dd6aee8 Valgrind fixes. Mostly about memory not being freed when the engine is
deleted.

svn-id: r12211
2004-01-07 07:42:00 +00:00
Torbjörn Andersson
065f2bb9eb It's a new year in BS2 land, too!
svn-id: r12181
2004-01-06 13:44:17 +00:00
Max Horn
cf6a5c0a04 cleanup
svn-id: r12116
2004-01-03 19:12:23 +00:00
Max Horn
ee3558b748 fix for BE systems
svn-id: r12115
2004-01-03 19:02:18 +00:00
Torbjörn Andersson
bb8ff0cd90 Made the music code more like the one in BS1, i.e. the fade time is longer
and it now fades both up and down.

Plenty of cleanups, simplifications and just moving code around to group it
in what I hope is a more logical fashion.

Fixed a long-standing bug where spot effects would eventually use up all
available sound effect handles. (I may have introduced this when I removed
the expiration of sound effects from FxServer().)

svn-id: r12108
2004-01-03 11:24:39 +00:00
Torbjörn Andersson
033a847e77 Oops, that was the wrong data type. (Not that it should matter, but...)
svn-id: r12069
2004-01-01 15:15:47 +00:00
Torbjörn Andersson
2687402c6b oops, forgot one case
svn-id: r12056
2003-12-31 14:10:42 +00:00
Torbjörn Andersson
c85301b2a9 When saving the music state, remember the name of the music file that was
open so that it can be re-opened afterwards. It's not so much that it may
have changed, but it may have been closed.

This should fix a crash when escaping the credits.

svn-id: r12055
2003-12-31 14:05:53 +00:00
Torbjörn Andersson
6ae8218d53 Hopefully the last big renaming. Now the datatypes have names like
"StandardHeader" instead of "_standardHeader".

svn-id: r11997
2003-12-28 15:08:12 +00:00
Max Horn
e9269257f3 turned PlayingSoundHandle into an 'opaque' (well not really :-) data type, mainly because people kept (accidentally and sometimes on purpose :-) misusing them
svn-id: r11881
2003-12-24 00:25:18 +00:00
Torbjörn Andersson
c2c250edc1 Fixed bug with looping music. It must have been there all along, but maybe
the recent mixer changes made it more audible. Or maybe I just didn't
listen until now.

svn-id: r11763
2003-12-19 17:07:37 +00:00
Max Horn
d8903123b0 distinguish between end of stream and end of data
svn-id: r11756
2003-12-19 01:30:19 +00:00
Max Horn
0cddca5f43 unregister the premix proc when you go away
svn-id: r11755
2003-12-19 01:08:30 +00:00
Max Horn
97ee61963c I am going to remove the default implementation of readBuffer() (AudioInputStream subclasses really really should implement readBuffer() for good performance)
svn-id: r11753
2003-12-19 00:27:09 +00:00
Torbjörn Andersson
9a1bbb361b My last commit didn't work on big-endian. Maybe this one does...
svn-id: r11711
2003-12-17 11:52:05 +00:00
Torbjörn Andersson
a739f3ae3b The mixer handles little-endian samples now. Take advantage of that.
svn-id: r11707
2003-12-17 11:07:40 +00:00
Torbjörn Andersson
af02beefd9 cleanup
svn-id: r11457
2003-12-02 07:41:04 +00:00
Torbjörn Andersson
fa2b8ba8de More cleanup. I've eliminated all the temporary global variables I've added
over the past few weeks, except for g_sword2. (Of course, this doesn't
necessarily make the code any prettier, but we can work on that later.)

svn-id: r11309
2003-11-16 14:18:29 +00:00
Torbjörn Andersson
446a01ba09 Moved low-level keyboard and mouse handling to a new Input class, and
renamed the Display class Graphics for no better reason than me liking the
phrase "sound and graphics" better than "sound and display".

svn-id: r11258
2003-11-11 07:43:02 +00:00
Paweł Kołodziejski
409108df82 cleanup whitespaces
svn-id: r11212
2003-11-08 19:47:20 +00:00
Torbjörn Andersson
ae9fe77479 Instead of having a function that reverses the panning table, we now have a
function that creates the panning table. The difference is that you now
have to tell whether you want one for normal or reverse stereo, so you are
not dependent on the previous state of the table.

(I still think it may be possible to get rid of the panning table
completely, but that's for later cleanups.)

svn-id: r11027
2003-11-01 18:12:04 +00:00
Torbjörn Andersson
d7bd7d44b8 Use the ScummVM config manager instead of a separate BS2-specific config
file, plus some other cleanup. I don't know how the config manager decides
if/when to save the settings to file, but we can worry about that later.

svn-id: r11001
2003-10-29 07:53:05 +00:00
Max Horn
2fef2dcb84 bs2 -> sword2
svn-id: r10997
2003-10-28 19:51:30 +00:00
Torbjörn Andersson
8b42d65a7e Dumped most of the remaining "driver" code into a new "Display" class. This
touches a lot of the code, of course, and adds yet another global variable
(temporarily, I hope), but everything still seems to work.

Knock on wood.

svn-id: r10806
2003-10-15 06:40:31 +00:00
Torbjörn Andersson
a1f4dc2c90 cleanup
svn-id: r10681
2003-10-08 17:09:51 +00:00
Torbjörn Andersson
7adf0ff1fc Some more cosmetic changes while I'm considering the next move. (Or maybe
I'm just hoping that if I stall long enough, someone else will make the
move for me. :-)

svn-id: r10676
2003-10-08 06:58:34 +00:00