我有一个便宜的 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;
}