Commit Graph

263 Commits

Author SHA1 Message Date
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Ori Avtalion
cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Max Horn
73f04118f3 COMMON: Rename Error to ErrorCode, introduce new Error class 2011-04-18 18:22:02 +02:00
Max Horn
7949d7c6de AUDIO: Move more common code to Audio::MidiPlayer
This also should fix some regressions from the previous
commits, related to MidiParser's either being leaked,
or being deleted and then used again (i.e., crashing).

I tested as many games as I had available, but further
testing of all affected engines is called for anyway.
2011-03-25 14:15:53 +01:00
Max Horn
bd637b4c5c TOUCHE: Move _gmToRol to midi.cpp 2011-03-25 14:14:13 +01:00
Max Horn
00ad039b4c TOUCHE: Change MidiPlayer to derive from Audio::MidiPlayer 2011-03-25 14:14:13 +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
7b02dac3c5 ENGINES: Use Common::StackLock in more places 2011-03-23 15:25:46 +01: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
dhewg
58f1e2f6ef TOUCHE: Cleanup syncSoundSettings()
And respect global mute settings
2011-03-19 16:49:16 +01:00
Johannes Schickel
e21d6e0d11 Merge branch 'osystem-palette' of https://github.com/lordhoto/scummvm into master
Conflicts:
	backends/platform/android/android.cpp
	engines/sci/graphics/screen.cpp
	engines/sci/graphics/transitions.cpp
2011-02-19 21:46:45 +01:00
Gregory Montoir
8a50789662 TOUCHE: fix op_not/op_neg opcodes naming 2011-02-18 15:20:31 +01:00
Johannes Schickel
16ac1290dd TOUCHE: Adapt to setPalette RGBA->RGB change.
This change was not tested, because I do not have any touche copy.
2011-02-14 17:08:33 +01:00
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn
ab039812e7 COMMON: OSystem now has a PaletteManager
svn-id: r55806
2011-02-07 17:52:38 +00:00
David Turner
a7df59a0ac TOUCHE: Fixed Uninitialised Read in first call to ToucheEngine::res_loadBackdrop().
svn-id: r55385
2011-01-21 19:25:24 +00:00
Max Horn
6edc86a19b DEBUG: Let GUI::Debugger::preEnter and postEnter (un)pause the engine
svn-id: r54815
2010-12-07 18:54:21 +00:00
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
David Turner
f0fe060cc3 TOUCHE: Added basic debugging console to engine
Since TOUCHE uses Debug Channels, this allows for the interactive setting of debugflags as well as providing a base for adding further debugging commands.

svn-id: r54137
2010-11-08 03:55:16 +00:00
Max Horn
18d40017e8 ENGINES: Unify code layout of all ADParams instances
svn-id: r54105
2010-11-07 01:01:18 +00:00
Max Horn
4ccce19876 ENGINES: Enhance namespace comments a bit
svn-id: r53484
2010-10-15 12:48:19 +00:00
Johannes Schickel
6588398ce6 MIDI: Send a reset MIDI device signal on startup.
This is currently done in the engine code. I adapted AGI, AGOS, DRACI,
GROOVIE, LURE, MADE, QUEEN, SAGA, SKY, TINSEL and TOUCHE to send a reset
device on startup. The sound output still works fine (started up a game
from every engine), so this should hopefully not introduce any regressions.

As far as I can tell it seems that SCUMM does send a proper device reset, so
I did not touch it. KYRA only sends a proper reset for MT-32 currently. I am
not sure about SCI though.

This fixes bug #3066826 "SIMON: MIDI notes off when using RTL after SCI".

