예제 #1
0
 public Sequencer(Tick tick, IDictionary <string, ProxyController <float> > parameters,
                  IEnumerable <Instruction> instrcs)
 {
     tick.AddUser(this);
     this.Parameters = new Dictionary <string, ProxyController <float> >(parameters);
     this.thread     = new SequenceThread(this, instrcs);
 }
예제 #2
0
        internal override void Execute(SequenceThread thread)
        {
            // name が見つからなかったときはとりあえず無視するようにしたがエラーを出すべきかもしれない
            var @params = thread.Sequencer.Parameters;

            if (@params.ContainsKey(this.name))
            {
                @params[this.name].Set(this.value);
            }
        }
예제 #3
0
 internal override void Execute(SequenceThread thread)
 {
     if (this.noteOn)
     {
         this.target.NoteOn();
     }
     else
     {
         this.target.NoteOff();
     }
 }
예제 #4
0
 internal override void Execute(SequenceThread thread)
 {
     Debug.Assert(thread.Wait == 0);
     thread.Wait = this.wait;
 }
예제 #5
0
 internal override void Execute(SequenceThread thread)
 {
     this.target.Set(this.value);
 }
예제 #6
0
 internal abstract void Execute(SequenceThread thread);
예제 #7
0
 internal override void Execute(SequenceThread thread)
 {
     // この後、thread 側で 1 足されることを見越して 1 引いておく
     thread.Pointer = destination - 1;
 }