From c068f22329d5cc722622a2183bbb22eef2093df7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Aug 2026 11:16:07 +0200 Subject: initial import --- tool_src/QvLib/QvSubField.h | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tool_src/QvLib/QvSubField.h (limited to 'tool_src/QvLib/QvSubField.h') diff --git a/tool_src/QvLib/QvSubField.h b/tool_src/QvLib/QvSubField.h new file mode 100644 index 0000000..a9fdea5 --- /dev/null +++ b/tool_src/QvLib/QvSubField.h @@ -0,0 +1,72 @@ +#ifndef _QV_SUB_FIELD_ +#define _QV_SUB_FIELD_ + +#include +#include + +///////////////////////////////////////////////////////////////////////////// + +#define QV_SFIELD_HEADER(className) \ + public: \ + className(); \ + virtual ~className(); \ + virtual QvBool readValue(QvInput *in) + +///////////////////////////////////////////////////////////////////////////// + +#define QV_MFIELD_HEADER(className) \ + public: \ + className(); \ + virtual ~className(); \ + virtual QvBool read1Value(QvInput *in, int index); \ + void allocValues(int newNum) + +///////////////////////////////////////////////////////////////////////////// + +#define QV_SFIELD_SOURCE(className) \ + \ +className::className() \ +{ \ +} \ +className::~className() \ +{ \ +} + +///////////////////////////////////////////////////////////////////////////// + +#define QV_MFIELD_SOURCE(className, valueType, numValues) \ + \ +className::className() \ +{ \ + values = NULL; \ + /* Make room for 1 value to start */ \ + allocValues(1); \ +} \ + \ +className::~className() \ +{ \ + if (values != NULL) \ + free((char *) values); \ +} \ + \ +void \ +className::allocValues(int newNum) \ +{ \ + if (values == NULL) { \ + if (newNum > 0) \ + values = (valueType *) \ + malloc(numValues * sizeof(valueType) * newNum); \ + } \ + else { \ + if (newNum > 0) \ + values = (valueType *) \ + realloc(values, numValues * sizeof(valueType) * newNum); \ + else { \ + free((char *) values); \ + values = NULL; \ + } \ + } \ + num = maxNum = newNum; \ +} + +#endif /* _QV_SUB_FIELD_ */ -- cgit v1.2.3