summaryrefslogtreecommitdiff
path: root/libs/midi++2
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-05-06 09:15:45 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-05-06 09:15:45 +0000
commit8557d0c69f999bef86c241fab05584b99432df31 (patch)
treec539552b130bf16c9d3adf7ac38de56978a1886a /libs/midi++2
parentcb88f8cce97658ad3c990850104feca9fb0138ef (diff)
* bugfix: SMFSource: track footer overwrote the last MIDI event
git-svn-id: svn://localhost/ardour2/branches/3.0@3319 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2')
-rw-r--r--libs/midi++2/midi++/event.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/midi++2/midi++/event.h b/libs/midi++2/midi++/event.h
index 79f78c35e9..7f792af1e9 100644
--- a/libs/midi++2/midi++/event.h
+++ b/libs/midi++2/midi++/event.h
@@ -181,20 +181,24 @@ struct Event {
inline uint8_t velocity() const { return (_buffer[2]); }
inline uint8_t cc_number() const { return (_buffer[1]); }
inline uint8_t cc_value() const { return (_buffer[2]); }
- inline uint16_t pitch_bender_value() const { return (((0x7F & _buffer[1]) << 7) | (0x7F & _buffer[2])); }
inline uint8_t pitch_bender_lsb() const { return (_buffer[1]); }
inline uint8_t pitch_bender_msb() const { return (_buffer[2]); }
+ inline uint16_t pitch_bender_value() const { return (((0x7F & _buffer[2]) << 7) | (0x7F & _buffer[1])); }
inline uint8_t pgm_number() const { return (_buffer[1]); }
inline void set_pgm_number(uint8_t number){ _buffer[1] = number; }
inline uint8_t aftertouch() const { return (_buffer[1]); }
inline uint8_t channel_aftertouch() const { return (_buffer[1]); }
+ // midi channel events range from 0x80 to 0xE0
+ inline bool is_channel_event() const { return (0x80 <= type()) && (type() <= 0xE0); }
+ inline bool is_smf_meta_event() const { return _buffer[0] == 0xFF; }
+ inline bool is_sysex() const { return _buffer[0] == 0xF0 || _buffer[0] == 0xF7; }
inline const uint8_t* buffer() const { return _buffer; }
inline uint8_t*& buffer() { return _buffer; }
private:
double _time; /**< Sample index (or beat time) at which event is valid */
uint32_t _size; /**< Number of uint8_ts of data in \a buffer */
- uint8_t* _buffer; /**< Raw MIDI data */
+ uint8_t* _buffer; /**< Raw MIDI data */
#ifdef MIDI_EVENT_ALLOW_ALLOC
bool _owns_buffer; /**< Whether buffer is locally allocated */