aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjenkins4kodi <jenkins4kodi@users.noreply.github.com>2024-05-16 11:50:45 -0700
committerGitHub <noreply@github.com>2024-05-16 11:50:45 -0700
commit94b12dd1a8da218d7242db71914b72c8be5209fa (patch)
tree18d8c45fe172859adfefb3dabf77f779e6ac2a34
parentde81598f7381d96925749384b5003f9446ba473e (diff)
parentaeec5a6e820f2e3b620c3a565aa13a760ddaef3c (diff)
downloadxbmc-94b12dd1a8da218d7242db71914b72c8be5209fa.tar.xz
Merge pull request #25174 from garbear/improve-logging
-rw-r--r--xbmc/games/controllers/windows/GUIConfigurationWizard.cpp4
-rw-r--r--xbmc/input/joysticks/DriverPrimitive.cpp70
-rw-r--r--xbmc/input/joysticks/DriverPrimitive.h7
-rw-r--r--xbmc/input/keyboard/KeyboardStat.cpp6
-rw-r--r--xbmc/platform/android/activity/AndroidKey.cpp50
-rw-r--r--xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp92
-rw-r--r--xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp6
7 files changed, 208 insertions, 27 deletions
diff --git a/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp b/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
index e2c7130c58..ce980cf7c3 100644
--- a/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
+++ b/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
@@ -293,8 +293,8 @@ bool CGUIConfigurationWizard::MapPrimitive(JOYSTICK::IButtonMap* buttonMap,
}
else
{
- CLog::Log(LOGDEBUG, "{}: mapping feature \"{}\" for device {}", m_strControllerId,
- feature.Name(), buttonMap->Location());
+ CLog::Log(LOGDEBUG, "{}: mapping feature \"{}\" for device {} to \"{}\"",
+ m_strControllerId, feature.Name(), buttonMap->Location(), primitive.ToString());
switch (feature.Type())
{
diff --git a/xbmc/input/joysticks/DriverPrimitive.cpp b/xbmc/input/joysticks/DriverPrimitive.cpp
index fa8f7c9592..3f1a5ab895 100644
--- a/xbmc/input/joysticks/DriverPrimitive.cpp
+++ b/xbmc/input/joysticks/DriverPrimitive.cpp
@@ -8,6 +8,9 @@
#include "DriverPrimitive.h"
+#include "input/keyboard/KeyboardTranslator.h"
+#include "utils/StringUtils.h"
+
#include <utility>
using namespace KODI;
@@ -199,3 +202,70 @@ bool CDriverPrimitive::IsValid(void) const
return false;
}
+
+std::string CDriverPrimitive::ToString() const
+{
+ switch (m_type)
+ {
+ case PRIMITIVE_TYPE::BUTTON:
+ return StringUtils::Format("button {}", m_driverIndex);
+ case PRIMITIVE_TYPE::MOTOR:
+ return StringUtils::Format("motor {}", m_driverIndex);
+ case PRIMITIVE_TYPE::MOUSE_BUTTON:
+ return StringUtils::Format("mouse button {}", m_driverIndex);
+ case PRIMITIVE_TYPE::HAT:
+ {
+ switch (m_hatDirection)
+ {
+ case HAT_DIRECTION::UP:
+ return StringUtils::Format("hat {} up", m_driverIndex);
+ case HAT_DIRECTION::DOWN:
+ return StringUtils::Format("hat {} down", m_driverIndex);
+ case HAT_DIRECTION::RIGHT:
+ return StringUtils::Format("hat {} right", m_driverIndex);
+ case HAT_DIRECTION::LEFT:
+ return StringUtils::Format("hat {} left", m_driverIndex);
+ default:
+ break;
+ }
+ break;
+ }
+ case PRIMITIVE_TYPE::SEMIAXIS:
+ {
+ switch (m_semiAxisDirection)
+ {
+ case SEMIAXIS_DIRECTION::POSITIVE:
+ return StringUtils::Format("semiaxis +{}", m_driverIndex);
+ case SEMIAXIS_DIRECTION::NEGATIVE:
+ return StringUtils::Format("semiaxis -{}", m_driverIndex);
+ default:
+ break;
+ }
+ break;
+ }
+ case PRIMITIVE_TYPE::KEY:
+ return StringUtils::Format("key {}",
+ KEYBOARD::CKeyboardTranslator::TranslateKeycode(m_keycode));
+ case PRIMITIVE_TYPE::RELATIVE_POINTER:
+ {
+ switch (m_pointerDirection)
+ {
+ case RELATIVE_POINTER_DIRECTION::UP:
+ return StringUtils::Format("pointer {} up", m_driverIndex);
+ case RELATIVE_POINTER_DIRECTION::DOWN:
+ return StringUtils::Format("pointer {} down", m_driverIndex);
+ case RELATIVE_POINTER_DIRECTION::RIGHT:
+ return StringUtils::Format("pointer {} right", m_driverIndex);
+ case RELATIVE_POINTER_DIRECTION::LEFT:
+ return StringUtils::Format("pointer {} left", m_driverIndex);
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ return "";
+}
diff --git a/xbmc/input/joysticks/DriverPrimitive.h b/xbmc/input/joysticks/DriverPrimitive.h
index 2d8b153fe0..e4edea9f26 100644
--- a/xbmc/input/joysticks/DriverPrimitive.h
+++ b/xbmc/input/joysticks/DriverPrimitive.h
@@ -180,6 +180,13 @@ public:
*/
bool IsValid(void) const;
+ /*!
+ * \brief Convert primitive to a string suitable for logging
+ *
+ * \return The primitive as described by a short string, or empty if invalid
+ */
+ std::string ToString() const;
+
private:
PRIMITIVE_TYPE m_type = PRIMITIVE_TYPE::UNKNOWN;
unsigned int m_driverIndex = 0;
diff --git a/xbmc/input/keyboard/KeyboardStat.cpp b/xbmc/input/keyboard/KeyboardStat.cpp
index 5e390ee562..d6784c920c 100644
--- a/xbmc/input/keyboard/KeyboardStat.cpp
+++ b/xbmc/input/keyboard/KeyboardStat.cpp
@@ -14,6 +14,7 @@
#include "KeyboardStat.h"
#include "ServiceBroker.h"
+#include "input/keyboard/KeyboardTranslator.h"
#include "input/keyboard/KeyboardTypes.h"
#include "input/keyboard/XBMC_keytable.h"
#include "input/keyboard/XBMC_vkeys.h"
@@ -91,8 +92,9 @@ CKey CKeyboardStat::TranslateKey(XBMC_keysym& keysym) const
lockingModifiers |= CKey::MODIFIER_SCROLLLOCK;
CLog::Log(LOGDEBUG,
- "Keyboard: scancode: {:#02x}, sym: {:#04x}, unicode: {:#04x}, modifier: 0x{:x}",
- keysym.scancode, keysym.sym, keysym.unicode, keysym.mod);
+ "Keyboard: scancode: {:#02x}, sym: {:#04x} ({}), unicode: {:#04x}, modifier: 0x{:x}",
+ keysym.scancode, keysym.sym, CKeyboardTranslator::TranslateKeycode(keysym.sym),
+ keysym.unicode, keysym.mod);
// The keysym.unicode is usually valid, even if it is zero. A zero
// unicode just means this is a non-printing keypress. The ascii and
diff --git a/xbmc/platform/android/activity/AndroidKey.cpp b/xbmc/platform/android/activity/AndroidKey.cpp
index 13e23b80a4..3467ed6420 100644
--- a/xbmc/platform/android/activity/AndroidKey.cpp
+++ b/xbmc/platform/android/activity/AndroidKey.cpp
@@ -13,6 +13,8 @@
#include "input/keyboard/XBMC_keysym.h"
#include "windowing/android/WinSystemAndroid.h"
+#include "platform/android/peripherals/AndroidJoystickTranslator.h"
+
#include <androidjni/KeyCharacterMap.h>
typedef struct {
@@ -261,38 +263,46 @@ bool CAndroidKey::onKeyboardEvent(AInputEvent *event)
switch (action)
{
case AKEY_EVENT_ACTION_DOWN:
- CXBMCApp::android_printf(
- "CAndroidKey: key down (dev: %d; src: %d; code: %d; repeat: %d; flags: 0x%0X; alt: %s; "
- "shift: %s; sym: %s)",
- deviceId, source, keycode, repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
- (state & AMETA_SHIFT_ON) ? "yes" : "no", (state & AMETA_SYM_ON) ? "yes" : "no");
+ CXBMCApp::android_printf("CAndroidKey: key down (dev: %d; src: %d; code: %d (%s); repeat: "
+ "%d; flags: 0x%0X; alt: %s; shift: %s; sym: %s)",
+ deviceId, source, keycode,
+ PERIPHERALS::CAndroidJoystickTranslator::TranslateKeyCode(keycode),
+ repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
+ (state & AMETA_SHIFT_ON) ? "yes" : "no",
+ (state & AMETA_SYM_ON) ? "yes" : "no");
XBMC_Key((uint8_t)keycode, sym, modifiers, unicode, false);
break;
case AKEY_EVENT_ACTION_UP:
- CXBMCApp::android_printf(
- "CAndroidKey: key up (dev: %d; src: %d; code: %d; repeat: %d; flags: 0x%0X; alt: %s; "
- "shift: %s; sym: %s)",
- deviceId, source, keycode, repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
- (state & AMETA_SHIFT_ON) ? "yes" : "no", (state & AMETA_SYM_ON) ? "yes" : "no");
+ CXBMCApp::android_printf("CAndroidKey: key up (dev: %d; src: %d; code: %d (%s); repeat: %d; "
+ "flags: 0x%0X; alt: %s; shift: %s; sym: %s)",
+ deviceId, source, keycode,
+ PERIPHERALS::CAndroidJoystickTranslator::TranslateKeyCode(keycode),
+ repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
+ (state & AMETA_SHIFT_ON) ? "yes" : "no",
+ (state & AMETA_SYM_ON) ? "yes" : "no");
XBMC_Key((uint8_t)keycode, sym, modifiers, unicode, true);
break;
case AKEY_EVENT_ACTION_MULTIPLE:
- CXBMCApp::android_printf(
- "CAndroidKey: key multiple (dev: %d; src: %d; code: %d; repeat: %d; flags: 0x%0X; alt: "
- "%s; shift: %s; sym: %s)",
- deviceId, source, keycode, repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
- (state & AMETA_SHIFT_ON) ? "yes" : "no", (state & AMETA_SYM_ON) ? "yes" : "no");
+ CXBMCApp::android_printf("CAndroidKey: key multiple (dev: %d; src: %d; code: %d (%s); "
+ "repeat: %d; flags: 0x%0X; alt: %s; shift: %s; sym: %s)",
+ deviceId, source, keycode,
+ PERIPHERALS::CAndroidJoystickTranslator::TranslateKeyCode(keycode),
+ repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
+ (state & AMETA_SHIFT_ON) ? "yes" : "no",
+ (state & AMETA_SYM_ON) ? "yes" : "no");
return false;
break;
default:
- CXBMCApp::android_printf(
- "CAndroidKey: unknown key (dev: %d; src: %d; code: %d; repeat: %d; flags: 0x%0X; alt: "
- "%s; shift: %s; sym: %s)",
- deviceId, source, keycode, repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
- (state & AMETA_SHIFT_ON) ? "yes" : "no", (state & AMETA_SYM_ON) ? "yes" : "no");
+ CXBMCApp::android_printf("CAndroidKey: unknown key (dev: %d; src: %d; code: %d (%s); repeat: "
+ "%d; flags: 0x%0X; alt: %s; shift: %s; sym: %s)",
+ deviceId, source, keycode,
+ PERIPHERALS::CAndroidJoystickTranslator::TranslateKeyCode(keycode),
+ repeat, flags, (state & AMETA_ALT_ON) ? "yes" : "no",
+ (state & AMETA_SHIFT_ON) ? "yes" : "no",
+ (state & AMETA_SYM_ON) ? "yes" : "no");
return false;
break;
}
diff --git a/xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp b/xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp
index be919ab70e..3717616413 100644
--- a/xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp
+++ b/xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp
@@ -630,6 +630,98 @@ const char* CAndroidJoystickTranslator::TranslateKeyCode(int keyCode)
return "AKEYCODE_TV_TIMER_PROGRAMMING";
case AKEYCODE_HELP:
return "AKEYCODE_HELP";
+ case AKEYCODE_NAVIGATE_PREVIOUS:
+ return "AKEYCODE_NAVIGATE_PREVIOUS";
+ case AKEYCODE_NAVIGATE_NEXT:
+ return "AKEYCODE_NAVIGATE_NEXT";
+ case AKEYCODE_NAVIGATE_IN:
+ return "AKEYCODE_NAVIGATE_IN";
+ case AKEYCODE_NAVIGATE_OUT:
+ return "AKEYCODE_NAVIGATE_OUT";
+ case AKEYCODE_STEM_PRIMARY:
+ return "AKEYCODE_STEM_PRIMARY";
+ case AKEYCODE_STEM_1:
+ return "AKEYCODE_STEM_1";
+ case AKEYCODE_STEM_2:
+ return "AKEYCODE_STEM_2";
+ case AKEYCODE_STEM_3:
+ return "AKEYCODE_STEM_3";
+ case AKEYCODE_DPAD_UP_LEFT:
+ return "AKEYCODE_DPAD_UP_LEFT";
+ case AKEYCODE_DPAD_DOWN_LEFT:
+ return "AKEYCODE_DPAD_DOWN_LEFT";
+ case AKEYCODE_DPAD_UP_RIGHT:
+ return "AKEYCODE_DPAD_UP_RIGHT";
+ case AKEYCODE_DPAD_DOWN_RIGHT:
+ return "AKEYCODE_DPAD_DOWN_RIGHT";
+ case AKEYCODE_MEDIA_SKIP_FORWARD:
+ return "AKEYCODE_MEDIA_SKIP_FORWARD";
+ case AKEYCODE_MEDIA_SKIP_BACKWARD:
+ return "AKEYCODE_MEDIA_SKIP_BACKWARD";
+ case AKEYCODE_MEDIA_STEP_FORWARD:
+ return "AKEYCODE_MEDIA_STEP_FORWARD";
+ case AKEYCODE_MEDIA_STEP_BACKWARD:
+ return "AKEYCODE_MEDIA_STEP_BACKWARD";
+ case AKEYCODE_SOFT_SLEEP:
+ return "AKEYCODE_SOFT_SLEEP";
+ case AKEYCODE_CUT:
+ return "AKEYCODE_CUT";
+ case AKEYCODE_COPY:
+ return "AKEYCODE_COPY";
+ case AKEYCODE_PASTE:
+ return "AKEYCODE_PASTE";
+ case AKEYCODE_SYSTEM_NAVIGATION_UP:
+ return "AKEYCODE_SYSTEM_NAVIGATION_UP";
+ case AKEYCODE_SYSTEM_NAVIGATION_DOWN:
+ return "AKEYCODE_SYSTEM_NAVIGATION_DOWN";
+ case AKEYCODE_SYSTEM_NAVIGATION_LEFT:
+ return "AKEYCODE_SYSTEM_NAVIGATION_LEFT";
+ case AKEYCODE_SYSTEM_NAVIGATION_RIGHT:
+ return "AKEYCODE_SYSTEM_NAVIGATION_RIGHT";
+ case AKEYCODE_ALL_APPS:
+ return "AKEYCODE_ALL_APPS";
+ case AKEYCODE_REFRESH:
+ return "AKEYCODE_REFRESH";
+ case AKEYCODE_THUMBS_UP:
+ return "AKEYCODE_THUMBS_UP";
+ case AKEYCODE_THUMBS_DOWN:
+ return "AKEYCODE_THUMBS_DOWN";
+ case AKEYCODE_PROFILE_SWITCH:
+ return "AKEYCODE_PROFILE_SWITCH";
+ case AKEYCODE_VIDEO_APP_1:
+ return "AKEYCODE_VIDEO_APP_1";
+ case AKEYCODE_VIDEO_APP_2:
+ return "AKEYCODE_VIDEO_APP_2";
+ case AKEYCODE_VIDEO_APP_3:
+ return "AKEYCODE_VIDEO_APP_3";
+ case AKEYCODE_VIDEO_APP_4:
+ return "AKEYCODE_VIDEO_APP_4";
+ case AKEYCODE_VIDEO_APP_5:
+ return "AKEYCODE_VIDEO_APP_5";
+ case AKEYCODE_VIDEO_APP_6:
+ return "AKEYCODE_VIDEO_APP_6";
+ case AKEYCODE_VIDEO_APP_7:
+ return "AKEYCODE_VIDEO_APP_7";
+ case AKEYCODE_VIDEO_APP_8:
+ return "AKEYCODE_VIDEO_APP_8";
+ case AKEYCODE_FEATURED_APP_1:
+ return "AKEYCODE_FEATURED_APP_1";
+ case AKEYCODE_FEATURED_APP_2:
+ return "AKEYCODE_FEATURED_APP_2";
+ case AKEYCODE_FEATURED_APP_3:
+ return "AKEYCODE_FEATURED_APP_3";
+ case AKEYCODE_FEATURED_APP_4:
+ return "AKEYCODE_FEATURED_APP_4";
+ case AKEYCODE_DEMO_APP_1:
+ return "AKEYCODE_DEMO_APP_1";
+ case AKEYCODE_DEMO_APP_2:
+ return "AKEYCODE_DEMO_APP_2";
+ case AKEYCODE_DEMO_APP_3:
+ return "AKEYCODE_DEMO_APP_3";
+ case AKEYCODE_DEMO_APP_4:
+ return "AKEYCODE_DEMO_APP_4";
+ default:
+ break;
}
return "unknown";
diff --git a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
index 74b78849e5..753dc71099 100644
--- a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
+++ b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
@@ -31,7 +31,7 @@ using namespace PERIPHERALS;
#define JOYSTICK_PROVIDER_ANDROID "android"
// Set this to the final key code in android/keycodes.h
-const unsigned int KEY_CODE_FINAL = AKEYCODE_HELP;
+const unsigned int KEY_CODE_FINAL = AKEYCODE_DEMO_APP_4;
static const std::string DeviceLocationPrefix = "android/inputdevice/";
@@ -304,8 +304,8 @@ bool CPeripheralBusAndroid::OnInputDeviceEvent(const AInputEvent* event)
auto joystickState = m_joystickStates.find(deviceId);
if (joystickState == m_joystickStates.end())
{
- CLog::Log(LOGWARNING,
- "CPeripheralBusAndroid: ignoring input event for unknown input device with ID {}",
+ CLog::Log(LOGDEBUG,
+ "CPeripheralBusAndroid: ignoring input event for non-joystick device with ID {}",
deviceId);
return false;
}