commit-gnuradio
[Top][All Lists]
Advanced

[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()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]