Как определить игровой контроллер для SDL2 в Ubuntu?

Для тех, у кого гибридные системы (ATI / intel) и fglrx перестали работать в 12.10, проблема может быть такой, как описанная здесь (несовместимость fglrx с последней версией драйвера intel): https: // bugs .launchpad.net / ubuntu / + source / fglrx-installer-updates / + bug / 1068404

Я бы предположил, что это

Удалите все пакеты fglrx *:
sudo apt-get purge fglrx*
Добавьте мой PPA в список репозиториев: sudo add-apt-repository ppa: andrikos Обновите информацию о вашем пакете:
sudo apt-get update 
Обновите драйверы fglrx и intel:
sudo apt-get install fglrx xserver-xorg-video-intel
Не забудьте включить драйвер fglrx
sudo aticonfig --initial --force
1
задан 19 November 2013 в 03:04

2 ответа

GUID - это идентификатор SDL2, нет прямого способа получить его с помощью системного инструмента. GUID создается путем сбрасывания номеров шин, поставщиков, продуктов и версий в одно значение, вы можете увидеть его здесь:

http://hg.libsdl.org/SDL/file/a9d1c47bb1aa/src /joystick/linux/SDL_sysjoystick.c#l117

Один из способов получить это, прочитав его из SDL. Следующая программа делает это с помощью:

gcc -o sdl2-joystick sdl2-joystick.c `pkg-config --libs --cflags sdl2`

Сохраните следующее как sdl2-joystick.c:

#include <SDL.h>

int main()
{
  SDL_Init(SDL_INIT_JOYSTICK);
  atexit(SDL_Quit);

  int num_joysticks = SDL_NumJoysticks();
  int i;
  for(i = 0; i < num_joysticks; ++i)
  {
    SDL_Joystick* js = SDL_JoystickOpen(i);
    if (js)
    {
      SDL_JoystickGUID guid = SDL_JoystickGetGUID(js);
      char guid_str[1024];
      SDL_JoystickGetGUIDString(guid, guid_str, sizeof(guid_str));
      const char* name = SDL_JoystickName(js);

      int num_axes = SDL_JoystickNumAxes(js);
      int num_buttons = SDL_JoystickNumButtons(js);
      int num_hats = SDL_JoystickNumHats(js);
      int num_balls = SDL_JoystickNumBalls(js);

      printf("%s \"%s\" axes:%d buttons:%d hats:%d balls:%d\n", 
             guid_str, name,
             num_axes, num_buttons, num_hats, num_balls);

      SDL_JoystickClose(js);
    }
  }

  return 0;
}
1
ответ дан 24 May 2018 в 16:07
  • 1
    Спасибо, это работает, и, конечно же, вы правы в том, что UUID является специфическим значением SDL2. Разработчики из DF должны учитывать включение мастера конфигурации в своих играх вместо «аутсорсинга». эта задача для конечного пользователя. – cprn 19 November 2013 в 03:08

Вы пробовали Steams Big Picture Mode и настраиваете свой контроллер там? Насколько я понимаю, Steam автоматически создаст конфигурацию SDL2 и передаст ее игре.

0
ответ дан 24 May 2018 в 16:07
  • 1
    Это то, что я закончил делать, однако было бы замечательно знать, как получить эту ценность на системном уровне. – cprn 30 October 2013 в 00:52

Другие вопросы по тегам:

Похожие вопросы: