static int fluid_file_audio_run_s16(void* d, unsigned int clock_time) { fluid_file_audio_driver_t* dev = (fluid_file_audio_driver_t*) d; unsigned int sample_time; sample_time = (unsigned int) (dev->samples / dev->sample_rate * 1000.0); if (sample_time > clock_time) { return 1; } dev->samples += dev->period_size; return fluid_file_renderer_process_block(dev->renderer) == FLUID_OK ? 1 : 0; }
static void fast_render_loop(fluid_settings_t* settings, fluid_synth_t* synth, fluid_player_t* player) { fluid_file_renderer_t* renderer; renderer = new_fluid_file_renderer (synth); if (!renderer) return; while (fluid_player_get_status(player) == FLUID_PLAYER_PLAYING) { if (fluid_file_renderer_process_block(renderer) != FLUID_OK) { break; } } delete_fluid_file_renderer(renderer); }