refactor(tracker): rename Notetracking to Follow

Notetracking was used in two completely different meanings: the
pitch/bpm notetracking in the delay unit and the cursor follow in
when playing. The word for the second meaning was changed to Follow,
to avoid confusion.
This commit is contained in:
5684185+vsariola@users.noreply.github.com 2024-10-12 21:35:45 +03:00
parent 59c04ed4a1
commit 4c096a3fac
8 changed files with 34 additions and 34 deletions

View File

@ -17,7 +17,7 @@ type (
InstrEnlarged Model InstrEnlarged Model
Effect Model Effect Model
CommentExpanded Model CommentExpanded Model
NoteTracking Model Follow Model
UnitSearching Model UnitSearching Model
UnitDisabled Model UnitDisabled Model
LoopToggle Model LoopToggle Model
@ -41,7 +41,7 @@ func (m *Model) Playing() *Playing { return (*Playing)(m) }
func (m *Model) InstrEnlarged() *InstrEnlarged { return (*InstrEnlarged)(m) } func (m *Model) InstrEnlarged() *InstrEnlarged { return (*InstrEnlarged)(m) }
func (m *Model) Effect() *Effect { return (*Effect)(m) } func (m *Model) Effect() *Effect { return (*Effect)(m) }
func (m *Model) CommentExpanded() *CommentExpanded { return (*CommentExpanded)(m) } func (m *Model) CommentExpanded() *CommentExpanded { return (*CommentExpanded)(m) }
func (m *Model) NoteTracking() *NoteTracking { return (*NoteTracking)(m) } func (m *Model) Follow() *Follow { return (*Follow)(m) }
func (m *Model) UnitSearching() *UnitSearching { return (*UnitSearching)(m) } func (m *Model) UnitSearching() *UnitSearching { return (*UnitSearching)(m) }
func (m *Model) UnitDisabled() *UnitDisabled { return (*UnitDisabled)(m) } func (m *Model) UnitDisabled() *UnitDisabled { return (*UnitDisabled)(m) }
func (m *Model) LoopToggle() *LoopToggle { return (*LoopToggle)(m) } func (m *Model) LoopToggle() *LoopToggle { return (*LoopToggle)(m) }
@ -95,12 +95,12 @@ func (m *CommentExpanded) Value() bool { return m.commentExpanded }
func (m *CommentExpanded) setValue(val bool) { m.commentExpanded = val } func (m *CommentExpanded) setValue(val bool) { m.commentExpanded = val }
func (m *CommentExpanded) Enabled() bool { return true } func (m *CommentExpanded) Enabled() bool { return true }
// NoteTracking methods // Follow methods
func (m *NoteTracking) Bool() Bool { return Bool{m} } func (m *Follow) Bool() Bool { return Bool{m} }
func (m *NoteTracking) Value() bool { return m.noteTracking } func (m *Follow) Value() bool { return m.follow }
func (m *NoteTracking) setValue(val bool) { m.noteTracking = val } func (m *Follow) setValue(val bool) { m.follow = val }
func (m *NoteTracking) Enabled() bool { return true } func (m *Follow) Enabled() bool { return true }
// Effect methods // Effect methods

View File

@ -148,28 +148,28 @@ func (t *Tracker) KeyEvent(e key.Event, gtx C) {
case "RemoveUnused": case "RemoveUnused":
t.RemoveUnused().Do() t.RemoveUnused().Do()
case "PlayCurrentPosFollow": case "PlayCurrentPosFollow":
t.NoteTracking().Bool().Set(true) t.Follow().Bool().Set(true)
t.PlayCurrentPos().Do() t.PlayCurrentPos().Do()
case "PlayCurrentPosUnfollow": case "PlayCurrentPosUnfollow":
t.NoteTracking().Bool().Set(false) t.Follow().Bool().Set(false)
t.PlayCurrentPos().Do() t.PlayCurrentPos().Do()
case "PlaySongStartFollow": case "PlaySongStartFollow":
t.NoteTracking().Bool().Set(true) t.Follow().Bool().Set(true)
t.PlaySongStart().Do() t.PlaySongStart().Do()
case "PlaySongStartUnfollow": case "PlaySongStartUnfollow":
t.NoteTracking().Bool().Set(false) t.Follow().Bool().Set(false)
t.PlaySongStart().Do() t.PlaySongStart().Do()
case "PlaySelectedFollow": case "PlaySelectedFollow":
t.NoteTracking().Bool().Set(true) t.Follow().Bool().Set(true)
t.PlaySelected().Do() t.PlaySelected().Do()
case "PlaySelectedUnfollow": case "PlaySelectedUnfollow":
t.NoteTracking().Bool().Set(false) t.Follow().Bool().Set(false)
t.PlaySelected().Do() t.PlaySelected().Do()
case "PlayLoopFollow": case "PlayLoopFollow":
t.NoteTracking().Bool().Set(true) t.Follow().Bool().Set(true)
t.PlayFromLoopStart().Do() t.PlayFromLoopStart().Do()
case "PlayLoopUnfollow": case "PlayLoopUnfollow":
t.NoteTracking().Bool().Set(false) t.Follow().Bool().Set(false)
t.PlayFromLoopStart().Do() t.PlayFromLoopStart().Do()
case "StopPlaying": case "StopPlaying":
t.StopPlaying().Do() t.StopPlaying().Do()
@ -205,17 +205,17 @@ func (t *Tracker) KeyEvent(e key.Event, gtx C) {
case "RecordingToggle": case "RecordingToggle":
t.IsRecording().Bool().Toggle() t.IsRecording().Bool().Toggle()
case "PlayingToggleFollow": case "PlayingToggleFollow":
t.NoteTracking().Bool().Set(true) t.Follow().Bool().Set(true)
t.Playing().Bool().Toggle() t.Playing().Bool().Toggle()
case "PlayingToggleUnfollow": case "PlayingToggleUnfollow":
t.NoteTracking().Bool().Set(false) t.Follow().Bool().Set(false)
t.Playing().Bool().Toggle() t.Playing().Bool().Toggle()
case "InstrEnlargedToggle": case "InstrEnlargedToggle":
t.InstrEnlarged().Bool().Toggle() t.InstrEnlarged().Bool().Toggle()
case "CommentExpandedToggle": case "CommentExpandedToggle":
t.CommentExpanded().Bool().Toggle() t.CommentExpanded().Bool().Toggle()
case "FollowToggle": case "FollowToggle":
t.NoteTracking().Bool().Toggle() t.Follow().Bool().Toggle()
case "UnitDisabledToggle": case "UnitDisabledToggle":
t.UnitDisabled().Bool().Toggle() t.UnitDisabled().Bool().Toggle()
case "LoopToggle": case "LoopToggle":

View File

@ -22,12 +22,12 @@ type SongPanel struct {
Step *NumberInput Step *NumberInput
SongLength *NumberInput SongLength *NumberInput
RewindBtn *ActionClickable RewindBtn *ActionClickable
PlayingBtn *BoolClickable PlayingBtn *BoolClickable
RecordBtn *BoolClickable RecordBtn *BoolClickable
NoteTracking *BoolClickable FollowBtn *BoolClickable
PanicBtn *BoolClickable PanicBtn *BoolClickable
LoopBtn *BoolClickable LoopBtn *BoolClickable
// File menu items // File menu items
fileMenuItems []MenuItem fileMenuItems []MenuItem
@ -62,7 +62,7 @@ func NewSongPanel(model *tracker.Model) *SongPanel {
PanicBtn: NewBoolClickable(model.Panic().Bool()), PanicBtn: NewBoolClickable(model.Panic().Bool()),
LoopBtn: NewBoolClickable(model.LoopToggle().Bool()), LoopBtn: NewBoolClickable(model.LoopToggle().Bool()),
RecordBtn: NewBoolClickable(model.IsRecording().Bool()), RecordBtn: NewBoolClickable(model.IsRecording().Bool()),
NoteTracking: NewBoolClickable(model.NoteTracking().Bool()), FollowBtn: NewBoolClickable(model.Follow().Bool()),
PlayingBtn: NewBoolClickable(model.Playing().Bool()), PlayingBtn: NewBoolClickable(model.Playing().Bool()),
RewindBtn: NewActionClickable(model.PlaySongStart()), RewindBtn: NewActionClickable(model.PlaySongStart()),
} }
@ -124,7 +124,7 @@ func (t *SongPanel) layoutSongOptions(gtx C, tr *Tracker) D {
rewindBtnStyle := ActionIcon(gtx, tr.Theme, t.RewindBtn, icons.AVFastRewind, t.rewindHint) rewindBtnStyle := ActionIcon(gtx, tr.Theme, t.RewindBtn, icons.AVFastRewind, t.rewindHint)
playBtnStyle := ToggleIcon(gtx, tr.Theme, t.PlayingBtn, icons.AVPlayArrow, icons.AVStop, t.playHint, t.stopHint) playBtnStyle := ToggleIcon(gtx, tr.Theme, t.PlayingBtn, icons.AVPlayArrow, icons.AVStop, t.playHint, t.stopHint)
recordBtnStyle := ToggleIcon(gtx, tr.Theme, t.RecordBtn, icons.AVFiberManualRecord, icons.AVFiberSmartRecord, t.recordHint, t.stopRecordHint) recordBtnStyle := ToggleIcon(gtx, tr.Theme, t.RecordBtn, icons.AVFiberManualRecord, icons.AVFiberSmartRecord, t.recordHint, t.stopRecordHint)
noteTrackBtnStyle := ToggleIcon(gtx, tr.Theme, t.NoteTracking, icons.ActionSpeakerNotesOff, icons.ActionSpeakerNotes, t.followOffHint, t.followOnHint) noteTrackBtnStyle := ToggleIcon(gtx, tr.Theme, t.FollowBtn, icons.ActionSpeakerNotesOff, icons.ActionSpeakerNotes, t.followOffHint, t.followOnHint)
loopBtnStyle := ToggleIcon(gtx, tr.Theme, t.LoopBtn, icons.NavigationArrowForward, icons.AVLoop, t.loopOffHint, t.loopOnHint) loopBtnStyle := ToggleIcon(gtx, tr.Theme, t.LoopBtn, icons.NavigationArrowForward, icons.AVLoop, t.loopOffHint, t.loopOnHint)
return layout.Flex{Axis: layout.Vertical}.Layout(gtx, return layout.Flex{Axis: layout.Vertical}.Layout(gtx,

View File

@ -142,7 +142,7 @@ func (t *Tracker) Main() {
} }
} }
gtx := app.NewContext(&ops, e) gtx := app.NewContext(&ops, e)
if t.SongPanel.PlayingBtn.Bool.Value() && t.SongPanel.NoteTracking.Bool.Value() { if t.SongPanel.PlayingBtn.Bool.Value() && t.SongPanel.FollowBtn.Bool.Value() {
t.TrackEditor.scrollTable.RowTitleList.CenterOn(t.PlaySongRow()) t.TrackEditor.scrollTable.RowTitleList.CenterOn(t.PlaySongRow())
} }
t.Layout(gtx, w) t.Layout(gtx, w)

View File

@ -551,7 +551,7 @@ func (v *OrderRows) Selected2() int {
func (v *OrderRows) SetSelected(value int) { func (v *OrderRows) SetSelected(value int) {
y := intMax(intMin(value, v.Count()-1), 0) y := intMax(intMin(value, v.Count()-1), 0)
if y != v.d.Cursor.OrderRow { if y != v.d.Cursor.OrderRow {
v.noteTracking = false v.follow = false
} }
v.d.Cursor.OrderRow = y v.d.Cursor.OrderRow = y
} }
@ -651,7 +651,7 @@ func (v *NoteRows) Selected2() int {
func (v *NoteRows) SetSelected(value int) { func (v *NoteRows) SetSelected(value int) {
if value != v.d.Song.Score.SongRow(v.d.Cursor.SongPos) { if value != v.d.Song.Score.SongRow(v.d.Cursor.SongPos) {
v.noteTracking = false v.follow = false
} }
v.d.Cursor.SongPos = v.d.Song.Score.Clamp(v.d.Song.Score.SongPos(value)) v.d.Cursor.SongPos = v.d.Song.Score.Clamp(v.d.Song.Score.SongPos(value))
} }

View File

@ -59,7 +59,7 @@ type (
playing bool playing bool
playPosition sointu.SongPos playPosition sointu.SongPos
loop Loop loop Loop
noteTracking bool follow bool
quitted bool quitted bool
cachePatternUseCount [][]int cachePatternUseCount [][]int
@ -327,7 +327,7 @@ func (m *Model) ProcessPlayerMessage(msg PlayerMsg) {
m.voiceLevels = msg.VoiceLevels m.voiceLevels = msg.VoiceLevels
m.avgVolume = msg.AverageVolume m.avgVolume = msg.AverageVolume
m.peakVolume = msg.PeakVolume m.peakVolume = msg.PeakVolume
if m.playing && m.noteTracking { if m.playing && m.follow {
m.d.Cursor.SongPos = msg.SongPosition m.d.Cursor.SongPos = msg.SongPosition
m.d.Cursor2.SongPos = msg.SongPosition m.d.Cursor2.SongPos = msg.SongPosition
} }

View File

@ -59,7 +59,7 @@ func (s *modelFuzzState) Iterate(yield func(string, func(p string, t *testing.T)
s.IterateBool("InstrEnlarged", s.model.InstrEnlarged().Bool(), yield, seed) s.IterateBool("InstrEnlarged", s.model.InstrEnlarged().Bool(), yield, seed)
s.IterateBool("Effect", s.model.Effect().Bool(), yield, seed) s.IterateBool("Effect", s.model.Effect().Bool(), yield, seed)
s.IterateBool("CommentExpanded", s.model.CommentExpanded().Bool(), yield, seed) s.IterateBool("CommentExpanded", s.model.CommentExpanded().Bool(), yield, seed)
s.IterateBool("NoteTracking", s.model.NoteTracking().Bool(), yield, seed) s.IterateBool("Follow", s.model.Follow().Bool(), yield, seed)
// Strings // Strings
s.IterateString("FilePath", s.model.FilePath().String(), yield, seed) s.IterateString("FilePath", s.model.FilePath().String(), yield, seed)
s.IterateString("InstrumentName", s.model.InstrumentName().String(), yield, seed) s.IterateString("InstrumentName", s.model.InstrumentName().String(), yield, seed)

View File

@ -166,7 +166,7 @@ func (m *Order) SetCursor(p Point) {
m.d.Cursor.Track = intMax(intMin(p.X, len(m.d.Song.Score.Tracks)-1), 0) m.d.Cursor.Track = intMax(intMin(p.X, len(m.d.Song.Score.Tracks)-1), 0)
y := intMax(intMin(p.Y, m.d.Song.Score.Length-1), 0) y := intMax(intMin(p.Y, m.d.Song.Score.Length-1), 0)
if y != m.d.Cursor.OrderRow { if y != m.d.Cursor.OrderRow {
m.noteTracking = false m.follow = false
} }
m.d.Cursor.OrderRow = y m.d.Cursor.OrderRow = y
m.updateCursorRows() m.updateCursorRows()
@ -412,7 +412,7 @@ func (v *Notes) SetCursor(p Point) {
v.d.Cursor.Track = intMax(intMin(p.X, len(v.d.Song.Score.Tracks)-1), 0) v.d.Cursor.Track = intMax(intMin(p.X, len(v.d.Song.Score.Tracks)-1), 0)
newPos := v.d.Song.Score.Clamp(sointu.SongPos{PatternRow: p.Y}) newPos := v.d.Song.Score.Clamp(sointu.SongPos{PatternRow: p.Y})
if newPos != v.d.Cursor.SongPos { if newPos != v.d.Cursor.SongPos {
v.noteTracking = false v.follow = false
} }
v.d.Cursor.SongPos = newPos v.d.Cursor.SongPos = newPos
} }