1 |
/* |
/* |
2 |
Copyright (C) 2008 - 2016 Christian Schoenebeck |
Copyright (C) 2008 - 2021 Christian Schoenebeck |
3 |
*/ |
*/ |
4 |
|
|
5 |
#ifndef LS_VIRTUALMIDIDEVICE_H |
#ifndef LS_VIRTUALMIDIDEVICE_H |
219 |
void SetMaxEvents(int n); |
void SetMaxEvents(int n); |
220 |
|
|
221 |
/** |
/** |
222 |
|
* Intended to be called on "panic" / all notes off situations. Calling this |
223 |
|
* method will reset all internal atomic flags, such that the state reflects |
224 |
|
* that no note is currently active (its key pressed down). |
225 |
|
* |
226 |
|
* Only exception: this method currently does not reset the internal |
227 |
|
* ring buffer which is used to transmit MIDI events to the sampler. |
228 |
|
* |
229 |
|
* Also note that this method is not fully concurrency safe. That means |
230 |
|
* since only flags are reset, calling this method means no harm, but it |
231 |
|
* might conflict with MIDI events etc and thus still cause hanging notes |
232 |
|
* durcing such a specific concurrency conflict. Or in other words: the |
233 |
|
* user might need to trigger the "panic" button multiple times. |
234 |
|
*/ |
235 |
|
void Reset(); |
236 |
|
|
237 |
|
/** |
238 |
* Constructor |
* Constructor |
239 |
*/ |
*/ |
240 |
VirtualMidiDevice(); |
VirtualMidiDevice(); |