@@ -5,6 +5,7 @@ use mizer_node::*;
55use mizer_sequencer:: Sequencer ;
66
77const GO_FORWARD : & str = "Go+" ;
8+ const GO_BACKWARD : & str = "Go-" ;
89const PLAYBACK : & str = "Playback" ;
910const TOGGLE_PLAYBACK : & str = "Playback Toggle" ;
1011const STOP : & str = "Stop" ;
@@ -32,7 +33,13 @@ impl ConfigurableNode for SequencerNode {
3233 } )
3334 . collect ( ) ;
3435
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)
3643 }
3744}
3845
@@ -41,7 +48,7 @@ impl PipelineNode for SequencerNode {
4148 NodeDetails {
4249 node_type_name : "Sequencer" . into ( ) ,
4350 preview_type : PreviewType :: None ,
44- category : NodeCategory :: None ,
51+ category : NodeCategory :: Fixtures ,
4552 }
4653 }
4754
@@ -59,6 +66,7 @@ impl PipelineNode for SequencerNode {
5966 fn list_ports ( & self , _injector : & Injector ) -> Vec < ( PortId , PortMetadata ) > {
6067 vec ! [
6168 input_port!( GO_FORWARD , PortType :: Single ) ,
69+ input_port!( GO_BACKWARD , PortType :: Single ) ,
6270 input_port!( PLAYBACK , PortType :: Single ) ,
6371 input_port!( TOGGLE_PLAYBACK , PortType :: Single ) ,
6472 input_port!( STOP , PortType :: Single ) ,
@@ -94,6 +102,11 @@ impl ProcessingNode for SequencerNode {
94102 sequencer. sequence_go_forward ( self . sequence_id ) ;
95103 }
96104 }
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+ }
97110 if let Some ( value) = context. read_port ( STOP ) {
98111 if let Some ( true ) = state. stop . update ( value) {
99112 sequencer. sequence_stop ( self . sequence_id ) ;
@@ -141,6 +154,7 @@ impl ProcessingNode for SequencerNode {
141154pub struct SequencerState {
142155 playback : f64 ,
143156 go_forward : Edge ,
157+ go_backward : Edge ,
144158 stop : Edge ,
145159 playback_toggle : Edge ,
146160}
0 commit comments