Commit Graph

1018 Commits

Author SHA1 Message Date
Max Horn
4db72c8762 Unified how we deal with (and how we generate) MIDI sysex messages -- in particular, we now always do so w/o framing the message (documented this with a Doxygen comment in the MidiDriver class)
svn-id: r25630
2007-02-16 13:30:41 +00:00
Max Horn
8cef52294c Fix for bug #1660559: MANIAC/ZAK: Music does not stop when pausing (regression)
svn-id: r25605
2007-02-15 12:47:09 +00:00
Eugene Sandulenko
0a56c312f1 Fix MSVC warning
svn-id: r25586
2007-02-14 16:45:25 +00:00
Sven Hesse
82e4318b02 Fixed a special case (frequency/rate > repeating sample length)
svn-id: r25521
2007-02-12 12:54:08 +00:00
Travis Howell
028d077e2b Enable stereo by default for all ProTracker mods.
svn-id: r25482
2007-02-11 02:47:02 +00:00
Sven Hesse
023591a77a The status variables are set explicitely in the constructor instead through one memset now, to avoid setting the SoundHandle to 0 as well (the first play() would then stop SoundHandle 0, which doesn't strike me as being correct)
svn-id: r25409
2007-02-07 16:27:43 +00:00
Sven Hesse
0ed752aa6e - Moved the specific interrupt frequency of 80 Hz out of class Infogrames into the GobEngine's Infogrames instances
- Changed the 80 Hz to 75 Hz, which is more true to the original

svn-id: r25389
2007-02-04 15:59:05 +00:00
Max Horn
cb49cbdd45 * Reimplemented Mixer::pauseAll to simply invoke pause on all channels
(implying change of semantics)
* Reordered the params of Mixer::playRaw (the SoundType now comes first, not last)
* Removed Mixer::isPaused
* Removed Mixer::getSoundElapsedTimeOfSoundID
* Added some doxygen comments to the Mixer

svn-id: r25356
2007-02-03 19:05:53 +00:00
Johannes Schickel
46609ad455 formatting.
svn-id: r25230
2007-01-27 22:03:33 +00:00
Sven Hesse
5dab7f823f Implemented some missing effects (arpeggio, sample delay, fine slides, finetune, pattern delay)
svn-id: r25229
2007-01-27 21:55:26 +00:00
Sven Hesse
7d1c2ecbb4 Ooops
svn-id: r25227
2007-01-27 17:53:56 +00:00
Sven Hesse
569136db75 Changed ProtrackerStream to inherit from Paula, unifying the mixing
svn-id: r25226
2007-01-27 17:32:54 +00:00
Travis Howell
20aca1092b Add changes from madmoose to fix initial song length.
svn-id: r25219
2007-01-27 00:33:38 +00:00
Max Horn
8205cd9d3d Removing two FIXMEs, based on what madmoose told me on #scummvm
svn-id: r25216
2007-01-27 00:11:15 +00:00
Max Horn
516cd07d10 Some cleanup / code formatting changes, and added some FIXME comments
svn-id: r25199
2007-01-26 11:47:26 +00:00
Sven Hesse
43fb2e6ed9 Moved Paula and Infogrames to sound/mods/
svn-id: r25191
2007-01-25 15:17:46 +00:00
Neil Millstone
9c12f89fc7 Changed size of sine table so it take less memory in cache RAM on DS port
svn-id: r24800
2006-12-01 22:44:19 +00:00
Torbjörn Andersson
a7950182f5 Changed the default instrument from "no instrument at all" to "the first
instrument in the instrument bank". It looks like Elvira 1 and 2 play music
without selecting any instruments first on some channels. This should fix bug
#1582389.

svn-id: r24657
2006-11-08 18:47:33 +00:00
Gregory Montoir
a8d7265c5e added basic handler for VOC block 9
svn-id: r24590
2006-11-03 21:03:12 +00:00
Max Horn
c718463a24 Added Audio::Mixer::setReady method to work around bug #1588848
svn-id: r24583
2006-11-01 21:28:14 +00:00
Max Horn
71763c3630 Modified version of patch #1584720 (add support for FLAC-1.1.3)
svn-id: r24554
2006-10-28 13:21:43 +00:00
Max Horn
a4a83df8a1 cleanup
svn-id: r24537
2006-10-27 22:47:53 +00:00
Travis Howell
99d6e6db5c Add patch to make ProTracker a subclass of AudioStream, from madmoose
svn-id: r24465
2006-10-23 01:37:59 +00:00
Max Horn
07f7761479 Backend modularization: Create timer manager, savefile manager and audio mixer in the backends for increased flexibility
svn-id: r24443
2006-10-22 15:42:29 +00:00
Max Horn
9edf1e6a1a cleanup
svn-id: r24407
2006-10-21 12:44:10 +00:00
Max Horn
772affc7db Yuck, mark abuse of OSystem::setSoundCallback
svn-id: r24404
2006-10-21 11:14:41 +00:00
Travis Howell
8c72861de4 Add option to load a module via stream
svn-id: r24387
2006-10-19 05:37:22 +00:00
Johannes Schickel
cf60ba63e9 some cleanup.
svn-id: r24374
2006-10-18 18:34:40 +00:00
Eugene Sandulenko
7282e24d3b Add WIP (not yet plugged in) Protracker modules player
svn-id: r24351
2006-10-16 22:20:46 +00:00
John Willis
9aa0984702 Fix GP2X ifdef error in initial patch. Sorry.
svn-id: r24257
2006-10-09 20:38:59 +00:00
Eugene Sandulenko
3d84f11046 Patch #1432376: "Very basic GP2X Backend"
svn-id: r24144
2006-10-06 19:01:39 +00:00
Eugene Sandulenko
8f44098332 Revert part of commit 23552 by agent-q. Apparently this slipped in by
mistake, as DS port sets FMOPL quality in ds/arm9/source/osystem_ds.cpp
void OSystem_DS::initBackend().

svn-id: r24046
2006-09-30 19:33:43 +00:00
Max Horn
4c14cf6d1a Moved base/engine.cpp and .h to engines/ (main motivation: helps untangle the linker dependency graph). Porters will have to update project files
svn-id: r23974
2006-09-23 00:42:35 +00:00
Eugene Sandulenko
4e8df88c81 Fix bug #1501302: "FF: Crackling Audio (Mac version)"
svn-id: r23970
2006-09-21 20:12:16 +00:00
Torbjörn Andersson
15f9a3ce33 Some more whitespace changes.
svn-id: r23655
2006-08-01 14:10:46 +00:00
Torbjörn Andersson
1e9e65d5bc Whitespace.
svn-id: r23654
2006-08-01 14:05:18 +00:00
Johannes Schickel
8d453f2267 Another little formatting and a typo fix.
svn-id: r23621
2006-07-29 23:51:43 +00:00
Johannes Schickel
43fbc9eb81 Adding comment about forced MQ on small devices.
svn-id: r23620
2006-07-29 23:44:09 +00:00
Johannes Schickel
1d52f836dc Some formatting 'fixes'
svn-id: r23619
2006-07-29 23:42:27 +00:00
Torbjörn Andersson
c32076e5d0 Use #include "..." instead of #include <...> for pack-start.h and pack-end.h
for consistency with other #includes.

svn-id: r23585
2006-07-23 16:13:26 +00:00
Max Horn
2859b64702 Fix struct packing issues (macros are not resolve in #pragma params, at least for GCC)
svn-id: r23569
2006-07-22 17:28:48 +00:00
Neil Millstone
42cebc00dc Speed increase for DS port - uses cache ram to store SIN_TABLE. Other versions are unaffected.
svn-id: r23552
2006-07-22 10:56:11 +00:00
Max Horn
f59cf1fcdc Removing GCC_PACK, we fully rely on START_PACK_STRUCTS / END_PACK_STRUCTS now (hiya eriktorbjorn, this one is for you *ggg*)
svn-id: r23547
2006-07-21 21:25:17 +00:00
Oystein Eftevaag
ef42b9962d Spelling and formatting
svn-id: r23542
2006-07-21 10:59:55 +00:00
Torbjörn Andersson
6358547a43 More whitespace changes.
svn-id: r23496
2006-07-14 13:33:58 +00:00
Torbjörn Andersson
612ba0c2be Some whitespace changes to see if the CIA bot is still silent.
svn-id: r23491
2006-07-13 14:01:48 +00:00
Max Horn
f35f4a4d1c Use START_PACK_STRUCTS / END_PACK_STRUCTS when available, instead of checking for GCC / not GCC
svn-id: r23458
2006-07-09 13:01:15 +00:00
Max Horn
bea72e9514 Patch #1519399: DS Backend
svn-id: r23452
2006-07-09 11:47:17 +00:00
Max Horn
75628fe9d7 Renamed class Timer to TimerManager (the old name was somewhat incorrect/confusing)
svn-id: r23278
2006-06-24 09:34:49 +00:00
Max Horn
9a955180a4 * Renamed config.mak to config.mk
* Renamed common.rules to rules.mk
* Removed explicit declaration of MODULE_DIRS in various spots (instead we let rules.mk compute it)

svn-id: r23275
2006-06-24 08:48:11 +00:00
Torbjörn Andersson
ecfedb1e81 Cleanup. It seems unnecessary to have a "break" right after an unconditional
return in a switch case.

svn-id: r23198
2006-06-20 18:55:25 +00:00
Lars Persson
67d58ec4bb Added assert to audiostream allocation since failure causes serious problems
svn-id: r23184
2006-06-19 21:08:34 +00:00
Travis Howell
c77ad1a24c Rename AdlibInstrument fields
svn-id: r22951
2006-06-06 11:07:03 +00:00
Torbjörn Andersson
a5fc242946 Clip samp to 2047, not 2048, so that it stays positive when multiplied by 16.
This seems to fix sound distortion in the Inherit the Earth demo.

svn-id: r22812
2006-05-31 22:37:28 +00:00
Travis Howell
04bf129416 Fix compressed sound in makeWAVStream()
svn-id: r22596
2006-05-24 06:11:39 +00:00
Torbjörn Andersson
dfda0555c3 Cleanup.
svn-id: r22573
2006-05-23 09:46:48 +00:00
Torbjörn Andersson
2531fd5873 Added player for the Kyra 3 VQA cutscenes, based on my earlier prototype. It
could use some cleanup, and there are a couple of TODOs sprinkled throughout
the code, but it seems to work reasonably well. Until the Kyra 3 main menu is
implemented, it won't actually be used though.

It uses the appendable audio stream class, which I have moved out of the SCUMM
engine.

svn-id: r22526
2006-05-18 21:46:07 +00:00
Torbjörn Andersson
ccac2aea20 Whitespace changes. (Oh dear, now *I'm* forcing myself to large re-compiles.)
svn-id: r22413
2006-05-12 12:03:36 +00:00
Eugene Sandulenko
d2546e3979 - Updated MSVC8 project files
- Renamed base/options.cpp to base/commandLine.cpp because of conflict
  with gui/options.cpp which sit in same directory in MSVC builds
- Moved AudioCDManager singleton declaration outside of Audio namespace
- Fixed numerous MSVC warning of potentially uninitialized variables and
  int <-> bool conversions.

svn-id: r22397
2006-05-09 14:16:43 +00:00
Max Horn
ccfb74431b cleanup
svn-id: r22244
2006-04-30 13:40:35 +00:00
Max Horn
27307acd7c Moved the AudioCDManager as well as class AudioStream and its (standard) subclasses to namespace Audio
svn-id: r22231
2006-04-29 22:33:31 +00:00
Travis Howell
30b4b87f58 Fix valgrind warning
svn-id: r22082
2006-04-22 05:48:40 +00:00
Eugene Sandulenko
ff6028b00b - Implemented MS ADPCM WAV format decoder used in Feeble Files. Still it is
out of sync with video. See TODO there.
- Fixed bug with MS IMA ADPCM mono to make it possible to work in real streams.

svn-id: r22080
2006-04-22 03:00:21 +00:00
Max Horn
ce13d8e946 cleanup
svn-id: r21920
2006-04-15 21:27:56 +00:00
Johannes Schickel
fac96dfb34 Fixes possible illegal writes/segfaults in compressToType0 (added a comment about the changes).
svn-id: r21853
2006-04-13 23:13:56 +00:00
Eugene Sandulenko
3631505437 Fix typo reported in #1469339: "FluidSynth error typo"
svn-id: r21831
2006-04-12 20:36:45 +00:00
Won Star
e1bbc61bb5 GP32 uses custom version of libtremor, so update header path.
svn-id: r21665
2006-04-07 10:44:20 +00:00
Eugene Sandulenko
8fa9bd6728 Removed extra exclamation marks in warning() calls as well.
svn-id: r21608
2006-04-04 22:21:10 +00:00
Eugene Sandulenko
d292c0ec55 Since our debug() adds an exclamation mark at the message end, remove
it in several calls to avoid duplication!!11!

svn-id: r21607
2006-04-04 22:04:51 +00:00
Max Horn
e4930bd96d Don't use HAVE_CONFIG_H / config.h directly, use scummsys.h instead
svn-id: r21605
2006-04-04 21:45:13 +00:00
Max Horn
9217472f0e With this change, backends are now responsible for instantiating their OSystem class before calling scummvm_main (Note: PalmOS and Symbian are not yet converted, and won't work currently)
svn-id: r21557
2006-04-02 14:16:31 +00:00
Max Horn
8cdee5a931 Do not #include endian.h in scummsys.h (cuts down deps on endian.h from ~400 to ~250). Many greetings to eriktorbjorn, and have fun recompiling.
svn-id: r21500
2006-03-29 15:59:37 +00:00
Max Horn
9f93e5bb81 Renamed various container isEmpty() methods to empty() to match STL conventions
svn-id: r21472
2006-03-28 09:42:54 +00:00
Max Horn
f7d16b0000 Updated/added some comments on VOC/WAVE functions
svn-id: r21384
2006-03-19 14:11:32 +00:00
Travis Howell
6632a4df53 Revert FLAG_AUTOFREE changes to loadWAVFromStreammakeWAVStream
svn-id: r21376
2006-03-19 05:15:49 +00:00
Torbjörn Andersson
839b5d3e86 Added workaround in FMOPL for the pathological case where a note was turned off
while still at the very beginning of the "attack" phase. This is the very
lowest point on the attack curve, yet it would continue from the beginning of
the release curve, i.e. its very highest point. This is what caused Kyra to
often play low-frequency notes at the very beginning of a new song. (That, and
a truly bizarre function for initialising the channels.)

The proper fix would be to locate the correct point on the release curve and
continue from there. For now, though, only handle the trivial case.

svn-id: r21302
2006-03-14 23:01:44 +00:00
Torbjörn Andersson
59b6f0f715 Fixed a potential bug that could cause memory to be read out-of-bounds.
(Unfortunately, this does not fix the Kyra bug I'm looking for.)

In the most extreme case:

* DR and RR will point to &DR_TABLE[60], and AR will point to &AR_TABLE[60]
* SLOT->KSR will be 0
* CH->kcode will be 15

In that case, it will attempt to access AR[15], RR[15] and DR[15], i.e.
AR_TABLE[75] and DR_TABLE[75]. So these arrays need to be 76 elements, not 75.

We used to initialise element 75, but this was changed to 74 to match the size
of the arrays. Buf if my reasoning is correct, it was the arrays that were too
small.

svn-id: r21301
2006-03-14 20:09:32 +00:00
Eugene Sandulenko
233c2a42f9 WIP of maemo port
svn-id: r21055
2006-03-04 01:32:04 +00:00
Max Horn
140f6fce26 Hiding the implementation of ADPCMInputStream from the public, in favor of a factory function (just like with the other AudioStream subclasses)
svn-id: r21043
2006-03-03 15:51:33 +00:00
Max Horn
5833b3b0aa It's really 'MPEG', not 'Mpeg'
svn-id: r21042
2006-03-03 15:46:39 +00:00
Max Horn
a836a83d84 Explain the (admittedly strange) usage of some of our makeXXXStream factory functions
svn-id: r21040
2006-03-03 15:36:12 +00:00
Jamieson Christian
2469e00248 SysEx data now passed around with const pointers. Permits simplification of some SysEx client code.
Testing on Windows. Developers on other platforms, please verify integrity of music handling in your respective MidiDrivers.

svn-id: r20952
2006-02-27 01:59:07 +00:00
Max Horn
a161b09728 Moved dummy MIDI driver from backends/ to sound/ (this fixes bug #1435221)
svn-id: r20878
2006-02-25 14:45:31 +00:00
Paweł Kołodziejski
bb03e03561 fixed warnings for msvc7
svn-id: r20831
2006-02-23 18:11:22 +00:00
Max Horn
80cf2fa46f Reduced data duplication in module.mk files; added module.mk files for null and x11 backends; added engines/module.mk
svn-id: r20584
2006-02-12 00:16:31 +00:00
Chris Apers
075e509605 - Use midi drivers only when needed
- disable zodiac midi driver with scumm engine since it doesn't work with it in ARM mode (??)

svn-id: r20524
2006-02-11 10:57:07 +00:00
Max Horn
406703148f Change CVS keywords to SVN keywords
svn-id: r20515
2006-02-11 10:05:31 +00:00
Max Horn
0ad58cdb95 Removed .cvsignore files
svn-id: r20424
2006-02-07 22:50:14 +00:00
Chris Apers
4a6f2ab3d3 Wrong #ifdef
svn-id: r20314
2006-01-30 19:13:25 +00:00
Travis Howell
e990352219 Fix memory leak, if called directly.
svn-id: r20199
2006-01-27 00:10:18 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00
Torbjörn Andersson
a61e62db95 Lowered FluidSynth's default gain, and added config file and command-line
options to specify it. FluidSynth's gain ranges from 0.0 through 10.0 and
is probably measured in decibel, but to keep things simple, ScummVM uses
settings from 0 through 1000 instead. (Though currently there's no guard
against invalid settings.)

This is a slightly revised version of the non-GUI part of patch #1336171.

svn-id: r20030
2006-01-14 20:05:56 +00:00
Max Horn
60fcd5a171 * Replaced MDT_PREFER_NATIVE/MDT_NATIVE by MDT_PREFER_MIDI/MDT_MIDI).
* Changed MidiDriver::createMidi so that if MD_ADLIB is passed, it
  now *does* instantiate the adlib driver.
* Rewrote MidiDriver::detectMusicDriver (code should be clearer now,
  and hopefully easier to adapt/maintain). Note that the behavior
  changed slightly (this may require some tweaking).
* Added MidiDriver::findMusicDriver which works similar to the old
  MidiDriver::parseMusicDriver but returns the full MidiDriverDescription
  and ignores all characters in the passed driver name following a colon ":".
* Changed MidiDriver::parseMusicDriver to use MidiDriver::findMusicDriver.
* Changed game engines to match the changes made to MidiDriver.
* Modified SCUMM engine to not record the selected midi/music driver
  (in _midiDriver), but rather the music *type* (in _musicType).

svn-id: r19859
2005-12-30 14:18:21 +00:00
Max Horn
911300a9e3 Disable 'coreaudio' driver name alias for now -- it makes the CoreAudio driver appear twice in the GUI
svn-id: r19845
2005-12-29 17:11:07 +00:00
Max Horn
9de7536057 MidiDriver: Some cleanup, added some comments/TODOs, preparations for a potential cleanup
svn-id: r19844
2005-12-29 16:55:21 +00:00
Joost Peters
c4c9ca6f99 Fix MI1 & BS1 bugs reported in #1276592 - both are related to the number of open file handles.
svn-id: r19837
2005-12-27 19:17:53 +00:00
Max Horn
fcf1af2ffc New CoreMIDI midi backend for OS X
svn-id: r19832
2005-12-26 11:18:25 +00:00
Max Horn
2c12614ae1 Simplify ADPCM IMA decoding (based on IMA docs). The result will only be 99.9% identical, but the code should be faster on most modern machines
svn-id: r19777
2005-12-11 13:18:27 +00:00
Max Horn
3107d08f27 Unified IMA code a little bit
svn-id: r19767
2005-12-09 22:04:28 +00:00
Max Horn
e0e1dcda08 URL pointing to an IMA format reference
svn-id: r19766
2005-12-09 21:42:19 +00:00
Lars Persson
6ed67205ec 1. New build structure for Symbian builds to allow easier build and project updates
2. Updated framework files for new structure
3. Uncommented Debug statements in vorbis.cpp (Should probably be removed alltogether.
4. Incorporated Sevs code formatting changes in the new Symbian source structure.
5. Removed/Changed EScummVM to ScummVM instead, hopefully most cases covered.
6. Beginning vibration support to be used for Scumm shake effects (Work ongoing by SumthinWicked)
7. Replaced the ScummVM icon for the FavIcon and upscaled the icon to 32x32. I think it looks ok, comments are welcome.
8. Built for S60V1 and UIQ2 targets from the cvs
9. Updated Readme with new build instructions.

Any comments are welcome.  Hopefully the other builds are not affected by this and all Sevs code updates are also incorporated.

svn-id: r19739
2005-12-03 21:29:13 +00:00
Chris Apers
64bfec97d9 Not needed anymore :)
svn-id: r19735
2005-12-03 19:04:33 +00:00
Johannes Schickel
3a9bd3c18c Fixed (wrongly) changed address in the header.
svn-id: r19733
2005-12-03 13:31:09 +00:00
Lars Persson
47ad571e0c Updated to follow ScummVM coding standards i.e spaces, indents & "studpid" things fixed.
svn-id: r19728
2005-12-02 18:36:21 +00:00
Lars Persson
a6b7333b33 Working Vorbis support for Symbian OS
svn-id: r19725
2005-12-01 19:14:38 +00:00
Eugene Sandulenko
edfae828f6 Patch #1341626: "New GP32 port"
svn-id: r19710
2005-11-27 02:35:57 +00:00
Travis Howell
81a956eeb3 Revert as requested.
svn-id: r19582
2005-11-13 09:21:15 +00:00
Travis Howell
d17e916543 Fix sound looping regression in simon2 (Windows).
Sound flags were been reset.

svn-id: r19557
2005-11-11 06:43:38 +00:00
Joost Peters
f94b11ec55 the PSP port of libtremor was updated, so this define is no longer needed
svn-id: r19488
2005-11-06 13:49:52 +00:00
Max Horn
5e75092dec Avoid using powf/expf/logf under Mac OS X, as they cause binary & compile incompatibilities with older system versions
svn-id: r19396
2005-11-02 20:50:37 +00:00
Eugene Sandulenko
37fbcf61ad Fix MS IMA ADPCM decoder. I like Microsoft so much for reinventing another
standard.

svn-id: r19203
2005-10-21 02:00:12 +00:00
Eugene Sandulenko
4306c9344c Improved IMA ADPCM decoder. It appeared that MS violated yet another standard
and nibbles order in samples appeared to be swapped. Had to untemplate
whole thing over again because I have no idea how to speicalize one of two
parameters in templates.

Now voices are clean but have some ticks, looks like overload. ITE wasn't
broken ;)

svn-id: r19166
2005-10-19 04:59:18 +00:00
Eugene Sandulenko
a050da784f Simplified common buffer reader. Implemented now unused Microsoft IMA
ADPCM buffer reader. These folks invented ye another incompatible standard
and here it will sit #if 0'ed just for a case.

svn-id: r19164
2005-10-19 03:25:00 +00:00
Eugene Sandulenko
26ad88ec23 Fix bug #1221549 "MT32emu: doesn't compile under gcc 3.4.2 / i386"
svn-id: r19147
2005-10-18 04:26:51 +00:00
Eugene Sandulenko
b36677af71 Update FSF address. Eek. Actually that took place on May 1, 2005
svn-id: r19142
2005-10-18 01:30:26 +00:00
Chris Apers
797b6e5a7c PalmOS ARM too
svn-id: r19040
2005-10-12 19:47:15 +00:00
Torbjörn Andersson
744a01b449 Looks like my pitch wheel change still has the ability to break things. See
bug #1324103.

I've changed it - again - so that now it only centers the pitch wheels on
unload if a new mpCenterPitchWheelOnUnload property has been set. Currently
only the SAGA engine does that, so if it still breaks it only breaks SAGA.

I've also fixed what looked like an unintentional fall-through in the
MidiParser::property() function. Surently that can't cause any new
regressions? Please.

svn-id: r19032
2005-10-12 06:57:25 +00:00
Torbjörn Andersson
bb14140ca7 Moved the pitch wheel centering to unloadMusic() instead, since having it
in allNotesOff() broke the Kyra music. I have no idea why.

svn-id: r19023
2005-10-11 17:48:16 +00:00
Torbjörn Andersson
abb9ee416f Removed the "reset all controllers" message. It currently breaks on Adlib,
and I don't want to have to worry about it. Centering the pitch wheel is
the change that I primarily wanted to make, and that should be supported by
every MIDI driver we have.

svn-id: r18999
2005-10-10 09:31:27 +00:00
Torbjörn Andersson
5b92d1e9fa I noticed yesterday that if you change music in IHNM at the "right" moment,
the music will be horribly out of tune because the pitch wheel setting from
the old music will still apply.

I hope allNotesOff() is the correct place to ensure that the pitch wheel is
centered.

svn-id: r18998
2005-10-10 07:00:31 +00:00
Eugene Sandulenko
2b1d4ef990 Fix regression caused by recent code cleanup. Each input byte should be
processed twice, so even if stream end is reached, there should be another
iteration. Otherwise it always returned one byte less than expected.

svn-id: r18859
2005-09-22 20:45:46 +00:00
Max Horn
7aa398a9d0 Clarify the AudioStream::readSample requirements
svn-id: r18844
2005-09-18 14:49:54 +00:00
Max Horn
114efafe7d Cleaned up the ADPCM code
svn-id: r18840
2005-09-17 10:58:01 +00:00
Joost Peters
42d01d468d libtremor is installed to a different location when using the port from pspdev svn
svn-id: r18838
2005-09-17 10:28:50 +00:00
Gregory Montoir
ad3c2e1dbc committed patch #1281714 'Kyra 1 Sound Patch'. Thanks LordHoto.
svn-id: r18807
2005-09-11 14:35:34 +00:00
Chris Apers
5870531184 Change PalmOS ident
svn-id: r18756
2005-09-03 18:05:19 +00:00
Jonathan Gray
603a5e4d6f Don't explicity check for tremor and vorbis everywhere and
require both USE_TREMOR and USE_VORBIS to be defined when
using tremor.

svn-id: r18642
2005-08-10 12:42:56 +00:00
Jonathan Gray
3c1b5648ae Rest of the changes required for tremor to actually work.
Based on patches against 0.7.1 by Jolan Luff.

svn-id: r18641
2005-08-10 06:16:26 +00:00
Eugene Sandulenko
6b4484472b Remove trailing whitespaces.
svn-id: r18604
2005-07-30 21:11:48 +00:00
Torbjörn Andersson
f7749e4789 I believe this fixes a GCC 4 compile error, but I can't run the MT-32
emulator (my computer is too slow, and anyway I don't have the necessary
data files) so I haven't tested it other than by compiling it.

See bug #1224138 for details.

svn-id: r18558
2005-07-19 17:30:49 +00:00
Max Horn
8a59ff208c Fix more GCC 4.0 warnings
svn-id: r18533
2005-07-11 00:48:27 +00:00
Jerome Fisher
407dd03e28 - Small changes to sync with Munt.
svn-id: r18488
2005-07-03 22:56:51 +00:00
Jonathan Gray
2e273bad42 Enhanced tremor support from Jolan Luff.
The configure script now works as follows for detection:
Tremor only: use tremor
Vorbis only: use vorbis
Both: use vorbis

This behaviour can be changed with newly added configure script options.

svn-id: r18478
2005-06-30 09:14:36 +00:00
Max Horn
48a00b6846 Fix warning
svn-id: r18469
2005-06-26 23:47:19 +00:00
Lars Persson
f001a43830 Updated Scummvm MP3 implementation with patch so it works with Symbian multithreading. This openingen/closing the file for each chunk to read. This does only affect the Symbian build and the other ports should work as normal.
svn-id: r18466
2005-06-26 19:44:55 +00:00
Max Horn
02568d4498 oops forgot this in my previous commit
svn-id: r18457
2005-06-24 16:39:17 +00:00
Max Horn
9da50d6662 Fixed Oki table entry; added doc URL; mention IMA ADPCM
svn-id: r18456
2005-06-24 16:21:10 +00:00
Torbjörn Andersson
40236ee7c1 For consistency, specify directory when including files.
svn-id: r18454
2005-06-24 16:16:46 +00:00
Max Horn
8b1d7b9166 When including files from common/, explicitly use the common/ prefix
svn-id: r18444
2005-06-24 15:23:51 +00:00
Lars Persson
1c69696a9a Patches needed to build for SYMBIAN32 WINS/GCC added.
Test built for Symbian and run on P910i without any major problems.
Test built for MSVC6. Changed parts seems to compile ok but there are some problems with MSVC6 and some of the targets which the EPOC build does n't support (KYRA,SAGA).

svn-id: r18430
2005-06-21 22:08:21 +00:00
Max Horn
21efddda22 Added virtual destructor, to silence a few more GCC 4 warnings
svn-id: r18420
2005-06-20 18:27:33 +00:00
Torbjörn Andersson
eeab93cf09 More whitespace changes.
svn-id: r18273
2005-05-27 12:43:19 +00:00
Oliver Kiehl
868f2b3f71 Mixer is now in namespace Audio. fix compiling.
svn-id: r18056
2005-05-11 17:20:32 +00:00
Max Horn
2de46dc8eb Moved some more stuff to namespace Audio (enough for tonight)
svn-id: r18040
2005-05-11 00:01:44 +00:00
Max Horn
1a615346ab Moved class SoundMixer to Audio::Mixer (didn't call the namespace 'Sound' because we already have many classes with that name)
svn-id: r18039
2005-05-10 23:48:48 +00:00
Max Horn
72f4c03b0b Moved (In/Out)SaveFile(Manager) and Timer to namespace Common
svn-id: r18038
2005-05-10 23:17:38 +00:00
Max Horn
b75c969e66 Moved class File and the MD5 stuff to namespace Common
svn-id: r18037
2005-05-10 22:56:25 +00:00
Paweł Kołodziejski
39cb499fcf fixed warning
svn-id: r18012
2005-05-09 22:38:44 +00:00
Max Horn
52bbc86797 Patch #1181544 (AmigaOS 4 changes)
svn-id: r18011
2005-05-09 21:21:21 +00:00
Max Horn
9bfc9281a1 Fix doxygen message
svn-id: r18000
2005-05-09 12:26:07 +00:00
Max Horn
cca744f69a Comply to our coding conventions
svn-id: r17975
2005-05-08 21:49:52 +00:00
Max Horn
d00117ec4b Fixed some doxygen warnings
svn-id: r17923
2005-05-05 15:59:24 +00:00
Travis Howell
77d6a04abc Switch link to web page with more detailed information on compression types.
svn-id: r17905
2005-05-04 01:57:03 +00:00
Eugene Sandulenko
575e94602c o Fixed ADPCM decoder length bug
o Plugged IMA ADPCM into SCUMM engine so latter HE titles now have speech
  though it is somewhat noisy don't know why as decoder is based on ADPCM
   reference implementation.

svn-id: r17904
2005-05-03 22:12:23 +00:00
Eugene Sandulenko
a71d60686c Moved Oki ADPCM aka VOX decoder from SAGA engine to common sound/ directory.
Implemented IMA ADPCM decoder.

svn-id: r17903
2005-05-03 20:36:07 +00:00
Max Horn
969ef3dac9 * Added new virtual base class 'Stream', ReadStream and
WriteStream are now subclasses of it.
* Added new methods eos(), ioFailed(), clearIOFailed() to
  all streams. This allows better error checking.
* SaveFile classes take advantage of these new standard
  stream APIS
* Removed File::gets()
* Added SeekableReadStream::readLine() (replaces File::gets)
* Added WriteStream::writeString, for convenience

svn-id: r17752
2005-04-22 17:40:09 +00:00
Gregory Montoir
8b559ff875 code conventions
svn-id: r17714
2005-04-20 11:13:56 +00:00
Gregory Montoir
5a930d8fe7 this should fix bug #1181979
svn-id: r17713
2005-04-20 11:03:36 +00:00
Andrew Kurushin
b31ee93c75 vc compile warn
svn-id: r17637
2005-04-16 17:05:14 +00:00
Gregory Montoir
0f3ab2206a Only cache a track if it really exists, this should prevent some issues when playing with invalid compressed tracks. See also bug report #1181979.
svn-id: r17591
2005-04-13 19:50:58 +00:00
Max Horn
839c8add38 Get rid of errno; add some (optional) error checking facilities to SaveFile classes (they are ugly, and to simple, but better than nothing)
svn-id: r17589
2005-04-13 18:36:55 +00:00
Eugene Sandulenko
bdbd56406c Patches #1164217 "Updated GS Support + Percussion Remapping Patch" and
#1181750 "Updated Native MIDI documentation". Thanks _tom a lot.

svn-id: r17571
2005-04-13 00:11:49 +00:00
Torbjörn Andersson
d4d045b117 Forgot to add files when committing patch #1175374.
svn-id: r17513
2005-04-10 14:35:11 +00:00
Torbjörn Andersson
13dc149ded Applied patch #1175374 ("FluidSynth MIDI driver"), with a few documentation
changes. There are a few things that could use a bit more work, and I've
only tested it on my Linux box. I have verified that ScummVM still compiles
when it's disabled, though, so it shouldn't break anything too badly.

svn-id: r17512
2005-04-10 14:33:44 +00:00
Jonathan Gray
24c92d0091 Remove usage of vsprintf in favour of vsnprintf and make
more use of STRINGBUFLEN.  Some ports may need a new stub for
this, discussed with Chrilith.

svn-id: r17463
2005-04-09 01:52:44 +00:00
Max Horn
9e2e00881f Renamed getActiveChannelSoundID to getSoundID and fixed its semantics to avoid race conditions
svn-id: r17377
2005-04-04 17:43:00 +00:00
Travis Howell
f230fe65e8 Add 8 sound channel support for HE games
-Allows sound looping to work

Added support for WAVE format musuc used in later HE100 games.

svn-id: r17372
2005-04-04 11:43:25 +00:00
Jerome Fisher
eda317924e Committed patch #1168149 (Shared GM/MT-32 mapping) by eriktorbjorn as-is. This does the following:
- Replaces multiple identical MT-32-to-General MIDI mapping tables with a common one in MidiDriver.
- Changes Sky's GmChannel class to allow NULL instrument and velocity mapping tables, giving a 1-to-1 mapping without creating a dummy table.

svn-id: r17361
2005-04-03 22:01:38 +00:00
Max Horn
3084724d7d To prevent race conditions, SoundMixer::isSoundHandleActive must lock the mixer mutex. That change might however cause regressions (read: dead locks) if some code calls isSoundHandleActive from within a sound callback... if you encounter any, please tell me
svn-id: r17209
2005-03-23 16:41:44 +00:00
Max Horn
61d0e3f02c Make sure SoundHandle's are inited
svn-id: r17194
2005-03-22 18:29:02 +00:00
Jerome Fisher
7f83c47860 Merged with latest Munt CVS.
* Added support for most of the extended capabilities of the CM-32L/LAPC-I (more rhythm timbres, more rhythm key mappings, more PCM samples).
* The control ROM is now identified by searching for matching ID strings at various locations in the file. There are now a lot of safety checks to help ensure that a bad ROM will not crash the emulator.
* Three control ROM versions are now identified and mapped out - an original MT-32 control ROM, an original CM-32L ROM, and the Blue Ridge modified MT-32 ROM.
* Now supports the expression controller properly.
* Sustain is now turned off correctly again.
* "All Notes Off" no longer stops notes held by the sustain controller.
* Implemented "Reset all controllers".
* Stereo pan positions are no longer inverted.
* Volume, pitch, filter and envelopes are now more accurately calculated. Overall, the sound emulation is much more accurate.
* Waveforms are now slightly more accurate (in terms of pitch), necessitating a regeneration.
* Handling of unusual sysex messages has been improved (fixes sysex messages from Java's MIDI classes on Windows).
* Fixed a reverb bug during periods of silence.

svn-id: r17188
2005-03-20 16:24:55 +00:00
Max Horn
0e784d41d7 Simplified SoundHandle implementation
svn-id: r17107
2005-03-12 20:26:49 +00:00
Max Horn
7cd2cb2b17 PlayingSoundHandle -> SoundHandle; also, turned the handle activity check into a mixer method
svn-id: r17106
2005-03-12 18:56:09 +00:00
Chris Apers
a68d6ad671 PalmOS : ARM optimized OPL driver
svn-id: r17079
2005-03-11 11:01:52 +00:00
Max Horn
0ec193b4be changing AudioDataType -> SoundType, so now the constant names match the name of the data type / the SoundMixer method names
svn-id: r17052
2005-03-09 18:12:54 +00:00
Max Horn
b7c2926a0b Typo
svn-id: r17006
2005-03-06 13:23:39 +00:00
Max Horn
cda823ea63 It's kMaxMixerVolume, not 256 (we might change it to 255 eventually)
svn-id: r16747
2005-02-06 20:35:06 +00:00
Travis Howell
bebad400d6 Check sound queue for music in HE games.
Avoid extra sound channel.

svn-id: r16706
2005-01-30 11:03:49 +00:00
Max Horn
abd12dd1b6 Use class Mutex instead of MutexRef
svn-id: r16679
2005-01-28 22:05:51 +00:00
Nicolas Bacca
2f8f982f7d Add medium quality sound for FOTAQ
svn-id: r16676
2005-01-28 20:46:36 +00:00
Torbjörn Andersson
9eecc9406d 16-bit WAVs are little-endian.
svn-id: r16539
2005-01-11 08:30:28 +00:00
Torbjörn Andersson
13e2c224c8 This is probably not the optimal fix, but at least ScummVM compiles again.
svn-id: r16538
2005-01-11 08:06:19 +00:00
Max Horn
ec79a9a768 A little more moving around #include's (last one for today ;-)
svn-id: r16534
2005-01-10 22:51:42 +00:00
Max Horn
f030081647 eek, we put a static RandomSource instance into every file that included fmopl.h...
svn-id: r16532
2005-01-10 22:46:23 +00:00
Max Horn
5c48717dd2 Remove some more header dependencies
svn-id: r16530
2005-01-10 22:35:43 +00:00
Max Horn
cffd917165 system.h was being included in tons of places, without any good reason; reduced this (total dependencies on system.h went down from 193 to 85 files)
svn-id: r16527
2005-01-10 22:06:49 +00:00
Max Horn
51112e49b5 Fix legal header
svn-id: r16506
2005-01-09 16:14:56 +00:00
Max Horn
9cea3d393f Added shared code to load WAV(E) data from arbitrary seekable streams (files or memory)
svn-id: r16502
2005-01-09 15:49:43 +00:00
Max Horn
eeea238ef7 This function is currently not used...
svn-id: r16501
2005-01-09 15:48:47 +00:00
Max Horn
0fb2bd30f4 cleanup
svn-id: r16500
2005-01-09 15:48:27 +00:00
Max Horn
32f0dbdcb2 Moving AppendableAudioStream into SCUMM engine, as it is only used there
svn-id: r16494
2005-01-09 03:15:59 +00:00
Max Horn
c6e0d31e76 Added a font manager (work in progress)
svn-id: r16460
2005-01-06 21:15:52 +00:00
Max Horn
5d88c39549 Modify the singleton code once more to help overcome an issue with MSVC 7 (see also patch #1095133)
svn-id: r16454
2005-01-06 18:38:34 +00:00
Travis Howell
ab432327d8 Add missing control changes, patch #1094825.
svn-id: r16416
2005-01-03 11:33:12 +00:00
Max Horn
74bf578bda Changed the singleton code to allow for custom object factories; this allowed me to change OSystem to use the singleton base class, too
svn-id: r16404
2005-01-01 19:19:06 +00:00
Max Horn
f52be9df68 Changed OSystem::instance() to return a reference, not a pointer (it now matches the Singleton interface)
svn-id: r16402
2005-01-01 18:53:47 +00:00
Max Horn
2664ca7eb1 oops, correct copyright string
svn-id: r16399
2005-01-01 16:20:17 +00:00
Max Horn
47280d9433 Updated copyright
svn-id: r16398
2005-01-01 16:09:25 +00:00
Max Horn
b15d92e470 Fix running ScummVM in plugin-mode
svn-id: r16360
2004-12-28 20:29:42 +00:00
Max Horn
160a28e912 Fixing hasActiveChannelOfType
svn-id: r16354
2004-12-28 11:19:36 +00:00
Max Horn
48e70acbaa Use SoundMixer::kMaxMixerVolume
svn-id: r16351
2004-12-27 23:58:04 +00:00
Max Horn
bc882a1af4 Introduced two new constants SoundMixer::kMaxChannelVolume and SoundMixer::kMaxMixerVolume, for clarity
svn-id: r16348
2004-12-27 23:33:19 +00:00
Max Horn
357eb38b49 Allow premix channels to use a custom sound type
svn-id: r16332
2004-12-27 02:58:55 +00:00
Max Horn
f15f517bb4 Add 'speech' sound type to mixer; make use of that in iMuse Digital
svn-id: r16331
2004-12-27 01:32:40 +00:00
Max Horn
67b311713d Added 'sound types' to the mixer - for now, only plain (for the premixer), SFX and music; volume is now controlled based on the sound type
svn-id: r16330
2004-12-27 00:27:00 +00:00
Max Horn
fec3df2096 Moved the softsynth midi drivers into a sound/softsynth; amongst other things, this fixes bug #1083058
svn-id: r16316
2004-12-25 18:34:44 +00:00
Max Horn
433711be5e Removing this dead code for now, it only leads to confusion
svn-id: r16314
2004-12-25 18:22:55 +00:00
Max Horn
59b6a07826 Evil workaround for bug #1083058
svn-id: r16045
2004-12-14 01:02:55 +00:00
Max Horn
3891c0fa39 change loadVOCFromStream to take a reference instead of a pointer (to a stream)
svn-id: r16035
2004-12-11 23:34:34 +00:00
Max Horn
5d5a13eec7 Moved MidiDriver creation code into the MidiDriver class (as static methods), same for some other MIDI related stuff
svn-id: r15968
2004-12-02 00:33:42 +00:00
Max Horn
d6d3e5422b cleanup
svn-id: r15955
2004-11-28 23:24:32 +00:00
Max Horn
10dd548b85 Changed parameter order of SoundMixer::playInputStream to match that of playRaw
svn-id: r15950
2004-11-28 23:02:28 +00:00
Jerome Fisher
45d92a02f4 Added a "permanent" field to Channels, which simply prevents them from being deleted during stopAll().
I hope this doesn't step on anyone's toes; it was quite urgent, since loading a saved game stopped MT-32 emulation audio forever.

svn-id: r15946
2004-11-28 22:15:09 +00:00
Max Horn
f6b495c8bc Assume for now that the premixer is always used for music playback (as opposed to being used for SFX); this affects the volume (see bug #1049375)
svn-id: r15940
2004-11-28 13:57:49 +00:00
Max Horn
c51b1266c0 Removed the (highly SCUMM specific) 'appendable stream' API from SoundMixer; SCUMM now uses the appendable stream directly
svn-id: r15919
2004-11-27 17:09:05 +00:00
Max Horn
573e02bb4c Removed the old setupPremix version, it is not needed anymore. Also fixed some doxygen comments (they were being assigned to the wrong things)
svn-id: r15918
2004-11-27 16:26:54 +00:00
Max Horn
ba74a8e7f6 Added some more mixer doxygen docs; cleaned up Mixer API a bit, removing some very specialised methods
svn-id: r15914
2004-11-27 15:58:18 +00:00
Max Horn
1a7ca2dc2a AudioStream::read() has been removed quite some time ago, now making sure that change is reflected everywhere
svn-id: r15911
2004-11-27 13:54:09 +00:00
Max Horn
96804652a2 cleanup
svn-id: r15863
2004-11-22 22:52:48 +00:00
James Brown
4aa5649c1e Erm, this was never meant to be commited. I might as well leave the .h change for now, until kyra is investigated further.
svn-id: r15788
2004-11-11 14:19:38 +00:00
James Brown
cb4b3c1f7e Prevent infinite loop by displaying the launcher after a game start FAILURE too.
svn-id: r15787
2004-11-11 14:01:11 +00:00
Eugene Sandulenko
805b21181a Major MT-32 emu overhaul based on KingGuppy's code.
o added configure option
 o mi2 intro doesn't freeze anymore and has no sound glitches
 o missing instruments in many titles are fixed
 o numerous memory overwrite bugs are fixed
 o code is cleaned a lot and splitted into many smaller files
 o mt32.cpp went to backends/midi
 o synced with upstream code
 o reverberation fixed

 * don't complain about File class wrapper :)
 * all custom types are back
 * #pragmas are to do
 * maybe some indentation is wrong too

I prefer smaller commits, but this thing came in one piece.

svn-id: r15715
2004-11-06 01:41:32 +00:00
Eugene Sandulenko
775bd838c7 Delegate channel functions to any MidiDriver. This is useful for the
MT-32 emulation and quite possibly other MidiDrivers in future.

svn-id: r15711
2004-11-04 21:34:17 +00:00
Max Horn
5f4575ccd0 Doxygen fixes
svn-id: r15699
2004-10-30 21:52:57 +00:00
Paweł Kołodziejski
c10cce6af1 fixed warnings
svn-id: r15665
2004-10-23 13:39:03 +00:00
Chris Apers
dc02e95cd7 Prepare true AdLib support on PalmOS
svn-id: r15649
2004-10-22 12:11:24 +00:00
Eugene Sandulenko
9d0b746aaa Patch #1048326 Better MT-32 support
svn-id: r15635
2004-10-21 22:37:37 +00:00
Max Horn
697da0eb9b Add comment
svn-id: r15595
2004-10-17 19:39:54 +00:00
Max Horn
9f4bf02c1e Fix playback of MP3 files till EOF in some cases
svn-id: r15587
2004-10-17 13:49:11 +00:00
Max Horn
1036e88aa6 Implement premix proc via an AudioStream / Channel (eventually we'll remove the setupPremix method which takes a proc pointer)
svn-id: r15522
2004-10-11 22:01:21 +00:00
Eugene Sandulenko
ae7421ae2b Make AppendableAudioStream endianness-aware.
svn-id: r15491
2004-10-09 22:51:00 +00:00
Max Horn
ce8c99bf62 Rename remaining OSystem methods to match our coding guidelines
svn-id: r15332
2004-09-28 20:19:37 +00:00
Max Horn
f66960c4b9 Remove obsolete path param
svn-id: r15278
2004-09-25 23:33:34 +00:00
Max Horn
61b7e2155a Fix doxygen warnings
svn-id: r15277
2004-09-25 23:26:46 +00:00
Max Horn
9ec7b57f9b Fix potential race condition
svn-id: r15191
2004-09-19 13:54:24 +00:00
Travis Howell
e22230e223 Actually check if a sound is active, if the sound is outside music engine.
Add some more HE differences

svn-id: r15188
2004-09-19 12:22:47 +00:00
Paweł Kołodziejski
0e9967afe1 smush tracks are not music channel, removed outdated dimuse comment
svn-id: r15167
2004-09-18 14:31:36 +00:00
Paweł Kołodziejski
3a19ca1be3 fixde bug IMUSE+DEBUG
svn-id: r14892
2004-09-04 13:13:23 +00:00
Max Horn
3511e688ab Fix for bug #1022265 (Memory leak in vorbis.cpp?)
svn-id: r14889
2004-09-04 10:12:22 +00:00
Max Horn
759cd67de5 cleanup of TimerProc mess
svn-id: r14683
2004-08-22 13:27:34 +00:00
Max Horn
cebd4a24cb Remove orphaned TODO
svn-id: r14517
2004-08-08 15:22:47 +00:00
Travis Howell
5e7d2494bb Update comment
svn-id: r14456
2004-08-03 10:11:54 +00:00
Travis Howell
2b1c98b6ea Add comment
svn-id: r14455
2004-08-03 09:46:38 +00:00
Travis Howell
fd2e14f33c Add invalid version used by French Simon2
svn-id: r14453
2004-08-03 03:18:51 +00:00
Max Horn
4b6dae31eb changed loadVOCFile to work on a generic ReadStream instead of a File, and renamed it to loadVOCFromStream; removed readVOCFromMemory as it isn't used anymore, and in the future, a MemoryReadstream plus loadVOCFromStream can achieve the same effect
svn-id: r14383
2004-07-31 11:46:58 +00:00
Torbjörn Andersson
70f8f689a1 Applied patch #957544 to make output sample rate configurable at runtime.
svn-id: r14225
2004-07-16 10:24:29 +00:00
James Brown
9756a420a3 Use extrapath in Sword1 engine (from 0.6.0 branch). More verbose errors to go with the forthcoming new manual. Sword1 CD swapping doesn't work as expected HERE, either :)
svn-id: r14188
2004-07-11 04:41:48 +00:00
Paweł Kołodziejski
c7133de879 getFreeSpace() is not longer used
svn-id: r14136
2004-07-01 04:43:32 +00:00
Max Horn
4f80e2f36b Fix for bug #981991 (VORBIS: Crash when using Ogg Vorbis CD tracks)
svn-id: r14128
2004-06-29 23:27:18 +00:00
Max Horn
e0eab01e63 Make use of new File refcount code; also fixed long standing bug in vorbis code (ov_clear was not being called, resulting in a file not being closed)
svn-id: r14107
2004-06-28 22:35:22 +00:00