mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-11-30 07:51:55 +00:00
Fix fluid_curtime() returning very incorrect timings (#1076)
This commit is contained in:
parent
8b00644751
commit
88e039efeb
2 changed files with 8 additions and 10 deletions
|
@ -39,7 +39,6 @@
|
|||
typedef struct
|
||||
{
|
||||
fluid_audio_driver_t driver;
|
||||
fluid_audio_func_t callback;
|
||||
void *data;
|
||||
fluid_file_renderer_t *renderer;
|
||||
int period_size;
|
||||
|
@ -49,7 +48,7 @@ typedef struct
|
|||
} fluid_file_audio_driver_t;
|
||||
|
||||
|
||||
static int fluid_file_audio_run_s16(void *d, unsigned int msec);
|
||||
static int fluid_file_audio_run(void *d, unsigned int msec);
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
|
@ -78,7 +77,6 @@ new_fluid_file_audio_driver(fluid_settings_t *settings,
|
|||
fluid_settings_getnum(settings, "synth.sample-rate", &dev->sample_rate);
|
||||
|
||||
dev->data = synth;
|
||||
dev->callback = (fluid_audio_func_t) fluid_synth_process;
|
||||
dev->samples = 0;
|
||||
|
||||
dev->renderer = new_fluid_file_renderer(synth);
|
||||
|
@ -89,7 +87,7 @@ new_fluid_file_audio_driver(fluid_settings_t *settings,
|
|||
}
|
||||
|
||||
msec = (int)(0.5 + dev->period_size / dev->sample_rate * 1000.0);
|
||||
dev->timer = new_fluid_timer(msec, fluid_file_audio_run_s16, (void *) dev, TRUE, FALSE, TRUE);
|
||||
dev->timer = new_fluid_timer(msec, fluid_file_audio_run, (void *) dev, TRUE, FALSE, TRUE);
|
||||
|
||||
if(dev->timer == NULL)
|
||||
{
|
||||
|
@ -115,7 +113,7 @@ void delete_fluid_file_audio_driver(fluid_audio_driver_t *p)
|
|||
FLUID_FREE(dev);
|
||||
}
|
||||
|
||||
static int fluid_file_audio_run_s16(void *d, unsigned int clock_time)
|
||||
static int fluid_file_audio_run(void *d, unsigned int clock_time)
|
||||
{
|
||||
fluid_file_audio_driver_t *dev = (fluid_file_audio_driver_t *) d;
|
||||
unsigned int sample_time;
|
||||
|
|
|
@ -387,17 +387,17 @@ void fluid_msleep(unsigned int msecs)
|
|||
*/
|
||||
unsigned int fluid_curtime(void)
|
||||
{
|
||||
float now;
|
||||
static float initial_time = 0;
|
||||
double now;
|
||||
static double initial_time = 0;
|
||||
|
||||
if(initial_time == 0)
|
||||
{
|
||||
initial_time = (float)fluid_utime();
|
||||
initial_time = fluid_utime();
|
||||
}
|
||||
|
||||
now = (float)fluid_utime();
|
||||
now = fluid_utime();
|
||||
|
||||
return (unsigned int)((now - initial_time) / 1000.0f);
|
||||
return (unsigned int)((now - initial_time) / 1000.0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue