Add mapping file drop support to joystick test

This commit is contained in:
Camilla Löwy 2017-12-04 03:44:58 +01:00
parent c2858e9ed7
commit df434c839a

View File

@ -85,6 +85,32 @@ static void joystick_callback(int jid, int event)
glfwRequestWindowAttention(window); glfwRequestWindowAttention(window);
} }
static void drop_callback(GLFWwindow* window, int count, const char** paths)
{
int i;
for (i = 0; i < count; i++)
{
long size;
char* text;
FILE* stream = fopen(paths[i], "rb");
if (!stream)
continue;
fseek(stream, 0, SEEK_END);
size = ftell(stream);
fseek(stream, 0, SEEK_SET);
text = malloc(size + 1);
text[size] = '\0';
if (fread(text, 1, size, stream) == size)
glfwUpdateGamepadMappings(text);
free(text);
fclose(stream);
}
}
static const char* joystick_label(int jid) static const char* joystick_label(int jid)
{ {
static char label[1024]; static char label[1024];
@ -176,6 +202,7 @@ int main(void)
} }
glfwSetJoystickCallback(joystick_callback); glfwSetJoystickCallback(joystick_callback);
glfwSetDropCallback(window, drop_callback);
while (!glfwWindowShouldClose(window)) while (!glfwWindowShouldClose(window))
{ {