static void adlib_kill_timers (AdlibState *s) { size_t i; for (i = 0; i < 2; ++i) { if (s->ticking[i]) { uint64_t delta; delta = AUD_get_elapsed_usec_out (s->voice, &s->ats); ldebug ( "delta = %f dexp = %f expired => %d\n", delta / 1000000.0, s->dexp[i] / 1000000.0, delta >= s->dexp[i] ); if (ADLIB_KILL_TIMERS || delta >= s->dexp[i]) { adlib_stop_opl_timer (s, i); AUD_init_time_stamp_out (s->voice, &s->ats); } } } }
static void timer_handler (int c, double interval_Sec) { AdlibState *s = &glob_adlib; unsigned n = c & 1; #ifdef DEBUG double interval; int64_t exp; #endif if (interval_Sec == 0.0) { s->ticking[n] = 0; return; } s->ticking[n] = 1; #ifdef DEBUG interval = ticks_per_sec * interval_Sec; exp = qemu_get_clock (vm_clock) + interval; s->exp[n] = exp; #endif s->dexp[n] = interval_Sec * 1000000.0; AUD_init_time_stamp_out (s->voice, &s->ats); }
static void timer_handler (int c, double interval_Sec) { AdlibState *s = glob_adlib; unsigned n = c & 1; #ifdef DEBUG double interval; int64_t exp; #endif if (interval_Sec == 0.0) { s->ticking[n] = 0; return; } s->ticking[n] = 1; #ifdef DEBUG interval = NANOSECONDS_PER_SECOND * interval_Sec; exp = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + interval; s->exp[n] = exp; #endif s->dexp[n] = interval_Sec * 1000000.0; AUD_init_time_stamp_out (s->voice, &s->ats); }