diff options
Diffstat (limited to 'pkgs/list-gamecontrollers')
-rw-r--r-- | pkgs/list-gamecontrollers/default.nix | 10 | ||||
-rw-r--r-- | pkgs/list-gamecontrollers/list-gc.c | 31 |
2 files changed, 41 insertions, 0 deletions
diff --git a/pkgs/list-gamecontrollers/default.nix b/pkgs/list-gamecontrollers/default.nix new file mode 100644 index 00000000..c207d2eb --- /dev/null +++ b/pkgs/list-gamecontrollers/default.nix @@ -0,0 +1,10 @@ +{ runCommand, pkgconfig, SDL2 }: + +runCommand "list-gamecontrollers" { + buildInputs = [ pkgconfig SDL2 ]; +} '' + mkdir -p "$out/bin" + gcc -Werror "${./list-gc.c}" \ + $(pkg-config --libs --cflags sdl2) \ + -o "$out/bin/list-gamecontrollers" +'' diff --git a/pkgs/list-gamecontrollers/list-gc.c b/pkgs/list-gamecontrollers/list-gc.c new file mode 100644 index 00000000..f40b7da6 --- /dev/null +++ b/pkgs/list-gamecontrollers/list-gc.c @@ -0,0 +1,31 @@ +#include <SDL.h> + +void dump_guid(SDL_Joystick *js) { + SDL_JoystickGUID guid; + const char *name; + char guidstr[33]; + + guid = SDL_JoystickGetGUID(js); + name = SDL_JoystickName(js); + SDL_JoystickGetGUIDString(guid, guidstr, sizeof(guidstr)); + + printf("%s: %s\n", name, guidstr); +} + +int main() +{ + int i; + SDL_Joystick *js; + + SDL_Init(SDL_INIT_JOYSTICK); + atexit(SDL_Quit); + + for (i = 0; i < SDL_NumJoysticks(); ++i) { + if ((js = SDL_JoystickOpen(i)) != NULL) { + dump_guid(js); + SDL_JoystickClose(js); + } + } + + return EXIT_SUCCESS; +} |