Code Monkey home page Code Monkey logo

peripheral.joystick's Introduction

License: GPL-2.0-or-later Build Status Build Status

Joystick support for Kodi

This add-on provides joystick drivers and button mapping services for Kodi. It uses the Peripheral API added to Kodi as part of PR 8807.

Building

Building this add-on requires Kodi's internal CMake-based build system for binary add-ons. If you are cross-compiling or just packaging the add-on, it is recommended that you use the Makefile provided with Kodi.

The Makefile will download, build and install the add-on and its dependencies. There is no need to manually clone the add-on if Kodi's source is available.

The version fetched by Kodi's build system is defined by a text file included with Kodi at project/cmake/addons/addons/peripheral.joystick or fetched from the binary add-ons repo specified in cmake/addons/bootstrap/repositories/binary-addons.txt.

Building on Linux

First, make sure Kodi's add-on build system is installed somewhere. You can perform a system install (to /usr/local) or a local install (I prefer $HOME/kodi). Specify this when you build Kodi:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/kodi ..
make
make install

Now, run the Makefile with the path to the build system:

cd tools/depends/target/binary-addons
make PREFIX=$HOME/kodi ADDONS="peripheral.joystick"

You can specify multiple add-ons, and wildcards are accepted too. For example, ADDONS="pvr.*" will build all pvr add-ons.

On Linux this performs a cross-compile install, so to package the add-on you'll need to copy the library and add-on files manually:

cd $HOME/workspace/kodi/addons
mkdir -p peripheral.joystick
cp -r $HOME/kodi/share/kodi/addons/peripheral.joystick/ .
cp -r $HOME/kodi/lib/kodi/addons/peripheral.joystick/ .

To rebuild the add-on or compile a different one, clean the build directory:

make clean

Building on OSX

Building on OSX is similar to Linux, but all the paths are determined for you. This command will download, build and install the add-on to the addons/ directory in your Kodi repo:

cd tools/depends/target/binary-addons
make ADDONS="peripheral.joystick"

Building on Windows

First, download and install CMake.

To compile on windows, open a command prompt at tools\buildsteps\win32 and run the script:

make-addons.bat install peripheral.joystick

Developing

When developing, compiling from a git repo is more convenient than repeatedly pushing changes to a remote one for Kodi's Makefile.

Developing on Linux

git clone https://github.com/xbmc/peripheral.joystick.git
cd peripheral.joystick
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug \
      -DCMAKE_INSTALL_PREFIX=$HOME/workspace/kodi/addons \
      -DPACKAGE_ZIP=1 \
      ..
make
make install

where $HOME/workspace/kodi symlinks to the directory you cloned Kodi into.

Developing on Windows

This instructions here came from this helpful forum post.

First, open tools\windows\prepare-binary-addons-dev.bat and change -DCMAKE_BUILD_TYPE=Debug ^ to -DCMAKE_BUILD_TYPE=Release ^.

Open a command prompt at tools\windows and run the script:

prepare-binary-addons-dev.bat peripheral.joystick

Open cmake\addons\build\kodi-addons.sln and build the solution. This downloads the add-on from the version specified in its text file (see above) and creates a Visual Studio project for it. If the build fails, try running it twice.

This should package and copy the add-on to the addons/ directory. If not, you can try opening the solution cmake\addons\build\<addon-id>-prefix\src\<addon-id>-build\<addon-id>.sln and building the INSTALL project or, worse case, copy by hand.

peripheral.joystick's People

Contributors

a1rwulf avatar afedchin avatar alwinesch avatar aquiles2k avatar arucard21 avatar charliemarshall avatar codesnake avatar da-anda avatar fetzerch avatar fuzzard avatar gade01 avatar garbear avatar heitbaum avatar hudokkow avatar jgoutin avatar kodiweblate avatar martijnkaijser avatar mintsoft avatar montellese avatar nadenislamarre avatar nickolay avatar notspiff avatar paxxi avatar phunkyfish avatar po1vo avatar rechi avatar velocityra avatar weblate avatar woerd88 avatar wsnipex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

peripheral.joystick's Issues

Default PS4 controller buttonmap doesn't match my controller

I assume that with the PS4 buttonmap now added to the addon, if my PS4 controller were detected as a match for it, I wouldn't need to go through the controller configuration before being able to use the controller. Is this correct?

I installed this latest git version with Kodi 17.0-beta6 and I noticed that I still had to go through the controller configuration where my PS4 controller was (still) being recognized as having 14 buttons and 18 axes. Even after removing all my userdata for the peripheral.joystick addon and restarting Kodi, I had to go through the controller configuration again and the new buttonmap files still ended with 14b_18a (both with wireless and wired connection).

Is this buttonmap file for a different version/variation of the controller perhaps? Mine is actually detected as "Wireless Controller" (when connected with Bluetooth) or "Sony Computer Entertainment Wireless Controller" (when connected with USB). It might be relevant to mention that I'm on Linux (Debian unstable, with self-compiled Kodi).

Incomplete button map when translating controllers

Problem

Let's say I map my controller to the 360 profile only. Then I try to play a NES game, but there's no mapping for NES so the add-on has to derive a button map from the 360 profile.

To do this, the add-on looks for the most popular translation between 360 and NES in the existing button maps. For each possible button translation, it counts the occurrences of that mapping. For example, assume A is mapped to A 5 times, and A is mapped to B 10 times. When A is pressed, this will be translated to B on the NES controller because it's the most popular mapping for that feature.

However, "all data is messy". Our button maps are no exception. Here's the frequency table for the 360 to NES mappings:

NES    -> 360    : occurrences

a      -> a      : 19
a      -> b      : 20
b      -> a      : 9
b      -> b      : 19
b      -> y      : 11
up     -> up     : 39
down   -> down   : 39
left   -> left   : 39
right  -> right  : 39
start  -> start  : 38
start  -> y      : 1
select -> select : 37
select -> x      : 1

Several things are interesting about this translation table. For example, the directions are always the same button for both profiles, and we can see that this data comes from 39 button maps. Every button on the left appears 39 times (except for select, only 38 times, so one button map is faulty). Of all the people who have submitted button maps, only 1 used X and Y for select and start.

As for A and B, almost half of button maps use the logical mapping. A's majority is A (the logical mapping), but B is split between Y and A (physical mappings).

As a result, the most popular mappings are:

a      -> a      : 19
a      -> b      : 20

which yields a conflict! To solve this, the add-on chooses one mapping to discard, which means we lose a button and our mapping is incomplete.

Solution

Popularity shouldn't be determined per-feature. The add-on should choose the best entire button map, not the best of each feature (which can yield conflicts).

I think the solution is to define a "distance" metric between button maps, similar to levenshtein distance. This forms a graph, whereby the most popular configuration can be found using a clustering algorithm.

Detection delay

My Xbox Controller is detected by Kodi with a delay of about 5 sec. With the xboxdrv driver there is no delay and the controller works imedatelly after connection/Kodi start.

Joystick intermittently stops working

So I'm quite happy in general how easy it is to set up a joystick right now. The main problem I'm facing is that it will sometimes without warning stop working in kodi leaving this in the log:

