LCOV - code coverage report
Current view: top level - Core - WrapFilter.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 28 34 82.4 %
Date: 2021-02-18 20:07:22 Functions: 3 12 25.0 %

          Line data    Source code
       1             : /**
       2             :  * \file WrapFilter.cpp
       3             :  */
       4             : 
       5             : #include "WrapFilter.h"
       6             : #include <ATK/Core/Utilities.h>
       7             : 
       8             : #include <algorithm>
       9             : 
      10             : namespace ATK
      11             : {
      12             : template <typename DataType_, typename DataType__>
      13           3 : WrapFilter<DataType_, DataType__>::WrapFilter(gsl::index nb_input_ports,
      14             :     gsl::index nb_output_ports,
      15             :     const std::function<void(std::vector<InPointerFilter<DataType_>>& inputFilters,
      16             :         std::vector<OutPointerFilter<DataType__>>& outputFilters,
      17             :         std::vector<gsl::unique_ptr<BaseFilter>>& filters)>& fun)
      18           3 :   : Parent(nb_input_ports, nb_output_ports)
      19             : {
      20           7 :   for(size_t i = 0; i < nb_input_ports; ++i)
      21             :   {
      22           4 :     inputFilters.emplace_back(nullptr, 1, 0, false);
      23             :   }
      24           9 :   for(size_t i = 0; i < nb_output_ports; ++i)
      25             :   {
      26           6 :     outputFilters.emplace_back(nullptr, 1, 0, false);
      27             :   }
      28           9 :   for(size_t i = 0; i < nb_output_ports; ++i)
      29             :   {
      30           6 :     sink.add_filter(&outputFilters[i]);
      31             :   }
      32             : 
      33           3 :   fun(inputFilters, outputFilters, filters);
      34           3 : }
      35             : 
      36             : template <typename DataType_, typename DataType__>
      37           6 : void WrapFilter<DataType_, DataType__>::full_setup()
      38             : {
      39          14 :   for(auto& filter: inputFilters)
      40             :   {
      41           8 :     filter.set_input_sampling_rate(get_input_sampling_rate());
      42           8 :     filter.set_output_sampling_rate(get_input_sampling_rate());
      43             :   }
      44          18 :   for(auto& filter: outputFilters)
      45             :   {
      46          12 :     filter.set_input_sampling_rate(get_output_sampling_rate());
      47          12 :     filter.set_output_sampling_rate(get_output_sampling_rate());
      48             :   }
      49           6 :   for(auto& filter: filters)
      50             :   {
      51           0 :     filter->set_input_sampling_rate(get_input_sampling_rate());
      52           0 :     filter->set_output_sampling_rate(get_output_sampling_rate());
      53             :   }
      54           6 :   sink.set_input_sampling_rate(get_input_sampling_rate());
      55           6 :   sink.set_output_sampling_rate(get_output_sampling_rate());
      56           6 : }
      57             : 
      58             : template <typename DataType_, typename DataType__>
      59           0 : void WrapFilter<DataType_, DataType__>::dry_run(gsl::index size)
      60             : {
      61           0 :   reset();
      62           0 :   sink.dryrun(size);
      63           0 : }
      64             : 
      65             : template <typename DataType_, typename DataType__>
      66           3 : void WrapFilter<DataType_, DataType__>::process_impl(gsl::index size) const
      67             : {
      68           7 :   for(size_t i = 0; i < inputFilters.size(); ++i)
      69             :   {
      70           4 :     inputFilters[i].set_pointer(converted_inputs[i], size);
      71             :   }
      72           9 :   for(size_t i = 0; i < outputFilters.size(); ++i)
      73             :   {
      74           6 :     outputFilters[i].set_pointer(outputs[i], size);
      75             :   }
      76             : 
      77           3 :   sink.process(size);
      78           3 : }
      79             : 
      80             : template class WrapFilter<int64_t>;
      81             : template class WrapFilter<float>;
      82             : template class WrapFilter<double>;
      83             : } // namespace ATK

Generated by: LCOV version TK-3.3.0-4-gdba42eea