Commit Graph

573 Commits

Author SHA1 Message Date
Jamieson Christian
fb62ba61ca Added PC Speaker and PCjr command line options,
in preparation for Kirben's addition of WA support
for games that already have AD tracks.

svn-id: r9656
2003-08-13 14:08:21 +00:00
Robert Göffringmann
7f7b0af613 added SoundMixer::pauseChannels for pausing SFX and keeping adlib music running (needed by BASS when menu bar drops down)
svn-id: r9607
2003-08-09 19:19:27 +00:00
Jamieson Christian
154e872d5a Added generic send() option to MidiChannel.
This circumvents problems doing generic send()
calls to MidiDrivers that support more than
16 MIDI channels (i.e. Adlib). Because of the
way it interacts with MidiDriver, Simon could
have run into a problem if it tried to
allocate more than 15 Adlib music channels
(though this would only happen in very, VERY
rare circumstances).

Also fixed a problem with the channel
numbering scheme used by MidiDriver_Adlib,
in particular the percussion channel number.

svn-id: r9604
2003-08-08 11:54:24 +00:00
Jamieson Christian
4353f4531c Send All Notes Off to every channel on close
svn-id: r9593
2003-08-08 07:23:11 +00:00
Max Horn
ac6bd10c59 my code was actually right. Rather the calling code is evil, it passes us odd buffer sizes for 16 bit audio data, which of course made no sense -> I added some asserts against this
svn-id: r9590
2003-08-07 23:54:39 +00:00
Jamieson Christian
93c90f4674 Fix for Bug [780924] IMUSE: Pitchbend isn't reset when changing tracks
When scanning (not jumping) to a target location
in a different track, the current track is first
scanned to the end to update the player state
before starting into the new track.

Miscellaneous scan-related cleanup is included.

svn-id: r9589
2003-08-07 23:42:15 +00:00
Max Horn
f67b126f1d replace code in readBuffer by slightly less efficient but hopefully working code (at least it fixes an endless loop in COMI for me). I did fix the originaly bug in my optimization, and right now I clueless as to why that code isn't working as it should <sigh>. Need sleep
svn-id: r9588
2003-08-07 22:19:55 +00:00
Jamieson Christian
d8464534a5 Added comment to new macro
svn-id: r9581
2003-08-06 20:44:42 +00:00
Jamieson Christian
99716fc38e Changed readSample template function
to Fingolfin's new READSAMPLE macro.
Circumvents buggy template function
handling in MSVC6. Props to Fingolfin
for tracking this bug down by remote.

