mirror of
https://github.com/johrpan/musicus_mobile.git
synced 2025-10-26 10:47:25 +01:00
mobile: Keep normalized position between 0 and 1
This commit is contained in:
parent
93a5a06b55
commit
c2b39677b5
1 changed files with 13 additions and 2 deletions
|
|
@ -39,14 +39,25 @@ class Playback extends MusicusPlayback {
|
||||||
/// Requires [duration] to be up to date
|
/// Requires [duration] to be up to date
|
||||||
void _updatePosition(int positionMs) {
|
void _updatePosition(int positionMs) {
|
||||||
position.add(Duration(milliseconds: positionMs));
|
position.add(Duration(milliseconds: positionMs));
|
||||||
normalizedPosition.add(positionMs / duration.value.inMilliseconds);
|
_setNormalizedPosition(positionMs / duration.value.inMilliseconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Update [position], [duration] and [normalizedPosition].
|
/// Update [position], [duration] and [normalizedPosition].
|
||||||
void _updateDuration(int positionMs, int durationMs) {
|
void _updateDuration(int positionMs, int durationMs) {
|
||||||
position.add(Duration(milliseconds: positionMs));
|
position.add(Duration(milliseconds: positionMs));
|
||||||
duration.add(Duration(milliseconds: durationMs));
|
duration.add(Duration(milliseconds: durationMs));
|
||||||
normalizedPosition.add(positionMs / durationMs);
|
_setNormalizedPosition(positionMs / durationMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Update [normalizedPosition] ensuring its value is between 0.0 and 1.0.
|
||||||
|
void _setNormalizedPosition(double value) {
|
||||||
|
if (value <= 0.0) {
|
||||||
|
normalizedPosition.add(0.0);
|
||||||
|
} else if (value >= 1.0) {
|
||||||
|
normalizedPosition.add(1.0);
|
||||||
|
} else {
|
||||||
|
normalizedPosition.add(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Update [currentIndex] and [currentTrack].
|
/// Update [currentIndex] and [currentTrack].
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue