From e4e9643509dd7373a540c298efee9a244c0d41e8 Mon Sep 17 00:00:00 2001 From: Stefano D'Angelo Date: Fri, 2 Feb 2024 17:48:53 +0100 Subject: [PATCH] finally we can use C++ in web examples --- examples/common/src/common.h | 1 + examples/common/src/cxx/plugin.h | 16 ++++++++-------- examples/common/src/make-cxx.json | 2 +- examples/common/src/web-make.json | 1 + examples/fxpp_ap1/src/impl.cpp | 2 ++ include/bw_common.h | 3 ++- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/examples/common/src/common.h b/examples/common/src/common.h index 96b279e..e3465eb 100644 --- a/examples/common/src/common.h +++ b/examples/common/src/common.h @@ -3,3 +3,4 @@ # define INFINITY (__builtin_inff()) #endif #define BW_NO_DEBUG +#define BW_CXX_NO_ARRAY diff --git a/examples/common/src/cxx/plugin.h b/examples/common/src/cxx/plugin.h index 7a84121..22b90fc 100644 --- a/examples/common/src/cxx/plugin.h +++ b/examples/common/src/cxx/plugin.h @@ -2,19 +2,19 @@ #include "impl.h" typedef struct plugin { - impl impl; + impl handle; } plugin; static void plugin_init(plugin *instance) { - instance->impl = impl_new(); + instance->handle = impl_new(); } static void plugin_fini(plugin *instance) { - impl_free(instance->impl); + impl_free(instance->handle); } static void plugin_set_sample_rate(plugin *instance, float sample_rate) { - impl_set_sample_rate(instance->impl, sample_rate); + impl_set_sample_rate(instance->handle, sample_rate); } static size_t plugin_mem_req(plugin *instance) { @@ -28,17 +28,17 @@ static void plugin_mem_set(plugin *instance, void *mem) { } static void plugin_reset(plugin *instance) { - impl_reset(instance->impl); + impl_reset(instance->handle); } static void plugin_set_parameter(plugin *instance, size_t index, float value) { - impl_set_parameter(instance->impl, index, value); + impl_set_parameter(instance->handle, index, value); } static float plugin_get_parameter(plugin *instance, size_t index) { - return impl_get_parameter(instance->impl, index); + return impl_get_parameter(instance->handle, index); } static void plugin_process(plugin *instance, const float **inputs, float **outputs, size_t n_samples) { - impl_process(instance->impl, inputs, outputs, n_samples); + impl_process(instance->handle, inputs, outputs, n_samples); } diff --git a/examples/common/src/make-cxx.json b/examples/common/src/make-cxx.json index d2875f5..a4f5c8d 100644 --- a/examples/common/src/make-cxx.json +++ b/examples/common/src/make-cxx.json @@ -2,7 +2,7 @@ "make": { "cxxSrcs": "../src/impl.cpp", "cflags": "-I../../../include -I../../common/src -I../../common/src/cxx", - "cxxflags": "-I../../../include -I../../common/src -I../../common/src/cxx", + "cxxflags": "-I../../../include -I../../common/src -I../../common/src/cxx -std=c++11", "pluginDir": "../src" } } diff --git a/examples/common/src/web-make.json b/examples/common/src/web-make.json index d8c6e4a..9d130b0 100644 --- a/examples/common/src/web-make.json +++ b/examples/common/src/web-make.json @@ -1,6 +1,7 @@ { "web_make": { "cflags": "-DWASM", + "cxxflags": "-DWASM -std=c++11", "commonDir": "../../common/web" } } diff --git a/examples/fxpp_ap1/src/impl.cpp b/examples/fxpp_ap1/src/impl.cpp index 5d336df..b670308 100644 --- a/examples/fxpp_ap1/src/impl.cpp +++ b/examples/fxpp_ap1/src/impl.cpp @@ -1,4 +1,6 @@ #include "impl.h" + +#include "common.h" #include using namespace Brickworks; diff --git a/include/bw_common.h b/include/bw_common.h index a84b4be..07a8ca2 100644 --- a/include/bw_common.h +++ b/include/bw_common.h @@ -33,6 +33,7 @@ * definition requirement in C++. *
  • Added BW_CXX_NO_ARRAY.
  • *
  • Fixed sign-related warning in bw_hash_sdbm().
  • + *
  • Now checking that C++ compilers support C++11 or later.
  • * * *
  • Version 1.0.0: @@ -95,7 +96,7 @@ #ifdef __cplusplus # if __cplusplus < 201103L -# error Detected C++ compiler that doesn't support C++11 +# error Detected C++ compiler that does not support C++11 # endif #endif