16
Window / Re: Exposed Joystick Name, Product ID and Manufacturer ID
« on: February 02, 2014, 05:01:03 am »
Today I put my Linux joystick updates to the test in several Linux distros:
All of these are virtualized in VirtualBox running in a Windows 8 x64 host. For testing I've used an official wired Microsoft XBox 360 pad. On Windows I'm using the official MS driver for the pad and it's passed through to Linux via VirtualBox's USB support.
In all cases udev was installed by default. This is expected as the udev Wikipedia entry notes that udev was merged into systemd in April 2012. It also notes that some Distros like Debian (upon which Ubuntu and Mint are based) ship is separately. In my test, I did the default install for all distros and udev was present in every case so I think it safe to assume udev will be present and running on most Linux distros.
I did however need to install libudev (the development version) in order to have the udev headers. This means the Linux version of SFML will have a new dependency (to go along with pthread, freetype, etc): udev. I've updated CMake to include udev for Linux.
On Windows there was some concern about some macro magic I was doing with _UNICODE. I did some reading on this and found this StackOverflow question which lead to this blog post. The short version is the UNICODE define affects everything in the Windows headers and _UNICODE affects everything in the C runtime headers. So, in order to fully force the Windows version to Unicode both UNICODE and _UNICODE need to be defined.
I've squashed all my changes into a single commit and submitted a pull request here.
Thanks everyone for all the help!
- Ubuntu 13.10 x64
- Mint 16 Cinnamon x64
- Manjaro x64
- Fedora 20 x64
All of these are virtualized in VirtualBox running in a Windows 8 x64 host. For testing I've used an official wired Microsoft XBox 360 pad. On Windows I'm using the official MS driver for the pad and it's passed through to Linux via VirtualBox's USB support.
In all cases udev was installed by default. This is expected as the udev Wikipedia entry notes that udev was merged into systemd in April 2012. It also notes that some Distros like Debian (upon which Ubuntu and Mint are based) ship is separately. In my test, I did the default install for all distros and udev was present in every case so I think it safe to assume udev will be present and running on most Linux distros.
I did however need to install libudev (the development version) in order to have the udev headers. This means the Linux version of SFML will have a new dependency (to go along with pthread, freetype, etc): udev. I've updated CMake to include udev for Linux.
On Windows there was some concern about some macro magic I was doing with _UNICODE. I did some reading on this and found this StackOverflow question which lead to this blog post. The short version is the UNICODE define affects everything in the Windows headers and _UNICODE affects everything in the C runtime headers. So, in order to fully force the Windows version to Unicode both UNICODE and _UNICODE need to be defined.
I've squashed all my changes into a single commit and submitted a pull request here.
Thanks everyone for all the help!