diff options
author | jenkins4kodi <jenkins4kodi@users.noreply.github.com> | 2024-05-16 11:50:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-16 11:50:45 -0700 |
commit | 94b12dd1a8da218d7242db71914b72c8be5209fa (patch) | |
tree | 18d8c45fe172859adfefb3dabf77f779e6ac2a34 | |
parent | de81598f7381d96925749384b5003f9446ba473e (diff) | |
parent | aeec5a6e820f2e3b620c3a565aa13a760ddaef3c (diff) | |
download | xbmc-94b12dd1a8da218d7242db71914b72c8be5209fa.tar.xz |
Merge pull request #25174 from garbear/improve-logging
-rw-r--r-- | xbmc/games/controllers/windows/GUIConfigurationWizard.cpp | 4 | ||||
-rw-r--r-- | xbmc/input/joysticks/DriverPrimitive.cpp | 70 | ||||
-rw-r--r-- | xbmc/input/joysticks/DriverPrimitive.h | 7 | ||||
-rw-r--r-- | xbmc/input/keyboard/KeyboardStat.cpp | 6 | ||||
-rw-r--r-- | xbmc/platform/android/activity/AndroidKey.cpp | 50 | ||||
-rw-r--r-- | xbmc/platform/android/peripherals/AndroidJoystickTranslator.cpp | 92 | ||||
-rw-r--r-- | xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp | 6 |
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; } |