Difference between revisions of "TODO"

Jump to navigation Jump to search
356 bytes added ,  09:50, 26 April 2006
New TODO section for savegames
(New TODO section for savegames)
Line 57: Line 57:
* Fix the Map<> template, make it more robust; maybe use a red-black tree?
* Fix the Map<> template, make it more robust; maybe use a red-black tree?
* Make some generic "EventLoop" API/class which all backends and the GUI use. Initially this would just call the backend poll_event() etc. methods. But eventually the EventLoop object(s) could be made by the backend. This may allow for more efficient CPU usage etc. The current event handling model essentially is polling: the engines run some kind of main loop, which, besides many other things, also polls and dispatches events. The idea is to turn this around: the event loop frequently gives the engine time to do these "other things".
* Make some generic "EventLoop" API/class which all backends and the GUI use. Initially this would just call the backend poll_event() etc. methods. But eventually the EventLoop object(s) could be made by the backend. This may allow for more efficient CPU usage etc. The current event handling model essentially is polling: the engines run some kind of main loop, which, besides many other things, also polls and dispatches events. The idea is to turn this around: the event loop frequently gives the engine time to do these "other things".
* Make the autosave interval configurable (via GUI, command line, config file). Partially done via autosave_period config option.
* Maybe add ways to modify the game configs via the command line. E.g. allow
* Maybe add ways to modify the game configs via the command line. E.g. allow
     ./scummvm --add new_target --path=/foo monkey2
     ./scummvm --add new_target --path=/foo monkey2
Line 149: Line 148:
* Make DetectedGame::updateDesc a normal function, not a member function.
* Make DetectedGame::updateDesc a normal function, not a member function.
* Allow static and dynamic plugins to be used at the same time. I.e. make it possible to build some plugins statically, and some dynamically.
* Allow static and dynamic plugins to be used at the same time. I.e. make it possible to build some plugins statically, and some dynamically.
=== Savegames ===
* Make the autosave interval configurable (via GUI, command line, config file). Partially done via autosave_period config option.
* Enhance SaveFileManager by adding an API that allows renaming / deleting savegames.
* Make InSaveFile streamable.
* Added error return codes to openForSaving / openForLoading so that client code can nicely detect & report save/load failures ("media full", "file not found", "save path does not exist", "save path not writeable", etc.).


=== Streams ===
=== Streams ===
* Add a Sub(Seekable)Stream wrapper class: You pass a (Seekable)Stream, an offset and a size to it. It will pass all calls on to the wrapped stream, but will restrict access to the specified byte range. This then can be used in various places, e.g. in many of the AudioStream classes, to simplify code.
* Add a Sub(Seekable)Stream wrapper class: You pass a (Seekable)Stream, an offset and a size to it. It will pass all calls on to the wrapped stream, but will restrict access to the specified byte range. This then can be used in various places, e.g. in many of the AudioStream classes, to simplify code.
* Add a "clone" method that makes a copy of the (seekable/readable) stream. In the case of files, this would create a new file descriptor. Purpose: Replace the Symbian hack in MP3InputStream and other places; in particular, often we need two parts of code to access the same file but in separate positions...
* Add a "clone" method that makes a copy of the (seekable/readable) stream. In the case of files, this would create a new file descriptor. Purpose: Replace the Symbian hack in MP3InputStream and other places; in particular, often we need two parts of code to access the same file but in separate positions...


== Engines / frontends ==
== Engines / frontends ==
1,079

edits

Navigation menu