Difference between revisions of "TODO"
Jump to navigation
Jump to search
m (Text replacement - "</source>" to "</syntaxhighlight>") |
(Removed items which I know were done) |
||
Line 21: | Line 21: | ||
=== General === | === General === | ||
* Write a high level overview of how ScummVM and its engines work? | * Write a high level overview of how ScummVM and its engines work? | ||
== Web sites == | == Web sites == | ||
=== [[Buildbot]] === | === [[Buildbot]] === | ||
* | * Add Fribidi | ||
=== [[Doxygen]] === | === [[Doxygen]] === | ||
* | * Make it run again, upgrade | ||
== Common code, infrastructure == | == Common code, infrastructure == | ||
=== Audio === | === Audio === | ||
==== Mixer ==== | ==== Mixer ==== | ||
* the "isReady" code is irritating. Most engines ignore it anyway. It's primary purpose is to allow ScummVM to run even if not digitial audio out is available. A better solution would likely be to enforce that all backends always return a valid mixer. In the worst case, if a backend cannot produce audio output, it should still instantiate an Audio::MixerImpl, with some arbitrary sample rate (I recommend 22050 Hz), and a fake playback thread, which acts like an audio output callback but simply discards the generated audio data. (Note: It doesn't suffice to just throw away input data in Mixer::playInputStream, as this breaks with QueuingAudioStream). | * the "isReady" code is irritating. Most engines ignore it anyway. It's primary purpose is to allow ScummVM to run even if not digitial audio out is available. A better solution would likely be to enforce that all backends always return a valid mixer. In the worst case, if a backend cannot produce audio output, it should still instantiate an Audio::MixerImpl, with some arbitrary sample rate (I recommend 22050 Hz), and a fake playback thread, which acts like an audio output callback but simply discards the generated audio data. (Note: It doesn't suffice to just throw away input data in Mixer::playInputStream, as this breaks with QueuingAudioStream). | ||
==== CD ==== | ==== CD ==== | ||
Line 178: | Line 61: | ||
** ... produce a warning if an older ScummVM version tries to load a config file written by a newer version with potentially incompatible changes (such as the switch from language code "hb" to "he" for Hebrew) | ** ... produce a warning if an older ScummVM version tries to load a config file written by a newer version with potentially incompatible changes (such as the switch from language code "hb" to "he" for Hebrew) | ||
** ... detect when we an old config file is loaded which needs to be updated (e.g. by changing language "hb" to "he"; by adding "guioptions" to targets; by fixing trailing slashes in "path"; maybe even updating old style; and maybe in the future by adding "engineid" fields to all targets) | ** ... detect when we an old config file is loaded which needs to be updated (e.g. by changing language "hb" to "he"; by adding "guioptions" to targets; by fixing trailing slashes in "path"; maybe even updating old style; and maybe in the future by adding "engineid" fields to all targets) | ||
=== GUI === | === GUI === | ||
Line 192: | Line 71: | ||
=== Launcher === | === Launcher === | ||
* Enhance the Mass detector to show a list with the results (and optionally, allow the user to edit/cull that list before adding it). | * Enhance the Mass detector to show a list with the results (and optionally, allow the user to edit/cull that list before adding it). | ||
* Make the gameid editable via an "advanced" tab entry? | * Make the gameid editable via an "advanced" tab entry? | ||
* The global options dialog may show a button for configuring the savepath even on systems where it is fixed -> not good. This button should be hidden/removed for these systems | * The global options dialog may show a button for configuring the savepath even on systems where it is fixed -> not good. This button should be hidden/removed for these systems | ||
* separate launcher code even more from rest of ScummVM, to make custom launchers easier? | * separate launcher code even more from rest of ScummVM, to make custom launchers easier? | ||
Line 208: | Line 85: | ||
** Add/unify "confirm exit" dialog, globally (see [https://sourceforge.net/tracker/index.php?func=detail&aid=1731025&group_id=37116&atid=418823 FR #1731025]) | ** Add/unify "confirm exit" dialog, globally (see [https://sourceforge.net/tracker/index.php?func=detail&aid=1731025&group_id=37116&atid=418823 FR #1731025]) | ||
* Options Dialog: Implement engine flags to define which features in the Options dialog are supported by the current running game. Use these flags to hide/show the appropriate sliders and buttons in the Options Dialog | * Options Dialog: Implement engine flags to define which features in the Options dialog are supported by the current running game. Use these flags to hide/show the appropriate sliders and buttons in the Options Dialog | ||
* Improve the look of the GMM: This could include displaying the engine name and the game name on the top of the GMM. | |||
* Improve the look of the GMM: This could include displaying the engine name and the | |||
* Config Dialog code: Resolve the FIXME in engines/dialogs.cpp which pertains to having to use the empty string as the domain name. This is a bigger task, but will enable many other changes (thus as finally changing ConfigManager to use ConfigFile). Essentially, the current game config dialog tries to abuse the system by editing the *active* settings via the config manager, in order to fully reduce the options dialog code from the launcher. But there is a big difference between editing the config settings of a specific target, and the active settings. So, one probably needs to rewrite the code for the config dialog shown from the GMM | * Config Dialog code: Resolve the FIXME in engines/dialogs.cpp which pertains to having to use the empty string as the domain name. This is a bigger task, but will enable many other changes (thus as finally changing ConfigManager to use ConfigFile). Essentially, the current game config dialog tries to abuse the system by editing the *active* settings via the config manager, in order to fully reduce the options dialog code from the launcher. But there is a big difference between editing the config settings of a specific target, and the active settings. So, one probably needs to rewrite the code for the config dialog shown from the GMM | ||
=== Error handling === | === Error handling === | ||
Line 311: | Line 185: | ||
* Add API to query backend for a list of available music engines. Useful for Options dialog. See [[Music drivers redesign]]. | * Add API to query backend for a list of available music engines. Useful for Options dialog. See [[Music drivers redesign]]. | ||
* Right now gBitFormat is part of common/scaler.cpp; we might want to move it to common/system.cpp, or replace it with something better. No hasty changes here, please, make sure you understand how it is used right now before messing with it ;-) | * Right now gBitFormat is part of common/scaler.cpp; we might want to move it to common/system.cpp, or replace it with something better. No hasty changes here, please, make sure you understand how it is used right now before messing with it ;-) | ||
== Tools == | == Tools == |