mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-22 14:46:34 +01:00
increase LXVST GUI idle call regularity, aim for 25Hz
This commit is contained in:
parent
1660ac7f54
commit
33029e6433
1 changed files with 11 additions and 7 deletions
|
|
@ -42,6 +42,7 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
struct ERect{
|
struct ERect{
|
||||||
short top;
|
short top;
|
||||||
|
|
@ -333,10 +334,11 @@ windows, that is if they don't manage their own UIs **/
|
||||||
void* gui_event_loop (void* ptr)
|
void* gui_event_loop (void* ptr)
|
||||||
{
|
{
|
||||||
VSTState* vstfx;
|
VSTState* vstfx;
|
||||||
int LXVST_sched_event_timer = 0;
|
int LXVST_sched_timer_interval = 40; //ms, 25fps
|
||||||
int LXVST_sched_timer_interval = 50; //ms
|
|
||||||
XEvent event;
|
XEvent event;
|
||||||
|
struct timeval clock1, clock2;
|
||||||
|
|
||||||
|
gettimeofday(&clock1, NULL);
|
||||||
/*The 'Forever' loop - runs the plugin UIs etc - based on the FST gui event loop*/
|
/*The 'Forever' loop - runs the plugin UIs etc - based on the FST gui event loop*/
|
||||||
|
|
||||||
while (!gui_quit)
|
while (!gui_quit)
|
||||||
|
|
@ -378,14 +380,14 @@ void* gui_event_loop (void* ptr)
|
||||||
|
|
||||||
Glib::usleep(1000);
|
Glib::usleep(1000);
|
||||||
|
|
||||||
LXVST_sched_event_timer++;
|
|
||||||
|
|
||||||
LXVST_sched_event_timer = LXVST_sched_event_timer & 0x00FFFFFF;
|
|
||||||
|
|
||||||
/*See if its time for us to do a scheduled event pass on all the plugins*/
|
/*See if its time for us to do a scheduled event pass on all the plugins*/
|
||||||
|
|
||||||
if((LXVST_sched_timer_interval!=0) && (!(LXVST_sched_event_timer% LXVST_sched_timer_interval)))
|
gettimeofday(&clock2, NULL);
|
||||||
|
const int elapsed_time = (clock2.tv_sec - clock1.tv_sec) * 1000 + (clock2.tv_usec - clock1.tv_usec) / 1000;
|
||||||
|
|
||||||
|
if((LXVST_sched_timer_interval != 0) && elapsed_time >= LXVST_sched_timer_interval)
|
||||||
{
|
{
|
||||||
|
//printf("elapsed %d ms ^= %.2f Hz\n", elapsed_time, 1000.0/(double)elapsed_time); // DEBUG
|
||||||
pthread_mutex_lock (&plugin_mutex);
|
pthread_mutex_lock (&plugin_mutex);
|
||||||
|
|
||||||
again:
|
again:
|
||||||
|
|
@ -460,6 +462,8 @@ again:
|
||||||
pthread_mutex_unlock (&vstfx->lock);
|
pthread_mutex_unlock (&vstfx->lock);
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock (&plugin_mutex);
|
pthread_mutex_unlock (&plugin_mutex);
|
||||||
|
|
||||||
|
gettimeofday(&clock1, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue