@@ -2,7 +2,6 @@ package playback
22
33import (
44 "fmt"
5- "reflect"
65
76 "github.com/gotracker/playback/index"
87 "github.com/gotracker/playback/period"
@@ -17,14 +16,13 @@ type Effect interface {
1716}
1817
1918type Effecter [TMemory song.ChannelMemory ] interface {
20- GetEffects (TMemory , period. Period ) []Effect
19+ GetEffects (TMemory ) []Effect
2120}
2221
23- func GetEffects [TPeriod period. Period , TMemory song.ChannelMemory , TChannelData song.ChannelData [TVolume ], TGlobalVolume , TMixingVolume , TVolume song.Volume , TPanning song. Panning ](mem TMemory , d TChannelData ) []Effect {
22+ func GetEffects [TMemory song.ChannelMemory , TChannelData song.ChannelData [TVolume ], TVolume song.Volume ](mem TMemory , d TChannelData ) []Effect {
2423 var e []Effect
2524 if eff , ok := any (d ).(Effecter [TMemory ]); ok {
26- var p TPeriod
27- e = eff .GetEffects (mem , p )
25+ e = eff .GetEffects (mem )
2826 }
2927 return e
3028}
@@ -36,19 +34,23 @@ type EffectNamer interface {
3634func GetEffectNames (e Effect ) []string {
3735 if namer , ok := e .(EffectNamer ); ok {
3836 return namer .Names ()
39- } else {
40- typ := reflect .TypeOf (e )
41- return []string {typ .Name ()}
4237 }
38+ if s , ok := e .(fmt.Stringer ); ok {
39+ name := s .String ()
40+ if name != "" {
41+ return []string {name }
42+ }
43+ }
44+ return nil
4345}
4446
4547// CombinedEffect specifies multiple simultaneous effects into one
46- type CombinedEffect [TPeriod period.Period , TGlobalVolume , TMixingVolume , TVolume song.Volume , TPanning song.Panning , TMemory song. ChannelMemory , TChannelData song. ChannelData [ TVolume ] ] struct {
48+ type CombinedEffect [TPeriod period.Period , TGlobalVolume , TMixingVolume , TVolume song.Volume , TPanning song.Panning ] struct {
4749 Effects []Effect
4850}
4951
5052// String returns the string for the effect list
51- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) String () string {
53+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) String () string {
5254 for _ , eff := range e .Effects {
5355 s := fmt .Sprint (eff )
5456 if s != "" {
@@ -58,15 +60,15 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
5860 return ""
5961}
6062
61- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) Names () []string {
63+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) Names () []string {
6264 var names []string
6365 for _ , eff := range e .Effects {
6466 names = append (names , GetEffectNames (eff )... )
6567 }
6668 return names
6769}
6870
69- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) OrderStart (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
71+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) OrderStart (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
7072 for _ , effect := range e .Effects {
7173 if err := m .DoInstructionOrderStart (ch , effect ); err != nil {
7274 return err
@@ -75,7 +77,7 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
7577 return nil
7678}
7779
78- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) RowStart (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
80+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) RowStart (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
7981 for _ , effect := range e .Effects {
8082 if err := m .DoInstructionRowStart (ch , effect ); err != nil {
8183 return err
@@ -84,7 +86,7 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
8486 return nil
8587}
8688
87- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) Tick (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ], tick int ) error {
89+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) Tick (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ], tick int ) error {
8890 for _ , effect := range e .Effects {
8991 if err := m .DoInstructionTick (ch , effect ); err != nil {
9092 return err
@@ -93,7 +95,7 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
9395 return nil
9496}
9597
96- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) RowEnd (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
98+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) RowEnd (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
9799 for _ , effect := range e .Effects {
98100 if err := m .DoInstructionRowEnd (ch , effect ); err != nil {
99101 return err
@@ -102,7 +104,7 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
102104 return nil
103105}
104106
105- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) OrderEnd (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
107+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) OrderEnd (ch index.Channel , m machine.Machine [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) error {
106108 for _ , effect := range e .Effects {
107109 if err := m .DoInstructionOrderEnd (ch , effect ); err != nil {
108110 return err
@@ -111,6 +113,6 @@ func (e CombinedEffect[TPeriod, TGlobalVolume, TMixingVolume, TVolume, TPanning,
111113 return nil
112114}
113115
114- func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning , TMemory , TChannelData ]) TraceData () string {
116+ func (e CombinedEffect [TPeriod , TGlobalVolume , TMixingVolume , TVolume , TPanning ]) TraceData () string {
115117 return e .String ()
116118}
0 commit comments