rework 8e3b6c9ac (fstwin is C code, not C++)
authorRobin Gareus <robin@gareus.org>
Tue, 15 Nov 2016 01:49:30 +0000 (02:49 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 15 Nov 2016 01:49:41 +0000 (02:49 +0100)
libs/ardour/ardour/vst_types.h
libs/ardour/linux_vst_support.cc
libs/ardour/mac_vst_support.cc
libs/ardour/vst_helper.cc [new file with mode: 0644]
libs/ardour/wscript
libs/fst/scanner.cc
libs/fst/vstwin.c

index 0b8bcb62736d2637fba90c0668ff606dd705f7d0..580c213a0a75f5bdf62ae153b1ed68a894efba3c 100644 (file)
@@ -134,26 +134,10 @@ struct LIBARDOUR_API _VSTState
        pthread_cond_t     plugin_dispatcher_called;
        pthread_cond_t     window_created;
        int                been_activated;
-
-       void init () {
-               pthread_mutex_init (&lock, 0);
-               pthread_mutex_init (&state_lock, 0);
-               pthread_cond_init (&window_status_change, 0);
-               pthread_cond_init (&plugin_dispatcher_called, 0);
-               pthread_cond_init (&window_created, 0);
-               want_program = -1;
-               want_chunk = 0;
-               n_pending_keys = 0;
-               has_editor = 0;
-               program_set_without_editor = 0;
-               linux_window = 0;
-               linux_plugin_ui_window = 0;
-               eventProc = 0;
-               extra_data = 0;
-               want_resize = 0;
-       }
 };
 
 typedef struct _VSTState VSTState;
 
+LIBARDOUR_API extern void vststate_init (VSTState* state);
+
 #endif
index 92c3243fb8c56d4bd896e2a0c5b1cea2f8bff8f4..065e8bd755b9e79674b7cc05d480642860c89eba 100644 (file)
@@ -83,7 +83,7 @@ static VSTState *
 vstfx_new ()
 {
        VSTState* vstfx = (VSTState *) calloc (1, sizeof (VSTState));
-       vstfx->init ();
+       vststate_init (vstfx);
        return vstfx;
 }
 
index d86d3d5825c6261a2085fcf7c1b5068dbea9de54..2a5efc088c3570004bd703d205ffa07f5d57e28a 100644 (file)
@@ -80,7 +80,7 @@ static VSTState *
 mac_vst_new ()
 {
        VSTState* mac_vst = (VSTState *) calloc (1, sizeof (VSTState));
-       mac_vst->init();
+       vststate_init (mac_vst);
        return mac_vst;
 }
 
diff --git a/libs/ardour/vst_helper.cc b/libs/ardour/vst_helper.cc
new file mode 100644 (file)
index 0000000..da14eea
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2016 Robin Gareus <robin@gareus.org>
+ * Copyright (C) 2010 Paul Davis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "ardour/vst_types.h"
+
+void vststate_init (VSTState* state) {
+       pthread_mutex_init (&state->lock, 0);
+       pthread_mutex_init (&state->state_lock, 0);
+       pthread_cond_init (&state->window_status_change, 0);
+       pthread_cond_init (&state->plugin_dispatcher_called, 0);
+       pthread_cond_init (&state->window_created, 0);
+       state->want_program = -1;
+       state->want_chunk = 0;
+       state->n_pending_keys = 0;
+       state->has_editor = 0;
+       state->program_set_without_editor = 0;
+       state->linux_window = 0;
+       state->linux_plugin_ui_window = 0;
+       state->eventProc = 0;
+       state->extra_data = 0;
+       state->want_resize = 0;
+}
index 98dffa0384c7bce4cd8a10294dd3b37dd4e529dd..b998732695fb4f28ec32a575575b7e3fc6fb808b 100644 (file)
@@ -436,7 +436,7 @@ def build(bld):
         obj.defines += [ 'LXVST_SUPPORT' ]
 
     if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT') or bld.is_defined('MACVST_SUPPORT'):
-        obj.source += [ 'session_vst.cc', 'vst_plugin.cc', 'vst_info_file.cc' ]
+        obj.source += [ 'session_vst.cc', 'vst_plugin.cc', 'vst_info_file.cc', 'vst_helper.cc' ]
 
     if bld.is_defined('MACVST_SUPPORT'):
         obj.source += [ 'mac_vst_plugin.cc', 'mac_vst_support.cc' ]
index 1f8a90e7a834e3cb56e0d43919ba89d938f9d2fc..1c61976819c11375a0594e9d029cabafdb013b21 100644 (file)
@@ -36,6 +36,7 @@
 #endif
 #include "../ardour/filesystem_paths.cc"
 #include "../ardour/directory_names.cc"
+#include "../ardour/vst_helper.cc"
 
 
 #ifdef LXVST_SUPPORT
index b26295fa73ac6dc7397b8ec070d8ac01e1b6211c..53eba86b06ae05e8c9902896d7a02acd8444c382 100644 (file)
@@ -220,7 +220,7 @@ static VSTState*
 fst_new (void)
 {
        VSTState* fst = (VSTState*) calloc (1, sizeof (VSTState));
-       fst->init();
+       vststate_init (fst);
 #ifdef PLATFORM_WINDOWS
        fst->voffset = 50;
        fst->hoffset = 0;