relax LinuxVST GUI event loop.

it was spinning at 100Hz.
This commit is contained in:
Robin Gareus 2015-05-27 23:16:59 +02:00
parent d98af1785a
commit 2d311979e3
1 changed files with 11 additions and 0 deletions

View File

@ -348,11 +348,18 @@ void* gui_event_loop (void* ptr)
/*Look at the XEvent queue - if there are any XEvents we need to handle them,
including passing them to all the plugin (eventProcs) we are currently managing*/
bool may_sleep = true;
if(LXVST_XDisplay)
{
/*See if there are any events in the queue*/
int num_events = XPending(LXVST_XDisplay);
if (num_events > 0) {
// keep dispatching events as fast as possible
may_sleep = false;
}
/*process them if there are any*/
@ -464,6 +471,10 @@ again:
clock1 = g_get_monotonic_time();
}
if (may_sleep && elapsed_time_ms + 1 < LXVST_sched_timer_interval) {
Glib::usleep(1000 * (LXVST_sched_timer_interval - elapsed_time_ms - 1));
}
}
/*Drop out to here if we set gui_quit to 1 */