Commit graph

91 commits

Author SHA1 Message Date
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
Max Horn
1f26cb8965 Reworked code in the advanced game detector (getting rid of much of the evil #define hell it consisted of previously)
svn-id: r24685
2006-11-12 03:23:29 +00:00
Max Horn
df5be19409 Instantiate and hook up the plugin providers in the main() function of the corresponding backends (porters may have to update their ports if they were using the POSIX or Win32 module loading code implicitly); some cleanup
svn-id: r24153
2006-10-07 01:05:12 +00:00
Max Horn
26e4e16800 Started to refactor the plugin code (moving backend specific stuff into backends/plugins/)
svn-id: r24148
2006-10-07 00:22:48 +00:00
Max Horn
4a80db4c7b * Added copyright string to all engine plugins
* Modified about dialog to list all available plugins with their resp. copyright
* Modified about dialog credits to show the GPL last (like movie end credits do with their legal text, too)

svn-id: r23645
2006-07-31 13:41:21 +00:00
Max Horn
bf73598811 * Changed the createEngine() factory function of our plugins to return an error code (the engine is now passed indirectly via a double pointer)
* Removed Engine_Empty (obsolete now that engines can return actual error codes)

svn-id: r22199
2006-04-29 00:27:20 +00:00
Max Horn
18975a298d Moved (Plain)GameDescriptor from base/gameDetector.h to the new base/game.h header file
svn-id: r21917
2006-04-15 21:20:16 +00:00
Max Horn
68cb7f52c8 - Renamed ConfigManager::getActiveDomain to getActiveDomainName, and added a new getActiveDomain method that returns a pointer to the actual active *domain*
- Added Engine::_targetName whose value is computed from the name of the active domain
- Removed GameDetector::_targetName, instead code now uses either Engine::_targetName or the name of the active domain
- This in turn allowed for removing usage of GameDetector in many places

svn-id: r21916
2006-04-15 20:36:41 +00:00