/[svn]/linuxsampler/trunk/src/engines/EngineBase.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/EngineBase.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3443 by schoenebeck, Fri Oct 27 21:19:18 2017 UTC revision 3444 by schoenebeck, Sun Dec 23 19:32:11 2018 UTC
# Line 1922  namespace LinuxSampler { Line 1922  namespace LinuxSampler {
1922                      if (bShouldRelease) {                      if (bShouldRelease) {
1923                          itNoteOffEventOnKeyList->Type = Event::type_release_key; // transform event type                          itNoteOffEventOnKeyList->Type = Event::type_release_key; // transform event type
1924                          // spawn release triggered voice(s) if needed                          // spawn release triggered voice(s) if needed
1925                          ProcessReleaseTrigger(pChannel, itNoteOffEventOnKeyList, pKey);                          if (pKey->ReleaseTrigger & release_trigger_noteoff)
1926                                ProcessReleaseTrigger(pChannel, itNoteOffEventOnKeyList, pKey);
1927                      }                      }
1928                  } else if (itNoteOffEventOnKeyList->Type == Event::type_stop_note) {                  } else if (itNoteOffEventOnKeyList->Type == Event::type_stop_note) {
1929                      // This programmatically caused event is caused by a call to                      // This programmatically caused event is caused by a call to
# Line 1953  namespace LinuxSampler { Line 1954  namespace LinuxSampler {
1954               * @param pEngineChannel - engine channel on which this event occurred on               * @param pEngineChannel - engine channel on which this event occurred on
1955               * @param itEvent - release trigger event (contains note number)               * @param itEvent - release trigger event (contains note number)
1956               */               */
1957              virtual void ProcessReleaseTrigger(EngineChannel* pEngineChannel, RTList<Event>::Iterator& itEvent) OVERRIDE {              virtual void ProcessReleaseTriggerBySustain(EngineChannel* pEngineChannel, RTList<Event>::Iterator& itEvent) OVERRIDE {
1958                  EngineChannelBase<V, R, I>* pChannel = static_cast<EngineChannelBase<V, R, I>*>(pEngineChannel);                  EngineChannelBase<V, R, I>* pChannel = static_cast<EngineChannelBase<V, R, I>*>(pEngineChannel);
1959    
1960                  const int iKey = itEvent->Param.Note.Key;                  const int iKey = itEvent->Param.Note.Key;
# Line 1981  namespace LinuxSampler { Line 1982  namespace LinuxSampler {
1982                          // allocate and trigger new release voice(s)                          // allocate and trigger new release voice(s)
1983                          TriggerReleaseVoices(pChannel, itEvent);                          TriggerReleaseVoices(pChannel, itEvent);
1984                      }                      }
1985                      pKey->ReleaseTrigger = false;                      pKey->ReleaseTrigger = release_trigger_none;
1986                  }                  }
1987              }              }
1988    
# Line 2257  namespace LinuxSampler { Line 2258  namespace LinuxSampler {
2258                          // already done in LaunchNewNote()                          // already done in LaunchNewNote()
2259                          pChannel->markKeyAsActive(pKey);                          pChannel->markKeyAsActive(pKey);
2260    
2261                          if (itNewVoice->Type & Voice::type_release_trigger_required) pKey->ReleaseTrigger = true; // mark key for the need of release triggered voice(s)                          if (itNewVoice->Type & Voice::type_release_trigger_required)
2262                                pKey->ReleaseTrigger |= itNewVoice->GetReleaseTriggerFlags(); // mark key for the need of release triggered voice(s)
2263                          return 0; // success                          return 0; // success
2264                      }                      }
2265                  }                  }

Legend:
Removed from v.3443  
changed lines
  Added in v.3444

  ViewVC Help
Powered by ViewVC