fix initial conditions
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
|||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/lang"
|
"fyne.io/fyne/v2/lang"
|
||||||
|
"github.com/dweymouth/supersonic/backend/player"
|
||||||
"github.com/dweymouth/supersonic/ui/util"
|
"github.com/dweymouth/supersonic/ui/util"
|
||||||
"github.com/dweymouth/supersonic/ui/visualizations"
|
"github.com/dweymouth/supersonic/ui/visualizations"
|
||||||
)
|
)
|
||||||
@@ -47,7 +48,12 @@ func (c *Controller) ShowPeakMeter() {
|
|||||||
}
|
}
|
||||||
c.peakMeter = visualizations.NewPeakMeter()
|
c.peakMeter = visualizations.NewPeakMeter()
|
||||||
win.SetContent(c.peakMeter)
|
win.SetContent(c.peakMeter)
|
||||||
c.startVisualizationAnim()
|
if c.App.LocalPlayer.GetStatus().State == player.Playing {
|
||||||
|
c.startVisualizationAnim()
|
||||||
|
} else {
|
||||||
|
// TODO: why is this needed?
|
||||||
|
c.peakMeter.Refresh()
|
||||||
|
}
|
||||||
win.Show()
|
win.Show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ const (
|
|||||||
meterRangeDB = 62
|
meterRangeDB = 62
|
||||||
rmsSmoothingFactor = 0.8
|
rmsSmoothingFactor = 0.8
|
||||||
peakHoldFrames = 60
|
peakHoldFrames = 60
|
||||||
|
|
||||||
|
noiseFloorDB = -96
|
||||||
)
|
)
|
||||||
|
|
||||||
type PeakMeter struct {
|
type PeakMeter struct {
|
||||||
@@ -33,7 +35,14 @@ type PeakMeter struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewPeakMeter() *PeakMeter {
|
func NewPeakMeter() *PeakMeter {
|
||||||
p := &PeakMeter{}
|
p := &PeakMeter{
|
||||||
|
lPeak: noiseFloorDB,
|
||||||
|
rPeak: noiseFloorDB,
|
||||||
|
lRMS: noiseFloorDB,
|
||||||
|
rRMS: noiseFloorDB,
|
||||||
|
lPeakHold: noiseFloorDB,
|
||||||
|
rPeakHold: noiseFloorDB,
|
||||||
|
}
|
||||||
p.ExtendBaseWidget(p)
|
p.ExtendBaseWidget(p)
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
@@ -44,8 +53,8 @@ func NewPeakMeter() *PeakMeter {
|
|||||||
func (p *PeakMeter) UpdatePeaks(lPeak, rPeak, lRMS, rRMS float64) {
|
func (p *PeakMeter) UpdatePeaks(lPeak, rPeak, lRMS, rRMS float64) {
|
||||||
p.lPeak = lPeak
|
p.lPeak = lPeak
|
||||||
p.rPeak = rPeak
|
p.rPeak = rPeak
|
||||||
lRMS = math.Max(-96, lRMS)
|
lRMS = math.Max(noiseFloorDB, lRMS)
|
||||||
rRMS = math.Max(-96, rRMS)
|
rRMS = math.Max(noiseFloorDB, rRMS)
|
||||||
p.lRMS = rmsSmoothingFactor*p.lRMS + (1-rmsSmoothingFactor)*lRMS
|
p.lRMS = rmsSmoothingFactor*p.lRMS + (1-rmsSmoothingFactor)*lRMS
|
||||||
p.rRMS = rmsSmoothingFactor*p.rRMS + (1-rmsSmoothingFactor)*rRMS
|
p.rRMS = rmsSmoothingFactor*p.rRMS + (1-rmsSmoothingFactor)*rRMS
|
||||||
|
|
||||||
@@ -99,6 +108,7 @@ func newPeakMeterRenderer(pm *PeakMeter) *peakMeterRenderer {
|
|||||||
p.rulerLabels[i].Resize(p.rulerLabels[i].MinSize())
|
p.rulerLabels[i].Resize(p.rulerLabels[i].MinSize())
|
||||||
x -= 10
|
x -= 10
|
||||||
}
|
}
|
||||||
|
p.Layout(pm.Size())
|
||||||
|
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user