Linux上的SDL是否支持多个游戏手柄/游戏杆?

wreckgar23

我有一个便宜的PS3控制器和一个NEO-GEO X控制器。它们都在例如上被检测到。Fedora 20和Lubuntu 14.04。它们出现在lsusb中

Bus 001 Device 012: ID 0e8f:0003 GreenAsia Inc. MaxFire Blaze2
Bus 001 Device 016: ID 1292:4e47 Innomedia

设备显示在下方/dev/input在它们上运行udevadm都表明GreenAsia设备使用pantherlord驱动程序,而另一设备使用hid-generic

如果我运行以下测试代码,则SDL仅报告GreenAsia设备。如果我将其拔出,则将检测到其他设备。这是SDL的已知限制还是其他一些问题?

// from http://www.libsdl.org/release/SDL-1.2.15/docs/html/guideinput.html
#include "SDL/SDL.h"

int main () {
    if (SDL_Init( SDL_INIT_VIDEO | SDL_INIT_JOYSTICK ) < 0)
    {
        fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
        exit(1);
    }
    printf("%i joysticks were found.\n\n", SDL_NumJoysticks() );
    printf("The names of the joysticks are:\n");

    for( int i=0; i < SDL_NumJoysticks(); i++ ) 
    {
        printf("    %s\n", SDL_JoystickName(i));
    }
   return 0;
}
wreckgar23

如果只有一个操纵杆映射到设备/dev/input/event13或类似设备,则我的问题的答案似乎为“否” ,在我的情况下,这就是我的PS3控制器发生的情况。

SDL_SYS_JoystickInit有下面的代码

#if SDL_INPUT_LINUXEV
        /* This is a special case...
           If the event devices are valid then the joystick devices
           will be duplicates but without extra information about their
           hats or balls. Unfortunately, the event devices can't
           currently be calibrated, so it's a win-lose situation.
           So : /dev/input/eventX = /dev/input/jsY = /dev/jsY
        */
        if ( (i == 0) && (numjoysticks > 0) )
            break;
#endif

i为0时,它正在寻找“事件”设备。我的PS3控制器获取设备/dev/input/event13/dev/input/js1,但我的NEO-GEO X控制器仅包含该设备/dev/input/js0,因此从循环中断开会导致其被忽略。

在这种情况下,一种解决方法是将没有相应“事件”设备的设备添加到 SDL_JOYSTICK_DEVICE

感谢Brian McFarland的帮助,以帮助您深入浅出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux上的SDL是否支持多个游戏手柄/游戏杆?

来自分类Dev

如何配置游戏杆或游戏手柄?

来自分类Dev

Three.js中的操纵杆,游戏手柄或3D鼠标支持

来自分类Dev

如何配置操纵杆或游戏手柄?

来自分类Dev

游戏忽略了游戏手柄的设置

来自分类Dev

Linux游戏手柄-无输入事件

来自分类Dev

您可以在Windows中将PS3控制器用作游戏手柄/游戏杆吗?

来自分类Dev

游戏手柄如何控制鼠标?

来自分类Dev

如何使用游戏手柄?

来自分类Dev

如何使用游戏手柄?

来自分类Dev

游戏手柄如何控制鼠标?

来自分类Dev

Android Read USB游戏手柄

来自分类Dev

游戏手柄菜单导航编程

来自分类Dev

检测 Xbox 以外的游戏手柄

来自分类Dev

SteamPlay Elite Dangerous - 将 Logitech Extreme 3D Pro 操纵杆识别为“通用游戏手柄”

来自分类Dev

将游戏手柄上的轴重新映射到Ubuntu上的按钮

来自分类Dev

我可以在Unity3d中使用多个游戏手柄吗?

来自分类Dev

如何在Linux系统中直接处理来自角色设备/游戏手柄的输入?

来自分类Dev

如何使用pyusb控制xbox 360游戏手柄上的LED

来自分类Dev

使用原始输入在Windows上的游戏手柄力反馈(振动)

来自分类Dev

在 Xbox 上的 UWP 应用中模拟游戏手柄输入

来自分类Dev

在LIBGDX中实现游戏手柄控制器?

来自分类Dev

在Google Dart中使用游戏手柄

来自分类Dev

如何禁用Android游戏手柄默认控件?

来自分类Dev

在LWJGL中不是游戏手柄的控制器

来自分类Dev

如何用DirectInput游戏手柄模拟XInput设备?

来自分类Dev

如何用DirectInput游戏手柄模拟XInput设备?

来自分类Dev

DragonRise USB游戏手柄无法正常工作

来自分类Dev

在LIBGDX中实现游戏手柄控制器?

Related 相关文章

热门标签

归档