Squash merge audio-player-component into main
This commit is contained in:
@@ -1,14 +1,24 @@
|
||||
package player
|
||||
|
||||
// UserVolume represents volume on a user-facing scale (0-100).
|
||||
type UserVolume int
|
||||
|
||||
// PlayerVolume represents volume on an internal scale (-10 to 10).
|
||||
type PlayerVolume float64
|
||||
|
||||
const MinUserVol UserVolume = 0
|
||||
const MaxUserVol UserVolume = 100
|
||||
// User volume range bounds.
|
||||
const (
|
||||
MinUserVol UserVolume = 0
|
||||
MaxUserVol UserVolume = 100
|
||||
)
|
||||
|
||||
const MinPlayerVol PlayerVolume = -10
|
||||
const MaxPlayerVol PlayerVolume = 10
|
||||
// Player volume range bounds.
|
||||
const (
|
||||
MinPlayerVol PlayerVolume = -4
|
||||
MaxPlayerVol PlayerVolume = 0
|
||||
)
|
||||
|
||||
// ToPlayerVolume converts user volume to internal player volume.
|
||||
func (oldVol UserVolume) ToPlayerVolume() PlayerVolume {
|
||||
var newVol PlayerVolume
|
||||
|
||||
@@ -16,9 +26,11 @@ func (oldVol UserVolume) ToPlayerVolume() PlayerVolume {
|
||||
ratio := PlayerVolume(oldVol-MinUserVol) / PlayerVolume(MaxUserVol-MinUserVol)
|
||||
newVol = ratio*(MaxPlayerVol-MinPlayerVol) + MinPlayerVol
|
||||
}
|
||||
|
||||
return newVol
|
||||
}
|
||||
|
||||
// ToUserVolume converts internal player volume to user volume.
|
||||
func (oldVolFloat PlayerVolume) ToUserVolume() UserVolume {
|
||||
var newVol UserVolume
|
||||
|
||||
@@ -26,6 +38,7 @@ func (oldVolFloat PlayerVolume) ToUserVolume() UserVolume {
|
||||
ratio := (oldVolFloat - MinPlayerVol) / (MaxPlayerVol - MinPlayerVol)
|
||||
newVol = UserVolume(ratio*PlayerVolume(MaxUserVol-MinUserVol)) + MinUserVol
|
||||
}
|
||||
|
||||
return newVol
|
||||
}
|
||||
|
||||
@@ -33,8 +46,10 @@ func clampVolume(v UserVolume) UserVolume {
|
||||
if v > MaxUserVol {
|
||||
return MaxUserVol
|
||||
}
|
||||
|
||||
if v < MinUserVol {
|
||||
return MinUserVol
|
||||
}
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user