aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/config/items/intarray.cpp
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/config/items/intarray.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/config/items/intarray.cpp')
-rw-r--r--Src/Wasabi/api/config/items/intarray.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/Src/Wasabi/api/config/items/intarray.cpp b/Src/Wasabi/api/config/items/intarray.cpp
new file mode 100644
index 00000000..c6ba4676
--- /dev/null
+++ b/Src/Wasabi/api/config/items/intarray.cpp
@@ -0,0 +1,49 @@
+#include <precomp.h>
+
+#include "intarray.h"
+
+
+enum { MAX_ARRAY=8 };
+
+int IntArray::read(const wchar_t *name, int *x1, int *x2, int *x3, int *x4, int *x5, int *x6, int *x7, int *x8) {
+ PtrList<int> list;
+ if (x1) { list.addItem(x1); }
+ if (x2) { list.addItem(x2); }
+ if (x3) { list.addItem(x3); }
+ if (x4) { list.addItem(x4); }
+ if (x5) { list.addItem(x5); }
+ if (x6) { list.addItem(x6); }
+ if (x7) { list.addItem(x7); }
+ if (x8) { list.addItem(x8); }
+ ASSERT(list.getNumItems() >= 1);
+
+ int array[MAX_ARRAY]; // gcc rules, msvc drools
+ for (int i = 0; i < list.getNumItems(); i++) {
+ if (list[i]) array[i] = *list[i];
+ }
+ if (!WASABI_API_CONFIG->getIntArrayPrivate(name, array, list.getNumItems())) return 0;
+ for (int j = 0; j < list.getNumItems(); j++) {
+ if (list[j]) *list[j] = array[j];
+ }
+ return 1;
+}
+
+void IntArray::write(const wchar_t *name, int x1) {
+ int array[] = { x1 };
+ WASABI_API_CONFIG->setIntArrayPrivate(name, array, sizeof(array)/sizeof(int));
+}
+
+void IntArray::write(const wchar_t *name, int x1, int x2) {
+ int array[] = { x1, x2 };
+ WASABI_API_CONFIG->setIntArrayPrivate(name, array, sizeof(array)/sizeof(int));
+}
+
+void IntArray::write(const wchar_t *name, int x1, int x2, int x3) {
+ int array[] = { x1, x2, x3 };
+ WASABI_API_CONFIG->setIntArrayPrivate(name, array, sizeof(array)/sizeof(int));
+}
+
+void IntArray::write(const wchar_t *name, int x1, int x2, int x3, int x4) {
+ int array[] = { x1, x2, x3, x4 };
+ WASABI_API_CONFIG->setIntArrayPrivate(name, array, sizeof(array)/sizeof(int));
+}