333 Commits

Author SHA1 Message Date
Miro Kropacek 83ebddc748 BACKENDS: ATARI: Implement plugins 2026-04-27 02:05:36 +10:00
ma-moon dd9af4c5d4 LIBRETRO: Add Libretro MIDI Out plugin 2026-04-06 14:13:56 +02:00
Lars Sundström 9712daeaa7 BASE: Do not register COREMIDI plugin for tvOS
tvOS doesn't have full CoreMIDI support as iOS and macOS have. Disable
the COREMIDI plugin so it's not included in the Apple TV builds.
2026-03-01 18:15:54 +01:00
Lars Sundström b699159689 IOS7: Integrate CoreMIDI into the iOS & tvOS backends
Integrate the existing CoreMIDI implementation used in the MacOS
backend into the iOS7 backend. The CoreMIDI framework is available
from iOS 4.2 and tvOS 15.0.

This allows ScummVM to detect external MIDI devices connected to
the device running ScummVM and to be selected as MIDI music output
device.
2026-03-01 15:51:57 +01:00
Christian Kündig 412c8f248e MIDI: EMSCRIPTEN: Add Web MIDI Driver 2025-08-04 01:02:47 +02:00
Miro Kropacek 24dcacfe69 JANITORIAL: Add missing references to const function parameters
Applied to all 'const Common::' and 'const Graphics::' instances.
2025-04-13 02:20:09 +03:00
Filippos Karapetis b0051b47b0 BASE: Use pointers when deleting inside range loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis 4c5adb95ba BASE: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Eugene Sandulenko 89febd4230 CONFIGURE: Turned sid_audio into a component 2024-12-26 19:30:48 +01:00
Eugene Sandulenko 4a70b3507f CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +01:00
Cameron Cawley 10737f45e9 BASE: Fix a crash on exit when the detection plugin is loaded 2024-11-23 18:14:47 +02:00
Le Philousophe a4fb9d6145 PLUGINS: Unload engine plugins while loading detection
This makes sure that the engine is never loaded while having the
detection.
The opposite is not (yet?) enforced to avoid crashing some unhandled
case.
2024-06-30 18:39:06 +02:00
Le Philousophe 5169a395a5 PLUGINS: Remove now useless functions
These functions heavily rely on the fact that detection plugin and
engine plugin can be loaded at the same time.
2024-06-30 18:39:06 +02:00
Le Philousophe 07daa6c225 ENGINES: Simplify EngineManager::findTarget
Do not make it return the detection plugin. It's never used anymore and
tends to imply that detection plugin can be used alongside the engine
plugin.
2024-06-30 18:39:06 +02:00
Le Philousophe 55ac8ba07f PLUGINS: Remove default value for EngineMan::getPlugins argument
This is now obvious of which type is the list of plugins returned.
2024-06-30 18:39:06 +02:00
Le Philousophe 2575cdacff PLUGINS: Cleanup when destroying PluginManagerUncached
This removes memory leaks when destroying the manager.
2024-06-30 18:39:06 +02:00
Le Philousophe 93b10df84a PLUGINS: Rework (un)loading of detection plugin
Make the function more readable and avoid leaking memory when plugin is
loaded twice.
2024-06-30 18:39:06 +02:00
Le Philousophe c93f53b491 PLUGINS: Rename getEngineFromMetaEngine to getEngineFromDetectionPlugin
Update comments and variable names accordingly.
This now matches what this function really do.
2024-06-30 18:39:06 +02:00
Le Philousophe 5ded4aedec PLUGINS: Don't call plugin->getType repeatedly 2024-06-30 18:39:06 +02:00
Le Philousophe 2645b1431c PLUGINS: Rename findPlugin to findDetectionPlugin
This function does return a MetaEngineDetection plugin
2024-06-30 18:39:06 +02:00
athrxx d7e8a54756 AUDIO/GUI: add Mac sound option 2024-05-30 20:10:51 +02:00
Cameron Cawley 5b1b14ad80 COMMON: Mark more symbols as const 2023-12-26 20:23:59 +01:00
Le Philousophe ed9ded9e83 GUI: Migrate GUI to Path class 2023-12-24 13:19:25 +01:00
Le Philousophe b3fbce7782 BACKENDS: Migrate plugins to Path API 2023-12-24 13:19:25 +01:00
Le Philousophe d931c58b5b BASE: Start considering game paths as Path class
As it's still stored as String, this is still safe for every legacy use
2023-12-24 13:19:25 +01:00
Le Philousophe 645a35c05b ENGINES: Migrate to Path class 2023-12-24 13:19:25 +01:00
Le Philousophe 0a636d0d40 COMMON: Make pluginspath a Path object 2023-12-24 13:19:25 +01:00
Paul Gilbert 85f341e0f3 MM: Add automatic update of old xeen engineId 2023-11-15 23:41:21 -10:00
Kaloyan Chehlarski f77eca7c80 AD: Implement archive caching during detection
Renamed MD5CacheManager to AdvancedDetectorCacheManager,
and added facilities for storing open archives inside it. This
way an archive that was opened by an AdvancedDetector
will be kept in memory until the end of the detection, so
other entries/engines that will look inside it won't have
to reopen it and reread its data every time.
2023-11-02 18:20:44 +01:00
Le Philousophe 63f9958588 ANDROID: Fix build 2023-08-07 15:04:01 +02:00
Cameron Cawley 37764d86fc AUDIO: Support building the EAS MIDI driver on non-Android platforms 2023-08-06 14:10:50 +02:00
Donovan Watteau b9fdf23937 BASE: Fix "an" typo 2023-03-16 14:47:28 +01:00
Einar Johan Trøan Sømåen 1f00706bfb BASE: Filter out old graphics modes when passed to -g
Fix #12775
2023-02-12 09:44:51 +01:00
Roberto Sánchez 7f457f8e94 BASE: Refactor EngineManager::createTargetForGame 2022-12-07 22:58:48 +01:00
Roberto Sánchez e2b0259d29 BASE: Add function EngineManager::generateUniqueDomain 2022-12-07 22:58:48 +01:00
Le Philousophe 2a84d3e988 VITA: Add plugins support 2022-08-07 18:15:09 +02:00
Cameron Cawley f3b094e53f ENGINES: Change the MetaEngineDetection interface to match MetaEngine 2022-07-23 23:31:58 +02:00
Cameron Cawley a020300701 ENGINES: Remove use of getEngineId() in MetaEngine subclasses 2022-07-20 11:54:19 +02:00
Cameron Cawley dd72e0e488 RISCOS: Add a native MIDI driver 2022-06-20 23:33:42 +01:00
athrxx 54af166305 COMMON: (AD) - further reduce output of mass add detection
Follow-up to the feature that allows skipping certain ADGF flags.

This here now also allows skipping of incomplete file/md5/size matches. It is basically the same behavior as the graylist. For the mass add all files are treated as if they are on the list.
2022-06-12 10:12:39 +02:00
athrxx e01416ef32 COMMON: (AD) - allow mass add to skip targets with certain ADGF flags
I added skipping for the ADGF_WARNING and ADGF_UNSUPPORTED flags.

For me, this is mostly about fixing bug no. 13282. We sometimes have bogus entries which only have the purpose of presenting the error message (reasons for being unsupported) contained in the extra field of the detection entry.
2022-06-12 10:12:39 +02:00
Eugene Sandulenko 5e05f93f36 ALL: Remove Symbian port 2022-05-28 12:32:29 +02:00
sluicebox 799a9eb942 BASE: Clear MD5 cache when upgrading to engine id
Fixes assigning the wrong game id when upgrading a target to have
an engine id. If a game had been run earlier ran then its checksums
could still be cached. If both games were from the same engine then
advanced detector could select the previous game.

Fixes bug: #13458
2022-05-03 15:43:35 -04:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Eugene Sandulenko ccfaf478ab AD: Make sure that we initialize hashmaps. Unfortunately, this leads to less const'ness 2021-11-29 01:50:03 +01:00
Orgad Shaneh e92e232788 BASE: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Orgad Shaneh 2e68b4ffdc JANITORIAL: Use override
Using clang-tidy modernize-use-override
2021-11-14 02:59:23 +02:00
Marcus Comstedt 47de1896b9 PLUGINS: In uncached mode, try plugin which matches engine name first
Trying all engine plugins in alphabetical order is a time consuming
process, so start by trying the plugin which has the same name as the
engine id first, if it exists, as it will usually be the right one.

In the rare case that it would be the wrong one there is no problem;
the code will simply fall through to the old scanning and then record
the correct plugin in the engine_plugin_files domain where it will be
found the next time the plugin is needed.
2021-09-20 23:28:57 +02:00
Marcus Comstedt d2fba8fc2f PLUGINS: Make detection plugin filename check case insensitive
Plugin filenames are all upper case on Dreamcast due to the ISO 9660
filesystem.  It doesn't seem likely that making the check case
insensitive would cause any problems even on a file system that
is case sensitive.
2021-09-20 23:28:57 +02:00
Eugene Sandulenko 436e47292e BASE: Load engine plugins by name. Fixes bug #12342
This is a degradation from the split of detection plugins. All the
caching code which was present was left with detection plugins which
now make no sense: we always load all detection plugins as a whole.

This commit moves the caching logic over to the Engine plugins.

This opens a question now whether we should move all to UNCACHED_PLUGINS
2021-08-16 20:32:53 +02:00