File: signalVector.h

package info (click to toggle)
osmo-trx 1.4.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,644 kB
  • sloc: cpp: 11,406; ansic: 4,697; makefile: 483; asm: 329; sh: 141; xml: 79
file content (55 lines) | stat: -rw-r--r-- 1,485 bytes parent folder | download | duplicates (3)
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
52
53
54
55
#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, vector_alloc_func wAllocFunc = NULL, vector_free_func wFreeFunc = NULL);

	/** Construct with head room */
	signalVector(size_t size, size_t start, vector_alloc_func wAllocFunc = NULL, vector_free_func wFreeFunc = NULL);

	/** Construct from existing buffer data (buffer not managed) */
	signalVector(complex *data, size_t start, size_t span, vector_alloc_func wAllocFunc = NULL, vector_free_func wFreeFunc = NULL);

	/** 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 an alias to a segment of this signalVector. */
	signalVector segment(size_t start, size_t span);

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

	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_ */