svn-id: r52736
2010-09-15 22:00:20 +00:00
Florian Kagerer
c35e350531 AUDIO: get rid of MDT_PREFER_MIDI since it should be sufficient to either select MDT_PREFER_MT32 or MDT_PREFER_GM
svn-id: r50288
2010-06-25 20:51:57 +00:00
Max Horn
bbad3f333a Patch #1956501: "GUI/LAUNCHER: Midi device selection"
svn-id: r50128
2010-06-21 21:36:36 +00:00
Travis Howell
45b23601e7 Add detection of original directory structure for Touche.
svn-id: r49929
2010-06-17 13:42:02 +00:00
Eugene Sandulenko
44a39ffbc6 AdvancedDetector: Add new parameter directoryGlobs.
Without this parameter mass detection gave tons of false alarms.
Use globbing for narrowing down the depth search.

svn-id: r49788
2010-06-15 10:59:23 +00:00
Eugene Sandulenko
4d517ed0e9 Extended advancedDetector with depth parameter.
Now AD can search nested directories. By default it is turned off,
but there is new parameter to ADParameters struct. Usually value
of 2 is good enough for all purposes.

svn-id: r49653
2010-06-14 14:50:23 +00:00
Max Horn
970745e60c Move DebugChannel related code to new header
svn-id: r48935
2010-05-04 11:59:22 +00:00
Max Horn
b3e404109c Move initGraphics and initCommonGFX from to new header.
These functions are only used internally be Engine subclasses, and
by moving them to a separate header we can reduce indirect header
dependencies.

svn-id: r48934
2010-05-04 11:58:12 +00:00
Max Horn
460d69e885 COMMON: Move DebugChannel stuff into a new DebugMan singleton
svn-id: r48821
2010-04-27 21:40:52 +00:00
Max Horn
a1840bd573 AUDIO: Rename Mixer::playInputStream to playStream
svn-id: r48637
2010-04-12 09:14:17 +00:00
Max Horn
cac0ac66e2 COMMON: Get rid of Common::StringList
svn-id: r48287
2010-03-18 15:54:40 +00:00
Max Horn
d78dba3bca COMMON: Move Common::RandomSource to common/random.*
svn-id: r48279
2010-03-18 15:07:11 +00:00
Max Horn
f24cc1c8be Tweak makeVOCDiskStream
* now takes a SeekableReadStream *pointer* like (almost) all other
  audiostream factories
* fix potential memory leak in it
* rename takeOwnershipOfStream to disposeAfterUse for consistency

svn-id: r48184
2010-03-08 10:27:42 +00:00
Yotam Barnoy
ef330ed9b4 Patch for bug 2943361 by littleboy, adding full kb modifier support to all engines + GUI and proper keypad handling
svn-id: r48101
2010-02-21 04:04:13 +00:00
Johannes Schickel
fe35d372da - Rename FlacStream to FLACStream.
- Rename makeFlacStream to makeFLACStream.

