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

Diff of /linuxsampler/trunk/src/engines/common/Note.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 1  Line 1 
1  /*  /*
2   * Copyright (c) 2016 - 2017 Christian Schoenebeck   * Copyright (c) 2016 - 2018 Christian Schoenebeck
3   *   *
4   * http://www.linuxsampler.org   * http://www.linuxsampler.org
5   *   *
# Line 20  Line 20 
20    
21  namespace LinuxSampler {  namespace LinuxSampler {
22    
23        /// Whether release trigger sample(s) should be played and if yes under which circumstance(s). Options are bit flags to be able to combine them bitwise.
24        enum release_trigger_t {
25            release_trigger_none = 0, ///< Don't play release trigger sample.
26            release_trigger_noteoff = 1, ///< Play release trigger sample on MIDI note-off event.
27            release_trigger_sustain_maxvelocity = (1 << 1), ///< Play release trigger sample on sustain pedal up, use 127 as MIDI velocity.
28            release_trigger_sustain_keyvelocity = (1 << 2)  ///< Play release trigger sample on sustain pedal up, use latest MIDI note-on velocity on key.
29        };
30    
31        /// convenience macro for checking playing release trigger sample by sustain pedal in general
32        #define release_trigger_sustain \
33            (release_trigger_sustain_maxvelocity | release_trigger_sustain_keyvelocity)
34    
35        // remove strictness of C++ regarding raw bitwise operations (on type release_trigger_t)
36        inline release_trigger_t operator|(release_trigger_t a, release_trigger_t b) {
37            return (release_trigger_t) (a | b);
38        }
39        inline release_trigger_t& operator|=(release_trigger_t& a, release_trigger_t b) {
40            a = (release_trigger_t) (a | b);
41            return a;
42        }
43    
44      /**      /**
45       * Abstract base class of its deriving @c Note class, this class (NoteBase)       * Abstract base class of its deriving @c Note class, this class (NoteBase)
46       * is not intended to be instantiated directly. It just provides access to       * is not intended to be instantiated directly. It just provides access to

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

  ViewVC Help
Powered by ViewVC