input: dry out the queue before leave.
This commit is contained in:
22
input.cpp
22
input.cpp
@@ -2660,13 +2660,17 @@ int input_test(int getchar)
|
||||
int timeout = 0;
|
||||
if (is_menu_core() && video_fb_state()) timeout = 25;
|
||||
|
||||
int return_value = poll(pool, NUMDEV + 3, timeout);
|
||||
if (return_value < 0)
|
||||
{
|
||||
printf("ERR: poll\n");
|
||||
}
|
||||
else if (return_value > 0)
|
||||
while (1)
|
||||
{
|
||||
int return_value = poll(pool, NUMDEV + 3, timeout);
|
||||
if (!return_value) break;
|
||||
|
||||
if (return_value < 0)
|
||||
{
|
||||
printf("ERR: poll\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if ((pool[NUMDEV].revents & POLLIN) && check_devs())
|
||||
{
|
||||
printf("Close all devices.\n");
|
||||
@@ -2679,7 +2683,7 @@ int input_test(int getchar)
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i<NUMDEV; i++)
|
||||
for (int i = 0; i < NUMDEV; i++)
|
||||
{
|
||||
if ((pool[i].fd >= 0) && (pool[i].revents & POLLIN))
|
||||
{
|
||||
@@ -2697,6 +2701,8 @@ int input_test(int getchar)
|
||||
}
|
||||
else if (ev.type)
|
||||
{
|
||||
if (ev.type == EV_KEY && ev.value > 1) continue;
|
||||
|
||||
int dev = i;
|
||||
if (input[dev].bind >= 0) dev = input[dev].bind;
|
||||
|
||||
@@ -3043,7 +3049,7 @@ int input_test(int getchar)
|
||||
if (cur_leds != leds_state)
|
||||
{
|
||||
cur_leds = leds_state;
|
||||
for (int i = 0; i<NUMDEV; i++)
|
||||
for (int i = 0; i < NUMDEV; i++)
|
||||
{
|
||||
if (input[i].led)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user