Fixed comments.

master
Hannes Matuschek 11 years ago
parent 0982a68252
commit 0cf7570624

@ -1,21 +1,25 @@
Source: libsdr Source: libsdr
Priority: extra Priority: extra
Maintainer: Hannes Matuschek <hmatuschek@gmail.com> Maintainer: Hannes Matuschek <hmatuschek@gmail.com>
Build-Depends: cdbs (>= 0.4.51), dh-exec, debhelper (>= 8.0.0), cmake, qtbase5-dev (>= 5.0), portaudio19-dev, librtlsdr-dev, fftw3-dev Build-Depends: cdbs (>= 0.4.51), dh-exec, debhelper (>= 9.0.0), cmake, portaudio19-dev, librtlsdr-dev, fftw3-dev
Standards-Version: 3.9.2 Standards-Version: 3.9.5
Section: hamradio Section: hamradio
Homepage: http://github.com/hmatuschek/libsdr Homepage: http://github.com/hmatuschek/libsdr
Package: libsdr Package: libsdr1
Section: hamradio Section: hamradio
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same
Pre-Depends: multiarch-support, ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}, libportaudio2
Description: libsdr Description: libsdr
A C++ library for software defined radio. A C++ library for software defined radio.
Package: libsdr-dev Package: libsdr-dev
Section: hamradio Section: hamradio
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libsdr Multi-Arch: same
Pre-Depends: multiarch-support, ${misc:Pre-Depends}
Depends: libsdr1 (= ${binary:Version}), ${misc:Depends}, portaudio19-dev, librtlsdr-dev, fftw3-dev, libsdr1
Description: libsdr Description: libsdr
A C++ library for software defined radio. Development files. A C++ library for software defined radio. Development files.

