int getSongDurationInternal(const ASAPInfo *info, int song, ASAP *asap) { int duration = ASAPInfo_GetDuration(info, song); if (duration < 0) { if (asap != NULL) ASAP_DetectSilence(asap, silence_seconds); return 1000 * song_length; } if (asap != NULL) ASAP_DetectSilence(asap, 0); if (play_loops && ASAPInfo_GetLoop(info, song)) return 1000 * song_length; return duration; }
int get_song_duration(int song, bool play) { const ASAPInfo *info = ASAP_GetInfo(asap); int duration = ASAPInfo_GetDuration(info, song); if (duration < 0) { if (play) ASAP_DetectSilence(asap, silence_seconds); return 1000 * song_length; } if (play) ASAP_DetectSilence(asap, 0); if (play_loops && ASAPInfo_GetLoop(info, song)) return 1000 * song_length; return duration; }
void decode_initialize(t_uint32 p_subsong, unsigned p_flags, abort_callback &p_abort) { int duration = module_info.durations[p_subsong]; if (duration < 0) { if (silence_seconds > 0) ASAP_DetectSilence(&asap, silence_seconds); duration = 1000 * song_length; } if (play_loops && module_info.loops[p_subsong]) duration = 1000 * song_length; ASAP_PlaySong(&asap, p_subsong, duration); ASAP_MutePokeyChannels(&asap, mute_mask); }