Commit Graph

98 Commits

Author SHA1 Message Date
Yotam Barnoy
8f36a5f887 PLUGINS: single plugin model now saves plugin filename to config file
After searching for the right plugin once, the filename will be saved to the config file under the domain 'plugin_files'. The key is the gameid and the value is the plugin file. The backup mechanism is searching plugin by plugin.

svn-id: r55061
2010-12-29 15:25:21 +00:00
Yotam Barnoy
10b96eb94d PLUGINS: PluginManager minor cleanups
svn-id: r55027
2010-12-23 14:37:03 +00:00
Yotam Barnoy
ee2b1092ab PLUGINS: switched plugin manager to inheritance rather than #defines
The reason for this was that I found issues where the wrong functions were called in EngineManager for single plugin operation. Rather than inserting more messy #defines, I preferred to change the PluginManager to use virtual functions, which also makes EngineManager simpler.

svn-id: r55024
2010-12-23 13:38:37 +00:00
Yotam Barnoy
a6bee87990 PLUGINS: improved one-at-a-time plugin code
I reduced memory fragmentation using 2 principles: Plugins should be loaded for as little time as possible, and long lasting memory allocations should be allocated before plugins are loaded. There might still be a little fragmentation left.
Note that command line settings that require plugins to be loaded don't work yet, but they didn't work (properly) before either.

svn-id: r54097
2010-11-05 13:24:57 +00:00
Andre Heider
2596143e2b PLUGINS: Additional plugin check for the ELF loader.
The ELF loader does not have access to the symbols of the main
executable, it just relocates symbols to it via fixed offsets. We need
to make sure that loaded plugins are from the same link process to
prevent crashes. An embedded build date is used for that.

svn-id: r52730
2010-09-15 07:44:08 +00:00
Andre Heider
41834499ed PLUGINS: Cleanup.
- Unify ELF loader handling in configure
- Rename ELF_LOADER_TARGET to USE_ELF_LOADER

