zynaddsubfx

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

commit 7d9a17af79420956d6e23f2f0cdee56f1154ba9d
parent e863c194b2551beb47e1ac837d366b44ec351ec7
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Mon,  1 Aug 2016 17:32:56 -0400

Merge branch 'master' of https://github.com/zynaddsubfx/zynaddsubfx

Diffstat:
Msrc/Misc/MiddleWare.cpp | 29++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp @@ -1202,7 +1202,14 @@ static rtosc::Ports middwareSnoopPorts = { rEnd}, {"file_home_dir:", 0, 0, rBegin; - d.reply(d.loc, "s", getenv("HOME")); + const char *home = getenv("HOME"); + if(!home) + home = getenv("USERPROFILE"); + if(!home) + home = getenv("HOMEPATH"); + if(!home) + home = "/"; + d.reply(d.loc, "s", home); rEnd}, {"file_list_files:s", 0, 0, rBegin; @@ -1325,16 +1332,20 @@ static rtosc::Ports middwareSnoopPorts = { #define MAX_MIDI 32 rtosc_arg_t args[MAX_MIDI*4]; char argt[MAX_MIDI*4+1] = {0}; + int j=0; for(unsigned i=0; i<key.size() && i<MAX_MIDI; ++i) { auto val = midi.inv_map[key[i]]; - argt[4*i+0] = 'i'; - args[4*i+0].i = std::get<1>(val); - argt[4*i+1] = 's'; - args[4*i+1].s = key[i].c_str(); - argt[4*i+2] = 'i'; - args[4*i+2].i = 0; - argt[4*i+3] = 'i'; - args[4*i+3].i = 127; + if(std::get<1>(val) == -1) + continue; + argt[4*j+0] = 'i'; + args[4*j+0].i = std::get<1>(val); + argt[4*j+1] = 's'; + args[4*j+1].s = key[i].c_str(); + argt[4*j+2] = 'i'; + args[4*j+2].i = 0; + argt[4*j+3] = 'i'; + args[4*j+3].i = 127; + j++; } d.replyArray(d.loc, argt, args);