diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/config/items/intarray.cpp | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Wasabi/api/config/items/intarray.cpp')
-rw-r--r-- | Src/Wasabi/api/config/items/intarray.cpp | 49 |
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)); +} |