GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
complex_float_to_complex_byte.h
Go to the documentation of this file.
1 /*!
2  * \file complex_float_to_complex_byte.h
3  * \brief Adapts a gr_complex stream into a std::complex<signed char> stream
4  * \author Carles Fernandez Prades, cfernandez(at)cttc.es
5  *
6  *
7  * -----------------------------------------------------------------------------
8  *
9  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
10  *
11  * GNSS-SDR is a software defined Global Navigation
12  * Satellite Systems receiver
13  *
14  * This file is part of GNSS-SDR.
15  *
16  * SPDX-License-Identifier: GPL-3.0-or-later
17  *
18  * -----------------------------------------------------------------------------
19  */
20 
21 #ifndef GNSS_SDR_COMPLEX_FLOAT_TO_COMPLEX_BYTE_H
22 #define GNSS_SDR_COMPLEX_FLOAT_TO_COMPLEX_BYTE_H
23 
24 #if GNURADIO_USES_STD_POINTERS
25 #include <memory>
26 #else
27 #include <boost/shared_ptr.hpp>
28 #endif
29 #include <gnuradio/sync_block.h>
30 #include <gnuradio/types.h> // for gr_vector_const_void_star
31 
32 
34 
35 #if GNURADIO_USES_STD_POINTERS
36 using complex_float_to_complex_byte_sptr = std::shared_ptr<complex_float_to_complex_byte>;
37 #else
38 using complex_float_to_complex_byte_sptr = boost::shared_ptr<complex_float_to_complex_byte>;
39 #endif
40 
41 complex_float_to_complex_byte_sptr make_complex_float_to_complex_byte();
42 
43 /*!
44  * \brief This class adapts a gr_complex stream into a std::complex<signed char> stream
45  */
46 class complex_float_to_complex_byte : public gr::sync_block
47 {
48 public:
49  int work(int noutput_items,
50  gr_vector_const_void_star &input_items,
51  gr_vector_void_star &output_items);
52 
53 private:
54  friend complex_float_to_complex_byte_sptr make_complex_float_to_complex_byte();
56 };
57 
58 #endif
This class adapts a gr_complex stream into a std::complex<signed char> stream.