/** * Delete a MIDI player instance. * @param player MIDI player instance * @return Always returns #FLUID_OK */ int delete_fluid_player(fluid_player_t *player) { fluid_list_t *q; fluid_playlist_item* pi; if (player == NULL) { return FLUID_OK; } fluid_player_stop(player); fluid_player_reset(player); while (player->playlist != NULL) { q = player->playlist->next; pi = (fluid_playlist_item*) player->playlist->data; FLUID_FREE(pi->filename); FLUID_FREE(pi->buffer); FLUID_FREE(pi); delete1_fluid_list(player->playlist); player->playlist = q; } FLUID_FREE(player); return FLUID_OK; }
void fluid_player_playlist_load(fluid_player_t *player, unsigned int msec) { fluid_playlist_item* current_playitem; int i; do { fluid_player_advancefile(player); if (player->currentfile == NULL) { /* Failed to find next song, probably since we're finished */ player->status = FLUID_PLAYER_DONE; return; } fluid_player_reset(player); current_playitem = (fluid_playlist_item *) player->currentfile->data; } while (fluid_player_load(player, current_playitem) != FLUID_OK); /* Successfully loaded midi file */ player->begin_msec = msec; player->start_msec = msec; player->start_ticks = 0; player->cur_ticks = 0; if (player->reset_synth_between_songs) { fluid_synth_system_reset(player->synth); } for (i = 0; i < player->ntracks; i++) { if (player->track[i] != NULL) { fluid_track_reset(player->track[i]); } } }
/** * Delete a MIDI player instance. * @param player MIDI player instance * @return Always returns #FLUID_OK */ int delete_fluid_player(fluid_player_t* player) { fluid_list_t* q; if (player == NULL) { return FLUID_OK; } fluid_player_stop(player); fluid_player_reset(player); while (player->playlist != NULL) { q = player->playlist->next; FLUID_FREE(player->playlist->data); delete1_fluid_list(player->playlist); player->playlist = q; } FLUID_FREE(player); return FLUID_OK; }