aboutsummaryrefslogtreecommitdiff
path: root/base/plugins.cpp
AgeCommit message (Collapse)Author
2020-01-04BASE: Fix being unable to run games when using dynamic pluginsBastien Bouclet
When the plugin-engine mapping is not cached in the configuration file, we were not scanning all the plugins to establish the mapping. This is a regression from commit: e2d91258b7bfb989dc099f516bb31ceb44554529 This commit reverts the offending commit and implements a proper fix for the case where there are no dynamic plugins. Fixes #11300.
2019-12-02PLUGINS: Fix crash when no plugins are availableCameron Cawley
2019-11-17BACKENDS: Remove the Windows CE portCameron Cawley
2019-11-03BASE: Change the command line interface to use engine-qualified game namesBastien Bouclet
Qualified game names have the following form: engineId:gameId. Unqualified game names are still supported as long as they are not ambiguous. However they are considered deprecated and are no longer displayed by the --list-games command.
2019-11-03ENGINES: Automatically upgrade the targets on launch to add an engine IDBastien Bouclet
2019-11-03ENGINES: Change targets to have an 'engine ID'Bastien Bouclet
The engine ID identifies which engine should be used to launch the target. Also remove the 'single ID' system. Different games from engines that used that system now have different game IDs. Also-By: Matthew Hoops <clone2727@gmail.com>
2019-05-12GUI: Better integration for the unknown game dialog when adding gamesBastien Bouclet
* The list of candidates now includes unknown variants. When an unknown variant is selected, the unknown game dialog is shown. * On the unknown game dialog, users are given the choice to add the game when that is possible, or to cancel. The goal of those changes is to make the unknown game dialog less confusing for users, especially when both known and unknown games variants are found.
2019-03-10BASE: Only reload engine plugins after return to launcherEric Culp
The other plugins do not need to be reloaded. Reloading the scaler plugins breaks the graphics.
2018-12-08ENGINES: Add optional extra configuration entries when creating new targetsPaul Gilbert
2018-06-17BASE: Fix a segfault when mass detector encounters an empty directoryBastien Bouclet
Was introduced in the recent detection rework.
2018-05-10ENGINES: Remove usage of C++11 extended initializer listsBastien Bouclet
2018-05-10ENGINES: Merge GameDescriptor and DetectedGameBastien Bouclet
2018-05-10ENGINES: Factor adding games to ConfManBastien Bouclet
2018-05-10ENGINES: Turn GameDescriptor into a simple structBastien Bouclet
2018-05-10ENGINES: Change MetaEngine::findGame to return a plain game descriptorBastien Bouclet
2018-05-10ENGINES: Add unknown game variants to the game detector resultsBastien Bouclet
2018-04-29ENGINES: Show the unknown Game dialog only when the detector is launched by ↵Lothar Serra Mari
the Add Game feature
2018-04-15JANITORIAL: Fix whitespaceAdrian Frühwirth
2017-12-03BASE: Remove bad casts between incompatible Plugin typesColin Snover
Previously, a C-style cast was used to convert a Common::Array<Plugin *>, populated with pointers to StaticPlugin and DynamicPlugin instances, to a Common::Array<PluginSubclass<T> *>, but PluginSubclass<T> is a *sibling* class to StaticPlugin/DynamicPlugin, so this cast was invalid and the results undefined. The methods for retrieving subclasses of plugins can't be easily changed to just generate an array of temporary wrapper objects that expose an identical API which dereferences to the preferred PluginObject subclass because pointers to these objects are retained by other parts of ScummVM, so the wrappers would needed to be persisted or they would need to just re-expose the underlying Plugin object again. This indicated that a way to solve this problem is to have the callers receive Plugin objects and get the PluginObject from the Plugin by explicitly stating their desired type, in a similar manner to std::get(std::variant), so that the pattern used by this patch to solve the problem. Closes gh-1051.
2017-07-10Revert "COMMON: Change way the Singleton instances are instantiated"Eugene Sandulenko
This reverts commit eefa72afa1978a9dea10f5b1833fcc8f58a3468e. With this patch ConfigManager is broken.
2017-07-10COMMON: Change way the Singleton instances are instantiatedThierry Crozat
This fixes tons of warnings with clang from a recent xcode version on macOS (and possibly other systems) complaining that an instantiation of _singleton is required but no definition is available.
2014-02-18BASE: Make GPL headers consistent in themselves.Johannes Schickel
2014-01-25BASE: Small formatting fix.Johannes Schickel
2012-05-15MIDI: add sndio midi backendJonathan Gray
New sndio MIDI backend for OpenBSD written by Alexandre Ratchov. Tested with an external MT-32 and fluidsynth.
2012-04-18ENGINES: Move table of engines from base/plugins.cpp to new headerMax Horn
The new header engines/plugins_table.h is currently manually created and maintained, but could be regenerated by a script in the future.
2012-02-10BASE: Remove unneeded code in PluginManagerUncached.Johannes Schickel
Thanks to Yotam for confirming that this isn't needed anymore.
2011-11-20TOLTECS: integrate engineAlex Bevilacqua
2011-11-20M4: Removed the M4/MADS engine from trunkPaul Gilbert
2011-08-22Merge remote-tracking branch 'origin/master' into soltys_wip2Alyssa Milburn
2011-08-22BASE: Fix indentationSven Hesse
2011-08-21BADA: Remove BADA defined check. Was a temp fix for simulator buildChris Warren-Smith
2011-08-21BADA: Initial BADA port implementationChris Warren-Smith
2011-07-14COMPOSER: Add a first attempt at an engine.Alyssa Milburn
2011-07-07Merge remote-tracking branch 'origin/master' into soltys_wip2Alyssa Milburn
2011-06-30ALL: Require DECLARE_SINGLETON to be used in the Common namepsaceOri Avtalion
Silences the clang warning: static data member specialization of '_singleton' must originally be declared in namespace 'Common'; accepted as a C++0x extension [-Wc++0x-extensions] Wrapping "namespace Common {}" around the macro assignment causes clang to complain about a spurious semicolon, and removing the semicolon at the end of the macro causes some editors to misbehave. Changing the requirement of using the macro in one namespace (the global) to another (Common) seems a small price to pay to silence a warning.
2011-06-29Merge branch 'master' of github.com:scummvm/scummvm into soltys_wip2Strangerke
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-15DREAMWEB: added autogenerated sourceVladimir
2011-09-10CGE: Add minimal engine and detectionStrangerke
2011-05-17FM-TOWNS AUDIO: Some more midi driver code for FM-TOWNS monkey2 and indy4athrxx
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-04-13Merge remote branch 'remotes/dreammaster/tsage'Paul Gilbert
2011-03-25ANDROID: Experimental MIDI Driverdhewg
Based on the SONiVOX® Embedded Audio Synthesis (EAS™) library, which is part of the base Android OS. CPU stats (Cortex A8 1GHz, monkey1 intro, peak values): MAME OPL: 30% DosBox OPL: 26% EAS: 19%
2011-02-14TSAGE: Added the engine in a separate branchPaul Gilbert
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2011-01-02PLUGINS: for uncached plugins, first check the loaded plugin before looking ↵Yotam Barnoy
elsewhere There are some calls to EngineManager::findGame() from within games, such as when loading saved games. It's critical not to unload the plugin from memory or other threads may crash. Therefore, we first scan using any plugin that's already in memory. svn-id: r55089
2010-12-30PLUGINS: rename ONE_PLUGIN_AT_A_TIME define to UNCACHED_PLUGINSYotam Barnoy
ONE_PLUGIN_AT_A_TIME is too long. svn-id: r55064
2010-12-29PLUGINS: fixed MSVC buildFlorian Kagerer
svn-id: r55062
2010-12-29PLUGINS: single plugin model now saves plugin filename to config fileYotam Barnoy
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-23PLUGINS: switched plugin manager to inheritance rather than #definesYotam Barnoy
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