Skip to content

Commit cf494db

Browse files
committed
Merge branch 'develop'
2 parents 6761c8a + b04e2e3 commit cf494db

File tree

3 files changed

+41
-53
lines changed

3 files changed

+41
-53
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ project(${PROJECT_NAME})
66
# Project version
77
set(VERSION_MAJOR 1)
88
set(VERSION_MINOR 1)
9-
set(VERSION_PATCH 0)
9+
set(VERSION_PATCH 1)
1010

1111
# Set plugin shared library base name
1212
set(PLUGIN_BASENAME ${PROJECT_NAME}-plugin)

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ The following list is not complete. It contains only plugins, that have been tes
7575
7676
VST-Plugins | works? | Notes |
7777
------------:|:----------:|:-------|
78-
AlgoMusic CZythia | yes |
78+
AlgoMusic CZynthia | yes |
7979
Aly James LAB OB-Xtreme | yes |
8080
Blue Cat Audio Oscilloscope Multi | no | doesn't work with wine
8181
Credland Audio BigKick | no | doesn't work with wine
@@ -106,6 +106,7 @@ The following list is not complete. It contains only plugins, that have been tes
106106
Smartelectronix s(M)exoscope | yes |
107107
SQ8L by Siegfried Kullmann | yes |
108108
SuperWave P8 | yes |
109+
Synapse Audio DUNE 2 | yes |
109110
Synth1 by Ichiro Toda | yes |
110111
Tone2 FireBird | yes |
111112
Tone2 Nemesis | yes |

src/plugin/plugin.cpp

+38-51
Original file line numberDiff line numberDiff line change
@@ -234,15 +234,8 @@ intptr_t Plugin::handleAudioMaster()
234234
intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
235235
void* ptr, float opt)
236236
{
237-
// if(opcode != effCanBeAutomated && opcode != effGetProgramNameIndexed &&
238-
// opcode != effEditIdle && opcode != effGetParamDisplay &&
239-
// opcode != effGetParamLabel && opcode != effGetParameterProperties) {
240-
// FLOOD("dispatch: %s", kDispatchEvents[opcode]);
241-
// }
242-
243-
if(opcode != effEditIdle && opcode) {
237+
if(opcode != effEditIdle && opcode)
244238
FLOOD("(%p) dispatch: %s", std::this_thread::get_id(), kDispatchEvents[opcode]);
245-
}
246239

247240
DataFrame* frame = port->frame<DataFrame>();
248241
frame->command = Command::Dispatch;
@@ -382,19 +375,16 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
382375
port->waitResponse();
383376
return frame->value; }
384377

385-
case effGetProgramName:
378+
case effGetProgramName: {
386379
port->sendRequest();
387380
port->waitResponse();
388381

389-
if(frame->value) {
390-
const char* source = reinterpret_cast<const char*>(frame->data);
391-
char* dest = static_cast<char*>(ptr);
392-
393-
std::strncpy(dest, source, kVstMaxProgNameLen);
394-
dest[kVstMaxProgNameLen-1] = '\0';
395-
}
382+
const char* source = reinterpret_cast<const char*>(frame->data);
383+
char* dest = static_cast<char*>(ptr);
396384

397-
return frame->value;
385+
std::strncpy(dest, source, kVstMaxProgNameLen);
386+
dest[kVstMaxProgNameLen-1] = '\0';
387+
return frame->value; }
398388

399389
case effSetProgramName: {
400390
const char* source = static_cast<const char*>(ptr);
@@ -408,49 +398,49 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
408398
return frame->value; }
409399

410400
case effGetVendorString:
411-
case effGetProductString:
401+
case effGetProductString: {
412402
port->sendRequest();
413403
port->waitResponse();
414404

415-
if(frame->value) {
416-
const char* source = reinterpret_cast<const char*>(frame->data);
417-
char* dest = static_cast<char*>(ptr);
418-
419-
std::strncpy(dest, source, kVstMaxVendorStrLen);
420-
dest[kVstMaxVendorStrLen-1] = '\0';
421-
}
405+
const char* source = reinterpret_cast<const char*>(frame->data);
406+
char* dest = static_cast<char*>(ptr);
422407

423-
return frame->value;
408+
std::strncpy(dest, source, kVstMaxVendorStrLen);
409+
dest[kVstMaxVendorStrLen-1] = '\0';
410+
return frame->value; }
424411

425412
case effGetParamName:
426413
case effGetParamLabel:
427-
case effGetParamDisplay:
414+
case effGetParamDisplay: {
428415
port->sendRequest();
429416
port->waitResponse();
430417

431-
if(frame->value) {
432-
const char* source = reinterpret_cast<const char*>(frame->data);
433-
char* dest = static_cast<char*>(ptr);
418+
const char* source = reinterpret_cast<const char*>(frame->data);
419+
char* dest = static_cast<char*>(ptr);
420+
421+
// std::strncpy(dest, source, kVstMaxParamStrLen);
422+
// dest[kVstMaxParamStrLen-1] = '\0';
434423

435-
std::strncpy(dest, source, kVstMaxParamStrLen);
436-
dest[kVstMaxParamStrLen-1] = '\0';
424+
// Workaround for Variety of Sound plugins bug (non-printable characters)
425+
int i;
426+
for(i = 0; i < kVstMaxParamStrLen - 1; ++i) {
427+
if(isprint(source[i]))
428+
dest[i] = source[i];
437429
}
438430

439-
return frame->value;
431+
dest[i] = '\0';
432+
return frame->value; }
440433

441-
case effGetEffectName:
434+
case effGetEffectName: {
442435
port->sendRequest();
443436
port->waitResponse();
444437

445-
if(frame->value) {
446-
const char* source = reinterpret_cast<const char*>(frame->data);
447-
char* dest = static_cast<char*>(ptr);
448-
449-
std::strncpy(dest, source, kVstMaxEffectNameLen);
450-
dest[kVstMaxEffectNameLen-1] = '\0';
451-
}
438+
const char* source = reinterpret_cast<const char*>(frame->data);
439+
char* dest = static_cast<char*>(ptr);
452440

453-
return frame->value;
441+
std::strncpy(dest, source, kVstMaxEffectNameLen);
442+
dest[kVstMaxEffectNameLen-1] = '\0';
443+
return frame->value; }
454444

455445
case effGetParameterProperties:
456446
port->sendRequest();
@@ -467,19 +457,16 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
467457
std::memcpy(ptr, frame->data, sizeof(VstPinProperties));
468458
return frame->value;
469459

470-
case effGetProgramNameIndexed:
460+
case effGetProgramNameIndexed: {
471461
port->sendRequest();
472462
port->waitResponse();
473463

474-
if(frame->value) {
475-
const char* source = reinterpret_cast<const char*>(frame->data);
476-
char* dest = static_cast<char*>(ptr);
464+
const char* source = reinterpret_cast<const char*>(frame->data);
465+
char* dest = static_cast<char*>(ptr);
477466

478-
std::strncpy(dest, source, kVstMaxProgNameLen);
479-
dest[kVstMaxProgNameLen-1] = '\0';
480-
}
481-
482-
return frame->value;
467+
std::strncpy(dest, source, kVstMaxProgNameLen);
468+
dest[kVstMaxProgNameLen-1] = '\0';
469+
return frame->value; }
483470

484471
case effGetMidiKeyName:
485472
port->sendRequest();

0 commit comments

Comments
 (0)