mirror of
https://github.com/libretro/RetroArch
synced 2024-12-27 15:29:23 +00:00
52 lines
2.1 KiB
C
52 lines
2.1 KiB
C
#include <shake.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
|
|
void deviceInfo(Shake_Device *device)
|
|
{
|
|
printf("\nDevice #%d\n", Shake_DeviceId(device));
|
|
printf(" Name: %s\n", Shake_DeviceName(device));
|
|
printf(" Adjustable gain: %s\n", Shake_QueryGainSupport(device) ? "yes" : "no");
|
|
printf(" Adjustable autocenter: %s\n", Shake_QueryAutocenterSupport(device) ? "yes" : "no");
|
|
printf(" Effect capacity: %d\n", Shake_DeviceEffectCapacity(device));
|
|
printf(" Supported effects:\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_RUMBLE)) printf(" SHAKE_EFFECT_RUMBLE\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_PERIODIC))
|
|
{
|
|
printf(" SHAKE_EFFECT_PERIODIC\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_SQUARE)) printf(" * SHAKE_PERIODIC_SQUARE\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_TRIANGLE)) printf(" * SHAKE_PERIODIC_TRIANGLE\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_SINE)) printf(" * SHAKE_PERIODIC_SINE\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_SAW_UP)) printf(" * SHAKE_PERIODIC_SAW_UP\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_SAW_DOWN)) printf(" * SHAKE_PERIODIC_SAW_DOWN\n");
|
|
if (Shake_QueryWaveformSupport(device, SHAKE_PERIODIC_CUSTOM)) printf(" * SHAKE_PERIODIC_CUSTOM\n");
|
|
}
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_CONSTANT)) printf(" SHAKE_EFFECT_CONSTANT\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_SPRING)) printf(" SHAKE_EFFECT_SPRING\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_FRICTION)) printf(" SHAKE_EFFECT_FRICTION\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_DAMPER)) printf(" SHAKE_EFFECT_DAMPER\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_INERTIA)) printf(" SHAKE_EFFECT_INERTIA\n");
|
|
if (Shake_QueryEffectSupport(device, SHAKE_EFFECT_RAMP)) printf(" SHAKE_EFFECT_RAMP\n");
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int numDevices;
|
|
int i;
|
|
|
|
Shake_Init();
|
|
numDevices = Shake_NumOfDevices();
|
|
printf("Detected devices: %d\n", numDevices);
|
|
|
|
for (i = 0; i < numDevices; ++i)
|
|
{
|
|
Shake_Device *device = Shake_Open(i);
|
|
deviceInfo(device);
|
|
Shake_Close(device);
|
|
}
|
|
|
|
Shake_Quit();
|
|
|
|
return 0;
|
|
}
|