aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/signalVector.h
diff options
context:
space:
mode:
Diffstat (limited to 'Transceiver52M/signalVector.h')
-rw-r--r--Transceiver52M/signalVector.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/Transceiver52M/signalVector.h b/Transceiver52M/signalVector.h
new file mode 100644
index 0000000..2f65e28
--- /dev/null
+++ b/Transceiver52M/signalVector.h
@@ -0,0 +1,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:
+ Symmetry symmetry;
+ bool real;
+ bool aligned;
+};
+
+#endif /* _SIGNALVECTOR_H_ */