finally we can use C++ in web examples

This commit is contained in:
Stefano D'Angelo 2024-02-02 17:48:53 +01:00
parent 1d2f9dda39
commit e4e9643509
6 changed files with 15 additions and 10 deletions

View File

@ -3,3 +3,4 @@
# define INFINITY (__builtin_inff()) # define INFINITY (__builtin_inff())
#endif #endif
#define BW_NO_DEBUG #define BW_NO_DEBUG
#define BW_CXX_NO_ARRAY

View File

@ -2,19 +2,19 @@
#include "impl.h" #include "impl.h"
typedef struct plugin { typedef struct plugin {
impl impl; impl handle;
} plugin; } plugin;
static void plugin_init(plugin *instance) { static void plugin_init(plugin *instance) {
instance->impl = impl_new(); instance->handle = impl_new();
} }
static void plugin_fini(plugin *instance) { 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) { 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) { 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) { 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) { 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) { 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) { 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);
} }

View File

@ -2,7 +2,7 @@
"make": { "make": {
"cxxSrcs": "../src/impl.cpp", "cxxSrcs": "../src/impl.cpp",
"cflags": "-I../../../include -I../../common/src -I../../common/src/cxx", "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" "pluginDir": "../src"
} }
} }

View File

@ -1,6 +1,7 @@
{ {
"web_make": { "web_make": {
"cflags": "-DWASM", "cflags": "-DWASM",
"cxxflags": "-DWASM -std=c++11",
"commonDir": "../../common/web" "commonDir": "../../common/web"
} }
} }

View File

@ -1,4 +1,6 @@
#include "impl.h" #include "impl.h"
#include "common.h"
#include <bw_ap1.h> #include <bw_ap1.h>
using namespace Brickworks; using namespace Brickworks;

View File

@ -33,6 +33,7 @@
* definition requirement in C++.</li> * definition requirement in C++.</li>
* <li>Added <code>BW_CXX_NO_ARRAY</code>.</li> * <li>Added <code>BW_CXX_NO_ARRAY</code>.</li>
* <li>Fixed sign-related warning in <code>bw_hash_sdbm()</code>.</li> * <li>Fixed sign-related warning in <code>bw_hash_sdbm()</code>.</li>
* <li>Now checking that C++ compilers support C++11 or later.</li>
* </ul> * </ul>
* </li> * </li>
* <li>Version <strong>1.0.0</strong>: * <li>Version <strong>1.0.0</strong>:
@ -95,7 +96,7 @@
#ifdef __cplusplus #ifdef __cplusplus
# if __cplusplus < 201103L # 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
#endif #endif