/* See LICENSE file for copyright and license details. */ #include "libgamepad.h" #include #include int main(void) { char **devices; size_t ndevices, i, j, *sound_cards; ssize_t nsound_cards; struct libgamepad_superdevice device; if (libgamepad_list_superdevices(&devices, &ndevices)) { perror("libgamepad_list_superdevices"); return 1; } for (i = 0; i < ndevices; i++) { if (libgamepad_open_superdevice(&device, devices[i])) { perror("libgamepad_open_superdevice"); free(devices[i]); continue; } free(devices[i]); printf("%s\n", device.syspath); for (j = 0; j < device.ndevices; j++) printf("\t%s (%x)\n", device.devices[j]->path, device.devices[j]->type); for (j = 0; j < device.nleds; j++) printf("\t%s (LED)\n", device.leds[j]); for (j = 0; j < device.npower_supplies; j++) printf("\t%s (PSU)\n", device.power_supplies[j]); nsound_cards = libgamepad_find_sound_devices(device.syspath, &sound_cards); if (nsound_cards < 0) { perror("libgamepad_find_sound_devices"); } else { for (j = 0; j < (size_t)nsound_cards; j++) printf("\t%zu (SND)\n", sound_cards[j]); free(sound_cards); } libgamepad_close_superdevice(&device); } free(devices); return 0; }