00:20:32.214 T:139691099584256 ERROR: AddOnLog: Joystick Support: ScanEvents: failed to read joystick "Wireless Controller" on /dev/input/js0 - 19 (No such device)
00:20:33.031 T:139691110160128 ERROR: Previous line repeats 49 times.

With varying amounts of repeats. This persists until I reconnect the joystick.

jstest or other utilities keep seeing the joystick just fine and work as expected. The device /dev/input/js0 in that case was also there and responding as it should.

Any clue how I can help to triage this?

Joystick was a Dualshock 4 paired over Bluetooth

How to use two unit of Xbox One Controller connected via Bluetooth?

Hi all, it is so great about the game feature, now may HTPC had really become the center of my living room.

Using one unit of Xbox Wireless Controller connected by Bluetooth was running greatly.

however i am having problem when connect the second Xbox Wireless Controller by Bluetooth, it seems both controller have same key mapping and both controller only control player one, i cannot have the second controller for second player.

appreciate if some one can provide a guide for me showing how to setup correctly.

good day!

Joystick family support

The basic idea is to gather the alternative driver names from Kodi's old joystick keymaps and create "joystick families", which I have done (see joystickfamilies.xml).

Then, if the user plugs in a controller belonging to a joystick family, the button mapper can use a button map from a different controller of the same family.

Linux - Fail to build

Debian unstable amd64

/usr/lib/ccache/c++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_INSTANCE_VERSION_VFS_USED -DBUILD_KODI_ADDON -DLIBARCHIVE_STATIC -D_CRT_NONSTDC_NO_DEPRECATE -Dvfs_libarchive_EXPORTS  -g -O2 -ffile-prefix-map=/home/marillat/src/kodi-peripheral-joystick-20.1.5=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -std=c++17 -MD -MT CMakeFiles/vfs.libarchive.dir/src/ArchiveFile.cpp.o -MF CMakeFiles/vfs.libarchive.dir/src/ArchiveFile.cpp.o.d -o CMakeFiles/vfs.libarchive.dir/src/ArchiveFile.cpp.o -c /home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp
/home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp:51:37: error: expected initializer before ‘:’ token
   51 | class ATTRIBUTE_HIDDEN CArchiveFile : public kodi::addon::CInstanceVFS
      |                                     ^
/home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp:549:33: error: expected initializer before ‘:’ token
  549 | class ATTRIBUTE_HIDDEN CMyAddon : public kodi::addon::CAddonBase
      |                                 ^
In file included from /usr/include/kodi/Filesystem.h:11,
                 from /home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp:10:
/home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp: In function ‘ADDON_STATUS ADDON_Create(KODI_HANDLE)’:
/home/marillat/src/kodi-peripheral-joystick-20.1.5/src/ArchiveFile.cpp:564:14: error: ‘CMyAddon’ does not name a type
  564 | ADDONCREATOR(CMyAddon);
      |              ^~~~~~~~
ninja: build stopped: subcommand failed.

[Feature Request] Sinden Lightgun Controller button map

Requesting button maps/mappings for the "Sinden Lightgun Controller".

As I understand Sinden Lightgun official driver is mapped to behave like a physical mouse for compatibility:

https://www.sindenlightgun.com

https://sindenlightgun.miraheze.org/wiki/Sinden_Setup_Guide

Lightgun buttons are changeable in the official driver/software but the default is:

  • Trigger = Left Mouse
  • Offscreen = Right Mouse
  • Pump Action = Right Mouse
  • Left Front = Right Mouse
  • Back Left = Middle Mouse
  • Front Right = Keyboard 1
  • Offscreen = Keyboard 5
  • Back Right = Show/Hide Border
  • Dpad = Keyboard Up/Down/Left/Right

https://www.youtube.com/sindentechnology

https://www.kickstarter.com/projects/sindenlightgun/the-sinden-lightgun

https://www.indiegogo.com/projects/the-sinden-lightgun/

PS: I do not actually own one myself yet but it is on the budget for Christmas this years if nothing changes.

[cocoa] Support dpad/POV hat switch [e.g. directional buttons on DualShock]

This seems to be a known limitation (mentioned in the commit introducing the DS4 buttonmap), but hard to find, unless you know the right terms or take a deep dive into the code.

These are reported as:

  • IOHIDElementGetUsagePage(..) = GENERIC_DESKTOP_USAGE_PAGE (0x01)
  • IOHIDElementGetUsage(..) = 0x39
  • IOHIDValueGetIntegerValue(..) ranging from 0 to 7 indicating eight possible directions and an out-of-range (8 for DS4) value for the unpressed state (as explained here).

...and should end up calling CJoystick::SetHatValue.

One can look into https://bugzilla.mozilla.org/show_bug.cgi?id=1107801 for implementation inspiration.

Hyper text

Open main menu

Search
HTTP
Article Talk
Language
Watch

  • # Edit~~~~
    The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems.[1] HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser.

HTTP

