[beast/devel: 12/15] BSE: compile bseengine, bseenginemaster, bseengineschedule and bseengineutils as C++
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast/devel: 12/15] BSE: compile bseengine, bseenginemaster, bseengineschedule and bseengineutils as C++
- Date: Mon, 17 Dec 2012 03:16:29 +0000 (UTC)
commit 79464841948c030bc87dcccc38dd8372f344498e
Author: Tim Janik <timj gnu org>
Date: Mon Dec 17 02:55:16 2012 +0100
BSE: compile bseengine, bseenginemaster, bseengineschedule and bseengineutils as C++
bse/Makefile.am | 2 +-
bse/{bseengine.c => bseengine.cc} | 14 ++--
bse/{bseenginemaster.c => bseenginemaster.cc} | 38 +++++------
bse/{bseengineschedule.c => bseengineschedule.cc} | 71 ++++++---------------
bse/{bseengineutils.c => bseengineutils.cc} | 44 +++++--------
5 files changed, 62 insertions(+), 107 deletions(-)
---
diff --git a/bse/Makefile.am b/bse/Makefile.am
index c6f108f..6e4aa5a 100644
--- a/bse/Makefile.am
+++ b/bse/Makefile.am
@@ -66,7 +66,7 @@ bse_sources = $(strip \
gsldatahandle-mad.cc gslfilehash.cc gsldatautils.cc \
gslwaveosc.cc gslosctable.cc gslmagic.cc \
\
- bseengine.c bseenginemaster.c bseengineschedule.c bseengineutils.c \
+ bseengine.cc bseenginemaster.cc bseengineschedule.cc bseengineutils.cc \
bsebus.cc bsecategories.cc \
bsefilter.cc bsebiquadfilter.cc bsefilter-ellf.cc \
bseconstant.cc bseconstvalues.cc bsecontainer.cc bsecontextmerger.cc \
diff --git a/bse/bseengine.c b/bse/bseengine.cc
similarity index 99%
rename from bse/bseengine.c
rename to bse/bseengine.cc
index 97a710f..d569563 100644
--- a/bse/bseengine.c
+++ b/bse/bseengine.cc
@@ -540,7 +540,7 @@ bse_job_probe_request (BseModule *module,
EngineNode *node = ENGINE_NODE (module);
g_return_val_if_fail (probe_func != NULL, NULL);
- EngineTimedJob *tjob = g_malloc0 (sizeof (tjob->probe));
+ EngineTimedJob *tjob = (EngineTimedJob*) g_malloc0 (sizeof (tjob->probe));
tjob->type = ENGINE_JOB_PROBE_JOB;
tjob->tick_stamp = 0;
tjob->probe.data = data;
@@ -588,7 +588,7 @@ bse_job_flow_access (BseModule *module,
g_return_val_if_fail (tick_stamp < GSL_MAX_TICK_STAMP, NULL);
g_return_val_if_fail (access_func != NULL, NULL);
- EngineTimedJob *tjob = g_malloc0 (sizeof (tjob->access));
+ EngineTimedJob *tjob = (EngineTimedJob*) g_malloc0 (sizeof (tjob->access));
tjob->type = ENGINE_JOB_FLOW_JOB;
tjob->tick_stamp = tick_stamp;
tjob->access.free_func = free_func;
@@ -634,7 +634,7 @@ bse_job_boundary_access (BseModule *module,
g_return_val_if_fail (tick_stamp < GSL_MAX_TICK_STAMP, NULL);
g_return_val_if_fail (access_func != NULL, NULL);
- EngineTimedJob *tjob = g_malloc0 (sizeof (tjob->access));
+ EngineTimedJob *tjob = (EngineTimedJob*) g_malloc0 (sizeof (tjob->access));
tjob->type = ENGINE_JOB_BOUNDARY_JOB;
tjob->tick_stamp = tick_stamp;
tjob->access.free_func = free_func;
@@ -675,7 +675,7 @@ bse_job_boundary_discard (BseModule *module)
{
g_return_val_if_fail (module != NULL, NULL);
- EngineTimedJob *tjob = g_malloc0 (sizeof (tjob->access));
+ EngineTimedJob *tjob = (EngineTimedJob*) g_malloc0 (sizeof (tjob->access));
tjob->type = ENGINE_JOB_BOUNDARY_JOB;
tjob->tick_stamp = 0;
tjob->access.free_func = NULL;
@@ -800,7 +800,7 @@ bse_job_add_poll (BseEnginePollFunc poll_func,
job->poll.data = data;
job->poll.free_func = free_func;
job->poll.n_fds = n_fds;
- job->poll.fds = g_memdup (fds, sizeof (fds[0]) * n_fds);
+ job->poll.fds = (GPollFD*) g_memdup (fds, sizeof (fds[0]) * n_fds);
return job;
}
@@ -1026,7 +1026,7 @@ static gboolean
dtrans_timer (gpointer timer_data,
guint64 stamp)
{
- DTrans *data = timer_data;
+ DTrans *data = (DTrans*) timer_data;
if (data->tick_stamp <= stamp)
{
if (!data->trans->jobs_head)
@@ -1209,7 +1209,7 @@ bse_module_new_virtual (guint n_iostreams,
g_return_val_if_fail (n_iostreams > 0, NULL);
- vclass = g_memdup (&virtual_module_class, sizeof (virtual_module_class));
+ vclass = (VirtualModuleClass*) g_memdup (&virtual_module_class, sizeof (virtual_module_class));
vclass->klass.n_istreams = n_iostreams;
vclass->klass.n_ostreams = n_iostreams;
vclass->free_data = free_data;
diff --git a/bse/bseenginemaster.c b/bse/bseenginemaster.cc
similarity index 96%
rename from bse/bseenginemaster.c
rename to bse/bseenginemaster.cc
index 542443b..3e8b8f7 100644
--- a/bse/bseenginemaster.c
+++ b/bse/bseenginemaster.cc
@@ -81,7 +81,6 @@ static void master_schedule_discard (void);
static gboolean master_need_reflow = FALSE;
static gboolean master_need_process = FALSE;
static EngineNode *master_consumer_list = NULL;
-const gfloat bse_engine_master_zero_block[BSE_STREAM_MAX_VALUES + 16 /* SIMD alignment */] = { 0, }; /* FIXME: move elsewhere? join? */
static Timer *master_timer_list = NULL;
static Poll *master_poll_list = NULL;
static guint master_n_pollfds = 0;
@@ -194,16 +193,13 @@ master_jdisconnect_node (EngineNode *node,
}
static void
-master_disconnect_node_outputs (EngineNode *src_node,
- EngineNode *dest_node)
+master_disconnect_node_outputs (EngineNode *src_node, EngineNode *dest_node)
{
- gint i, j;
-
- for (i = 0; i < ENGINE_NODE_N_ISTREAMS (dest_node); i++)
+ for (int i = 0; i < ENGINE_NODE_N_ISTREAMS (dest_node); i++)
if (dest_node->inputs[i].src_node == src_node)
master_idisconnect_node (dest_node, i);
- for (j = 0; j < ENGINE_NODE_N_JSTREAMS (dest_node); j++)
- for (i = 0; i < dest_node->module.jstreams[j].jcount; i++)
+ for (int j = 0; j < ENGINE_NODE_N_JSTREAMS (dest_node); j++)
+ for (uint i = 0; i < dest_node->module.jstreams[j].jcount; i++)
if (dest_node->jinputs[j][i].src_node == src_node)
master_jdisconnect_node (dest_node, j, i--);
}
@@ -357,7 +353,7 @@ master_process_job (BseJob *job)
JOB_DEBUG ("kill_outputs(%p)", node);
g_return_if_fail (node->integrated == TRUE);
while (node->output_nodes)
- master_disconnect_node_outputs (node, node->output_nodes->data);
+ master_disconnect_node_outputs (node, (EngineNode*) node->output_nodes->data);
master_need_reflow |= TRUE;
break;
case ENGINE_JOB_DISCARD:
@@ -377,7 +373,7 @@ master_process_job (BseJob *job)
master_jdisconnect_node (node, jstream, node->module.jstreams[jstream].jcount - 1);
/* kill outputs */
while (node->output_nodes)
- master_disconnect_node_outputs (node, node->output_nodes->data);
+ master_disconnect_node_outputs (node, (EngineNode*) node->output_nodes->data);
/* remove from consumer list */
if (ENGINE_NODE_IS_CONSUMER (node))
{
@@ -428,7 +424,7 @@ master_process_job (BseJob *job)
case ENGINE_JOB_SUSPEND:
node = job->tick.node;
stamp = job->tick.stamp;
- JOB_DEBUG ("suspend(%p,%llu)", node, stamp);
+ JOB_DEBUG ("suspend(%p,%llu)", node, (long long unsigned int) stamp);
g_return_if_fail (node->integrated == TRUE);
if (node->local_active < stamp)
{
@@ -441,7 +437,7 @@ master_process_job (BseJob *job)
case ENGINE_JOB_RESUME:
node = job->tick.node;
stamp = job->tick.stamp;
- JOB_DEBUG ("resume(%p,%llu)", node, stamp);
+ JOB_DEBUG ("resume(%p,%llu)", node, (long long unsigned int) stamp);
g_return_if_fail (node->integrated == TRUE);
if (node->local_active > stamp)
{
@@ -791,7 +787,7 @@ master_update_node_state (EngineNode *node,
do
{
TJOB_DEBUG ("flow-access for (%p:s=%u) at:%lld current:%lld\n",
- node, node->sched_tag, tjob->tick_stamp, node->counter);
+ node, node->sched_tag, (long long unsigned int) tjob->tick_stamp, (long long unsigned int) node->counter);
tjob->access.access_func (&node->module, tjob->access.data);
tjob = node_pop_flow_job (node, max_tick);
}
@@ -835,7 +831,7 @@ master_process_locked_node (EngineNode *node,
ENGINE_NODE_UNLOCK (inode);
}
else
- node->module.istreams[i].values = bse_engine_master_zero_block;
+ node->module.istreams[i].values = bse_engine_const_zeros (BSE_STREAM_MAX_VALUES);
}
/* ensure all jstream inputs have n_values available */
for (j = 0; j < ENGINE_NODE_N_JSTREAMS (node); j++)
@@ -863,7 +859,7 @@ master_process_locked_node (EngineNode *node,
/* suspended node processing behaviour */
for (i = 0; i < ENGINE_NODE_N_OSTREAMS (node); i++)
if (node->module.ostreams[i].connected)
- node->module.ostreams[i].values = (gfloat*) bse_engine_master_zero_block;
+ node->module.ostreams[i].values = bse_engine_const_zeros (BSE_STREAM_MAX_VALUES);
node->needs_reset = TRUE;
}
else
@@ -946,7 +942,7 @@ master_process_flow (void)
SfiRing *ring = probe_node_list;
while (ring)
{
- node = ring->data; /* current ring may be removed during master_take_probes() */
+ node = (EngineNode*) ring->data; /* current ring may be removed during master_take_probes() */
ring = sfi_ring_walk (ring, probe_node_list);
if (!ENGINE_NODE_IS_SCHEDULED (node))
master_take_probes (node, current_stamp, n_values, PROBE_UNSCHEDULED);
@@ -960,12 +956,12 @@ master_process_flow (void)
{
if (profile_node)
{
- if (profile_maxtime > profile_modules)
+ if (profile_maxtime > guint64 (profile_modules))
g_print ("Excess Node: %p Duration: %llu usecs ((void(*)())%p) \n",
- profile_node, profile_maxtime, profile_node->module.klass->process);
+ profile_node, (long long unsigned int) profile_maxtime, profile_node->module.klass->process);
else
g_print ("Slowest Node: %p Duration: %llu usecs ((void(*)())%p) \r",
- profile_node, profile_maxtime, profile_node->module.klass->process);
+ profile_node, (long long unsigned int) profile_maxtime, profile_node->module.klass->process);
}
}
@@ -1097,7 +1093,7 @@ _engine_master_dispatch_jobs (void)
while (ring)
{
SfiRing *current = ring;
- EngineNode *node = ring->data;
+ EngineNode *node = (EngineNode*) ring->data;
ring = sfi_ring_walk (ring, boundary_node_list);
EngineTimedJob *tjob = node_pop_boundary_job (node, last_block_tick, current);
if (tjob)
@@ -1105,7 +1101,7 @@ _engine_master_dispatch_jobs (void)
while (tjob)
{
TJOB_DEBUG ("boundary-access for (%p:s=%u) at:%lld current:%lld\n",
- node, node->sched_tag, tjob->tick_stamp, node->counter);
+ node, node->sched_tag, (long long int) tjob->tick_stamp, (long long int) node->counter);
tjob->access.access_func (&node->module, tjob->access.data);
tjob = node_pop_boundary_job (node, last_block_tick, current);
}
diff --git a/bse/bseengineschedule.c b/bse/bseengineschedule.cc
similarity index 95%
rename from bse/bseengineschedule.c
rename to bse/bseengineschedule.cc
index cd21a1d..7dbb68e 100644
--- a/bse/bseengineschedule.c
+++ b/bse/bseengineschedule.cc
@@ -52,8 +52,7 @@ _engine_schedule_new (void)
}
static inline void
-unschedule_virtual (EngineSchedule *sched,
- EngineNode *vnode)
+unschedule_virtual (EngineSchedule *sched, EngineNode *vnode)
{
g_return_if_fail (ENGINE_NODE_IS_SCHEDULED (vnode) == TRUE);
g_return_if_fail (sched->n_items > 0);
@@ -65,8 +64,7 @@ unschedule_virtual (EngineSchedule *sched,
}
static inline void
-unschedule_node (EngineSchedule *sched,
- EngineNode *node)
+unschedule_node (EngineSchedule *sched, EngineNode *node)
{
guint leaf_level;
@@ -100,8 +98,7 @@ unschedule_cycle (EngineSchedule *sched,
sched->nodes[leaf_level] = sfi_ring_remove (sched->nodes[leaf_level], ring);
for (walk = ring; walk; walk = sfi_ring_walk (walk, ring))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
if (!ENGINE_NODE_IS_SCHEDULED (node))
g_warning ("node(%p) in schedule ring(%p) is untagged", node, ring);
node->sched_leaf_level = 0;
@@ -159,13 +156,13 @@ _engine_schedule_clear (EngineSchedule *sched)
g_return_if_fail (sched->in_pqueue == FALSE);
while (sched->vnodes)
- unschedule_virtual (sched, sched->vnodes->data);
+ unschedule_virtual (sched, (EngineNode*) sched->vnodes->data);
for (i = 0; i < sched->leaf_levels; i++)
{
while (sched->nodes[i])
- unschedule_node (sched, sched->nodes[i]->data);
+ unschedule_node (sched, (EngineNode*) sched->nodes[i]->data);
while (sched->cycles[i])
- unschedule_cycle (sched, sched->cycles[i]->data);
+ unschedule_cycle (sched, (SfiRing*) sched->cycles[i]->data);
}
g_return_if_fail (sched->n_items == 0);
}
@@ -256,15 +253,13 @@ schedule_cycle (EngineSchedule *sched,
guint leaf_level)
{
SfiRing *walk;
-
g_return_if_fail (sched != NULL);
g_return_if_fail (sched->secured == FALSE);
g_return_if_fail (cycle_nodes != NULL);
-
+
for (walk = cycle_nodes; walk; walk = sfi_ring_walk (walk, cycle_nodes))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
g_return_if_fail (!ENGINE_NODE_IS_SCHEDULED (node));
node->sched_leaf_level = leaf_level;
node->sched_tag = TRUE;
@@ -327,22 +322,18 @@ _engine_schedule_pop_node (EngineSchedule *sched)
g_return_val_if_fail (sched != NULL, NULL);
g_return_val_if_fail (sched->secured == TRUE, NULL);
g_return_val_if_fail (sched->cur_leaf_level <= sched->leaf_levels, NULL);
-
do
{
- guint leaf_level = sched->cur_leaf_level;
-
+ uint leaf_level = sched->cur_leaf_level;
if (sched->cur_node)
{
- EngineNode *node = sched->cur_node->data;
-
+ EngineNode *node = (EngineNode*) sched->cur_node->data;
sched->cur_node = sfi_ring_walk (sched->cur_node, sched->nodes[leaf_level]);
return node;
}
schedule_advance (sched);
}
while (sched->cur_node);
-
/* nothing to hand out, either we're empty or still have cycles pending */
return NULL;
}
@@ -353,22 +344,18 @@ _engine_schedule_pop_cycle (EngineSchedule *sched)
g_return_val_if_fail (sched != NULL, NULL);
g_return_val_if_fail (sched->secured == TRUE, NULL);
g_return_val_if_fail (sched->cur_leaf_level <= sched->leaf_levels, NULL);
-
do
{
guint leaf_level = sched->cur_leaf_level;
-
if (sched->cur_cycle)
{
- SfiRing *cycle = sched->cur_cycle->data;
-
+ SfiRing *cycle = (SfiRing*) sched->cur_cycle->data;
sched->cur_cycle = sfi_ring_walk (sched->cur_cycle, sched->cycles[leaf_level]);
return cycle;
}
schedule_advance (sched);
}
while (sched->cur_cycle);
-
/* nothing to hand out, either we're empty or still have nodes pending */
return NULL;
}
@@ -421,7 +408,7 @@ determine_suspension_reset (EngineNode *node)
node->in_suspend_call = TRUE;
for (ring = node->output_nodes; ring && !keep_state; ring = sfi_ring_walk (ring, node->output_nodes))
{
- EngineNode *dest_node = ring->data;
+ EngineNode *dest_node = (EngineNode*) ring->data;
if (!dest_node->in_suspend_call) /* break cycles (consisting of purely virtual nodes) */
keep_state |= !determine_suspension_reset (dest_node);
}
@@ -446,7 +433,7 @@ determine_suspension_state (EngineNode *node,
gboolean keep_state = FALSE;
for (ring = node->output_nodes; ring; ring = sfi_ring_walk (ring, node->output_nodes))
{
- EngineNode *dest_node = ring->data;
+ EngineNode *dest_node = (EngineNode*) ring->data;
if (!dest_node->in_suspend_call) /* catch cycles */
{
guint64 ostamp = determine_suspension_state (dest_node, &seen_cycle, &keep_state);
@@ -494,44 +481,35 @@ merge_untagged_node_lists_uniq (SfiRing *ring1,
SfiRing *ring2)
{
SfiRing *walk;
-
/* paranoid, ensure all nodes are untagged (ring2) */
for (walk = ring2; walk; walk = sfi_ring_walk (walk, ring2))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
g_assert (node->sched_recurse_tag == FALSE);
}
-
/* tag all nodes in ring1 first */
for (walk = ring1; walk; walk = sfi_ring_walk (walk, ring1))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
g_assert (node->sched_recurse_tag == FALSE); /* paranoid check */
node->sched_recurse_tag = TRUE;
}
-
/* merge list with missing (untagged) nodes */
for (walk = ring2; walk; walk = sfi_ring_walk (walk, ring2))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
if (node->sched_recurse_tag == FALSE)
ring1 = sfi_ring_append (ring1, node);
}
-
/* untag all nodes */
for (walk = ring1; walk; walk = sfi_ring_walk (walk, ring1))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
node->sched_recurse_tag = FALSE;
}
for (walk = ring2; walk; walk = sfi_ring_walk (walk, ring2))
{
- EngineNode *node = walk->data;
-
+ EngineNode *node = (EngineNode*) walk->data;
node->sched_recurse_tag = FALSE;
}
sfi_ring_free (ring2);
@@ -561,20 +539,16 @@ master_resolve_cycles (EngineQuery *query,
{
SfiRing *walk;
gboolean all_resolved = TRUE;
-
g_assert (query->cycles != NULL); /* paranoid */
-
walk = query->cycles;
while (walk)
{
SfiRing *next = sfi_ring_walk (walk, query->cycles);
- EngineCycle *cycle = walk->data;
-
+ EngineCycle *cycle = (EngineCycle*) walk->data;
if (resolve_cycle (cycle, node, &query->cycle_nodes))
{
g_assert (cycle->last == NULL); /* paranoid */
g_assert (cycle->nodes == NULL); /* paranoid */
-
sfi_delete_struct (EngineCycle, cycle);
query->cycles = sfi_ring_remove_node (query->cycles, walk);
}
@@ -606,22 +580,17 @@ query_merge_cycles (EngineQuery *query,
EngineNode *node)
{
SfiRing *walk;
-
g_assert (child_query->cycles != NULL); /* paranoid */
-
/* add node to all child cycles */
for (walk = child_query->cycles; walk; walk = sfi_ring_walk (walk, child_query->cycles))
{
- EngineCycle *cycle = walk->data;
-
+ EngineCycle *cycle = (EngineCycle*) walk->data;
cycle->nodes = sfi_ring_prepend (cycle->nodes, node);
cycle->seen_deferred_node |= ENGINE_NODE_IS_DEFERRED (node);
}
-
/* merge child cycles into our cycle list */
query->cycles = sfi_ring_concat (query->cycles, child_query->cycles);
child_query->cycles = NULL;
-
/* merge child's cycle nodes from resolved cycles into ours */
query->cycle_nodes = merge_untagged_node_lists_uniq (query->cycle_nodes, child_query->cycle_nodes);
child_query->cycle_nodes = NULL;
diff --git a/bse/bseengineutils.c b/bse/bseengineutils.cc
similarity index 96%
rename from bse/bseengineutils.c
rename to bse/bseengineutils.cc
index 88d3ada..2416538 100644
--- a/bse/bseengineutils.c
+++ b/bse/bseengineutils.cc
@@ -38,9 +38,8 @@ _engine_alloc_ostreams (guint n)
if (n)
{
guint i = sizeof (BseOStream) * n + sizeof (gfloat) * bse_engine_block_size () * n;
- BseOStream *streams = g_malloc0 (i);
- gfloat *buffers = (gfloat*) (streams + n);
-
+ BseOStream *streams = (BseOStream*) g_malloc0 (i);
+ float *buffers = (float*) (streams + n);
for (i = 0; i < n; i++)
{
streams[i].values = buffers;
@@ -678,13 +677,13 @@ _engine_mnl_node_changed (EngineNode *node)
/* --- const value blocks --- */
-extern const gfloat bse_engine_master_zero_block[];
-gfloat*
+float*
bse_engine_const_zeros (guint smaller_than_BSE_STREAM_MAX_VALUES)
{
+ static const float engine_const_zero_block[BSE_STREAM_MAX_VALUES + 16 /* SIMD alignment */] = { 0, };
/* this function is callable from any thread */
g_assert (smaller_than_BSE_STREAM_MAX_VALUES <= BSE_STREAM_MAX_VALUES);
- return (gfloat*) bse_engine_master_zero_block;
+ return (float*) engine_const_zero_block;
}
typedef struct
@@ -747,52 +746,43 @@ const_values_insert (ConstValuesArray *array,
{
if (array->n_nodes == 0)
{
- guint new_size = upper_power2 (sizeof (gfloat*));
-
- array->nodes = g_realloc (array->nodes, new_size);
- array->nodes_used = g_realloc (array->nodes_used, new_size / sizeof (gfloat*));
+ uint new_size = upper_power2 (sizeof (float*));
+ array->nodes = (float**) g_realloc (array->nodes, new_size);
+ array->nodes_used = (guint8*) g_realloc (array->nodes_used, new_size / sizeof (gfloat*));
array->n_nodes = 1;
-
g_assert (index == 0);
}
else
{
- guint n_nodes = array->n_nodes++;
-
+ uint n_nodes = array->n_nodes++;
if (*array->nodes[index] < *value_block)
index++;
-
if (1)
{
- guint new_size = upper_power2 (array->n_nodes * sizeof (gfloat*));
- guint old_size = upper_power2 (n_nodes * sizeof (gfloat*));
-
+ uint new_size = upper_power2 (array->n_nodes * sizeof (gfloat*));
+ uint old_size = upper_power2 (n_nodes * sizeof (gfloat*));
if (new_size != old_size)
{
- array->nodes = g_realloc (array->nodes, new_size);
- array->nodes_used = g_realloc (array->nodes_used, new_size / sizeof(gfloat*));
+ array->nodes = (float**) g_realloc (array->nodes, new_size);
+ array->nodes_used = (guint8*) g_realloc (array->nodes_used, new_size / sizeof (float*));
}
}
g_memmove (array->nodes + index + 1, array->nodes + index, (n_nodes - index) * sizeof (array->nodes[0]));
g_memmove (array->nodes_used + index + 1, array->nodes_used + index, (n_nodes - index) * sizeof (array->nodes_used[0]));
}
-
array->nodes[index] = value_block;
array->nodes_used[index] = CONST_VALUES_EXPIRE;
}
static ConstValuesArray cvalue_array = { 0, NULL, NULL };
-gfloat*
+float*
bse_engine_const_values (gfloat value)
{
- gfloat **block;
-
if (fabs (value) < BSE_SIGNAL_EPSILON)
- return (gfloat*) bse_engine_master_zero_block;
-
- block = const_values_lookup_nextmost (&cvalue_array, value);
-
+ return bse_engine_const_zeros (BSE_STREAM_MAX_VALUES);
+
+ float **block = const_values_lookup_nextmost (&cvalue_array, value);
/* found correct match? */
if (block && fabs (**block - value) < BSE_SIGNAL_EPSILON)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]