Commit Graph
86814 Commits
Author SHA1 Message Date
Max Horn f4b30ecf6e AGI: Change SoundGenMIDI to derive from Audio::MidiPlayer
As a side effect, this fixes the incorrect handling of 'All Note Off'
in SoundGenMIDI::send.
2011-03-24 16:46:46 +01:00
Max Horn e9570c3a4b AUDIO: Added Audio::MidiPlayer class
This code is currently not complete, but contains enough code to
allow several engines to switch their pseudo MidiDrivers to be
based on this class, greatly reducing code duplication.
2011-03-24 16:46:46 +01:00
Max Horn 2d4dff8cb4 DRACI: Fix incorrect 'all notes off' handling 2011-03-24 16:46:46 +01:00
Max Horn 00932cc715 QUEEN: Fix incorrect 'all notes off' handling 2011-03-24 16:46:45 +01:00
Max Horn 754c250c65 HUGO: When erroring out due to a missing file, tell the user which file is missing 2011-03-24 16:46:45 +01:00
Paul Gilbert 0b9d36cb6b TSAGE: In progress implementation of Scene #4100 2011-03-24 22:49:20 +11:00
Paul Gilbert b3471354d0 SWORD25: Commit submitted patch of German comments translated to English 2011-03-24 20:48:58 +11:00
Matthew Hoops 4235358fad MOHAWK: Use direct access on the hashmap for Riven variables now 2011-03-23 23:14:59 -04:00
Matthew Hoops b3e27bc0d6 MOHAWK: Make Riven's save/load code use the variable map directly 2011-03-23 21:45:39 -04:00
Matthew Hoops aaf05b2a59 MOHAWK: Begin using a hashmap to store Riven variables 2011-03-23 21:33:57 -04:00
Max Horn 088bd7a70b ENGINES: Remove unused MIDI pass-through code 2011-03-23 17:07:48 +01:00
Max Horn e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Max Horn 29847ea42d AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
2011-03-23 15:25:47 +01:00
Max Horn c70c8864f1 AUDIO: Introduce a new MidiDriver_BASE base class.
The actual MidiDriver derives from it. MidiDriver_BASE only
provides the minimal API necessary for transmitting MIDI data.
The idea is that this is all MidiParser needs, thus allowing
us to simplify the various MidiPlayer classes in our engines.
2011-03-23 15:25:47 +01:00
Max Horn a539be098d AUDIO: Update some comments, remove some obsolete ones 2011-03-23 15:25:47 +01:00
Max Horn 2bc842dcee AGOS: Sanitize the mutex locking in MidiPlayer::startTrack 2011-03-23 15:25:46 +01:00
Max Horn 7b02dac3c5 ENGINES: Use Common::StackLock in more places 2011-03-23 15:25:46 +01:00
Max Horn 99dbecf3b4 TINSEL: Make MidiMusicPlayer::_parser and _mutex protected 2011-03-23 15:25:46 +01:00
Max Horn 756f592b61 SCUMM: Remove unused iMuse MIDI 'passthrough' code 2011-03-23 15:25:46 +01:00
Max Horn 4172414e35 COMMON: Remove TODO from struct Event
I moved this TODO to the Wiki TODO page and extended it there. Yet
while I originally wrote it, I now think that we are probably best off
keeping things as they are.
2011-03-23 15:25:46 +01:00
Paul Gilbert 44b466512f TSAGE: Initial implementation of Scene #4050 2011-03-24 00:27:41 +11:00
Paul Gilbert f612695a33 TSAGE: Implemented Scene #4045 - Temple Antechamber 2011-03-23 22:56:51 +11:00
Paul Gilbert 649a5adb10 SWORD25: Commit of patch translating German comments to English 2011-03-23 22:25:33 +11:00
Paul Gilbert 5e6cc67e2e TSAGE: Implemented Scene #4025 - Village - Puzzle Board 2011-03-23 19:16:09 +11:00
Matthew Hoops 50a35193c9 MOHAWK: Remove 'old' from the LB v1 sound function too 2011-03-22 21:16:27 -04:00
Matthew Hoops bc1c84e6c8 MOHAWK: Rename OldMohawkBitmap to LivingBooksBitmap_v1
'Old' is very ambiguous ;)
2011-03-22 21:13:54 -04:00
Matthew Hoops e82e5e32ff MOHAWK: Begin to implement Riven opcode 38
Also, renamed it to better reflect its purpose
2011-03-22 20:33:38 -04:00
Matthew Hoops 1ca6781859 MOHAWK: Minor cursor call cleanup 2011-03-22 20:13:01 -04:00
Matthew Hoops 4d6c020cf4 MOHAWK: Remove the Riven 'restart' console command
This ancient console function has no purpose any longer and is half-broken anyway.
2011-03-22 20:04:46 -04:00
Matthew Hoops a730d30f0c MOHAWK: Cleanup installer handling 2011-03-22 19:54:59 -04:00
Matthew Hoops f40b74d496 MOHAWK: Handle launcher load fails more gracefully 2011-03-22 19:54:58 -04:00
Max Horn 8982fff1b7 AUDIO: Add pure virtual MidiDriver::isOpen() method
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.

The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom

Also fixed some engines which were leaking MidiDriver instances.
2011-03-22 23:51:47 +01:00
Thierry Crozat 92716d71ed NEWS: Mention new Swedish translation 2011-03-22 22:32:18 +00:00
Thierry Crozat ca772d1460 I18N: Update translation data file 2011-03-22 22:20:20 +00:00
Thierry Crozat 3e630ea09b I18N: Clean po files (remove obsolete strings) 2011-03-22 22:20:19 +00:00
Thierry Crozat 9adb25444c I18N: Regenerate translation template and update po files
This follows the modification done in the scumm help dialog to
reduce the number of strings to translate.
2011-03-22 22:20:18 +00:00
Thierry Crozat fb4e5f7f84 I18N: Break keyboard shortcut translation by key
In the scumm help dialog, translate single keys, e.g. "Ctrl" or "Alt"
instead of asking the translator to translate individually  "Ctrl a",
"Ctrl b", "Alt a", "Alt b", Ctrl Alt a" and so on. This reduce greatly the
number of strings to translate.
2011-03-22 22:20:18 +00:00
Thierry Crozat c2d20b90d8 BUILD: remove obsolete rule for translation support 2011-03-22 22:20:18 +00:00
Thierry Crozat 649304db3c CREDITS: Add credits for Swedish translation 2011-03-22 22:20:17 +00:00
Thierry Crozat 6f59d02db7 I18N: Regenerate translation data file 2011-03-22 22:20:15 +00:00
Thierry Crozat 300c8b81e5 I18N: Update translations files from template 2011-03-22 22:20:14 +00:00
Thierry Crozat 14b13f54ae I18N: Update translation template from source code 2011-03-22 22:20:14 +00:00
Thierry Crozat a6f11186c5 I18N: Change language name from Swedish to Svenska 2011-03-22 22:20:14 +00:00
Thierry Crozat 541a9b8703 I18N: Add Swedish translation from path #3232066 2011-03-22 22:20:14 +00:00
Littleboy 5277c86482 LASTEXPRESS: Fix sound timer to only run every 17 milliseconds 2011-03-22 16:46:31 -04:00
dhewg 5f96dc6867 ANDROID: Fix timer frequency to match SDL 2011-03-22 21:02:42 +01:00
dhewg 18d9654ca2 TIMER: Cleanup 2011-03-22 21:02:41 +01:00
dhewg bb12acfa0f AUDIO: Cleanup
Is it just me or is overwriting-but-not-marking-as-virtual
irritating?
2011-03-22 21:02:08 +01:00
Matthew Hoops 2053936959 MOHAWK: Ignore other 'time' variables when loading saves too 2011-03-22 14:27:32 -04:00
Matthew Hoops d91c33ca26 MOHAWK: Implement xrwindowsetup 2011-03-22 14:11:24 -04:00