@ -1,4 +1,3 @@
#! /usr/bin/dh-exec #! /usr/bin/dh-exec
/usr/lib/${DEB_HOST_MULTIARCH}/libsdr.so usr/lib/*/libsdr.so
/usr/lib/${DEB_HOST_MULTIARCH}/libsdr-gui.so usr/include/*
/usr/include/*

@ -1,3 +0,0 @@
#! /usr/bin/dh-exec
/usr/lib/${DEB_HOST_MULTIARCH}/libsdr.so.*
/usr/lib/${DEB_HOST_MULTIARCH}/libsdr-gui.so.*

@ -8,7 +8,8 @@
namespace sdr { namespace sdr {
/** This class performs some automatic casts to a certain buffer type if possible specified by /** This class performs some automatic casts to a certain buffer type if possible specified by
* the template argument. Currently only integer casts are supported. */ * the template argument. Currently only integer casts are supported.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class AutoCast: public SinkBase, public Source class AutoCast: public SinkBase, public Source
{ {

@ -16,7 +16,8 @@ namespace sdr {
* with width @c width) then shifts the center frequency @c Fc to 0 and finally sub-samples the * with width @c width) then shifts the center frequency @c Fc to 0 and finally sub-samples the
* resulting stream. This node can be used to select a portion of the input stream and reduce the * resulting stream. This node can be used to select a portion of the input stream and reduce the
* rate of the stream, allowing for some more expensive operations to be performed on the output * rate of the stream, allowing for some more expensive operations to be performed on the output
* stream. */ * stream.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class IQBaseBand: public Sink< std::complex<Scalar> >, public Source, public FreqShiftBase<Scalar> class IQBaseBand: public Sink< std::complex<Scalar> >, public Source, public FreqShiftBase<Scalar>
{ {
@ -298,7 +299,8 @@ protected:
/** This class performs several operations on the real input stream, /** This class performs several operations on the real input stream,
* It first filters out some part of the input stream using a FIR band pass filter * It first filters out some part of the input stream using a FIR band pass filter
* then shifts the center frequency to 0 and finally sub-samples the resulting stream such that * then shifts the center frequency to 0 and finally sub-samples the resulting stream such that
* the selected base-band is well represented. */ * the selected base-band is well represented.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class BaseBand: public Sink<Scalar>, public Source, public FreqShiftBase<Scalar> class BaseBand: public Sink<Scalar>, public Source, public FreqShiftBase<Scalar>
{ {

@ -12,7 +12,8 @@
namespace sdr { namespace sdr {
/** A simple buffering node, that ensures a fixed buffer size. This node is useful, expecially in /** A simple buffering node, that ensures a fixed buffer size. This node is useful, expecially in
* front of a node that performs a FFT transform, which requires a certain buffer size. */ * front of a node that performs a FFT transform, which requires a certain buffer size.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class BufferNode : public Sink<Scalar>, public Source class BufferNode : public Sink<Scalar>, public Source
{ {

@ -60,7 +60,8 @@ protected:
}; };
/** A combine node. This node allows to combine several streams into one. */ /** A combine node. This node allows to combine several streams into one.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class Combine class Combine
{ {
@ -147,7 +148,8 @@ protected:
}; };
/** Interleaves several input streams. */ /** Interleaves several input streams.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class Interleave : public Combine<Scalar>, public Source class Interleave : public Combine<Scalar>, public Source
{ {

@ -12,7 +12,8 @@
namespace sdr { namespace sdr {
/** Amplitude modulation (AM) demodulator from an I/Q signal. */ /** Amplitude modulation (AM) demodulator from an I/Q signal.
* @ingroup demods */
template <class Scalar> template <class Scalar>
class AMDemod class AMDemod
: public Sink< std::complex<Scalar> >, public Source : public Sink< std::complex<Scalar> >, public Source
@ -91,7 +92,8 @@ protected:
}; };
/** SSB upper side band (USB) demodulator from an I/Q signal. */ /** SSB upper side band (USB) demodulator from an I/Q signal.
* @ingroup demods */
template <class Scalar> template <class Scalar>
class USBDemod class USBDemod
: public Sink< std::complex<Scalar> >, public Source : public Sink< std::complex<Scalar> >, public Source
@ -175,7 +177,10 @@ protected:
/** Demodulates FM from an I/Q signal. */ /** Demodulates FM from an I/Q signal.
* This node only implements the demodulation of the signal, the needed post-filtering (deemphasize)
* is implemented in a separate node, @c sdr::FMDeemph.
* @ingroup demods */
template <class iScalar, class oScalar=iScalar> template <class iScalar, class oScalar=iScalar>
class FMDemod: public Sink< std::complex<iScalar> >, public Source class FMDemod: public Sink< std::complex<iScalar> >, public Source
{ {
@ -297,7 +302,8 @@ protected:
}; };
/** A tiny node to de-emphasize the higher frequencies of a FM transmitted audio signal. */ /** A tiny node to de-emphasize the higher frequencies of a FM transmitted audio signal.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FMDeemph: public Sink<Scalar>, public Source class FMDeemph: public Sink<Scalar>, public Source
{ {

@ -223,7 +223,8 @@ protected:
}; };
/** A FFT filter bank node wich consists of several filters. */ /** A FFT filter bank node wich consists of several filters.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FilterNode class FilterNode
{ {

@ -111,7 +111,8 @@ public:
/** Generic FIR filter class. Use one of the specializations below for a low-, high- or band-pass /** Generic FIR filter class. Use one of the specializations below for a low-, high- or band-pass
* filter. */ * filter.
* @ingroup filters */
template <class Scalar, class FilterCoeffs> template <class Scalar, class FilterCoeffs>
class FIRFilter: public Sink<Scalar>, public Source class FIRFilter: public Sink<Scalar>, public Source
{ {
@ -269,7 +270,8 @@ protected:
}; };
/** Low-pass FIR filter specialization. */ /** Low-pass FIR filter specialization.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FIRLowPass: public FIRFilter<Scalar, FIRLowPassCoeffs> class FIRLowPass: public FIRFilter<Scalar, FIRLowPassCoeffs>
{ {
@ -285,7 +287,8 @@ public:
inline void setFreq(double freq) { FIRFilter<Scalar, FIRLowPassCoeffs>::setUpperFreq(freq); } inline void setFreq(double freq) { FIRFilter<Scalar, FIRLowPassCoeffs>::setUpperFreq(freq); }
}; };
/** High-pass FIR filter specialization. */ /** High-pass FIR filter specialization.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FIRHighPass: public FIRFilter<Scalar, FIRHighPassCoeffs> class FIRHighPass: public FIRFilter<Scalar, FIRHighPassCoeffs>
{ {
@ -302,7 +305,8 @@ public:
}; };
/** Band-pass FIR filter specialization. */ /** Band-pass FIR filter specialization.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FIRBandPass: public FIRFilter<Scalar, FIRBandPassCoeffs> class FIRBandPass: public FIRFilter<Scalar, FIRBandPassCoeffs>
{ {
@ -314,7 +318,8 @@ public:
virtual ~FIRBandPass() { } virtual ~FIRBandPass() { }
}; };
/** Band-stop FIR filter specialization. */ /** Band-stop FIR filter specialization.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FIRBandStop: public FIRFilter<Scalar, FIRBandStopCoeffs> class FIRBandStop: public FIRFilter<Scalar, FIRBandStopCoeffs>
{ {

@ -8,7 +8,8 @@
namespace sdr { namespace sdr {
/** A performant implementation of a frequency shift operation on integer signals. */ /** A performant implementation of a frequency shift operation on integer signals.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FreqShiftBase class FreqShiftBase
{ {

@ -1,3 +1,19 @@
/** @defgroup sources Data sources.
* This module collects all data sources provided by libsdr.
*
* @defgroup sinks Data sinks.
* This module collects all data sinks provided by libsdr.
*
* @defgroup filters Filter and signal processing nodes.
* This group collects all filter and signal processing nodes provided by libsdr.
*
* @defgroup demods Demodulator nodes.
* This group collects all demodulation nodes.
*
* @defgroup datanodes Data handling nodes.
* This group collects all nodes related to data handling. I.e. type casts etc.
*/
#ifndef __SDR_NODE_HH__ #ifndef __SDR_NODE_HH__
#define __SDR_NODE_HH__ #define __SDR_NODE_HH__
@ -294,7 +310,8 @@ private:
}; };
/** A NOP node. */ /** A NOP node.
* @ingroup filters */
class Proxy: public SinkBase, public Source class Proxy: public SinkBase, public Source
{ {
public: public:

@ -33,7 +33,8 @@ public:
}; };
/** PortAudio playback node. */ /** PortAudio playback node.
* @ingroup sinks */
class PortSink: public SinkBase class PortSink: public SinkBase
{ {
public: public:
@ -55,7 +56,8 @@ protected:
}; };
/** PortAudio input stream as a @c Source. */ /** PortAudio input stream as a @c Source.
* @ingroup sources */
template <class Scalar> template <class Scalar>
class PortSource: public Source class PortSource: public Source
{ {

@ -11,7 +11,8 @@ namespace sdr {
/** A simple BPSK31 "demodulator". This node consumes a complex input stream with a sample-rate of /** A simple BPSK31 "demodulator". This node consumes a complex input stream with a sample-rate of
* at least 2000Hz and produces a bitstream with 31.25 Hz "sample-rate". Use the @c Varicode node * at least 2000Hz and produces a bitstream with 31.25 Hz "sample-rate". Use the @c Varicode node
* to decode this bitstream to ASCII chars. The BPSK31 signal should be centered around 0Hz. This * to decode this bitstream to ASCII chars. The BPSK31 signal should be centered around 0Hz. This
* node uses a simple PLL to adjust for small detunings. */ * node uses a simple PLL to adjust for small detunings.
* @ingroup demod */
template <class Scalar> template <class Scalar>
class BPSK31: public Sink< std::complex<Scalar> >, public Source class BPSK31: public Sink< std::complex<Scalar> >, public Source
{ {
@ -290,7 +291,8 @@ protected:
/** Simple varicode (Huffman code) decoder node. It consumes a bit-stream (uint8_t) /** Simple varicode (Huffman code) decoder node. It consumes a bit-stream (uint8_t)
* and produces a uint8_t stream of ascii chars. Non-printable chars (except for new-line) are * and produces a uint8_t stream of ascii chars. Non-printable chars (except for new-line) are
* ignored. The output stream has no samplerate! */ * ignored. The output stream has no samplerate!
* @ingroup datanodes */
class Varicode: public Sink<uint8_t>, public Source class Varicode: public Sink<uint8_t>, public Source
{ {
public: public:

@ -8,7 +8,8 @@
namespace sdr { namespace sdr {
/** Implements a @c uint_8 I/Q source for RTL2832 based TV dongles. */ /** Implements a @c uint_8 I/Q source for RTL2832 based TV dongles.
* @ingroup sources */
class RTLSource: public Source class RTLSource: public Source
{ {
public: public:

@ -6,7 +6,8 @@
namespace sdr { namespace sdr {
/** Arbitrary function generator. */ /** Arbitrary function generator.
* @ingroup sources */
template <class Scalar> template <class Scalar>
class SigGen: public Source class SigGen: public Source
{ {
@ -83,7 +84,8 @@ protected:
/** Arbitrary function generator. */ /** Arbitrary function generator.
* @ingroup sources */
template <class Scalar> template <class Scalar>
class IQSigGen: public Source class IQSigGen: public Source
{ {

@ -10,7 +10,8 @@
namespace sdr { namespace sdr {
/** Simple averaging sub-sampler. */ /** Simple averaging sub-sampler.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class SubSample: public Sink<Scalar>, public Source class SubSample: public Sink<Scalar>, public Source
{ {
@ -188,7 +189,8 @@ protected:
/** An interpolating sub-sampler. This node uses an 8-tap FIR filter to interpolate between /** An interpolating sub-sampler. This node uses an 8-tap FIR filter to interpolate between
* two values (given 8). Please do not use this node to subsample by a factor grater than 8, * two values (given 8). Please do not use this node to subsample by a factor grater than 8,
* as this may result into artifacts unless the signal was filtered accordingly before * as this may result into artifacts unless the signal was filtered accordingly before
* subsampling it. */ * subsampling it.
* @ingroup filters */
template <class iScalar, class oScalar = iScalar> template <class iScalar, class oScalar = iScalar>
class InpolSubSampler: public Sink<iScalar>, public Source class InpolSubSampler: public Sink<iScalar>, public Source
{ {

@ -11,7 +11,8 @@
namespace sdr { namespace sdr {
/** Extracts the real or imaginary part of a complex valued data stream. */ /** Extracts the real or imaginary part of a complex valued data stream.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class RealImagPart: public Sink< std::complex<Scalar> >, public Source class RealImagPart: public Sink< std::complex<Scalar> >, public Source
{ {
@ -76,7 +77,8 @@ protected:
}; };
/** Selects the real part of a complex signal. */ /** Selects the real part of a complex signal.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class RealPart: public RealImagPart<Scalar> class RealPart: public RealImagPart<Scalar>
{ {
@ -90,7 +92,8 @@ public:
}; };
/** Selects the imaginary part of a complex signal. */ /** Selects the imaginary part of a complex signal.
* @ingroup datanodes */
template <class Scalar> template <class Scalar>
class ImagPart: public RealImagPart<Scalar> class ImagPart: public RealImagPart<Scalar>
{ {
@ -104,7 +107,8 @@ public:
}; };
/** A simple node, that allows to balance an IQ signal. */ /** A simple node, that allows to balance an IQ signal.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class IQBalance: public Sink< std::complex<Scalar> >, public Source class IQBalance: public Sink< std::complex<Scalar> >, public Source
{ {
@ -201,7 +205,8 @@ protected:
/** Tiny helper node to transform a real part into a complex, including /** Tiny helper node to transform a real part into a complex, including
* a possible type-cast*/ * a possible type-cast
* @ingroup datanodes */
template <class iScalar, class oScalar=iScalar> template <class iScalar, class oScalar=iScalar>
class ToComplex: public Sink<iScalar>, public Source class ToComplex: public Sink<iScalar>, public Source
{ {
@ -256,7 +261,8 @@ protected:
/** Explicit type cast node. */ /** Explicit type cast node.
* @ingroup datanodes */
template <class iScalar, class oScalar> template <class iScalar, class oScalar>
class Cast : public Sink<iScalar>, public Source class Cast : public Sink<iScalar>, public Source
{ {
@ -361,7 +367,8 @@ protected:
/** Performs a reinterprete cast from an unsinged value to a singed one. */ /** Performs a reinterprete cast from an unsinged value to a singed one.
* @ingroup datanodes */
class UnsignedToSigned: public SinkBase, public Source class UnsignedToSigned: public SinkBase, public Source
{ {
public: public:
@ -392,7 +399,8 @@ protected:
/** Performs a reinterprete cast from an unsinged value to a singed one. */ /** Performs a reinterprete cast from an unsinged value to a singed one.
* @ingroup datanodes */
class SignedToUnsigned: public SinkBase, public Source class SignedToUnsigned: public SinkBase, public Source
{ {
public: public:
@ -423,7 +431,8 @@ protected:
/** Performs a frequency shift on a complex input signal, by multiplying it with \f$e^{i\omega t}\f$. /** Performs a frequency shift on a complex input signal, by multiplying it with \f$e^{i\omega t}\f$.
* Please note, this node performs not optimal in cases, where the input scalar is an integer, as * Please note, this node performs not optimal in cases, where the input scalar is an integer, as
* the computation is performed using double precision floating point numbers. * the computation is performed using double precision floating point numbers.
* @deprecated Implement a more efficient variant using FreqShiftBase. */ * @deprecated Implement a more efficient variant using FreqShiftBase.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class FreqShift: public Sink< std::complex<Scalar> >, public Source class FreqShift: public Sink< std::complex<Scalar> >, public Source
{ {
@ -510,7 +519,8 @@ protected:
}; };
/** Reads raw samples from an imput stream, (ie a file). */ /** Reads raw samples from an imput stream, (ie a file).
* @ingroup sources */
template<class Scalar> template<class Scalar>
class StreamSource: public Source class StreamSource: public Source
{ {
@ -541,7 +551,8 @@ protected:
}; };
/** Serializes the incomming buffers as raw data. */ /** Serializes the incomming buffers as raw data.
* @ingroup sinks */
template <class Scalar> template <class Scalar>
class StreamSink: public Sink<Scalar> class StreamSink: public Sink<Scalar>
{ {
@ -579,7 +590,8 @@ protected:
/** Simple scaling node. */ /** Simple scaling node.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class Scale : public Sink<Scalar>, public Source class Scale : public Sink<Scalar>, public Source
{ {
@ -640,7 +652,8 @@ protected:
/** An automatic gain control node. */ /** An automatic gain control node.
* @ingroup filters */
template <class Scalar> template <class Scalar>
class AGC: public Sink<Scalar>, public Source class AGC: public Sink<Scalar>, public Source
{ {
@ -780,7 +793,8 @@ protected:
}; };
/** Keeps a copy of the last buffer received. */ /** Keeps a copy of the last buffer received.
* @ingroup sinks */
template <class Scalar> template <class Scalar>
class DebugStore: public Sink<Scalar> class DebugStore: public Sink<Scalar>
{ {
@ -827,7 +841,8 @@ public:
}; };
/** Dumps buffers in a human readable form. */ /** Dumps buffers in a human readable form.
* @ingroup sinks*/
template <class Scalar> template <class Scalar>
class DebugDump: public Sink<Scalar> class DebugDump: public Sink<Scalar>
{ {
@ -869,7 +884,8 @@ protected:
}; };
/** A Gaussian White Noise source. */ /** A Gaussian White Noise source.
* @ingroup sources */
template <class Scalar> template <class Scalar>
class GWNSource: public Source class GWNSource: public Source
{ {

@ -6,7 +6,8 @@
namespace sdr { namespace sdr {
/** Stores the received buffers into a WAV file. */ /** Stores the received buffers into a WAV file.
* @ingroup sinks */
template <class Scalar> template <class Scalar>
class WavSink: public Sink<Scalar> class WavSink: public Sink<Scalar>
{ {
@ -127,7 +128,8 @@ protected:
/** A simple imput source that reads from a wav file. Some data is read from the file on every call /** A simple imput source that reads from a wav file. Some data is read from the file on every call
* to @c next until the end of file is reached. */ * to @c next until the end of file is reached.
* @ingroup sources */
class WavSource: public Source class WavSource: public Source
{ {
public: public:

Loading…
Cancel
Save