From beb06727b09d5ea834faa66d996f4d9f2276a792 Mon Sep 17 00:00:00 2001 From: "5684185+vsariola@users.noreply.github.com" <5684185+vsariola@users.noreply.github.com> Date: Fri, 20 Oct 2023 01:59:30 +0300 Subject: [PATCH] refactor: move UnitNames to top level package --- patch.go | 13 +++++++++++++ tracker/gioui/instrumenteditor.go | 3 ++- tracker/gioui/parameditor.go | 13 ++++++------- tracker/presets.go | 10 ---------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/patch.go b/patch.go index 8817c2b..eb464c9 100644 --- a/patch.go +++ b/patch.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "math" + "sort" ) type ( @@ -178,6 +179,18 @@ const ( Sample = iota ) +// UnitNames is a list of all the names of units, sorted +// alphabetically. +var UnitNames []string + +func init() { + UnitNames = make([]string, 0, len(UnitTypes)) + for k := range UnitTypes { + UnitNames = append(UnitNames, k) + } + sort.Strings(UnitNames) +} + // Ports is static map allowing quickly finding the parameters of a unit that // can be modulated. This is populated based on the UnitTypes list during // init(). Thus, should be immutable, but Go not supporting that, then this will diff --git a/tracker/gioui/instrumenteditor.go b/tracker/gioui/instrumenteditor.go index cfd0803..2135e64 100644 --- a/tracker/gioui/instrumenteditor.go +++ b/tracker/gioui/instrumenteditor.go @@ -19,6 +19,7 @@ import ( "gioui.org/widget" "gioui.org/widget/material" "gioui.org/x/eventx" + "github.com/vsariola/sointu" "github.com/vsariola/sointu/tracker" "github.com/vsariola/sointu/vm" "golang.org/x/exp/shiny/materialdesign/icons" @@ -447,7 +448,7 @@ func (ie *InstrumentEditor) layoutInstrumentEditor(gtx C, t *Tracker) D { if ok { ie.unitDragList.Focus() if text := ie.unitTypeEditor.Text(); text != "" { - for _, n := range tracker.UnitTypeNames { + for _, n := range sointu.UnitNames { if strings.HasPrefix(n, ie.unitTypeEditor.Text()) { t.SetUnitType(n) break diff --git a/tracker/gioui/parameditor.go b/tracker/gioui/parameditor.go index 266efa4..62b69d0 100644 --- a/tracker/gioui/parameditor.go +++ b/tracker/gioui/parameditor.go @@ -16,7 +16,6 @@ import ( "gioui.org/unit" "gioui.org/widget" "github.com/vsariola/sointu" - "github.com/vsariola/sointu/tracker" "golang.org/x/exp/shiny/materialdesign/icons" "gopkg.in/yaml.v3" ) @@ -50,7 +49,7 @@ func NewParamEditor() *ParamEditor { list: &layout.List{Axis: layout.Vertical}, scrollBar: &ScrollBar{Axis: layout.Vertical}, } - for range tracker.UnitTypeNames { + for range sointu.UnitNames { ret.ChooseUnitTypeBtns = append(ret.ChooseUnitTypeBtns, new(widget.Clickable)) } return ret @@ -220,10 +219,10 @@ func (pe *ParamEditor) layoutUnitFooter(t *Tracker) layout.Widget { func (pe *ParamEditor) layoutUnitTypeChooser(gtx C, t *Tracker) D { listElem := func(gtx C, i int) D { for pe.ChooseUnitTypeBtns[i].Clicked() { - t.SetUnitType(tracker.UnitTypeNames[i]) - t.InstrumentEditor.unitTypeEditor.SetText(tracker.UnitTypeNames[i]) + t.SetUnitType(sointu.UnitNames[i]) + t.InstrumentEditor.unitTypeEditor.SetText(sointu.UnitNames[i]) } - text := tracker.UnitTypeNames[i] + text := sointu.UnitNames[i] if t.InstrumentEditor.unitTypeEditor.Focused() && !strings.HasPrefix(text, t.InstrumentEditor.unitTypeEditor.Text()) { return D{} } @@ -248,10 +247,10 @@ func (pe *ParamEditor) layoutUnitTypeChooser(gtx C, t *Tracker) D { } return layout.Stack{}.Layout(gtx, layout.Stacked(func(gtx C) D { - return pe.list.Layout(gtx, len(tracker.UnitTypeNames), listElem) + return pe.list.Layout(gtx, len(sointu.UnitNames), listElem) }), layout.Expanded(func(gtx C) D { - return pe.scrollBar.Layout(gtx, unit.Dp(10), len(tracker.UnitTypeNames), &pe.list.Position) + return pe.scrollBar.Layout(gtx, unit.Dp(10), len(sointu.UnitNames), &pe.list.Position) }), ) } diff --git a/tracker/presets.go b/tracker/presets.go index 3423afa..e2c9970 100644 --- a/tracker/presets.go +++ b/tracker/presets.go @@ -113,16 +113,6 @@ var reverbs = []delayPreset{ {"right", 0, []int{1140, 1212, 1300, 1380, 1446, 1516, 1580, 1642}}, } -var UnitTypeNames []string - -func init() { - UnitTypeNames = make([]string, 0, len(sointu.UnitTypes)) - for k := range sointu.UnitTypes { - UnitTypeNames = append(UnitTypeNames, k) - } - sort.Strings(UnitTypeNames) -} - type instrumentPresets []sointu.Instrument //go:embed presets/*