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 <fcntl.h>
#include <sys/mman.h> #include <sys/mman.h>
#include <fenv.h> // fesetround() #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 // #define _GNU_SOURCE
#include <dlfcn.h> #include <dlfcn.h>
@@ -689,7 +706,6 @@ public:
} }


void closeEffect(void) { void closeEffect(void) {

closeEditor(); closeEditor();


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


bool setProgramChunk(size_t _size, uint8_t *_addr) { bool setProgramChunk(size_t _size, uint8_t *_addr) {
Dprintf("xxx vstrack_plugin:setProgramChunk: 1\n");
setGlobals(); setGlobals();
Dprintf("xxx vstrack_plugin:setProgramChunk: 2\n");
lockAudio(); lockAudio();
Dprintf("xxx vstrack_plugin:setProgramChunk: 3\n");
vst2_set_shared_plugin_tls_globals(); vst2_set_shared_plugin_tls_globals();
Dprintf("xxx vstrack_plugin:setProgramChunk: 4\n");
#if 0 #if 0
Dprintf("xxx vstrack_plugin:setProgramChunk: size=%u\n", _size); Dprintf("xxx vstrack_plugin:setProgramChunk: size=%u\n", _size);
#endif #endif
lglw_glcontext_push(rack::global_ui->window.lglw); 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); 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 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); 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(); unlockAudio();
Dprintf("xxx vstrack_plugin:setProgramChunk: 9\n");
return r; return r;
} }


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


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


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


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


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

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

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


#if 0 #if 0


Loading…
Cancel
Save