Exemple #1
0
int
delete_fluid_timer (fluid_timer_t *timer)
{
  int auto_destroy = timer->auto_destroy;

  timer->cont = 0;
  fluid_timer_join (timer);

  /* Shouldn't access timer now if auto_destroy enabled, since it has been destroyed */

  if (!auto_destroy) FLUID_FREE (timer);

  return FLUID_OK;
}
Exemple #2
0
/**
 * Wait for a MIDI player to terminate (when done playing).
 * @param player MIDI player instance
 * @return #FLUID_OK on success, #FLUID_FAILED otherwise
 */
int fluid_player_join(fluid_player_t* player)
{
	if (player->system_timer) {
		return fluid_timer_join(player->system_timer);
	} else if (player->sample_timer) {
		/* Busy-wait loop, since there's no thread to wait for... */
		while (player->status != FLUID_PLAYER_DONE) {
#if defined(WIN32)
			Sleep(10);
#else
			usleep(10000);
#endif
		}
	}
	return FLUID_OK;
}