relax LinuxVST GUI event loop.
it was spinning at 100Hz.
This commit is contained in:
parent
d98af1785a
commit
2d311979e3
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user