@@ -234,10 +234,14 @@ intptr_t Plugin::handleAudioMaster()
234
234
intptr_t Plugin::dispatch (DataPort* port, i32 opcode, i32 index, intptr_t value,
235
235
void * ptr, float opt)
236
236
{
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]);
241
245
}
242
246
243
247
DataFrame* frame = port->frame <DataFrame>();
@@ -378,16 +382,19 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
378
382
port->waitResponse ();
379
383
return frame->value ; }
380
384
381
- case effGetProgramName: {
385
+ case effGetProgramName:
382
386
port->sendRequest ();
383
387
port->waitResponse ();
384
388
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);
387
392
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 ;
391
398
392
399
case effSetProgramName: {
393
400
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,
401
408
return frame->value ; }
402
409
403
410
case effGetVendorString:
404
- case effGetProductString: {
411
+ case effGetProductString:
405
412
port->sendRequest ();
406
413
port->waitResponse ();
407
414
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);
410
418
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 ;
414
424
415
425
case effGetParamName:
416
426
case effGetParamLabel:
417
- case effGetParamDisplay: {
427
+ case effGetParamDisplay:
418
428
port->sendRequest ();
419
429
port->waitResponse ();
420
430
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);
423
434
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
+ }
427
438
428
- case effGetEffectName: {
439
+ return frame->value ;
440
+
441
+ case effGetEffectName:
429
442
port->sendRequest ();
430
443
port->waitResponse ();
431
444
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);
434
448
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 ;
438
454
439
455
case effGetParameterProperties:
440
456
port->sendRequest ();
@@ -451,16 +467,19 @@ intptr_t Plugin::dispatch(DataPort* port, i32 opcode, i32 index, intptr_t value,
451
467
std::memcpy (ptr, frame->data , sizeof (VstPinProperties));
452
468
return frame->value ;
453
469
454
- case effGetProgramNameIndexed: {
470
+ case effGetProgramNameIndexed:
455
471
port->sendRequest ();
456
472
port->waitResponse ();
457
473
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);
460
477
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 ;
464
483
465
484
case effGetMidiKeyName:
466
485
port->sendRequest ();
0 commit comments