Skip to content

Commit d50b987

Browse files
committed
Merge branch 'develop'
2 parents b6d8498 + f4452c9 commit d50b987

File tree

5 files changed

+59
-37
lines changed

5 files changed

+59
-37
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 0)
9-
set(VERSION_PATCH 1)
9+
set(VERSION_PATCH 2)
1010

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

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The following list is not complete. It contains only plugins, that have been tes
3939
u-he Satin | yes | Linux version is also available
4040
u-he Uhbik | yes | Linux version is also available
4141
u-he Zebra2 | yes | Linux version is also available
42-
Variety of Sound | no | crash immediately
42+
Variety of Sound plugins | yes |
4343
Voxengo SPAN | yes |
4444
Voxengo SPAN Pro | mostly | inter plugin routing doesn't work (architecture issue)
4545
Xfer Serum | partly | the GUI doesn't appear (wine issue), but audio works

src/host/host.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,10 @@ bool Host::initialize(const char* fileName, int portId)
146146

147147
bool Host::processRequest()
148148
{
149-
if(!controlPort_.isConnected())
149+
if(!controlPort_.isConnected()) {
150+
TRACE("Control port isn't connected anymore, exiting");
150151
return false;
152+
}
151153

152154
if(!controlPort_.waitRequest(20))
153155
return true;

src/host/main.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ int main(int argc, const char* argv[])
5252
}
5353
}
5454

55+
TRACE("Terminating the host endpoint...");
5556
delete host;
5657

5758
TRACE("Host endpoint terminated");

src/plugin/plugin.cpp

+53-34
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,14 @@ 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]);
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) {
244+
FLOOD("(%p) dispatch: %s", std::this_thread::get_id(), kDispatchEvents[opcode]);
241245
}
242246

243247
DataFrame* frame = port->frame<DataFrame>();
@@ -378,16 +382,19 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
378382
port->waitResponse();
379383
return frame->value; }
380384

381-
case effGetProgramName: {
385+
case effGetProgramName:
382386
port->sendRequest();
383387
port->waitResponse();
384388

385-
const char* source = reinterpret_cast<const char*>(frame->data);
386-
char* dest = static_cast<char*>(ptr);
389+
if(frame->value) {
390+
const char* source = reinterpret_cast<const char*>(frame->data);
391+
char* dest = static_cast<char*>(ptr);
387392

388-
std::strncpy(dest, source, kVstMaxProgNameLen);
389-
dest[kVstMaxProgNameLen-1] = '\0';
390-
return frame->value; }
393+
std::strncpy(dest, source, kVstMaxProgNameLen);
394+
dest[kVstMaxProgNameLen-1] = '\0';
395+
}
396+
397+
return frame->value;
391398

392399
case effSetProgramName: {
393400
const char* source = static_cast<const char*>(ptr);
@@ -401,40 +408,49 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
401408
return frame->value; }
402409

403410
case effGetVendorString:
404-
case effGetProductString: {
411+
case effGetProductString:
405412
port->sendRequest();
406413
port->waitResponse();
407414

408-
const char* source = reinterpret_cast<const char*>(frame->data);
409-
char* dest = static_cast<char*>(ptr);
415+
if(frame->value) {
416+
const char* source = reinterpret_cast<const char*>(frame->data);
417+
char* dest = static_cast<char*>(ptr);
410418

411-
std::strncpy(dest, source, kVstMaxVendorStrLen);
412-
dest[kVstMaxVendorStrLen-1] = '\0';
413-
return frame->value; }
419+
std::strncpy(dest, source, kVstMaxVendorStrLen);
420+
dest[kVstMaxVendorStrLen-1] = '\0';
421+
}
422+
423+
return frame->value;
414424

415425
case effGetParamName:
416426
case effGetParamLabel:
417-
case effGetParamDisplay: {
427+
case effGetParamDisplay:
418428
port->sendRequest();
419429
port->waitResponse();
420430

421-
const char* source = reinterpret_cast<const char*>(frame->data);
422-
char* dest = static_cast<char*>(ptr);
431+
if(frame->value) {
432+
const char* source = reinterpret_cast<const char*>(frame->data);
433+
char* dest = static_cast<char*>(ptr);
423434

424-
std::strncpy(dest, source, kVstMaxParamStrLen);
425-
dest[kVstMaxParamStrLen-1] = '\0';
426-
return frame->value; }
435+
std::strncpy(dest, source, kVstMaxParamStrLen);
436+
dest[kVstMaxParamStrLen-1] = '\0';
437+
}
427438

428-
case effGetEffectName: {
439+
return frame->value;
440+
441+
case effGetEffectName:
429442
port->sendRequest();
430443
port->waitResponse();
431444

432-
const char* source = reinterpret_cast<const char*>(frame->data);
433-
char* dest = static_cast<char*>(ptr);
445+
if(frame->value) {
446+
const char* source = reinterpret_cast<const char*>(frame->data);
447+
char* dest = static_cast<char*>(ptr);
434448

435-
std::strncpy(dest, source, kVstMaxEffectNameLen);
436-
dest[kVstMaxEffectNameLen-1] = '\0';
437-
return frame->value; }
449+
std::strncpy(dest, source, kVstMaxEffectNameLen);
450+
dest[kVstMaxEffectNameLen-1] = '\0';
451+
}
452+
453+
return frame->value;
438454

439455
case effGetParameterProperties:
440456
port->sendRequest();
@@ -451,16 +467,19 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
451467
std::memcpy(ptr, frame->data, sizeof(VstPinProperties));
452468
return frame->value;
453469

454-
case effGetProgramNameIndexed: {
470+
case effGetProgramNameIndexed:
455471
port->sendRequest();
456472
port->waitResponse();
457473

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

461-
std::strncpy(dest, source, kVstMaxProgNameLen);
462-
dest[kVstMaxProgNameLen-1] = '\0';
463-
return frame->value; }
478+
std::strncpy(dest, source, kVstMaxProgNameLen);
479+
dest[kVstMaxProgNameLen-1] = '\0';
480+
}
481+
482+
return frame->value;
464483

465484
case effGetMidiKeyName:
466485
port->sendRequest();

0 commit comments

Comments
 (0)