svn-id: r47846
2010-02-03 09:42:11 +00:00
Max Horn
1565f14bc1 Moved audio stream implementations (for MP3, FLAC, etc.) to new dir sound/decoders/
svn-id: r47579
2010-01-26 22:48:45 +00:00
Max Horn
dc5e08e623 Move raw audio flags from sound/mixer.h to sound/raw.h
svn-id: r47395
2010-01-19 22:30:33 +00:00
Max Horn
7ec2da968c Switch most AudioStream factories to use DisposeAfterUse::Flag
svn-id: r47334
2010-01-16 21:36:08 +00:00
Johannes Schickel
668f6e5de8 Adapt TOUCHE to use the new FLAC, Vorbis and MP3 factories (it didn't use any looping features anyway).
svn-id: r47066
2010-01-06 00:02:19 +00:00
Johannes Schickel
f5c3bd887e - Add a new SeekableAudioStream interface. Soon to be used to replace audio stream specific looping code by generic code in Mixer...
- Adapted some existing AudioStreams to implement that interface (not tested!)

svn-id: r47013
2010-01-05 02:27:24 +00:00
Max Horn
c8873d8492 Changed MidiDriver::createMidi to take a MidiDriverType instead of an int
svn-id: r46316
2009-12-09 18:12:51 +00:00
Max Horn
df651bf20f Added Doxygen comments for the various engine namespaces (currently mostly without details; help filling these out is welcome)
svn-id: r46128
2009-11-24 22:10:14 +00:00
Gregory Montoir
dc312ff96f TOUCHE: disable flag 777 update (not checked by any scripts)
svn-id: r43735
2009-08-25 21:30:05 +00:00
Johannes Schickel
7e71865e91 Move the event recorder to its own class (EventRecoder inside common/EventRecorder.[h/cpp]).
svn-id: r42751
2009-07-25 12:59:46 +00:00
Max Horn
6b98c4c4e7 Got rid of some more ioFailed uses (also fixed a potential leak in graphics/font.cpp, and handle eos correctly in the FLAC code)
svn-id: r42488
2009-07-14 18:24:20 +00:00
Eugene Sandulenko
1bd6f6c99f Added game GUI options to advancedDetector and updated all engines
svn-id: r41272
2009-06-06 17:56:41 +00:00
Max Horn
fb79b18571 Changed SaveFileManager methods to take Common::String params (instead of char pointers)
svn-id: r41000
2009-05-29 14:38:22 +00:00
Max Horn
65b5d31814 COMMON: Removed Stream::ioFailed() and clearIOFailed(), as they are deprecated; however, retained ioFailed in SeekableReadStream and File for now (so for now this mainly affects WriteStream subclasses)
svn-id: r40725
2009-05-19 11:42:14 +00:00
Jordi Vilalta Prat
047f116515 Renamed MetaEngine::getCopyright() to getOriginalCopyright() to better match the meaning of the returned string, as discussed some time ago in scummvm-devel
svn-id: r39132
2009-03-05 12:04:58 +00:00
Max Horn
dd98126423 Engines: Fused several init&go methods into a single run method
svn-id: r39003
2009-03-01 04:42:46 +00:00
Max Horn
3fcbda829a Merged Engine::go() and ::init() into a new run() method (currently implemented by calling the existing init&go methods; to be cleaned up by engine authors
svn-id: r39002
2009-03-01 04:30:55 +00:00
Travis Howell
9f2d6d82ca Make the subtitle settings in Options section of the global main menu optional, and enable only for game engines where subtitles settings are synced.
svn-id: r36237
2009-02-07 06:47:19 +00:00
Travis Howell
4131d3d07f Fix sound noise regression in CD32 version of Simon the Sorcerer 1.
svn-id: r36236
2009-02-07 05:05:14 +00:00
Max Horn
7cb437b56f Renamed SpecialDebugLevel to DebugChannel
svn-id: r36142
2009-01-30 05:10:24 +00:00
Max Horn
28cf213605 Moved AdvancedDetector from common/ to engines/
svn-id: r36132
2009-01-29 22:13:01 +00:00
Gregory Montoir
e3e699d7d2 fixed wrong z-reordering when one of the keychars is 0
svn-id: r35345
2008-12-13 19:38:48 +00:00
Gregory Montoir
13e613ae21 disable GMM save/load when original quit/options dialogs is displayed
svn-id: r35344
2008-12-13 19:35:33 +00:00
Gregory Montoir
f8c1223832 fixed readGameStateDescription() len parameter
svn-id: r35282
2008-12-07 19:15:19 +00:00
Gregory Montoir
3de7a31dc1 reduced saveload code dup
svn-id: r35276
2008-12-07 14:24:46 +00:00
Johannes Schickel
5a0556f09c Committed my patch #2123680 "SDL: Backend transaction / rollback support".
svn-id: r35062
2008-11-14 22:08:10 +00:00
Filippos Karapetis
0414a78a65 Added save/load support from the GMM for the touche engine
svn-id: r35008
2008-11-11 17:57:13 +00:00
Gregory Montoir
edd61a4f40 add missing version check for compressed sound file
svn-id: r35005
2008-11-11 13:08:06 +00:00
Filippos Karapetis
f5729a4a8b - The GMM save dialog is now working for all engines which support the appropriate features
- Added a new method to the MetaEngine class, getMaximumSaveSlot(), and implemented it in all engines for which the listSavefiles() method is implemented (it goes together with the listSavefiles method). It is used to fill the unused save slots in the save/load dialogs of each engine, so that the user can create new save games in empty slots
- Unified the save/load dialog list numbering in the GMM load/save screens and in the load screen of the main menu (before a game is started)

svn-id: r34963
2008-11-09 16:13:34 +00:00
Max Horn
40136f2590 Switched various Engine APIs to use Common::Error
svn-id: r34916
2008-11-06 17:05:54 +00:00
Max Horn
8f33d4a40a Implemented GMM loading (and, once the GMM supports it, saving) for SCUMM
svn-id: r34913
2008-11-06 15:41:38 +00:00
Max Horn
fe2935ad4b Got rid of the unused 'filename' attribute in SaveStateDescriptor
svn-id: r34905
2008-11-05 15:41:12 +00:00
Max Horn
61aadb378d Fixed the EngineFeature vs. MetaEngineFeature mess, clarified some EngineFeature comments
svn-id: r34896
2008-11-04 16:11:40 +00:00
Max Horn
55c10e0ec6 Patch #2122869: ALL: Common load dialog
svn-id: r34883
2008-11-03 18:32:16 +00:00
Filippos Karapetis
b7a219ebc6 Renamed engine feature kSupportsDirectLoad to kSupportsLoadingDuringStartup, as discussed in patch #2122869
svn-id: r34854
2008-10-26 16:42:08 +00:00
Max Horn
6a2f3dc0b9 Added new type Engine::Feature; pushed down some #include dependencies
svn-id: r34755
2008-10-06 12:48:52 +00:00
Max Horn
9b160804ab Renamed Engine::quit to Engine::shouldQuit (previously, it was easily confused with Engine::quitGame); also cleaned up engine.h a bit
svn-id: r34700
2008-09-30 12:27:38 +00:00
Johannes Schickel
0a35842954 Committed my patch #2105593 "Launcher/MetaEngine: Finnished removeSaveState".
svn-id: r34495
2008-09-11 19:47:45 +00:00
Max Horn
d3642080de Moved check for shouldRTL() from engines to scummvm_main
svn-id: r34310
2008-09-03 16:56:40 +00:00
Christopher Page
ec8dac5540 Added a MetaEngineFeature for RTL support, the RTL button is disabled in the GMM if the engine doesn't support it
svn-id: r33921
2008-08-16 02:53:16 +00:00
Christopher Page
9d3cdcb2da Defined some MetaEngineFeatures for the engines, the launcher uses these features to allow/disallow loading and deleting saves
svn-id: r33909
2008-08-15 18:15:14 +00:00
Christopher Page
ce3d1e1a7d Merged revisions 33632-33633,33635,33637,33639-33640,33642-33645,33648,33654-33655,33664,33667-33670,33673-33674,33678,33682,33686-33691,33693,33696,33698,33700,33703,33708,33710,33712-33714,33716 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33720
2008-08-09 19:03:29 +00:00
Gregory Montoir
52650efb6a fix for bug #2040484: TOUCHE: Graphic glitch with long answer options
svn-id: r33691
2008-08-07 21:50:12 +00:00
Gregory Montoir
303333352a fix for bug #2040311: TOUCHE: Missing characters in the spanish version
svn-id: r33690
2008-08-07 21:49:55 +00:00
Christopher Page
a51f454076 Added check for valid save slots, when loading savestates using -x
svn-id: r33483
2008-07-31 21:56:05 +00:00
Christopher Page
50b7e5aa0d Added --list-saves support for TOUCHE
svn-id: r33398
2008-07-29 06:04:16 +00:00
Christopher Page
7f480ac571 Quit and RTL code is more modular now. EVENT_RTL no longer sets _shouldQuit, shouldQuit is only set if there's an EVENT_QUIT. EVENT_RTL and EVENT_QUIT are completely separate from each other. Engine::quit() method now checks both _shouldQuit and _shouldRTL to determine if the engine should exit. There is no longer a need for resetQuit(), so it's removed
svn-id: r33082
2008-07-16 04:22:56 +00:00
Christopher Page
d2e8d4831e Merged revisions 32744-32745,32747,32750-32759,32762-32764,32769,32777,32783,32785-32786,32789-32791,32798-32799,32801-32807,32809-32812,32816-32817,32819-32821,32823-32830,32832-32836,32838-32844,32846-32850,32852-32854,32858-32859,32865-32868,32873-32874,32879,32883,32895,32899,32902-32904,32910-32912,32923-32924,32930-32931,32938,32940,32948-32949,32951,32960-32964,32966-32970,32972-32974,32976,32978,32983,32986-32990,32992,32994,33002-33004,33006-33007,33009-33010,33014,33017,33021-33023,33030,33033 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33051
2008-07-14 00:10:09 +00:00
Christopher Page
c210f90a62 TOUCHE works with the new GMM implementation
svn-id: r33046
2008-07-13 22:24:55 +00:00
Christopher Page
718a85e30d Sound settings for TOUCHE can be configured through the GMM
svn-id: r32864
2008-07-01 03:21:30 +00:00
Gregory Montoir
b6adcca897 moved midi driver object creation to MidiPlayer class (to match delete call)
svn-id: r32798
2008-06-26 10:12:12 +00:00
Gregory Montoir
c9a8fb25f3 flag 611 can be set from the scripts, set _quit when that happens.
svn-id: r32796
2008-06-26 07:13:05 +00:00
Christopher Page
102d79440d Touche now uses the new _quit flag
svn-id: r32795
2008-06-26 05:04:42 +00:00
Christopher Page
4d7798825c TOUCHE: Reverted some comments that were used for testing purposes
svn-id: r32641
2008-06-09 22:26:05 +00:00
Christopher Page
a98a350d14 TOUCHE: Fixed a memory leak
svn-id: r32566
2008-06-06 00:34:47 +00:00
Jordi Vilalta Prat
38a8aa516e Allow static and dynamic plugins to be used at the same time
svn-id: r31888
2008-05-06 03:00:26 +00:00
Max Horn
29f1e6de38 Advanced detector: replaced kADFlagAugmentPreferredTarget by its inverse, kADFlagDontAugmentPreferredTarget (since all AdvDetector engines except Kyra used kADFlagAugmentPreferredTarget, it seems reasonable to assume that as default)
svn-id: r31413
2008-04-05 22:29:08 +00:00
Max Horn
6547ef6e12 Started to get rid of Common::EncapsulatedADGameDesc (using plain Common::ADGameDescription instead)
svn-id: r31121
2008-03-14 17:31:04 +00:00
Max Horn
8a9a14002e Advanced Detector: Changed fallback detector from a callback function pointer to an overrideable method of AdvancedMetaEngine
svn-id: r31119
2008-03-14 13:59:31 +00:00
Jordi Vilalta Prat
c103290e2b Initial support for plugin types
svn-id: r30825
2008-02-08 00:02:23 +00:00
Max Horn
8a73356a2d Revised Engine plugin API to only provide a single func which returns a MetaEngine instance. Used this to simplify the rest of the plugin system
svn-id: r30780
2008-02-03 18:56:47 +00:00
Torbjörn Andersson
e51bf80218 Changed "COMPATIBLITY" to "COMPATIBILITY".
svn-id: r30754
2008-02-03 10:15:36 +00:00
Max Horn
34b35348be Moved AdvancedMetaEngine to namespace Common
svn-id: r30736
2008-02-02 11:52:04 +00:00
Max Horn
dc979b03cf New MetaEngine class (work in progress to replace the current Engine plugin API with a more object oriented approach)
svn-id: r30726
2008-02-02 00:54:52 +00:00