@@ -5,6 +5,7 @@ use mizer_node::*;
5
5
use mizer_sequencer:: Sequencer ;
6
6
7
7
const GO_FORWARD : & str = "Go+" ;
8
+ const GO_BACKWARD : & str = "Go-" ;
8
9
const PLAYBACK : & str = "Playback" ;
9
10
const TOGGLE_PLAYBACK : & str = "Playback Toggle" ;
10
11
const STOP : & str = "Stop" ;
@@ -32,7 +33,13 @@ impl ConfigurableNode for SequencerNode {
32
33
} )
33
34
. collect ( ) ;
34
35
35
- vec ! [ setting!( id SEQUENCE_SETTING , self . sequence_id, sequences) . disabled( ) ]
36
+ vec ! [ setting!( id SEQUENCE_SETTING , self . sequence_id, sequences) ]
37
+ }
38
+
39
+ fn update_setting ( & mut self , setting : NodeSetting ) -> anyhow:: Result < ( ) > {
40
+ update ! ( id setting, SEQUENCE_SETTING , self . sequence_id) ;
41
+
42
+ update_fallback ! ( setting)
36
43
}
37
44
}
38
45
@@ -41,7 +48,7 @@ impl PipelineNode for SequencerNode {
41
48
NodeDetails {
42
49
node_type_name : "Sequencer" . into ( ) ,
43
50
preview_type : PreviewType :: None ,
44
- category : NodeCategory :: None ,
51
+ category : NodeCategory :: Fixtures ,
45
52
}
46
53
}
47
54
@@ -59,6 +66,7 @@ impl PipelineNode for SequencerNode {
59
66
fn list_ports ( & self , _injector : & Injector ) -> Vec < ( PortId , PortMetadata ) > {
60
67
vec ! [
61
68
input_port!( GO_FORWARD , PortType :: Single ) ,
69
+ input_port!( GO_BACKWARD , PortType :: Single ) ,
62
70
input_port!( PLAYBACK , PortType :: Single ) ,
63
71
input_port!( TOGGLE_PLAYBACK , PortType :: Single ) ,
64
72
input_port!( STOP , PortType :: Single ) ,
@@ -94,6 +102,11 @@ impl ProcessingNode for SequencerNode {
94
102
sequencer. sequence_go_forward ( self . sequence_id ) ;
95
103
}
96
104
}
105
+ if let Some ( value) = context. read_port ( GO_BACKWARD ) {
106
+ if let Some ( true ) = state. go_backward . update ( value) {
107
+ sequencer. sequence_go_backward ( self . sequence_id ) ;
108
+ }
109
+ }
97
110
if let Some ( value) = context. read_port ( STOP ) {
98
111
if let Some ( true ) = state. stop . update ( value) {
99
112
sequencer. sequence_stop ( self . sequence_id ) ;
@@ -141,6 +154,7 @@ impl ProcessingNode for SequencerNode {
141
154
pub struct SequencerState {
142
155
playback : f64 ,
143
156
go_forward : Edge ,
157
+ go_backward : Edge ,
144
158
stop : Edge ,
145
159
playback_toggle : Edge ,
146
160
}
0 commit comments