zynaddsubfx

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

commit f709c1cb9dbba44380bb482c85488c0a813d4f61
parent 5b4172bc7725d55ff9ab51c748bc4479a048f4a6
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Sat,  7 Nov 2015 13:59:51 -0500

Update Part Name After Bank Load

Resolves https://sourceforge.net/p/zynaddsubfx/bugs/101/

Diffstat:
Msrc/Misc/MiddleWare.cpp | 12++++++++++++
Msrc/UI/BankView.cpp | 5+++--
2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/Misc/MiddleWare.cpp b/src/Misc/MiddleWare.cpp @@ -989,6 +989,16 @@ static rtosc::Ports middwareSnoopPorts = { impl.pending_load[part_id]++; impl.loadPart(part_id, file, impl.master); rEnd}, + {"load-part:iss", 0, 0, + rBegin; + const int part_id = rtosc_argument(msg,0).i; + const char *file = rtosc_argument(msg,1).s; + const char *name = rtosc_argument(msg,2).s; + impl.pending_load[part_id]++; + impl.loadPart(part_id, file, impl.master); + impl.uToB->write(("/part"+to_s(part_id)+"/Pname").c_str(), "s", + name); + rEnd}, {"setprogram:i:c", 0, 0, rBegin; Bank &bank = impl.master->bank; @@ -996,6 +1006,7 @@ static rtosc::Ports middwareSnoopPorts = { if(slot < BANK_SIZE) { impl.pending_load[0]++; impl.loadPart(0, impl.master->bank.ins[slot].filename.c_str(), impl.master); + impl.uToB->write("/part0/Pname", "s", impl.master->bank.ins[slot].name.c_str()); } rEnd}, {"part#16/clear:", 0, 0, @@ -1051,6 +1062,7 @@ static rtosc::Ports middlewareReplyPorts = { const int part = rtosc_argument(msg, 0).i; const int program = rtosc_argument(msg, 1).i; impl.loadPart(part, impl.master->bank.ins[program].filename.c_str(), impl.master); + impl.uToB->write(("/part"+to_s(part)+"/Pname").c_str(), "s", impl.master->bank.ins[program].name.c_str()); rEnd}, {"undo_pause:", 0, 0, rBegin; impl.recording_undo = false; rEnd}, {"undo_resume:", 0, 0, rBegin; impl.recording_undo = true; rEnd}, diff --git a/src/UI/BankView.cpp b/src/UI/BankView.cpp @@ -282,8 +282,9 @@ void BankView::react(int event, int nslot) //Reads from slot if ((event==1)&&(mode==1) && !isempty){ printf("Loading a part #%d with file '%s'\n", nslot, slot.filename()); - osc->write("/load-part", "is", *npart, slot.filename()); - osc->writeValue("/part"+to_s(*npart)+"/name", slot.name()); + osc->write("/load-part", "iss", *npart, slot.filename(), + slot.name()); + osc->writeValue("/part"+to_s(*npart)+"/Pname", slot.name()); if(cbwig_) cbwig_->do_callback(); }