mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-19 06:54:05 +09:00
fix: getFreeTrack() would return a track it just returned when the timing coincides
This commit is contained in:
@@ -124,7 +124,7 @@ class AudioMixer : Disposable {
|
||||
*/
|
||||
fun getFreeTrackNoMatterWhat(): TerrarumAudioMixerTrack {
|
||||
synchronized(this) {
|
||||
return getFreeTrack() ?: dynamicTracks.minBy { it.playStartedTime }
|
||||
return getFreeTrack() ?: dynamicTracks.minBy { it.playStartedTime }.also { it.checkedOutTime = System.nanoTime() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,10 @@ class AudioMixer : Disposable {
|
||||
fun getFreeTrack(): TerrarumAudioMixerTrack? {
|
||||
synchronized(this) {
|
||||
return dynamicTracks.filter { it.trackingTarget == null && !it.isPlaying }
|
||||
.minByOrNull { it.playStartedTime }
|
||||
.minByOrNull { maxOf(it.checkedOutTime, it.playStartedTime) }
|
||||
.also {
|
||||
it?.checkedOutTime = System.nanoTime()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user