Clear OSC queue on editor closed
This commit is contained in:
parent
787f388a26
commit
e431591d41
1 changed files with 9 additions and 0 deletions
|
|
@ -114,6 +114,7 @@ struct Editor::Impl : EditorController::Receiver, IControlListener {
|
|||
// queued OSC API; sends OSC with intermediate delay between messages
|
||||
// to prevent message bursts overloading the buffer
|
||||
void sendQueuedOSC(const char* path, const char* sig, const sfizz_arg_t* args);
|
||||
void clearQueuedOSC();
|
||||
void tickOSCQueue(CVSTGUITimer* timer);
|
||||
std::queue<std::string> oscSendQueue_;
|
||||
SharedPointer<CVSTGUITimer> oscSendQueueTimer_;
|
||||
|
|
@ -218,6 +219,8 @@ void Editor::close()
|
|||
{
|
||||
Impl& impl = *impl_;
|
||||
|
||||
impl.clearQueuedOSC();
|
||||
|
||||
if (impl.frame_) {
|
||||
impl.frame_->removeView(impl.mainView_.get(), false);
|
||||
impl.frame_ = nullptr;
|
||||
|
|
@ -461,6 +464,12 @@ void Editor::Impl::sendQueuedOSC(const char* path, const char* sig, const sfizz_
|
|||
oscSendQueueTimer_->start();
|
||||
}
|
||||
|
||||
void Editor::Impl::clearQueuedOSC()
|
||||
{
|
||||
while (!oscSendQueue_.empty())
|
||||
oscSendQueue_.pop();
|
||||
}
|
||||
|
||||
void Editor::Impl::tickOSCQueue(CVSTGUITimer* timer)
|
||||
{
|
||||
if (oscSendQueue_.empty()) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue