add equalizer UI in settings dialog

This commit is contained in:
Drew Weymouth
2023-06-24 10:47:45 -07:00
parent ab22f871d2
commit 59be258e89
8 changed files with 335 additions and 14 deletions
+11 -4
View File
@@ -78,16 +78,23 @@ type EqualizerCurve []EqualizerBand
func (e EqualizerCurve) String() string {
var sb strings.Builder
for i, band := range e {
if i > 0 {
sb.WriteString(",")
first := true
for _, band := range e {
if s := band.String(); s != "" {
if !first {
sb.WriteString(",")
}
sb.WriteString(s)
first = false
}
sb.WriteString(band.String())
}
return sb.String()
}
func (e EqualizerBand) String() string {
if math.Abs(e.Gain) < 0.02 {
return ""
}
return fmt.Sprintf("equalizer=f=%d:g=%0.2f:t=%s:w=%0.2f",
e.Frequency, e.Gain, e.WidthType.String(), e.Width)
}
+4
View File
@@ -510,6 +510,10 @@ func (p *Player) SetEqualizer(eq Equalizer) error {
return p.mpv.SetPropertyString("af", eq.Curve().String())
}
func (p *Player) Equalizer() Equalizer {
return p.equalizer
}
func (p *Player) GetMediaInfo() (MediaInfo, error) {
var info MediaInfo
n, err := p.mpv.GetProperty("audio-params", mpv.FORMAT_NODE)