International standard
RFC 1945 HTTP/1.0
RFC 9110 HTTP Semantics
RFC 9111 HTTP Caching
RFC 9112 HTTP/1.1
RFC 9113 HTTP/2
RFC 7541 HTTP/2: HPACK Header Compression
RFC 8164 HTTP/2: Opportunistic Security for HTTP/2
RFC 8336 HTTP/2: The ORIGIN HTTP/2 Frame
RFC 8441 HTTP/2: Bootstrapping WebSockets with HTTP/2
RFC 9114 HTTP/3
RFC 9204 HTTP/3: QPACK: Field Compression
Developed by
initially CERN; IETF, W3C
Introduced
1991; 32 years ago```
chrome_qrcode_1688748915649.png

@

Website
https://httpwg.org/specs/
Development of HTTP was initiated by Tim Berners…

Build error on windows (cmake.exe crashes)

@Montellese I'm hitting a build system crash on windows. any ideas?

I generated a solution using tools\windows\prepare-binary-addons-dev.bat. opened project\cmake\addons\build\kodi-addons.sln. game.libretro and game.libretro.nestopia compile successfully. I tried to compile peripheral.joystick and cmake.exe crashes and aborts the build:

1>------ Build started: Project: platform (ExternalProjectTargets\platform\platform), Configuration: Debug Win32 ------
2>------ Build started: Project: tinyxml (ExternalProjectTargets\tinyxml\tinyxml), Configuration: Debug Win32 ------
3>------ Build started: Project: kodi-platform (ExternalProjectTargets\kodi-platform\kodi-platform), Configuration: Debug Win32 ------
3>  Performing update step for 'kodi-platform'
4>------ Build started: Project: peripheral.joystick (ExternalProjectTargets\peripheral.joystick\peripheral.joystick), Configuration: Debug Win32 ------
4>  Building Custom Rule C:/Users/Garrett/Documents/kodi/project/cmake/addons/CMakeLists.txt
4>  CMake does not need to re-run because C:\Users\Garrett\Documents\kodi\project\cmake\addons\build\CMakeFiles\generate.stamp is up-to-date.
4>  Creating directories for 'peripheral.joystick'
4>  No download step for 'peripheral.joystick'
4>  No update step for 'peripheral.joystick'
4>  No patch step for 'peripheral.joystick'
4>  Performing configure step for 'peripheral.joystick'
4>  -- Checking to see if CXX compiler accepts flag -flto
4>  -- Checking to see if CXX compiler accepts flag -flto - yes
4>  -- Looking for include file syslog.h
4>  -- Looking for include file syslog.h - not found
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>  -- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): error MSB6006: "cmd.exe" exited with code -1073741571.
========== Build: 3 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

Retrogame virtual keyboard Kodi 17.3 not recognized

Hello there,

I encounter a problem regarding the buttons in Kodi. The buttons aren't working even tho' it's working on the "desktop" and retropie.

I put a Pi Zero W into a PSP. Connected the GPIO to the controls of the PSP. I then installed a Raspbian Image. I apt-get install kodi to get kodi. And also installed Retropie manually using this link.
I use retrogame.cfg file to make the buttons work. And copy the retrogame in /usr/local/bin/retrogame (both files has been given to me so I don't really know thing about them, sorry).

# Sample configuration file for retrogame.
# Really minimal syntax, typically two elements per line w/space delimiter:
# 1) a key name (from keyTable.h; shortened from /usr/include/linux/input.h).
# 2) a GPIO pin number; when grounded, will simulate corresponding keypress.
# Uses Broadcom pin numbers for GPIO.
# If first element is GND, the corresponding pin (or pins, multiple can be
# given) is a LOW-level output; an extra ground pin for connecting buttons.
# A '#' character indicates a comment to end-of-line.
# File can be edited "live," no need to restart retrogame!

# Here's a pin configuration for the PSPi v2 project:

UP         23  # Up
DOWN       27  # Down
LEFT       22  # Left
RIGHT      17  # Right
Q          19  # Square
ENTER      16  # X
Y          20  # Triangle
ESC        26  # Circle
LEFTCTRL   24  # Left Trigger
RIGHTCTRL  21  # Right Trigger
S          12  # Start
D           6  # Select
VOLUMEDOWN 25  # Volume Down
VOLUMEUP    5  # Volume Up


# For configurations with few buttons (e.g. Cupcade), a key can be followed
# by multiple pin numbers.  When those pins are all held for a few seconds,
# this will generate the corresponding keypress (e.g. ESC to exit ROM).
# Only ONE such combo is supported within the file though; later entries
# will override earlier.

I checked several post about the subject but I can't make it work, but I could'nt find anything that is appropriate to my project...

When I start the PSP I end up on the shell. From there I just use the Up button to get the last lines. I can enter kodi like that. Once there the buttons aren't working. When I start emulationstation or StartX it's working fine. It looks like the buttons are well "simulated" on those like I would use the keyboard but not in Kodi

Can someone help me to figure out how to get that working in Kodi ?

Thanks all

EDIT :

I tried to configure the controller already. I didn't say it but before this I tried a Retropie Image and installed Kodi from there. Same problem, buttons works in Retropie not in Kodi. And when I try to make a new input in the controller the timer just go to 0 and I can't put any key, like the buttons are not recognize.

I checked the link with the Keymap already but as I'm running the stuff on a PSP which structure should I take ? Remote ? Gamepad ? Keyboard ?
Custom Joystick and I put retrogame like that ?

<joystick name="retrogame">
  <button id="27">Down</button>
</joystick>

A other thing. The joystick from the PSP is connected to the Gamepad so basically the input from the gamepad are the same for the joystick it's exactly the same wiring.

So I tried like that, I created a new file psp.xml that I put here : ~/.kodi/userdata/keymaps

I wrote this inside :

<keymap>
  <global>
    <joystick name="retrogame">
    <button id="27">Down</button>
    <button id="23">Up</button>
    </joystick>
  </global>
</keymap>

It is not working either.
Is there any manipulation to do to "activate" the .xml file maybe so that Kodi recognize it ? Should I use a different structure ?

PS3 Gamepad make Kodi 17.3 freezing

Dear Developers,
i have some problem on peripheral joystick that make kodi ui freezing , but background process seem working fine, and it not crash , until i give more input event from joystick or keyboard.
all the log i post it here Log ,
the peripheral joystick version that came from kodi 17.3 is version 1.3.2,

i really like to make my PS3 gamepad work since use it more often.

[Request] Add a tag for Kodi beta release

I just installed Kodi v17 beta1 and tried to compile this addon, but I couldn't because of this: error: ‘PERIPHERAL_CAPABILITIES {aka struct PERIPHERAL_CAPABILITIES}’ has no member named ‘provides_buttonmaps’; did you mean ‘provides_joysticks’?

I looked into this, and it seems like provides_buttonmaps was added to the Peripheral API in version 1.0.21, but Kodi v17 beta1 is only at version 1.0.19. I looked at the other available branches and nothing seemed to specifically match this API version. This is why I thought it might be a good idea if someone could add a tag for each Kodi beta (and maybe alpha) release so it would be easier to test the beta release with this binary addon. If possible, it would be nice to have a tag for this beta1 as well, which I guess would be somewhere after ddb0dcf.

I'm pretty new to the binary addons, so if I just made a mistake somewhere in compiling the addon, please let me know. I'm trying again now with Kodi master branch so if I've done something incorrectly, I'd appreciate the feedback.

Build failing on jenkins win32

c:\jenkins\slave\workspace\win-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickXInput.h(36): error C3668: 'JOYSTICK::CJoystickXInput::PowerOff': method with override specifier 'override' did not override any base class methods
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(47): error C2065: 'JOYSTICK_FEATURE_TYPE_MOTOR': undeclared identifier
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(48): error C2065: 'JOYSTICK_FEATURE_TYPE_MOTOR': undeclared identifier
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(49): error C2065: 'JOYSTICK_FEATURE_TYPE_MOTOR': undeclared identifier
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(50): error C2065: 'JOYSTICK_FEATURE_TYPE_MOTOR': undeclared identifier
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(94): error C2039: 'CreateMotor': is not a member of 'ADDON::DriverPrimitive'
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\output\include\kodi\kodi_peripheral_utils.hpp(350): note: see declaration of 'ADDON::DriverPrimitive'
C:\jenkins\slave\workspace\WIN-32\project\cmake\addons\build\peripheral.joystick\src\api\xinput\JoystickInterfaceXInput.cpp(94): error C3861: 'CreateMotor': identifier not found

Full log: http://jenkins.kodi.tv/job/WIN-32/8995/consoleFull

kodi leia built with peripheral.joystick addon does not startup

A fresh built of kodi leia (May 2) with recent commits of peripheral.joystick doesn't startup on Ubuntu 18.04. I tried starting with no/empty .kodi folder which didn't help. Eventually I removed peripheral.joystick folder from /usr/local/lib/kodi/addon directory and kodi started up again.

8BitDo SN30 Pro+ not working via Bluetooth

Hi, I tried to use the gamepad via Bluetooth. But it seems that the buttons are not recognized.
When connected

2020-05-30 17:10:45.180 T:1881141984   DEBUG: CLibInputHandler::DeviceAdded - keyboard type device added: 8BitDo SN30 Pro+ (event3)
2020-05-30 17:10:45.180 T:1881141984   DEBUG: CLibInputKeyboard::GetRepeat - could not get key repeat for event3 (Function not implemented)
2020-05-30 17:10:45.180 T:1881141984   DEBUG: CLibInputKeyboard::GetRepeat - delay: 400ms repeat: 80ms for 8BitDo SN30 Pro+ (event3)
2020-05-30 17:11:15.056 T:1665106656    INFO: AddOnLog: Joystick Support: Initialized joystick 1: "8BitDo SN30 Pro+", axes: 8, hats: 0, buttons: 10
2020-05-30 17:11:15.112 T:1665106656   DEBUG: GetMappingForDevice - device (0000:0000) mapped to  (type = joystick)
2020-05-30 17:11:15.211 T:1665106656   DEBUG: Initialise - initialised peripheral on 'peripheral.joystick/1' with 1 features and 0 sub devices
2020-05-30 17:11:15.211 T:1665106656  NOTICE: Register - new joystick device registered on addon->peripheral.joystick/1: 8BitDo SN30 Pro+

nothing happens when I press buttons. The only button is shown in log is home(or guide) button

2020-05-30 17:27:39.012 T:1881141984   DEBUG: CLibInputKeyboard::ProcessKey - using delay: 400ms repeat: 80ms
2020-05-30 17:27:39.013 T:1247056608   DEBUG: Thread Timer start, auto delete: false
2020-05-30 17:27:39.014 T:1901679456   DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
2020-05-30 17:27:39.014 T:1901679456   DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
2020-05-30 17:27:39.015 T:1901679456   DEBUG: Previous line repeats 3 times.
2020-05-30 17:27:39.015 T:1901679456   DEBUG: HandleKey: 0 (0xf200, obc-61697) pressed, action is
2020-05-30 17:27:39.436 T:1901679456   DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
2020-05-30 17:27:39.436 T:1901679456   DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
2020-05-30 17:27:39.436 T:1901679456   DEBUG: Previous line repeats 3 times.
2020-05-30 17:27:39.436 T:1901679456   DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
2020-05-30 17:27:39.524 T:1901679456   DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
2020-05-30 17:27:39.524 T:1901679456   DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
2020-05-30 17:27:39.524 T:1901679456   DEBUG: Previous line repeats 3 times.
2020-05-30 17:27:39.524 T:1901679456   DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
2020-05-30 17:27:39.585 T:1247056608   DEBUG: Thread Timer 1247056608 terminating
2020-05-30 17:27:39.614 T:1901679456   DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0
2020-05-30 17:27:39.614 T:1901679456   DEBUG: GetActionCode: Trying Hardy keycode for 0xf200
2020-05-30 17:27:39.614 T:1901679456   DEBUG: Previous line repeats 3 times.
2020-05-30 17:27:39.614 T:1901679456   DEBUG: HandleKey: long-0 (0x100f200, obc-16838913) pressed, action is
2020-05-30 17:27:39.614 T:1901679456   DEBUG: Keyboard: scancode: 0x8b, sym: 0x0000, unicode: 0x0000, modifier: 0x0

and when I turned the gamepad off:

2020-05-29 22:02:38.902 T:1665106656  NOTICE: UnregisterRemovedDevices - device removed from joystick/peripheral.joystick/0: 8BitDo SN30 Pro+ (0000:0000)

my setup is

  • Raspbian stretch
  • Kodi 18.2
  • peripheral.joystick v1.4.7

udev support

The goal of udev support is smarter joystick detection, as mentioned in PR 8385.

Right now we have support for the Linux Joystick API and SDL2, both of which rely on a subset of udev anyway. Native udev support would replace both of these APIs.

Joystick interfaces disabled when invalid driver selected

My settings file looked like this:

<settings version="2">
    <setting id="driver_linux">1</setting>
    <setting id="driver_sdl" default="true">1</setting>
</settings>

I'm not sure how it got into that state (I've used this addon and settings for years through multiple upgrades). With the above config, I saw this in the kodi log:

2020-07-03 13:51:59.201 T:140146413371840   DEBUG: CAddonSettings[peripheral.joystick]: loading setting definitions
2020-07-03 13:51:59.201 T:140146413371840   DEBUG: CAddonSettings[peripheral.joystick]: loading setting values
2020-07-03 13:51:59.201 T:140146413371840   DEBUG: CSettingsManager: requested setting (driver_sdl) was not found.
2020-07-03 13:51:59.201 T:140146413371840   DEBUG: CAddonSettings[peripheral.joystick]: failed to find definition for setting driver_sdl. Creating a setting on-the-fly...
2020-07-03 13:51:59.201 T:140146413371840    INFO: AddOnLog: Joystick Support: Enabling joystick interface "udev"
2020-07-03 13:51:59.201 T:140146413371840    INFO: AddOnLog: Joystick Support: Disabling joystick interface "udev"

It tries and fails with the sdl log, then goes to udev (which I had selected in the gui menu) and immediately disables it. (NOTE: I was able to repeat these same results when choosing the "Linux" driver from the gui as well).

I noticed on a fresh config I had:

<settings version="2">
    <setting id="driver_linux" default="true">0</setting>
</settings>

Once I used that config, it started working.

Symbol lookup error in Linux (Ubuntu 14.04)

After building addons in-tree and running the kodi executable, the program crashes upon loading the peripheral.joystick module with the following output:

/home/anthony/kodi/lib/kodi/kodi.bin: symbol lookup error: /home/anthony/kodi/lib/kodi/addons/peripheral.joystick/peripheral.joystick.so: undefined symbol: _ZN8JOYSTICK23CJoystickInterfaceLinuxC1Ev

In the log found at $HOME/.kodi/temp/kodi.log, the last few lines read:

21:57:30 T:139940056909760   DEBUG: PERIPHERAL - CreateAddon - creating peripheral add-on instance 'Joystick Support'
21:57:30 T:139940056909760   DEBUG: ADDON: Dll Initializing - Joystick Support
21:57:30 T:139940056909760   DEBUG: SECTION:LoadDLL(/home/anthony/kodi/lib/kodi/addons/peripheral.joystick/peripheral.joystick.so)
21:57:30 T:139940056909760   DEBUG: Loading: /home/anthony/kodi/lib/kodi/addons/peripheral.joystick/peripheral.joystick.so

A git bisection shows that 468f687 is the first bad commit.

game.controller.colecovision not mappable for use with bluemsx

Issue: Attempting to use BlueMSX to emulate coleco. Games will start fine, but the controller doesn't appear to be linked somehow for use with the emulator. In Kodi control settings, I've mapped the following buttons:

<device name="PLAYSTATION(R)3 Controller" provider="cocoa" vid="054C" pid="0268" buttoncount="19" axiscount="4">
        <controller id="game.controller.colecovision">
            <feature name="keypad1" button="3" />
            <feature name="keypad2" button="0" />
        </controller>
...

After starting a coleco game with BlueMSX, then pressing either of those buttons (when the screen prompts you to push the keypad 1 or keypad 2 key), nothing happens. The log shows:

17:59:57.021 T:123145515675648   DEBUG: BUTTON [ 3 ] on "PLAYSTATION(R)3 Controller" released
17:59:57.021 T:123145515675648   DEBUG: FEATURE [ start ] on game.controller.default released
17:59:57.022 T:123145515675648   DEBUG: FEATURE [ keypad1 ] on game.controller.colecovision released
17:59:57.022 T:123145515675648   DEBUG: FEATURE [ start ] on game.controller.default released
17:59:57.088 T:123145515675648   DEBUG: BUTTON [ 0 ] on "PLAYSTATION(R)3 Controller" pressed
17:59:57.089 T:123145515675648   DEBUG: FEATURE [ back ] on game.controller.default pressed (ignored)
17:59:57.089 T:123145515675648   DEBUG: FEATURE [ keypad2 ] on game.controller.colecovision pressed (ignored)

When I go into advanced settings > Controls, the coleco controller shows 'Nothing to Map' rather than any configurable buttons

invalid conversion from ‘int’ to ‘JOYSTICK_DRIVER_PRIMITIVE_TYPE’

Using peripherial.joystick 1.2.1 and Kodi 17:
/var/tmp/portage/media-plugins/kodi-peripheral-joystick-1.2.1/work/peripheral.joystick-1.2.1/src/buttonmapper/ButtonMapTranslator.cpp: In static member function ‘static ADDON::DriverPrimitive JOYSTICK::ButtonMapTranslator::ToDriverPrimitive(const string&, JOYSTICK_DRIVER_PRIMITIVE_TYPE)’: /var/tmp/portage/media-plugins/kodi-peripheral-joystick-1.2.1/work/peripheral.joystick-1.2.1/src/buttonmapper/ButtonMapTranslator.cpp:100:53: error: invalid conversion from ‘int’ to ‘JOYSTICK_DRIVER_PRIMITIVE_TYPE’ [-fpermissive] primitive = ADDON::DriverPrimitive(std::atoi(strPrimitive.substr(1).c_str()), dir); ^ In file included from /var/tmp/portage/media-plugins/kodi-peripheral-joystick-1.2.1/work/peripheral.joystick-1.2.1/src/buttonmapper/ButtonMapTranslator.h:22:0

Originally reported at https://bugs.gentoo.org/show_bug.cgi?id=612074

Picade-HAT from Pimoroni not being detected by Kodi 17+

After Trying to Edit the Keymappings in multiple locations I am hitting a dead end.
The Picade-HAT acts like a keyboard and emulates keyboard commands, and for some reason its just totally inactive in Kodi.

I am assuming it needs a config file or a Profile.

I have tried the cat /proc/bus/input/devices and the Device Name is shown as "Picade-HAT" and I have tried to add this device to all the keymappings I could find.

Still no luck.

when I try to map any of the buttons or axis in Kodi it just fails to see the Picade at all. :-(

PS4 controller blocks screensaver

I've noticed that when my PS4 controller is on, my Kodi screensaver never gets triggered. I use the Picture Slideshow Screensaver, but I verified this with the Dim screensaver as well. If I leave my PS4 controller on and just put it down somewhere, it should not generate any input, so my screensaver should be triggered after the configured amount of time. However, this doesn't happen.

If the PS4 controller is off, the screensaver gets triggered normally. If you then turn the PS4 controller on, the screensaver is exited right away, even if the controller was left untouched after pressing the On button. Note that this behavior, exiting the screensaver right away, was not consistent across different versions of the linux kernel (presumably through some driver changes). It does exit the screensaver in kernel 4.13. The behavior where the screensaver no longer gets triggered, was consistent for all recent versions of the linux kernel.

Note that I only have a PS4 and PS4v2 controller. This problem occurs with both of them, but I do not know if this problem could also affect other controllers.

Environment
Debian Unstable (linux kernel 4.13)
Kodi self-compiled from 17.4-Krypton tagged source
peripheral.joystick self-compiled from v1.3.2 tagged source

Reproduction 1

  • Configure Kodi screensaver to enable after 1min
  • Turn on PS4 controller (assumes controller is already configured for this Kodi instance)
  • Wait more than 1 minute without touching any input device (including the controller)
    • Notice that the screensaver didn't start

Reproduction 2

  • Configure Kodi screensaver to enable after 1min
  • Wait more than 1 minute without touching any input device
    • Notice that the screensaver was started
  • Turn on PS4 controller (assumes controller is already configured for this Kodi instance)
    • Notice that the screensaver exited

Log
I'm not exactly sure which logging I should provide. I couldn't really find anything that seemed directly related to this. I did find this in my kodi.log file, which may be related:

11:19:17.965 T:139985304921856    INFO: AddOnLog: Joystick Support: Initialized joystick 4: "Wireless Controller", axes: 8, hats: 0, buttons: 13
11:19:17.965 T:139985304921856    INFO: AddOnLog: Joystick Support: Initialized joystick 5: "Wireless Controller Motion Sensors", axes: 6, hats: 0, buttons: 0
11:19:17.965 T:139985304921856   DEBUG: GetMappingForDevice - device (0000:0000) mapped to  (type = joystick)
11:19:17.966 T:139985304921856   DEBUG: AddOnLog: Joystick Support: Loaded device "Wireless Controller" with 8 controller profiles and 106 total features
11:19:17.970 T:139985304921856   DEBUG: Initialise - initialised peripheral on 'peripheral.joystick/4' with 1 features and 0 sub devices
11:19:17.970 T:139985304921856  NOTICE: Register - new joystick device registered on addon->peripheral.joystick/4: Wireless Controller
11:19:17.970 T:139985304921856   DEBUG: GetMappingForDevice - device (0000:0000) mapped to  (type = joystick)
11:19:17.974 T:139985304921856   DEBUG: Failed to load button map for "Wireless Controller Motion Sensors"
11:19:17.976 T:139985304921856   DEBUG: Previous line repeats 1 times.
11:19:17.976 T:139985304921856   DEBUG: Initialise - initialised peripheral on 'peripheral.joystick/5' with 1 features and 0 sub devices
11:19:17.976 T:139985304921856  NOTICE: Register - new joystick device registered on addon->peripheral.joystick/5: Wireless Controller Motion Sensors

It seems like the controller is recognized as 2 devices, the second one being for the motion sensors. I've had this problem since before this was ever the case, but it might be relevant now. Maybe the motion sensors are always providing input, even if the controller is stationary. Or maybe it just needs to be handled differently than normal controller input (or just ignored entirely, if it's not useful for Kodi).

Problem with axes on udev

I have a Sony Playstation 4 controller which I'm using over Bluetooth. On Kodi 17-beta1, it worked correctly, but on Kodi 17-beta2 it would not work correctly. The difference seems to be that the provider on beta1 is "linux" and on beta2 it's "udev".

Specifically, using "udev" it seems like the normal buttons work correctly, but the analog buttons, meaning the axes, do not. It seems like udev recognizes only 8 axes, while there are supposed to be 18. This results in not being able to use the left and right joystick, but it also seems like some of these axes are "stuck" which causes it to continuously scroll or increase the volume. Since not all axes have a 0 value in their idle state, and there's an accelerometer which has constantly changing value, I think this is caused by the incorrect recognition of the axes.

I've added the xml files that were created with each of these versions. The 14b_18a one works correctly, and the 14b_8a one does not.
udev joystick issue.zip

I hope this can be fixed since I can't upgrade to beta2 because of this.

Swapped buttons in default buttonmaps for NES and SNES

For a reference the discussion started here:
kodi-game/game.libretro.genplus#12

The problem is that currently when you map a new controller for the Kodi's default controller profile (game.controller.default), the translation to the NES and SNES controllers have swapped buttons (because of the swapped "A"<->"B" on the SNES when compared to the Xbox controller).

After discussing this in the forum, the conclusion is that we should preserve the original ergonomy of the layout rather than preserve button names by default:
https://forum.kodi.tv/showthread.php?tid=173361&pid=3138392#pid3138392

@garbear then point me to the right place where the problem comes from:

When a controller is connected, peripheral.joystick loads all button maps. If any button map can provide a mapping between two controllers in either direction, it is used. If there are multiple mappings to choose from, they're sorted and the most popular map is chosen.

After looking through the current maps and playing a little with them, I've found out that the default mapping is currently very chaotic. There is no single place to change the default controller to controller mapping, because all maps affects the behavior. It depends on how many times the specific mapping occurs in the pack of all buttonmaps.

So the first question is: Is this really the best way to do this? (I mean this part: "If there are multiple mappings to choose from, they're sorted and the most popular map is chosen.").

  • It is hard to manage the existing buttonmaps.
  • I've seen that there are maps for non-existing controller profiles (search for game.controller.genesis - there is no such profile, probably was renamed to game.controller.genesis.6button, but it was not updated in all the buttonmaps).
  • There is no single place to change the default controller to controller mapping.
  • There is no single place to add a mapping for a new profile (game.controller.genesis.3button).
  • Adding of a new buttonmap for some obscure controller can change the default behavior for all (because it can suddenly become "the most popular").
  • I've seen that lately upon updating a mapping for a single controller the part for other profiles gets removed (c4efbe2). Such change can affect the default behavior for all as well.

So maybe we could only keep buttonmaps for the game.controller.default (as seen in c4efbe2) and then specify only one implicit mapping from the game.controller.default to other profiles?
Or maybe we can keep the support for other profiles in the buttonmaps and use it only for some specific controllers, but change the fallback algorithm from finding "the most popular mapping" to "use one specific default mapping from the game.controller.default to all other known profiles"? And then we can remove the other controller profiles from buttonmaps where it is not needed (as seen in c4efbe2).

Verion # incompatible with Kodi despite release numbers matching

tldr: suspect something similar to #184 has occured again for latest Kodi release.
2023-01-16 09:20:33.634 T:7448 error <general>: Add-on 'peripheral.joystick' is not compatible with Kodi 2023-01-16 09:20:33.635 T:7448 debug <general>: CAddonMgr: DisabledReason for peripheral.joystick updated to 2

Updated kodi this morning
*@pop-os:~$ kodi --version Kodi Media Center 20.0 (20.0.0) Git:20230115-389e701cb9 Copyright (C) 2005-2021 Team Kodi - http://kodi.tv
Launched kodi, got a pop-op saying the add-on is not compatible with this verion of kodi, currently installed version of peripheral.joystick is 19.0.3, running the aeon-trao skin (not sure if that affects things)

restarting, forcing and auto-updating do not work, have not tried manually compiling and adding the latest release

some snippets from 'kodi --debug --logging=console' where i navigated to addons and then attempted to enabled the peripheraal.joystick add-on later cancled ctrl^c in terminal in a rush...

2023-01-16 09:20:12.615 T:7448    debug <general>: CAddonInfoBuilder::ParseXMLTypes: Binary addon found: screensaver.xbmc.builtin.dim
2023-01-16 09:20:12.616 T:7448    debug <general>: CAddonInfoBuilder::ParseXMLTypes: Binary addon found: peripheral.joystick
2023-01-16 09:20:12.618 T:7448    debug <general>: CAddonMgr::FindAddons: Addon 'metadata.common.fanart.tv' already present with version 3.6.3 at '/usr/share/kodi/addons/metadata.common.fanart.tv/' replaced with version 3.6.4 at '/home/mar/.kodi/addons/metadata.common.fanart.tv/'
2023-01-16 09:20:12.619 T:7448    debug <general>: CAddonMgr::FindAddons: Addon 'service.xbmc.versioncheck' already present with version 0.5.19+matrix.1 at '/usr/share/kodi/addons/service.xbmc.versioncheck/' replaced with version 0.5.25+matrix.1 at '/home/mar/.kodi/addons/service.xbmc.versioncheck/'
2023-01-16 09:20:12.620 T:7448  warning <general>: CAddonMgr::FindAddons: Addon 'game.controller.default' already present with higher version 1.0.35 at '/usr/share/kodi/addons/game.controller.default/' - other version 1.0.31 at '/home/mar/.kodi/addons/game.controller.default/' will be ignored
2023-01-16 09:20:12.620 T:7448    debug <general>: CAddonMgr::FindAddons: Addon 'metadata.tvshows.themoviedb.org.python' already present with version 1.6.0 at '/usr/share/kodi/addons/metadata.tvshows.themoviedb.org.python/' replaced with version 1.6.3 at '/home/mar/.kodi/addons/metadata.tvshows.themoviedb.org.python/'

2023-01-16 09:20:12.631 T:7448     info <general>: CAddonMgr::FindAddons: metadata.tvshows.themoviedb.org v3.5.14 installed
2023-01-16 09:20:12.631 T:7448     info <general>: CAddonMgr::FindAddons: metadata.tvshows.themoviedb.org.python v1.6.3 installed
2023-01-16 09:20:12.631 T:7448     info <general>: CAddonMgr::FindAddons: peripheral.joystick v19.0.3 installed
2023-01-16 09:20:12.631 T:7448     info <general>: CAddonMgr::FindAddons: plugin.audio.kxmxpxtx.bandcamp v0.4.1+matrix.1 installed
2023-01-16 09:20:12.631 T:7448     info <general>: CAddonMgr::FindAddons: plugin.program.autocompletion v2.1.2 installed
2023-01-16 09:20:12.924 T:7448     info <general>: GL: Enabling VSYNC
2023-01-16 09:20:12.930 T:7448     info <general>: load keymapping
2023-01-16 09:20:12.931 T:7448     info <general>: Loading special://xbmc/system/keymaps/appcommand.xml
2023-01-16 09:20:12.931 T:7448     info <general>: Loading special://xbmc/system/keymaps/customcontroller.AppleRemote.xml
2023-01-16 09:20:12.931 T:7448     info <general>: Loading special://xbmc/system/keymaps/customcontroller.Harmony.xml
2023-01-16 09:20:12.931 T:7448     info <general>: Loading special://xbmc/system/keymaps/customcontroller.SiriRemote.xml
2023-01-16 09:20:12.931 T:7448     info <general>: Loading special://xbmc/system/keymaps/gamepad.xml
2023-01-16 09:20:12.932 T:7448     info <general>: Loading special://xbmc/system/keymaps/joystick.xml
2023-01-16 09:20:12.932 T:7448     info <general>: Loading special://xbmc/system/keymaps/keyboard.xml
2023-01-16 09:20:12.933 T:7448     info <general>: Loading special://xbmc/system/keymaps/mouse.xml
2023-01-16 09:20:12.933 T:7448     info <general>: Loading special://xbmc/system/keymaps/remote.xml
2023-01-16 09:20:12.933 T:7448     info <general>: Loading special://xbmc/system/keymaps/touchscreen.xml
2023-01-16 09:20:18.218 T:7448    debug <general>: ------ Window Init (AddonBrowser.xml) ------
2023-01-16 09:20:18.218 T:7448     info <general>: Loading skin file: AddonBrowser.xml, load type: KEEP_IN_MEMORY
2023-01-16 09:20:18.222 T:7448    debug <general>: CGUIMediaWindow::GetDirectory (addons://)
2023-01-16 09:20:18.222 T:7448    debug <general>:   ParentPath = []
2023-01-16 09:20:18.222 T:7448    debug <general>: CAddonDatabase: SELECT repo.id FROM repo .. took 0 ms
2023-01-16 09:20:18.227 T:7448    debug <general>: CAddonDatabase: query  SELECT addons.*, repo.addonID AS repoID FROM addons JOIN addonlinkrepo ON addons.id=addonlinkrepo.idAddon JOIN repo ON repo.id=addonlinkrepo.idRepo WHERE addonlinkrepo.idRepo IN (1) ORDER BY repo.addonID, addons.addonID returned 724 rows in 4 ms
2023-01-16 09:20:18.259 T:7448    debug <general>: CAddonDatabase::GetAddons took 36 ms
2023-01-16 09:20:18.260 T:7448    debug <general>: ADDONS: repository.xbmc.org - 724 addon(s) loaded
2023-01-16 09:20:18.261 T:7448    debug <general>: CAddonRepos::BuildUpdateOrOutdatedList: Building update list from installed add-ons
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = audioencoder.kodi.builtin.aac / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.2
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = audioencoder.kodi.builtin.wma / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.2
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = context.embuary.info / Origin = repository.xbmc.org / Version = 2.0.0
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = game.controller.default / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.35
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = game.controller.keyboard / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.1.26
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = game.controller.mouse / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.19
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = game.controller.snes / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.34
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = inputstream.adaptive / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 20.3.1
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.album.universal / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.1.9
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.albums.theaudiodb.com / Origin = repository.xbmc.org / Version = 1.2.3
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.artists.theaudiodb.com / Origin = repository.xbmc.org / Version = 1.1.2
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.artists.universal / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 4.3.10
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.allmusic.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.2
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.fanart.tv / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.6.4
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.imdb.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.7
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.musicbrainz.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.2.4
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.theaudiodb.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.0.3
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.common.themoviedb.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.18
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.generic.albums / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.14
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.generic.artists / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.14
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.local / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.1
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.themoviedb.org.python / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.0.0
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.tvdb.com.python / Origin = repository.xbmc.org / Version = 1.0.3
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.tvshows.themoviedb.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.5.14
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = metadata.tvshows.themoviedb.org.python / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.6.3
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = peripheral.joystick / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 19.0.3
2023-01-16 09:20:18.261 T:7448    debug <general>: ADDONS: update check: addonID = plugin.audio.kxmxpxtx.bandcamp / Origin = repository.xbmc.org / Version = 0.4.1+matrix.1
2023-01-16 09:20:20.015 T:7505    debug <general>: CAddonDatabase::GetAddons took 21 ms
2023-01-16 09:20:20.016 T:7505    debug <general>: ADDONS: repository.xbmc.org - 724 addon(s) loaded
2023-01-16 09:20:20.017 T:7505    debug <general>: CAddonRepos::BuildAddonsWithUpdateList: Building combined addons-with-update map from installed add-ons
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = audioencoder.kodi.builtin.aac / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.2
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = audioencoder.kodi.builtin.wma / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.2
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = context.embuary.info / Origin = repository.xbmc.org / Version = 2.0.0
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = game.controller.default / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.35
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = game.controller.keyboard / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.1.26
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = game.controller.mouse / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.19
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = game.controller.snes / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.34
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = inputstream.adaptive / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 20.3.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.album.universal / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.1.9
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.albums.theaudiodb.com / Origin = repository.xbmc.org / Version = 1.2.3
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.artists.theaudiodb.com / Origin = repository.xbmc.org / Version = 1.1.2
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.artists.universal / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 4.3.10
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.allmusic.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.2
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.fanart.tv / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.6.4
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.imdb.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.7
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.musicbrainz.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.2.4
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.theaudiodb.com / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.0.3
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.common.themoviedb.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.2.18
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.generic.albums / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.14
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.generic.artists / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.14
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.local / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.0.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.themoviedb.org.python / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 2.0.0
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.tvdb.com.python / Origin = repository.xbmc.org / Version = 1.0.3
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.tvshows.themoviedb.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.5.14
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = metadata.tvshows.themoviedb.org.python / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 1.6.3
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = peripheral.joystick / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 19.0.3
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.audio.kxmxpxtx.bandcamp / Origin = repository.xbmc.org / Version = 0.4.1+matrix.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.program.autocompletion / Origin = repository.xbmc.org / Version = 2.1.2
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.video.esa / Origin = repository.xbmc.org / Version = 1.3.0+matrix.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.video.eso / Origin = repository.xbmc.org / Version = 1.3.0+matrix.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.video.nasa / Origin = repository.xbmc.org / Version = 3.0.3+matrix.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.video.nhlgcl / Origin = repository.xbmc.org / Version = 2022.11.29+matrix.1
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = plugin.video.themoviedb.helper / Origin = repository.xbmc.org / Version = 4.10.14
2023-01-16 09:20:20.017 T:7505    debug <general>: ADDONS: update check: addonID = repository.xbmc.org / Origin = b6a50484-93a0-4afb-a01c-8d17e059feda / Version = 3.3.1
2023-01-16 09:20:27.863 T:7448    debug <general>: HandleKey: return (0xf00d) pressed, window 10040, action is Select
2023-01-16 09:20:27.863 T:7448    debug <general>: SetItem - Addon with id peripheral.joystick not found locally.
2023-01-16 09:20:27.863 T:7448    debug <general>: ------ Window Init (DialogAddonInfo.xml) ------
2023-01-16 09:20:27.863 T:7448     info <general>: Loading skin file: DialogAddonInfo.xml, load type: KEEP_IN_MEMORY
2023-01-16 09:20:29.887 T:7448    debug <general>: Keyboard: scancode: 0x74, sym: 0x112, unicode: 0x00, modifier: 0x0
2023-01-16 09:20:29.887 T:7448    debug <general>: HandleKey: down (0xf081) pressed, window 10146, action is Down
2023-01-16 09:20:30.011 T:7448    debug <general>: Keyboard: scancode: 0x74, sym: 0x112, unicode: 0x00, modifier: 0x0
2023-01-16 09:20:30.178 T:7448    debug <general>: Keyboard: scancode: 0x74, sym: 0x112, unicode: 0x00, modifier: 0x0
2023-01-16 09:20:30.178 T:7448    debug <general>: HandleKey: down (0xf081) pressed, window 10146, action is Down
2023-01-16 09:20:30.229 T:7448    debug <general>: Keyboard: scancode: 0x74, sym: 0x112, unicode: 0x00, modifier: 0x0
2023-01-16 09:20:33.551 T:7448    debug <general>: Keyboard: scancode: 0x24, sym: 0x0d, unicode: 0x0d, modifier: 0x0
2023-01-16 09:20:33.634 T:7448    debug <general>: Keyboard: scancode: 0x24, sym: 0x0d, unicode: 0x00, modifier: 0x0
2023-01-16 09:20:33.634 T:7448    debug <general>: HandleKey: return (0xf00d) pressed, window 10146, action is Select
2023-01-16 09:20:33.634 T:7448    error <general>: Add-on 'peripheral.joystick' is not compatible with Kodi
2023-01-16 09:20:33.635 T:7448    debug <general>: CAddonMgr: DisabledReason for peripheral.joystick updated to 2
2023-01-16 09:20:33.640 T:7448    debug <general>: ------ Window Init (DialogNotification.xml) ------
2023-01-16 09:20:39.438 T:7448    debug <general>: Keyboard: scancode: 0x25, sym: 0x132, unicode: 0x00, modifier: 0x40
2023-01-16 09:20:39.438 T:7448    debug <general>: HandleKey: ctrl-leftctrl (0x1f0d0) pressed, window 10146, action is 
2023-01-16 09:20:39.605 T:7448    debug <general>: Keyboard: scancode: 0x85, sym: 0x137, unicode: 0x00, modifier: 0x40
2023-01-16 09:20:39.605 T:7448    debug <general>: HandleKey: ctrl-leftwindows (0x1f0d6) pressed, window 10146, action is 
2023-01-16 09:20:47.248 T:7448    debug <general>: ------ Window Deinit (DialogNotification.xml) ------
2023-01-16 09:20:56.378 T:7463    debug <general>: Thread JobWorker 139752982758976 terminating (autodelete)
2023-01-16 09:20:56.378 T:7460    debug <general>: Thread JobWorker 139753312908864 terminating (autodelete)
2023-01-16 09:20:56.378 T:7462    debug <general>: Thread JobWorker 139752991151680 terminating (autodelete)
2023-01-16 09:20:56.380 T:7496    debug <general>: Thread JobWorker 139751000634944 terminating (autodelete)
2023-01-16 09:21:47.621 T:7451    debug <general>: Sink changed
2023-01-16 09:21:52.628 T:7451    debug <general>: Sink changed
2023-01-16 09:23:21.978 T:7448    debug <general>: ------ Window Init (Pointer.xml) ------
2023-01-16 09:23:22.234 T:7448    debug <general>: ------ Window Deinit (Pointer.xml) ------
2023-01-16 09:23:22.267 T:7448    debug <general>: ------ Window Init (Pointer.xml) ------
2023-01-16 09:23:22.465 T:7448    debug <general>: ------ Window Deinit (Pointer.xml) ------
2023-01-16 09:23:24.060 T:7448    debug <general>: ------ Window Init (Pointer.xml) ------
2023-01-16 09:23:29.105 T:7448    debug <general>: ------ Window Deinit (Pointer.xml) ------
2023-01-16 09:23:47.110 T:7478    debug <general>: [ script.embuary.helper ] Start new fanart grabber process
2023-01-16 09:23:47.134 T:7478    debug <general>: GetArtistsByWhereJSON query: SELECT a1.*, art.art_id AS idArt, art.type AS artType, art.url AS artURL FROM (SELECT artist.idArtist, strArtist FROM artist  WHERE (EXISTS (SELECT 1 FROM song_artist WHERE song_artist.idArtist = artist.idArtist AND song_artist.idRole = 1) OR EXISTS (SELECT 1 FROM album_artist WHERE album_artist.idArtist = artist.idArtist)) AND (artist.strArtist != '') ORDER BY RANDOM() LIMIT 40) AS a1 LEFT JOIN art ON art.media_id = a1.idArtist AND art.media_type = 'artist' GROUP BY a1.idArtist, art.art_id ORDER BY a1.idArtist, arttype
2023-01-16 09:23:47.135 T:7478    debug <general>: GetArtistsByWhereJSON - query took 0 ms
2023-01-16 09:20:18.259 T:7448    debug <general>: CAddonDatabase::GetAddons took 36 ms
202^C
*@pop-os:~$ 2023-01-16 09:26:47.531 T:7448     info <general>: Quitting due to POSIX signal

wrong release name

Pls use in the future the default kodi naming pattern, that would make distro packaging a lot easier.

v1.4.7 -> 1.4.7-Leia

Compilation broken after https://github.com/xbmc/xbmc/pull/12675

After xbmc/xbmc#12675 was merged it's no longer possible to build peripheral.joystick,
gcc-7.2 output:

In file included from src/peripheral.joystick/src/addon.cpp:23:0:
src/peripheral.joystick/src/addon.h:29:7: warning: ‘CPeripheralJoystick’ declared with greater visibility than the type of its field ‘CPeripheralJoystick::<anonymous>’ [-Wattributes]
 class CPeripheralJoystick
       ^~~~~~~~~~~~~~~~~~~
src/peripheral.joystick/src/addon.h:29:7: warning: ‘CPeripheralJoystick’ declared with greater visibility than its base ‘kodi::addon::CAddonBase’ [-Wattributes]
src/peripheral.joystick/src/addon.cpp: In member function ‘virtual bool CPeripheralJoystick::SendEvent(const PERIPHERAL_EVENT*)’:
src/peripheral.joystick/src/addon.cpp:146:56: error: no matching function for call to ‘JOYSTICK::CJoystickManager::SendEvent(const PERIPHERAL_EVENT&)’
     bHandled = CJoystickManager::Get().SendEvent(*event);
                                                        ^
In file included from src/peripheral.joystick/src/addon.cpp:26:0:
src/peripheral.joystick/src/api/JoystickManager.h:132:10: note: candidate: bool JOYSTICK::CJoystickManager::SendEvent(const kodi::addon::PeripheralEvent&)
     bool SendEvent(const kodi::addon::PeripheralEvent& event);
          ^~~~~~~~~
src/peripheral.joystick/src/api/JoystickManager.h:132:10: note:   no known conversion for argument 1 from ‘const PERIPHERAL_EVENT’ to ‘const kodi::addon::PeripheralEvent&’
CMakeFiles/peripheral.joystick.dir/build.make:62: recipe for target 'CMakeFiles/peripheral.joystick.dir/src/addon.cpp.o' failed
make[3]: *** [CMakeFiles/peripheral.joystick.dir/src/addon.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from src/peripheral.joystick/src/storage/StorageManager.cpp:31:0:
src/peripheral.joystick/src/addon.h:29:7: warning: ‘CPeripheralJoystick’ declared with greater visibility than the type of its field ‘CPeripheralJoystick::<anonymous>’ [-Wattributes]
 class CPeripheralJoystick
       ^~~~~~~~~~~~~~~~~~~
src/peripheral.joystick/src/addon.h:29:7: warning: ‘CPeripheralJoystick’ declared with greater visibility than its base ‘kodi::addon::CAddonBase’ [-Wattributes]

Joystick Support not compatible with latest PPA Kodi version 19.0-ALPHA1 (18.9.701)

Hi,

I recently installed the latest Kodi version (Matrix - 19.0-ALPHA1 (18.9.701)) on Ubuntu-Mate 20.04.1 from the PPA according to the Kodi instructions, and I'm trying to get my PS4 controller to work. But when I try to enable the joystick support plugin, I get the error that the Joystick Support add-on in not compatible with my version of Kodi. I see that the add-on version installed with my version of Kodi is 1.5.2. But I can see here that there is a 1.6 version available, but when I try to run the update from inside Kodi it says that not updates are available.

Am I missing something obvious? How can I get Kodi to pick up the new version of this add-on and install it? Is there something else going wrong?

Thanks so much for you great work! :)
John

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.