New setting: Start volume

This commit is contained in:
nemunaire 2025-03-25 18:34:59 +01:00
commit 34917043ce
4 changed files with 27 additions and 5 deletions

View file

@ -22,6 +22,7 @@ type Player struct {
Playlist []string
MaxRunTime time.Duration
MaxVolume uint16
StartVolume uint16
Stopper chan bool
currentCmd *exec.Cmd
currentCmdCh chan bool
@ -95,6 +96,7 @@ func NewPlayer(cfg *config.Config, routines []reveil.Identifier) (*Player, error
currentCmdCh: make(chan bool, 1),
MaxRunTime: settings.MaxRunTime * time.Minute,
MaxVolume: uint16(settings.MaxVolume),
StartVolume: uint16(settings.StartVolume),
weatherTime: settings.WeatherDelay * time.Minute,
weatherAction: wact,
claironTime: settings.GongInterval * time.Minute,
@ -204,7 +206,7 @@ loop:
} else {
p.dontUpdateVolume = false
p.volume = uint16(math.Log(1+float64(p.ntick)/8) * 9500)
p.SetVolume(p.volume)
p.SetVolume(p.StartVolume + p.volume)
if p.reverseOrder {
p.playedItem -= 1
@ -226,7 +228,7 @@ loop:
p.ntick += 1
if !p.dontUpdateVolume {
p.volume = 3500 + uint16(math.Log(1+float64(p.ntick)/8)*9500)
p.SetVolume(p.volume)
p.SetVolume(p.StartVolume + p.volume)
}
case <-p.Stopper:
@ -249,8 +251,12 @@ loopcalm:
for i := 0; i < 128 && p.volume >= 768; i += 1 {
timer := time.NewTimer(40 * time.Millisecond)
p.volume -= 768
p.SetVolume(p.volume)
if p.volume <= 0 {
p.StartVolume -= 768
} else {
p.volume -= 768
}
p.SetVolume(p.StartVolume + p.volume)
select {
case <-p.Stopper: