[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3765 - gnuradio/branches/developers/jcorgan/cppwrap/g
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r3765 - gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native |
Date: |
Tue, 10 Oct 2006 13:20:04 -0600 (MDT) |
Author: jcorgan
Date: 2006-10-10 13:20:04 -0600 (Tue, 10 Oct 2006)
New Revision: 3765
Modified:
gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native/gr_flow_graph.cc
Log:
Work in progress.
Implemented gr_flow_graph::assign_details()
Modified:
gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native/gr_flow_graph.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native/gr_flow_graph.cc
2006-10-10 17:25:34 UTC (rev 3764)
+++
gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native/gr_flow_graph.cc
2006-10-10 19:20:04 UTC (rev 3765)
@@ -148,8 +148,6 @@
if (block == d_blocks.end())
d_blocks.push_back(dst_block);
}
-
- printf("%i %i\n", d_edges.size(), d_blocks.size());
}
void gr_flow_graph::validate()
@@ -162,13 +160,12 @@
int ninputs = check_contiguity(*block, (*block)->input_signature(),
used_inputs);
int noutputs = check_contiguity(*block, (*block)->output_signature(),
used_outputs);
- printf("%i %i\n", used_inputs.size(), used_outputs.size());
-
if (!(*block)->check_topology(ninputs, noutputs))
throw std::invalid_argument("gr_flow_graph::validate");
}
}
+// TODO: consolidate this and the next into one method
std::vector<int> gr_flow_graph::calc_used_inputs(gr_block_sptr block)
{
gr_edge_vector_iterator_t edge;
@@ -180,6 +177,8 @@
result.push_back(edge->second.second);
}
+ sort(result.begin(), result.end());
+ unique(result.begin(), result.end());
return result;
}
@@ -194,15 +193,14 @@
result.push_back(edge->first.second);
}
+ sort(result.begin(), result.end());
+ unique(result.begin(), result.end());
return result;
}
int gr_flow_graph::check_contiguity(gr_block_sptr block, gr_io_signature_sptr
sig,
std::vector<int> used_ports)
{
- sort(used_ports.begin(), used_ports.end());
- unique(used_ports.begin(), used_ports.end());
-
int min_s = sig->min_streams();
int l = used_ports.size();
@@ -227,6 +225,14 @@
void gr_flow_graph::assign_details()
{
+ gr_block_vector_iterator_t block;
+ for(block = d_blocks.begin(); block != d_blocks.end(); block++) {
+ int ninputs = calc_used_inputs(*block).size();
+ int noutputs = calc_used_outputs(*block).size();
+
+ printf("Assigning detail with %i inputs and %i outputs\n", ninputs,
noutputs);
+ (*block)->set_detail(gr_make_block_detail(ninputs, noutputs));
+ }
}
void gr_flow_graph::assign_buffers()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3765 - gnuradio/branches/developers/jcorgan/cppwrap/gnuradio-examples/native,
jcorgan <=