svn-id: r52728
2010-09-15 07:43:16 +00:00
Andre Heider
fd4189180d PLUGINS: Fix warning when not using the ELF loader.
svn-id: r52613
2010-09-06 22:18:10 +00:00
Andre Heider
ae408db07f PLUGINS: Use the C++ ABI to call dtors when unloading a plugin.
Avoid linking all plugins against libstdc++ to free up some memory
(about ~40kb on Wii per plugin). Enable it on GameCube, Wii, DS and PSP
(PS2 doesn't have __cxa_atexit support in its libc).

svn-id: r52607
2010-09-06 20:34:00 +00:00
Max Horn
f27b984fec Fix warning & code formatting
svn-id: r52202
2010-08-19 08:46:19 +00:00
Tony Puccinelli
43488f789f Ensured getPlugins is not called multiple times on Static Plugin Provider with 'ONE_PLUGIN_AT_A_TIME' defined
svn-id: r52080
2010-08-14 08:04:40 +00:00
Tony Puccinelli
89d76fe5a5 Refined first refinement of new plugin design. Tested successfully adding/removing/running games on Linux with only one engine plugin loaded at a time
svn-id: r52026
2010-08-12 06:00:19 +00:00
Tony Puccinelli
d889a706f2 gave plugin iterators more appropriate names, removed debugging printf, added comments to loadFirstPlugin and loadNextPlugin
svn-id: r51673
2010-08-03 01:10:36 +00:00
Tony Puccinelli
44d7414215 changed plugins so games can be added in the launcher with only one plugin loaded into memory at a time (first refinement)
svn-id: r51607
2010-08-02 08:43:47 +00:00
Tony Puccinelli
869e49d185 initial work on plugin design changes (already added games can be launched with only one plugin loaded at a time if you compile with a 'NEW_PLUGIN_DESIGN_FIRST_REFINEMENT' flag)
svn-id: r51502
2010-07-30 09:32:45 +00:00
Max Horn
c934642bdb COMMON: Move typedef StringList from str.h to new header str-array.h
This removes the dependency on array.h from str.h.
Also, begun migration from the confusing type name "StringList" to
the more appropriate StringArray.

svn-id: r48282
2010-03-18 15:09:24 +00:00
Jordi Vilalta Prat
b1999a2a16 Fixed indentation and removed whitespaces at the end of line
svn-id: r35481
2008-12-22 11:22:15 +00:00
Max Horn
c7fde102e3 Renamed FilesystemNode -> FSNode
svn-id: r34716
2008-10-02 16:58:59 +00:00
Max Horn
73b833042e Modified FilePluginProvider to use FSNodes (instead of raw filenames / paths) in its API
svn-id: r34709
2008-09-30 16:34:38 +00:00
Max Horn
531bcf847c Moved FilesystemNode / FSList to namespace Common; also got rid of some 'typedef Common::String String;' name aliases
svn-id: r34302
2008-09-03 11:22:51 +00:00
Max Horn
4ab211f673 Removed -Wundef from the default list of compiler flags, and changed PLUGIN_ENABLED_DYNAMIC to not use 'defined()', thus avoiding compiler problems on e.g. BeOS
svn-id: r33114
2008-07-19 21:42:31 +00:00
Jordi Vilalta Prat
177993b145 Renamed MIDI plugins to Music plugins
svn-id: r32693
2008-06-13 14:30:47 +00:00
Filippos Karapetis
c9fd5fef76 Added a note about the MSVC quirk with the spaces around ENABLE_##ID
svn-id: r32351
2008-05-28 20:31:01 +00:00
Filippos Karapetis
057af1000f Removed an MSVC specific hack, after discussing with jvprat. It seems that MSVC was trying to add the parenthesis after ENABLE_##ID to the check...
svn-id: r32347
2008-05-28 19:45:04 +00:00
Jordi Vilalta Prat
2862a30dac Fixed some code formatting thanks to LordHoto
svn-id: r32275
2008-05-26 00:28:48 +00:00
Max Horn
5204d012f6 Add a tiny TODO entry for graphics scaler plugins
svn-id: r32194
2008-05-20 15:54:27 +00:00
Jordi Vilalta Prat
b35941c3c2 Added plugin priority so there's just one plugin that provides a module functionality.
svn-id: r32121
2008-05-14 17:26:05 +00:00
Jordi Vilalta Prat
eb6c809d2b - Added more information (ID and capabilities) to the MIDI drivers
- Added the MidiPlugin interface to the remaining MIDI drivers
- Added an initial MidiManager to handle the MIDI plugins (just static plugins by now)

svn-id: r32117
2008-05-14 14:56:29 +00:00
Jordi Vilalta Prat
a392bc4b0e Taken care of FilePluginProvider's FIXMEs
svn-id: r32085
2008-05-13 13:24:49 +00:00
Max Horn
f7a682edf9 Some more Doxygen comments, as well as some FIXMEs/TODOs
svn-id: r32084
2008-05-13 11:00:25 +00:00
Max Horn
2bb39e591f Moved the engine plugin code to engines/metaengine.h; added/clarified/corrected various Doxygen comments for the plugin system
svn-id: r32083
2008-05-13 10:41:32 +00:00
Jordi Vilalta Prat
fe58f0ee4b - Added operator-> to Plugin subclasses so they don't have to reimplement the PluginObject subclass interfaces (thanks to Fingolfin for suggesting it)
- Added the PluginSubclass template to help creating Plugin subclasses

svn-id: r32082
2008-05-13 09:30:23 +00:00
Jordi Vilalta Prat
9ba353b9d8 Keep separated arrays for each type of plugin
svn-id: r32046
2008-05-12 01:26:43 +00:00
Jordi Vilalta Prat
2c9968fe80 - Added an engine plugin manager and moved engine specific functionality into it
- base/plugins.* reorganization

svn-id: r32045
2008-05-12 00:26:29 +00:00
Filippos Karapetis
c396694f3b Added a temporary hack to get the engine plugins working under MSVC
svn-id: r31904
2008-05-06 17:30:52 +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
Jordi Vilalta Prat
3f44977885 Added support to load plugins from different directories and the ability to specify the default directory from configure.
svn-id: r31816
2008-05-02 14:30:06 +00:00
Jordi Vilalta Prat
e3852c92a7 Remove undesired spaces and an old TODO
svn-id: r30827
2008-02-08 01:45:46 +00:00
Jordi Vilalta Prat
00987db3a9 Implemented plugin versioning
svn-id: r30826
2008-02-08 01:02:25 +00:00
Jordi Vilalta Prat
c103290e2b Initial support for plugin types
svn-id: r30825
2008-02-08 00:02:23 +00:00
Jordi Vilalta Prat
e4ab5dd339 Change MetaEngine references to PluginObject where possible to make its semantics more generic.
svn-id: r30789
2008-02-04 18:38:22 +00:00
Max Horn
3cd1e60e7a Moved common code from Plugin subclasses to class Plugin itself
svn-id: r30787
2008-02-04 13:14:52 +00:00
Max Horn
5fb7f7a4d6 Commited updated version of my own patch #1868402: Basic savestate plugin API
svn-id: r30786
2008-02-04 10:15:21 +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
Max Horn
5dfabb24d0 Moved enum PluginError from base/plugins.h to common/error.h
svn-id: r30723
2008-02-01 23:36:45 +00:00
Max Horn
0ec8d35e4d Revert accidental commits in rev 30372
svn-id: r30374
2008-01-10 12:00:10 +00:00
Max Horn
7ed64488a8 Removed obsolete FIXME
svn-id: r30372
2008-01-10 11:29:29 +00:00
Gregory Montoir
6c6e8657b6 added 'igor' engine for the game 'Igor: Objective Uikokahonia'
svn-id: r29318
2007-10-29 23:35:50 +00:00
Nicola Mettifogo
258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +00:00
Max Horn
218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Eugene Sandulenko
cd8a5f3a98 First phase of detection-related plugins interface improvements. Now plugins
return StringMap instead of fixed list of parameters. This adds great
flexibility.

Current patch should not alter any functionality, i.e. if there are regressions,
submit a report. Phase 2 will benefit from these changes and will come later.

svn-id: r25134
2007-01-20 21:27:57 +00:00