本文整理汇总了C++中EventBuffer::push_event方法的典型用法代码示例。如果您正苦于以下问题:C++ EventBuffer::push_event方法的具体用法?C++ EventBuffer::push_event怎么用?C++ EventBuffer::push_event使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EventBuffer
的用法示例。
在下文中一共展示了EventBuffer::push_event方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: add_noteon_event_to_buffer
void Track_Pattern::add_noteon_event_to_buffer(char p_note,char p_velocity,int p_column,EventBuffer &p_buffer,int p_frame_offset) {
EventBuffer &event_buffer=get_event_buffer();
//printf("note %i\n",p_note);
if (data.last_note[p_column].is_note() && data.last_note[p_column].note==p_note) {
/* IF the note is the same, we must mute it before */
Event e;
SET_EVENT_MIDI(e,EventMidi::MIDI_NOTE_OFF,0,data.last_note[p_column].note,0);
e.frame_offset=p_frame_offset; //off te
p_buffer.push_event(e);
data.last_note[p_column]=Note(Note::NOTE_OFF); //avoid the next check
}
/* send new note */
{
int velocity=(int)p_velocity*127/99;
Event e;
SET_EVENT_MIDI(e,EventMidi::MIDI_NOTE_ON,0,p_note,velocity);
e.frame_offset=p_frame_offset;
p_buffer.push_event(e);
}
if (data.last_note[p_column].is_note() && data.last_note[p_column].note!=p_note) {
/* If the note is different, mute it later */
Event e;
SET_EVENT_MIDI(e,EventMidi::MIDI_NOTE_OFF,0,data.last_note[p_column].note,0);
e.frame_offset=p_frame_offset; //off te
p_buffer.push_event(e);
}
data.last_note[p_column]=Note(p_note);
}