svn-id: r9580
2003-08-06 20:41:05 +00:00
Max Horn
69ee268e7f some cleanup
svn-id: r9575
2003-08-06 17:13:04 +00:00
Chris Apers
1a0d308e04 Fixed type mismatch error compiling palmos port
svn-id: r9552
2003-08-06 11:53:18 +00:00
Max Horn
75db41750e getting rid of g_mixer; removing lots of whitespace
svn-id: r9527
2003-08-05 23:58:24 +00:00
Max Horn
48d1739e0a some cleanup; added Channel::getVolume, once somebody tells me what exactly is needed, I can add per-channel volume, and also per-channel panning
svn-id: r9525
2003-08-05 23:03:42 +00:00
Max Horn
d618ace0c0 begone, old mixer code
svn-id: r9521
2003-08-05 21:46:56 +00:00
Max Horn
7ff88ea392 more cleanup
svn-id: r9513
2003-08-05 18:17:26 +00:00
Max Horn
79fd7ee441 cleanup
svn-id: r9512
2003-08-05 18:12:59 +00:00
Max Horn
4c4aa4e957 fix bug #783423
svn-id: r9484
2003-08-05 11:30:13 +00:00
Max Horn
1eaf41eda4 more cleanup (like the previous two, I just moved around code, to clearly separate the old and the new mixer code)
svn-id: r9479
2003-08-05 02:05:37 +00:00
Max Horn
2bc604081e some more cleanup
svn-id: r9478
2003-08-05 01:47:47 +00:00
Max Horn
ded1df35f9 cleanup; removed some code duplication
svn-id: r9477
2003-08-05 01:41:29 +00:00
Max Horn
74188e6143 and finally VorbisInputStream::readBuffer. Once we verified the new readBuffer methods all work, we can get rid of readIntern again and merge those back into the regular read() methods
svn-id: r9476
2003-08-05 01:22:09 +00:00
Max Horn
1de064ee2c optimized MP3InputStream::readBuffer (once more, I won't gurantee for correctness although it seems to work fine over here)
svn-id: r9475
2003-08-05 01:14:27 +00:00
Max Horn
154ca4f2cf simplified code a bit
svn-id: r9474
2003-08-05 00:53:25 +00:00
Max Horn
b1d3b7ab99 optimized WrappedMemoryStream::readBuffer (It's almost 3 AM, so I don't trust myself, hence I'll leave this as an #ifdef for now :-)
svn-id: r9473
2003-08-05 00:50:15 +00:00
Max Horn
b96e5501e6 catch one potential problem, namely if eos is already reached when readBuffer is called ('This should never happen anyway', famous last words)
svn-id: r9472
2003-08-05 00:31:00 +00:00
Max Horn
e1ff91ea7d get rid of calls to the obsolete AudioInputStream::size method
svn-id: r9471
2003-08-05 00:29:37 +00:00
Max Horn
8850f858bc not really sure if using readBuffer would give any gain in CopyRateConverter
svn-id: r9470
2003-08-04 22:49:29 +00:00
Max Horn
d280258e09 renamed eof -> eos (end of stream); hid MP3/Vorbis stream classes completly (by providing factory methods); new readBuffer method for AudioInputStream for improved speed of the mixer; new MusicStream class (subclassed for MP3/Vorbis sound) which offers a getRate method; some other tweaks
svn-id: r9467
2003-08-04 22:15:16 +00:00
Max Horn
996d4f1391 fixed EOF handling of MP3 streams (subtract time from duration timer, instead of adding it...)
svn-id: r9464
2003-08-04 16:28:41 +00:00
Max Horn
ada236a63b one addition less
svn-id: r9425
2003-08-02 19:17:54 +00:00
Max Horn
7ec38f5f02 some more tweaks
svn-id: r9424
2003-08-02 19:09:52 +00:00
Max Horn
20ba086511 slightly cut down on the number of times eof() is called
svn-id: r9423
2003-08-02 18:29:52 +00:00
Max Horn
c373ca107d slightly optimized MP3InputStream::eof, and some cleanup
svn-id: r9422
2003-08-02 18:13:37 +00:00
Max Horn
cc8465aa71 don't use asserts in these tight spots
svn-id: r9420
2003-08-02 17:27:17 +00:00
Max Horn
4cc8c70f25 optimize code flow a little
svn-id: r9419
2003-08-02 17:22:52 +00:00
Max Horn
0142ee260e cleanup
svn-id: r9417
2003-08-02 16:31:31 +00:00
Max Horn
e3b64fa757 added FLAG_REVERSE_STEREO support
svn-id: r9416
2003-08-02 16:11:12 +00:00
Max Horn
1bd9026d8a remove debug output
svn-id: r9415
2003-08-02 14:54:54 +00:00
Max Horn
290a730885 fix for st_rate_flow, code is more straightforward now, too
svn-id: r9414
2003-08-02 14:48:11 +00:00
Max Horn
ca0cc3b5ab obsolete
svn-id: r9410
2003-08-02 11:44:57 +00:00
Max Horn
c57f11f09f garhg
svn-id: r9409
2003-08-02 11:42:53 +00:00
Max Horn
d00a9923cc previous mod was techincally incorrect, this one should be better (but might still be buggy?)
svn-id: r9408
2003-08-02 11:38:23 +00:00
Torbjörn Andersson
a4ac513247 I think this fixes bug #780167 ("SIMON1/2: Sound problems"). When
st_rate_flow() had filled the output buffer, rate->icur and rate->ilast
held the same values, which led to some samples being duplicated on the
next call.

svn-id: r9403
2003-08-02 10:47:35 +00:00
Max Horn
326379b95e oops
svn-id: r9396
2003-08-02 02:54:56 +00:00
Max Horn
1f58fea232 converted ChannelMP3 to use new rate conversion scheme, too. Only thing missing now is FLAG_REVERSE_STEREO support (and of course fixing regressions, and the long term goal is to make resample.cpp usable, too)
svn-id: r9395
2003-08-02 02:41:31 +00:00
Max Horn
02d061598c fix ChannelMP3CDMusic volume, too :-)
svn-id: r9393
2003-08-02 02:12:26 +00:00
Max Horn
6da96e17c0 fix Vorbis music volume
svn-id: r9392
2003-08-02 02:11:15 +00:00
Max Horn
208a3925e9 disable debug output
svn-id: r9390
2003-08-02 00:29:53 +00:00
Max Horn
1cfa9d9029 let the input stream handle the looping (by pretending to be of infinite size -> this fixes a problem which cause 'gaps' at loop turn-over points)
svn-id: r9379
2003-08-01 16:32:11 +00:00
Max Horn
d9bd77032a implemented raw sound looping; some debug output enabled temporarily
svn-id: r9360
2003-08-01 12:49:24 +00:00
Max Horn
0df319e952 #include cleanup (explicityl specify the location for headers from common/, so that we at some point can get rid of -Icommon; exception is made for stdafx.h, since a) we might want to rename it and b) might want to move it to the top level)
svn-id: r9359
2003-08-01 12:21:04 +00:00
Max Horn
643e88b04c get rid of BUGGY_NEW_MP3_PLAYER
svn-id: r9347
2003-07-31 20:28:11 +00:00
Max Horn
0b4e48b59e revamped MP3/Vorbis CD 'emulation' code to use a PlayingSoundHandle -> this allows to finally get rid of the hackish isChannelActive/isChannelUsed methods in SoundMixer
svn-id: r9346
2003-07-31 20:24:10 +00:00
Max Horn
d8494d658b fixed MP3InputStream, now seems to work properly (kind of a surprise)
svn-id: r9345
2003-07-31 19:32:38 +00:00
Max Horn
16425977b7 icur was not being saved between rate conversion calls
svn-id: r9344
2003-07-31 19:08:57 +00:00
Paweł Kołodziejski
e5e117006a back disable warnings into stdafx.h, vc6 is lack of warnings support
svn-id: r9337
2003-07-31 18:35:01 +00:00
Max Horn
1b52e9f19c added new header file backends/intern.h; removed some stuff from common/system.h which is either only of interest to backends or code instantiating a backend (->backends/intern.h); also removed fmopl specific enums (->sound/fmopl.h)
svn-id: r9327
2003-07-31 12:33:33 +00:00
Jamieson Christian
7c16006cc7 Fix for RC bug [780675] MI2: Reoccuring crash
Tightened up OOB track selection handling in
MidiParser. Apparently some SMFs in the Mac
version of MI2 (and other games?) specify
track -1 in their jump commands to indicate
a jump within the same track.

svn-id: r9321
2003-07-31 06:50:13 +00:00
Jamieson Christian
c5de745580 Disabled unknown pragma warning in MSVC-6.
svn-id: r9320
2003-07-31 06:47:05 +00:00
Max Horn
f74197ce8b make use of the new MP3InputStream in ChannelMP3CDMusic - but disabled by default, because it is still quite buggy (e.g. crashes at end of stream etc)
svn-id: r9314
2003-07-31 01:36:24 +00:00
Max Horn
9b2d4f92aa removed the AudioInputStream::size method -> only eof() is really needed, and this can be implemented more efficiently stand-alone; implemented MP3InputStream (work in progress)
svn-id: r9313
2003-07-31 01:21:38 +00:00
Max Horn
5225597d85 cleanup
svn-id: r9312
2003-07-31 01:06:01 +00:00
Max Horn
6143058422 fixed incorrect MSVC fixes; simplified readSample code (bugs #780167 and #780420)
svn-id: r9302
2003-07-30 19:43:51 +00:00
Max Horn
26d05c0190 the VC warning for unknown pragmas is now gloabally disabled, no need to work around it locally
svn-id: r9300
2003-07-30 18:40:28 +00:00
Torbjörn Andersson
15378172cd Partial fix for bug #780167 ("SIMON1/2: Sound problems"). It seems to fix
the crash, but the sounds play at the wrong rate, I believe.

svn-id: r9298
2003-07-30 18:20:45 +00:00
Jamieson Christian
20d06e2c3d Fixed MSVC errors
svn-id: r9288
2003-07-30 09:26:54 +00:00
Max Horn
aa6c99b5da removed some debug output
svn-id: r9282
2003-07-29 13:36:06 +00:00
Max Horn
6b470390f7 cleanup
svn-id: r9281
2003-07-29 12:39:41 +00:00
Max Horn
45ebcdbde1 account for the data in the _buffer, too
svn-id: r9276
2003-07-29 03:02:25 +00:00
Max Horn
fb7deafaef after looking at SAM and DOTT, it seems the actor-voice sync actually is *worse* with a non-zero _silenceCut value - setting it to 0 gives perfect sync for me... odd, when did this change? Anyway, removing _silenceCut. If you notice sync problems, tell me
svn-id: r9275
2003-07-29 02:48:38 +00:00
Max Horn
04843469eb some cleanup; moved around some stuff, preparing to unify more code of ChannelMP3CDMusic and ChannelMP3
svn-id: r9274
2003-07-29 02:21:07 +00:00
Max Horn
bb35528f43 return immediately after commiting suicide; enable new rate conversion code
svn-id: r9273
2003-07-29 01:43:35 +00:00
Max Horn
021a701827 hooked up ChannelVorbis to the new rate converter system, using VorbisInputStream
svn-id: r9272
2003-07-29 01:37:50 +00:00
Max Horn
77eb284062 added VorbisInputStream
svn-id: r9271
2003-07-29 01:37:03 +00:00
Max Horn
1be944755f added makeRateConverter factory function
svn-id: r9270
2003-07-29 01:36:10 +00:00
Travis Howell
3f99e8d1d4 Fix mingw compile
svn-id: r9269
2003-07-29 01:35:37 +00:00
Max Horn
4e7c115681 cleanup
svn-id: r9266
2003-07-29 00:05:36 +00:00
Max Horn
57a413f028 experimental new rate conversion code (use SOX_HACK to en-/disable it); note that right now only the linear filter works, the high quality resample in resample.cpp is in flux; right now the top priority for me is to get MP3/Vorbis resampling working
svn-id: r9261
2003-07-28 20:42:54 +00:00
Max Horn
ed6521f332 fix for bug #776169
svn-id: r9259
2003-07-28 20:25:09 +00:00
Max Horn
c6a4a1d37d make wrapped stream work (I can hear some music in CoMI now before it segfaults :-)
svn-id: r9258
2003-07-28 18:01:56 +00:00
Max Horn
475bc72277 moved st_gcd to resample.cpp
svn-id: r9257
2003-07-28 18:01:00 +00:00
Max Horn
13eee4b06f rewrote the input streams, this should be more straightforward and inline slightly better (the fact that the main AudioInputStream methods are virtual still means that no inlining can take place there; but of course, if we did change that, all the rate converters would have to exist in 8, instead of currently 2, compiled versions)
svn-id: r9256
2003-07-28 17:28:29 +00:00
Max Horn
7ea67048c1 more work on WrappedMemoryStream (not yet tested)
svn-id: r9253
2003-07-28 16:55:43 +00:00
Max Horn
9e051fa507 instead of 'int channels', use 'bool stereo' (less extensible, but then I don't think we'll ever support 5.1 sound :-)); fixed a bug in st_rate_flow where it sometimes would overflow the output buffer; made CopyRateConverter a template, too, increasing efficency
svn-id: r9239
2003-07-28 11:13:01 +00:00
Max Horn
81baae7ddc added CopyRateConverter (used if inrate == outrate)
svn-id: r9214
2003-07-28 01:50:46 +00:00
Max Horn
e87bc6d89e use a single converter for both channels (if input data is stereo), for improved efficency; renamed MemoryAudioInputStream -> LinearMemoryStream and use some template voodoo to make the baseclass of Input8bitSignedStream etc. variable; added (commented out) draf of WrappedMemoryStream
svn-id: r9209
2003-07-28 01:13:31 +00:00
Jamieson Christian
be898b414f For for Bug [775654] DOTT: Hanging notes
Corrected active notes tracking when switching
between Type 2 SMF tracks. Although Note Off
events from the previous track are properly
simulated, those sustaining notes are cleared
from the active notes list so that jumps
within the new track will not attempt to
sustain them again.

svn-id: r9194
2003-07-26 19:37:54 +00:00
Max Horn
226ee61f71 oops accidentally broke the 'old' 8bit resampling code :-(
svn-id: r9192
2003-07-26 01:44:37 +00:00
Max Horn
c520d2d423 move AudioInputStream implementations & makeInputStream into separate .cpp file
svn-id: r9190
2003-07-25 13:42:05 +00:00
Max Horn
2ae3e45aea reduced source code duplication
svn-id: r9189
2003-07-25 13:34:25 +00:00
Max Horn
791efd853a lots of mixer changes: replaced _volumeTable by _globalVolume (applying volume after resampling is more accurate); made more member vars of SoundMixer protected (and thus added some new getter methods); added (untested) support for a second (stereo) channel when playing MP3
svn-id: r9184
2003-07-25 01:19:14 +00:00
Max Horn
95bb74e2b8 round to nearest
svn-id: r9183
2003-07-25 01:05:08 +00:00
Max Horn
f086ab5a05 whitespace
svn-id: r9181
2003-07-24 21:26:46 +00:00
Max Horn
09263a1feb added volume support; some cleanup; provided exactly as many samples as were requested in the 'resample' algorithm (if possible)
svn-id: r9180
2003-07-24 21:26:00 +00:00
Max Horn
1622ac31da added RateConverter classes as thin wrappers around st_* functions; renamed InputStream -> AudioInputStream and cleaned up the hierarchy of its subclasses; added makeInputStream() auxillary function
svn-id: r9179
2003-07-24 18:20:12 +00:00
Max Horn
b9d380bba4 new files, based on SoX (http://sox.sf.net): better resampling code. Note that my mixer.cpp changes are on purpose not yet in CVS since they are not complete. Only reasons I checkin these files is that it's much more comfortable to have CVS, since I need to rewrite parts of resample.cpp now (I already have lots of modifications in). Also expect more OO in the future
svn-id: r9176
2003-07-24 17:46:38 +00:00
Torbjörn Andersson
a327f805ac Fixed regression in clamped_add_16() that kept it from clamping. This was
quite noticeable in the BASS floppy intro.

Of course, if it turns out that 'int' is also only 16 bits it still won't
work, but in that case we run into problems even before this function is
called.

svn-id: r9145
2003-07-23 13:16:58 +00:00
Max Horn
0c47e125af simplified code
svn-id: r9061
2003-07-17 20:44:36 +00:00
Max Horn
d31942c898 oops
svn-id: r9023
2003-07-14 20:45:33 +00:00
Max Horn
33e6989944 removed whitespaces at line ends; added stopHandle
svn-id: r9022
2003-07-14 20:09:14 +00:00
Chris Apers
8b27f60434 Fixed RTTI warnings with PalmOS port
svn-id: r8951
2003-07-12 17:43:39 +00:00
Max Horn
1e0b7aaa16 verify chan != 0 even on WinCE
svn-id: r8940
2003-07-12 11:33:13 +00:00
Nicolas Bacca
72c8e0d96b Give sample rate to channel classes (WinCE downsampling) / Do not use dynamic cast with EVC 3 / Fix Tremor Ogg support
svn-id: r8937
2003-07-12 10:12:41 +00:00
Jamieson Christian
8b8b964aad Reverted to "old" YM3812 (FMOPL) emulator code.
Until specific information regarding the benefits
of migrating to the new emulator can be made
available, the "old" code will remain in effect
for the benefit of slower hardware platforms such
as some WinCE-based devices.

svn-id: r8903
2003-07-11 07:14:21 +00:00
Jamieson Christian
4ac4d76718 Fix for Bug [766426]: V5 Games: Adlib SFX not looped
Modified Smart Jump logic to deal with active notes
whose Note On and Note Off events BOTH occur OUTSIDE
the range of the jump. While this is not a thorough
way to deal with Note On events that occur outside
jump points, it at least deals with the issue of
long, unchanging Adlib SFX used by some earlier
SCUMM games.

svn-id: r8892
2003-07-10 04:34:44 +00:00
Max Horn
d25041859d #include scummsys.h so that our custome free() gets used
svn-id: r8849
2003-07-07 23:11:09 +00:00
Max Horn
7e4fa4a1da mix() is really a private method, only to be called by the audio thread; cover setupPremix by the mutex, too (that helps preventing race conditions upon exit)
svn-id: r8809
2003-07-06 17:00:09 +00:00
Max Horn
b6c3d440b5 now that we mutex-protect everything properly, we can get rid of _toBeDestroyed; also, instead of keeping a global _handles array in the mixer, let each Channel manage its own handle
svn-id: r8808
2003-07-06 16:52:09 +00:00
Max Horn
77b9a4f61e the mutex must be locked by everything which might access _channels while the mixer thread is running, because the mixer thread may modify _channels
svn-id: r8805
2003-07-06 15:57:33 +00:00
Travis Howell
817d600d8e More fixes from Hibernatus
svn-id: r8792
2003-07-06 06:36:26 +00:00
Max Horn
5c17c0f7a7 cleanup to the mixer helper proc interface and to ChannelStream
svn-id: r8785
2003-07-06 01:43:40 +00:00
Max Horn
e993f1d231 protect calls to insertChannel with mutex, too (and switch to using StackLock)
svn-id: r8782
2003-07-05 16:01:55 +00:00
Max Horn
d098334fe6 updated code to use type MutexRef; added class StackLock (from sdl backend, now in util.*)
svn-id: r8777
2003-07-05 15:19:11 +00:00
Paweł Kołodziejski
1ed639aedb hack for proper compile for vc6, why I need this ?
svn-id: r8763
2003-07-05 05:31:04 +00:00
Robert Göffringmann
3aa048d710 make SoundMixer::playRaw only check sound IDs if you actually pass one
svn-id: r8746
2003-07-04 20:08:02 +00:00
James Brown
a4b61ddaba Prevent apparantly possible race condition. I don't get this stuff, and I don't see why the next call to insertChannel is immune to the same theoretical problem :)
svn-id: r8742
2003-07-04 14:49:51 +00:00
James Brown
093a31839b Insert preliminary Zak256 sound looping support. It's not perfect, as some Zak256 sounds only loop a part of the sample - which our mixer API doesn't yet support.
svn-id: r8741
2003-07-04 14:10:44 +00:00
Max Horn
c60e1aeb86 cleanup for -Wundef
svn-id: r8726
2003-07-03 22:05:22 +00:00
Max Horn
01f992db9b cleanup (code easier to read; slightly less rounding errors for the volume; and on BE systems, READ_BE_UINT16 is actually faster ;-)
svn-id: r8706
2003-07-02 10:50:04 +00:00
Paweł Kołodziejski
9385979376 fixed warning
svn-id: r8664
2003-06-27 05:02:01 +00:00
Max Horn
0efc3b2adb cleanup
svn-id: r8645
2003-06-24 23:36:05 +00:00
Paweł Kołodziejski
9d09b77f21 fixed warnings
svn-id: r8613
2003-06-22 14:30:32 +00:00
Max Horn
3883de39a9 d'oh
svn-id: r8611
2003-06-22 14:17:44 +00:00
Max Horn
c03fb13a0b fixed Vorbis CD track code
svn-id: r8610
2003-06-22 13:52:40 +00:00
Max Horn
b4ce216327 don't memset the output buffer to 0 if _eof_flag is set; rather, we should 'add 0' to every byte in the output buffer, i.e.: do nothing
svn-id: r8609
2003-06-22 13:50:46 +00:00
Max Horn
d2b61e9bef properly init member vars instead of using memset
svn-id: r8608
2003-06-22 13:48:47 +00:00
Max Horn
4ead10e4d5 Change names of the stream API in the mixer; added endStream method (stop() halts stream immediately; endStream() lets it first finish playing)
svn-id: r8603
2003-06-22 11:47:03 +00:00
Jonathan Gray
0a6b7ad6ac fix compile when vorbis is enabled, loomcd is now broken with vorbis after recent changes :/
svn-id: r8598
2003-06-22 03:54:43 +00:00
Max Horn
4ad5a183ce renamed SoundMixer::hasActiveChannel->hasActiveSFXChannel, and fixed the regression in it caused by removing _beginSlots (I hope); added isActiveChannel method used by scumm/sound.cpp (this allowed me to move the Channel class from mixer.h into mixer.cpp); replaced Channel::soundFinished method by isActive
svn-id: r8597
2003-06-22 01:55:53 +00:00
Max Horn
573a1e3e99 remove the realDestroy methods and instead use destructors; renamed insertAt to insertChannel and simplified/unified its usage; delete the mutex when exiting; cleanup
svn-id: r8596
2003-06-22 01:34:28 +00:00
Max Horn
bd4370c251 lots of mixer cleanup / refactoring / reengineering
svn-id: r8594
2003-06-21 23:29:34 +00:00
Max Horn
7c332d7fdb modified & cleaned up the playStream/append code a bit; but this API really could stand some refinement
svn-id: r8592
2003-06-21 21:17:08 +00:00
Max Horn
11b2961fdb cleanup
svn-id: r8584
2003-06-21 19:52:12 +00:00
Jonathan Gray
2ba86fd0e5 make gcc happy
svn-id: r8583
2003-06-21 15:55:08 +00:00
Jamieson Christian
f83a32464c Fix for bug [756555] ALL: With '-ewindows' notes don't stop at quit
and bug [755176] SIMON2: Hanging notes

More cleanup of the thread issues associated with iMuse and MidiParser
shutdown. Untested.

svn-id: r8546
2003-06-18 22:46:17 +00:00
Marcus Comstedt
2aed2d9284 Use stdafx.h instead of manually including system headers.
svn-id: r8541
2003-06-18 21:10:05 +00:00
Max Horn
fcc46ac891 more cleanup
svn-id: r8497
2003-06-15 01:56:47 +00:00
Max Horn
6f50feb359 fixed cast warnings
svn-id: r8435
2003-06-11 07:14:39 +00:00
Jamieson Christian
01ba60ccef Fixed post-mortem attempts to transmit MIDI data
svn-id: r8433
2003-06-11 06:43:24 +00:00
Jamieson Christian
d2c952b315 Fixed race condition in MPU401 shutdown
svn-id: r8432
2003-06-11 05:54:46 +00:00
Max Horn
f7e85af552 use clear_sound_proc to properly deinit the mixer (this fixes a crash-on-exit)
svn-id: r8410
2003-06-09 01:19:44 +00:00
Bertrand Augereau
17e6779b65 Made some conversions explicit to prevent VC.NET 2003 from complaining
svn-id: r8254
2003-06-01 21:52:53 +00:00
Jamieson Christian
42f6d10581 Fixed hanging notes on Smart Jump when Note Off event cannot be found.
(I'm not sure why the Note Off would not be found,
but at least we're properly dealing with such notes now.)

svn-id: r8250
2003-06-01 18:24:10 +00:00
Jamieson Christian
86138eda44 Documentation corrections
svn-id: r8224
2003-06-01 04:06:24 +00:00
Jamieson Christian
452735e320 Some last SysEx cleanup.
svn-id: r8223
2003-06-01 04:05:13 +00:00
Jamieson Christian
6aba98450b Some Doxygen documentation. Just to test.
svn-id: r8195
2003-05-31 22:04:21 +00:00
Max Horn
e08d4f072e more OSystem docs & cleanup
svn-id: r8118
2003-05-29 22:34:35 +00:00
Max Horn
417ec3a588 added TODO: get rid of create_thread
svn-id: r8115
2003-05-29 21:29:54 +00:00
Jamieson Christian
11e59488ef Fixed occassional music crashes when loading games.
Thanks to eriktorbjorn for finding this issue.

svn-id: r7959
2003-05-25 15:47:06 +00:00
Jamieson Christian
f8e9e55fba allNotesOff() now sends to all 16 channels, not just the first 15. Duh.
svn-id: r7899
2003-05-24 19:11:49 +00:00
Max Horn
0439e0fe58 fixed nasty deadlock I recently introduced
svn-id: r7867
2003-05-23 16:47:45 +00:00
Jamieson Christian
982883c637 Fixed problem with hanging notes on some synth modules.
Various little MidiParser fixes.

svn-id: r7863
2003-05-23 15:04:41 +00:00
Jamieson Christian
7bcdf0d568 Fixed tempo problems in Simon games
svn-id: r7853
2003-05-23 04:54:45 +00:00
Jamieson Christian
0be2b4673c Removed annoying warning
svn-id: r7851
2003-05-23 04:35:50 +00:00
Jamieson Christian
08b5337b20 Fixed gcc warning
svn-id: r7850
2003-05-23 04:30:50 +00:00
Jamieson Christian
c6568530bd Revamped iMuse and Player classes. Player now uses MidiParser to parse its data, which will allow it to parse other MIDI formats. To receive parsed data, Player now derives from MidiDriver to act as a "fake MIDI driver".
Miscellaneous upgrades and fixes to MidiParser, including the Smart Jump (which could not be tested before iMuse started making use of the MidiParser).

*** THIS IS A BIG UPGRADE! EXTENSIVE REGRESSION TESTING IS NEEDED! ***

This has been tested through the intros and a number of other scenes from MI2, FOA and S&M.

NOTE! This upgrade introduces savegame format version V19. Earlier version savegames will load, but the music will simply start over from the beginning. Only V19 and later games will properly restore the position of the music! Don't say you weren't warned....

svn-id: r7849
2003-05-23 04:19:47 +00:00
Max Horn
1383ccbdbe make sure that the mutex protects everything that affects the buffer
svn-id: r7835
2003-05-22 21:34:20 +00:00
Jamieson Christian
1918dc555f Added "smart-jump" capability to MidiParser.
svn-id: r7831
2003-05-22 15:34:30 +00:00
Max Horn
b4c94e4aee pedantic warning fix
svn-id: r7792
2003-05-21 17:33:32 +00:00
Jamieson Christian
622e3578b4 More Simon music fixes
svn-id: r7769
2003-05-21 06:14:14 +00:00
Jamieson Christian
4584cb9616 Corrections to SMF Type 1 compression to Type 0.
Fixes simon2win title music.

svn-id: r7755
2003-05-20 20:58:59 +00:00
Jamieson Christian
a768deb83f Simon music fixes
svn-id: r7744
2003-05-20 16:43:53 +00:00
Max Horn
d1391702ea init member vars to 0
svn-id: r7732
2003-05-20 14:55:47 +00:00
Jamieson Christian
46a0be5ae8 Fixed regression in XMIDI parsing.
svn-id: r7706
2003-05-20 03:27:45 +00:00
Jamieson Christian
996614936a Fixed anonymous structs warning.
svn-id: r7696
2003-05-19 19:24:22 +00:00
Jamieson Christian
3dc788da63 Moved common parsing logic into MidiParser base class.
Added auto-loop capability.

svn-id: r7692
2003-05-19 18:48:18 +00:00
Jamieson Christian
e8771e7684 Fixed problem updating callback
svn-id: r7691
2003-05-19 17:45:21 +00:00
Max Horn
3d14e5305e fix shadow warning; removed unused var
svn-id: r7677
2003-05-19 09:04:50 +00:00
Max Horn
682d88cf71 fix shadow warning
svn-id: r7675
2003-05-19 09:01:25 +00:00
Jamieson Christian
ff41896480 Fixed Simon 1 music regression.
SMF parser now supports malformed Simon pitch bend events.
Implemented SMF parser jump method.

svn-id: r7669
2003-05-19 05:00:13 +00:00
Jamieson Christian
40ce9cdcc3 MidiStreamer goes away, replaced by MidiParser
svn-id: r7663
2003-05-19 00:50:30 +00:00
Jamieson Christian
9cbc6904a0 Fixed gcc warnings, virtual destructor problem
svn-id: r7656
2003-05-19 00:12:16 +00:00
Jonathan Gray
1b410c50dd remove dup object
svn-id: r7655
2003-05-19 00:02:50 +00:00
Jamieson Christian
c81b58d38e Implemented new Simon MIDI module, switching from MidiStreamer to MidiParser. Restructuring enables XMIDI support and vc_72 implementation. Various cleanup on MidiParser's and MidiDriver's.
svn-id: r7654
2003-05-18 23:55:53 +00:00
Jamieson Christian
febf19cb3f SMF/GMF implementation of MidiParser
svn-id: r7650
2003-05-18 23:36:38 +00:00
Jamieson Christian
ad548faeb6 MIDI Meta event Tx for virtual MidiDriver's
svn-id: r7638
2003-05-18 14:50:10 +00:00
Jonathan Gray
d9dd0c5300 update
svn-id: r7637
2003-05-18 14:43:50 +00:00
Jamieson Christian
79be84af36 New plug-in MIDI parser modules, INCOMPLETE.
svn-id: r7636
2003-05-18 14:25:33 +00:00
Jonathan Gray
cf54a63639 HAVE_CONFIG_H
svn-id: r7632
2003-05-18 13:39:02 +00:00
Jamieson Christian
c88e0b5301 Fixed Adlib sound problem on old (small header) games. Thanks for eriktorbjorn for the material that led to the solution.
svn-id: r7610
2003-05-17 17:20:27 +00:00
Jamieson Christian
d157b48876 Removed mididrv.cpp, added seq.cpp
svn-id: r7608
2003-05-17 14:31:21 +00:00
Jamieson Christian
e880007175 Absorbed last tidbits of mididrv.cpp into other files
svn-id: r7606
2003-05-17 14:27:58 +00:00
Jamieson Christian
61c2430a98 Moved SEQ to its own file
svn-id: r7604
2003-05-17 14:24:19 +00:00
Jamieson Christian
9540497263 Added SysEx hooks
svn-id: r7579
2003-05-16 21:05:58 +00:00
Max Horn
325c9b321c new fmopl (from adplug, which has it from mame; we can use it under the LGPL should we ever have to)
svn-id: r7328
2003-05-04 21:17:42 +00:00
Max Horn
01d3067b7d PalmOS changes
svn-id: r7222
2003-04-30 12:51:07 +00:00
Paweł Kołodziejski
7edc0abd5b changed messages from warning to debug
svn-id: r6888
2003-03-30 16:54:03 +00:00
Max Horn
80e3c23482 cleanup; add stopID method to stop a currently playing sound via its ID
svn-id: r6835
2003-03-18 21:46:44 +00:00
Paweł Kołodziejski
aa3766018f updated copyrights headers
svn-id: r6726
2003-03-06 21:46:56 +00:00
Paweł Kołodziejski
a8c3057875 and more cleanup ....
svn-id: r6719
2003-03-06 18:30:44 +00:00
Max Horn
20589cd886 fixed warning
svn-id: r6604
2003-02-13 23:59:41 +00:00
Oliver Kiehl
d63d62c29a Bug 683544
svn-id: r6603
2003-02-13 18:25:32 +00:00
Max Horn
ee047a0fa8 fix warning
svn-id: r6579
2003-01-30 23:33:22 +00:00
Nicolas Bacca
2c755a1f31 Change AdLib emulation quality for slower devices - added PROP_GET_FMOPL_ENV_BITS and PROP_GET_FMOPL_EG_ENT
svn-id: r6573
2003-01-29 21:28:37 +00:00
Ruediger Hanke
9e0e918397 Fix midi driver thread for MorphOS
svn-id: r6123
2002-12-25 12:36:29 +00:00
Ruediger Hanke
580df4d2d0 Moved MorphOS midi driver to backends/midi
svn-id: r6120
2002-12-25 12:02:27 +00:00
Max Horn
2c01dc8536 even more -peantic fixes
svn-id: r6111
2002-12-25 00:48:13 +00:00
Max Horn
ce6913cf36 fix -pedantic warnings
svn-id: r6108
2002-12-25 00:36:04 +00:00
Jamieson Christian
e4b1a7e709 MidiStreamer no longer derives from MidiDriver.
Removed MidiStreamer methods that weren't actually needed.
That's one layer of indirection removed from Simon music.

svn-id: r6050
2002-12-21 21:32:45 +00:00
Jamieson Christian
b708c7dd64 Miscellaneous cleanup.
svn-id: r6021
2002-12-18 17:14:05 +00:00