zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit f635853137d228383738a706e86089e8eb407a5a
parent 783f6193962d4a7ca37a5b74f834e921d91dcef6
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Thu, 18 Jun 2015 15:11:24 -0400

UI: Add Missing File...

Diffstat:
Asrc/UI/Osc_IntModel.h | 45+++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/UI/Osc_IntModel.h b/src/UI/Osc_IntModel.h @@ -0,0 +1,45 @@ +#pragma once +#include "Fl_Osc_Widget.H" +#include <functional> +#include <vector> +#include <rtosc/rtosc.h> + +class Osc_IntModel:public Fl_Osc_Widget +{ + public: + Osc_IntModel(Fl_Osc_Interface *osc_) + :Fl_Osc_Widget("", osc_), value(0) + { + assert(osc); + } + + typedef int value_t; + value_t value; + std::function<void(value_t)> callback; + + void updateVal(value_t v) + { + value = v; + oscWrite(ext, "i", v); + } + + void update(std::string url) + { + if(!ext.empty()) + osc->removeLink(this); + ext = url; + + oscRegister(ext.c_str()); + } + + //Raw messages + virtual void OSC_raw(const char *msg) + { + std::string args = rtosc_argument_string(msg); + if(args == "i") { + value = rtosc_argument(msg, 0).i; + if(callback) + callback(value); + } + } +};