[Scummvm-git-logs] scummvm master -> 76bf31f630e7c6248eca9e7f0daaa1dbc127d750

sev- noreply at scummvm.org
Fri Jun 16 14:46:01 UTC 2023


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
76bf31f630 KEYMAPPER: Add functions to enable/disable keymaps


Commit: 76bf31f630e7c6248eca9e7f0daaa1dbc127d750
    https://github.com/scummvm/scummvm/commit/76bf31f630e7c6248eca9e7f0daaa1dbc127d750
Author: hax0kartik (agarwala.kartik at gmail.com)
Date: 2023-06-16T16:45:57+02:00

Commit Message:
KEYMAPPER: Add functions to enable/disable keymaps

Changed paths:
    backends/keymapper/keymapper.cpp
    backends/keymapper/keymapper.h


diff --git a/backends/keymapper/keymapper.cpp b/backends/keymapper/keymapper.cpp
index 1a81c09538c..4bc9af51453 100644
--- a/backends/keymapper/keymapper.cpp
+++ b/backends/keymapper/keymapper.cpp
@@ -139,6 +139,21 @@ void Keymapper::cleanupGameKeymaps() {
 	}
 }
 
+void Keymapper::setGameKeymapState(const String &id, bool enable) {
+	Keymap *keymap = getKeymap(id);
+	if (keymap) {
+		keymap->setEnabled(enable);
+	}
+}
+
+void Keymapper::disableAllGameKeymaps() {
+	for (auto &keymap : _keymaps) {
+		if (keymap->getType() == Keymap::kKeymapTypeGame) {
+			keymap->setEnabled(false);
+		}
+	}
+}
+
 Keymap *Keymapper::getKeymap(const String &id) const {
 	for (KeymapArray::const_iterator it = _keymaps.begin(); it != _keymaps.end(); it++) {
 		if ((*it)->getId() == id) {
diff --git a/backends/keymapper/keymapper.h b/backends/keymapper/keymapper.h
index 4debfb447ae..abb2dd445ef 100644
--- a/backends/keymapper/keymapper.h
+++ b/backends/keymapper/keymapper.h
@@ -82,6 +82,18 @@ public:
 	 */
 	void cleanupGameKeymaps();
 
+	/**
+	 * This allows to specify which Game Keymaps are enabled or disabled.
+	 * @param id		ID of the game keymap to enable/disable.
+	 * @param enable	Whether the keymap is enabled(True means enabled)
+	 */
+	void setGameKeymapState(const String &id, bool enable);
+
+	/**
+	 * Disables all game keymaps that are loaded.
+	 */
+	void disableAllGameKeymaps();
+
 	/**
 	 * Obtain a keymap of the given name from the keymapper.
 	 * Game keymaps have priority over global keymaps




More information about the Scummvm-git-logs mailing list