aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/signalVector.h
blob: c9cb10506ad6bde7d1c9835d19832a79ef9dad62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef _SIGNALVECTOR_H_
#define _SIGNALVECTOR_H_

#include <Vector.h>
#include <Complex.h>

/** Vector symmetry */
enum Symmetry {
  NONE = 0,
  ABSSYM = 1
};

class signalVector: public Vector<complex> {
public:
	/** Default constructor */
	signalVector(size_t size = 0);

	/** Construct with head room */
	signalVector(size_t size, size_t start);

	/** Construct from existing buffer data (buffer not managed) */
	signalVector(complex *data, size_t start, size_t span);

	/** Construct by from existing vector */
	signalVector(const signalVector &vector);

	/** Construct by from existing vector and append head-tail room */
	signalVector(const signalVector &vector, size_t start, size_t tail = 0);

	/** Override base assignment operator to include start offsets */
	void operator=(const signalVector& vector);

	/** Return head room */
	size_t getStart() const;

	Symmetry getSymmetry() const;
	void setSymmetry(Symmetry symmetry);

	bool isReal() const;
	void isReal(bool real);

	bool isAligned() const;
	void setAligned(bool aligned);

private:
	bool real;
	bool aligned;
	Symmetry symmetry;
};

#endif /* _SIGNALVECTOR_H_ */