Browse Source

Linux: redirect Dprintf to /tmp/vst2_log.txt (debug)

pull/1639/head
bsp2 6 years ago
parent
commit
af32e1a0da
1 changed files with 34 additions and 2 deletions
  1. +34
    -2
      src/vst2_main.cpp

+ 34
- 2
src/vst2_main.cpp View File

@@ -148,6 +148,23 @@ struct PluginMutex {
#include <fcntl.h>
#include <sys/mman.h>
#include <fenv.h> // fesetround()
#include <stdarg.h>

static FILE *logfile;
#undef Dprintf
#define Dprintf log_printf

static void log_printf(const char *logData, ...) {
static char buf[16*1024];
va_list va;
va_start(va, logData);
vsprintf(buf, logData, va);
va_end(va);
printf(buf);
fputs(buf, logfile);
fflush(logfile);
}


// #define _GNU_SOURCE
#include <dlfcn.h>
@@ -689,7 +706,6 @@ public:
}

void closeEffect(void) {

closeEditor();

// (todo) use mutex
@@ -998,18 +1014,26 @@ public:
}

bool setProgramChunk(size_t _size, uint8_t *_addr) {
Dprintf("xxx vstrack_plugin:setProgramChunk: 1\n");
setGlobals();
Dprintf("xxx vstrack_plugin:setProgramChunk: 2\n");
lockAudio();
Dprintf("xxx vstrack_plugin:setProgramChunk: 3\n");
vst2_set_shared_plugin_tls_globals();
Dprintf("xxx vstrack_plugin:setProgramChunk: 4\n");
#if 0
Dprintf("xxx vstrack_plugin:setProgramChunk: size=%u\n", _size);
#endif
lglw_glcontext_push(rack::global_ui->window.lglw);
Dprintf("xxx vstrack_plugin:setProgramChunk: 5\n");
bool r = rack::global_ui->app.gRackWidget->loadPatchFromString((const char*)_addr);
Dprintf("xxx vstrack_plugin:setProgramChunk: 6\n");
rack::global_ui->ui.gScene->step(); // w/o this the patch is bypassed
Dprintf("xxx vstrack_plugin:setProgramChunk: 7\n");
lglw_glcontext_pop(rack::global_ui->window.lglw);
Dprintf("xxx vstrack_plugin:setProgramChunk: r=%d\n", r);
Dprintf("xxx vstrack_plugin:setProgramChunk: 8 r=%d\n", r);
unlockAudio();
Dprintf("xxx vstrack_plugin:setProgramChunk: 9\n");
return r;
}

@@ -1102,6 +1126,7 @@ public:
}

void redraw(void) {
#if 1
setGlobals();

if(lglw_window_is_visible(rack::global_ui->window.lglw))
@@ -1116,6 +1141,7 @@ public:
// Restore the DAW's GL context
lglw_glcontext_pop(rack::global_ui->window.lglw);
}
#endif
}

#ifdef YAC_LINUX
@@ -1690,6 +1716,7 @@ VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin,
// // {
r = wrapper->setProgramChunk(size_t(value), (uint8_t*)ptr) ? 1 : 0;
// // }
Dprintf("xxx vstrack_plugin: effSetChunk LEAVE\n");
break;

case effShellGetNextPlugin:
@@ -2205,6 +2232,11 @@ void vst2_idle_detect_mode_get(int *_mode) {
* Implementation of the main entry point of the plugin
*/
VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) {

#ifdef YAC_LINUX
logfile = fopen("/tmp/vst2_log.txt", "w");
#endif

Dprintf("vstrack_plugin: called VSTPluginMain... \n");

#if 0


Loading…
Cancel
Save