~ubuntu-branches/ubuntu/trusty/gnuradio/trusty-updates

« back to all changes in this revision

Viewing changes to .pc/0046-core-add-null-constructors-to-sync_-blocks.patch/gnuradio-core/src/lib/runtime/gr_sync_interpolator.h

  • Committer: Package Import Robot
  • Author(s): A. Maitland Bottoms
  • Date: 2012-03-16 20:30:18 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20120316203018-o9cvujkbn563d8ou
Tags: 3.5.2.1-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- c++ -*- */
2
 
/*
3
 
 * Copyright 2004,2008 Free Software Foundation, Inc.
4
 
 * 
5
 
 * This file is part of GNU Radio
6
 
 * 
7
 
 * GNU Radio is free software; you can redistribute it and/or modify
8
 
 * it under the terms of the GNU General Public License as published by
9
 
 * the Free Software Foundation; either version 3, or (at your option)
10
 
 * any later version.
11
 
 * 
12
 
 * GNU Radio is distributed in the hope that it will be useful,
13
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
 * GNU General Public License for more details.
16
 
 * 
17
 
 * You should have received a copy of the GNU General Public License
18
 
 * along with GNU Radio; see the file COPYING.  If not, write to
19
 
 * the Free Software Foundation, Inc., 51 Franklin Street,
20
 
 * Boston, MA 02110-1301, USA.
21
 
 */
22
 
 
23
 
#ifndef INCLUDED_GR_SYNC_INTERPOLATOR_H
24
 
#define INCLUDED_GR_SYNC_INTERPOLATOR_H
25
 
 
26
 
#include <gr_core_api.h>
27
 
#include <gr_sync_block.h>
28
 
 
29
 
/*!
30
 
 * \brief synchronous 1:N input to output with history
31
 
 * \ingroup base_blk
32
 
 *
33
 
 * Override work to provide the signal processing implementation.
34
 
 */
35
 
class GR_CORE_API gr_sync_interpolator : public gr_sync_block
36
 
{
37
 
 private:
38
 
  unsigned      d_interpolation;
39
 
 
40
 
 protected:
41
 
  gr_sync_interpolator (const std::string &name,
42
 
                        gr_io_signature_sptr input_signature,
43
 
                        gr_io_signature_sptr output_signature,
44
 
                        unsigned interpolation);
45
 
 public:
46
 
 
47
 
  unsigned interpolation () const { return d_interpolation; }
48
 
  void set_interpolation (unsigned interpolation)
49
 
  {
50
 
    d_interpolation = interpolation;
51
 
    set_relative_rate (1.0 * interpolation);
52
 
    set_output_multiple (interpolation);
53
 
  }
54
 
 
55
 
  // gr_sync_interpolator overrides these to assist work
56
 
  void forecast (int noutput_items, gr_vector_int &ninput_items_required);
57
 
  int  general_work (int noutput_items,
58
 
                     gr_vector_int &ninput_items,
59
 
                     gr_vector_const_void_star &input_items,
60
 
                     gr_vector_void_star &output_items);
61
 
 
62
 
  // derived classes should override work
63
 
 
64
 
  int fixed_rate_ninput_to_noutput(int ninput);
65
 
  int fixed_rate_noutput_to_ninput(int noutput);
66
 
};
67
 
 
68
 
 
69
 
#endif /* INCLUDED_GR_SYNC_INTERPOLATOR_H */