r4147 - trunk/bse
- From: timj svn gnome org
- To: svn-commits-list gnome org
- Subject: r4147 - trunk/bse
- Date: Wed, 13 Dec 2006 15:34:09 -0500 (EST)
Author: timj
Date: 2006-12-13 15:34:07 -0500 (Wed, 13 Dec 2006)
New Revision: 4147
Modified:
trunk/bse/ChangeLog
trunk/bse/bseengine.c
trunk/bse/bseenginemaster.c
trunk/bse/bseengineutils.c
trunk/bse/bseprobe.cc
Log:
Wed Dec 13 21:30:39 2006 Tim Janik <timj gtk org>
* bseenginemaster.c (master_take_probes): fixup ostreams[].value
pointers before returning a probe, since those may have been altered
by process() routines.
* bseprobe.cc: added debugging field and a few assertions.
Modified: trunk/bse/ChangeLog
===================================================================
--- trunk/bse/ChangeLog 2006-12-13 00:16:47 UTC (rev 4146)
+++ trunk/bse/ChangeLog 2006-12-13 20:34:07 UTC (rev 4147)
@@ -1,3 +1,11 @@
+Wed Dec 13 21:30:39 2006 Tim Janik <timj gtk org>
+
+ * bseenginemaster.c (master_take_probes): fixup ostreams[].value
+ pointers before returning a probe, since those may have been altered
+ by process() routines.
+
+ * bseprobe.cc: added debugging field and a few assertions.
+
Tue Dec 12 08:50:45 2006 Tim Janik <timj gtk org>
* bseundostack.c: fix possible flat copies of pointers to deeply
Modified: trunk/bse/bseengine.c
===================================================================
--- trunk/bse/bseengine.c 2006-12-13 00:16:47 UTC (rev 4146)
+++ trunk/bse/bseengine.c 2006-12-13 20:34:07 UTC (rev 4147)
@@ -548,7 +548,7 @@
tjob->probe.probe_func = probe_func;
tjob->probe.n_ostreams = ENGINE_NODE_N_OSTREAMS (node);
tjob->probe.ostreams = _engine_alloc_ostreams (ENGINE_NODE_N_OSTREAMS (node));
-
+
BseJob *job = sfi_new_struct0 (BseJob, 1);
job->job_id = ENGINE_JOB_PROBE_JOB;
job->timed_job.node = ENGINE_NODE (module);
Modified: trunk/bse/bseenginemaster.c
===================================================================
--- trunk/bse/bseenginemaster.c 2006-12-13 00:16:47 UTC (rev 4146)
+++ trunk/bse/bseenginemaster.c 2006-12-13 20:34:07 UTC (rev 4147)
@@ -741,7 +741,11 @@
tjob->probe.ostreams = ostreams;
for (i = 0; i < ENGINE_NODE_N_OSTREAMS (node); i++)
{
+ /* restore real ostream buffer pointers */
+ ostreams[i].values = node->outputs[i].buffer;
+ /* store real ostream buffer pointers */
node->outputs[i].buffer = node->module.ostreams[i].values;
+ /* preserve connection flags */
node->module.ostreams[i].connected = ostreams[i].connected;
}
}
@@ -755,7 +759,7 @@
if (input->real_node && input->real_node->module.ostreams[input->real_stream].connected)
{
tjob->probe.ostreams[i].connected = true;
- bse_block_copy_float (n_values, tjob->probe.ostreams[i].values, input->real_node->module.ostreams[input->real_stream].values);
+ bse_block_copy_float (n_values, tjob->probe.ostreams[i].values, input->real_node->outputs[input->real_stream].buffer);
}
}
}
Modified: trunk/bse/bseengineutils.c
===================================================================
--- trunk/bse/bseengineutils.c 2006-12-13 00:16:47 UTC (rev 4146)
+++ trunk/bse/bseengineutils.c 2006-12-13 20:34:07 UTC (rev 4147)
@@ -32,7 +32,6 @@
static inline void engine_fetch_process_queue_trash_jobs_U (EngineTimedJob **trash_tjobs_head,
EngineTimedJob **trash_tjobs_tail);
-
/* --- UserThread --- */
BseOStream*
_engine_alloc_ostreams (guint n)
Modified: trunk/bse/bseprobe.cc
===================================================================
--- trunk/bse/bseprobe.cc 2006-12-13 00:16:47 UTC (rev 4146)
+++ trunk/bse/bseprobe.cc 2006-12-13 20:34:07 UTC (rev 4147)
@@ -411,16 +411,18 @@
struct ProbeData {
BseSource *source;
BseOStream *ostreams;
- guint n_pending;
- guint64 debug_stamp;
+ uint64 debug_stamp;
+ uint debug_n_values;
+ uint n_pending;
ProbeData (BseSource *_source,
guint n_streams) :
- source (_source), ostreams (NULL), n_pending (0), debug_stamp (0)
+ source (_source), ostreams (NULL), debug_stamp (0), debug_n_values (0), n_pending (0)
{}
~ProbeData()
{
g_assert (ostreams == NULL);
}
+ BIRNET_PRIVATE_CLASS_COPY (ProbeData);
};
void
handle_probe (ProbeData &pdata,
@@ -439,12 +441,14 @@
g_assert (pdata.debug_stamp == 0);
pdata.ostreams = *ostreams_p;
*ostreams_p = NULL;
+ pdata.debug_n_values = n_values;
pdata.debug_stamp = tick_stamp;
}
else /* successive modules */
{
/* add up all successive blocks */
g_assert (pdata.debug_stamp == tick_stamp);
+ g_assert (pdata.debug_n_values == n_values);
BseOStream *ostreams = *ostreams_p;
for (uint j = 0; j < n_ostreams; j++)
if (ostreams[j].connected && channel_sets[j].size() > 0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]