30 #define RETAIN(element)
31 #define RELEASE(element)
33 #define RETAIN(element) VuoRetain((void *)element)
34 #define RELEASE(element) VuoRelease((void *)element)
36 #define RETAIN(element) VuoAudioEncoding_retain(element)
37 #define RELEASE(element) VuoAudioEncoding_release(element)
45 "title" :
"List of VuoAudioEncoding elements",
67 if (json_object_get_type(js) == json_type_array)
69 int itemCount = json_object_array_length(js);
70 for (
int i = 0; i < itemCount; ++i)
72 json_object *itemObject = json_object_array_get_idx(js, i);
86 for (
unsigned long i = 1; i <= itemCount; ++i)
90 json_object_array_add(listObject, itemObject);
96 #ifdef VuoAudioEncoding_REQUIRES_INTERPROCESS_JSON
102 for (
unsigned long i = 1; i <= itemCount; ++i)
105 json_object *itemObject = VuoAudioEncoding_getInterprocessJson(item);
106 json_object_array_add(listObject, itemObject);
116 return strdup(
"Empty list");
118 const int maxItems = 20;
119 const int maxCharacters = 400;
123 return strdup(
"Empty list");
125 unsigned long characterCount = 0;
127 std::ostringstream summary;
128 summary <<
"List containing " << itemCount <<
" item" << (itemCount == 1 ?
"" :
"s") <<
": <ul>";
130 for (i = 1; i <= itemCount && i <= maxItems && characterCount <= maxCharacters; ++i)
134 std::string itemSummary = itemSummaryCstr;
135 free(itemSummaryCstr);
136 if (itemSummary.length() && itemSummary.find_first_not_of(
' ') != std::string::npos)
137 summary <<
"<li>" << itemSummary <<
"</li>";
139 summary <<
"<li> </li>";
140 characterCount += itemSummary.length();
144 summary <<
"<li>…</li>";
148 return strdup(summary.str().c_str());
153 std::vector<VuoAudioEncoding> * l =
new std::vector<VuoAudioEncoding>;
155 return reinterpret_cast<VuoList_VuoAudioEncoding>(l);
160 std::vector<VuoAudioEncoding> * l =
new std::vector<VuoAudioEncoding>(count, value);
162 return reinterpret_cast<VuoList_VuoAudioEncoding>(l);
170 std::vector<VuoAudioEncoding> *oldList = (std::vector<VuoAudioEncoding> *)list;
172 std::vector<VuoAudioEncoding> *newList =
new std::vector<VuoAudioEncoding>(*oldList);
175 for (std::vector<VuoAudioEncoding>::iterator i = newList->begin(); i != newList->end(); ++i)
178 return reinterpret_cast<VuoList_VuoAudioEncoding>(newList);
190 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
196 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
198 if (!l || l->size() == 0)
204 if (index > l->size())
205 return (*l)[l->size()-1];
207 return (*l)[index-1];
212 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
214 if (!l || l->size() == 0)
225 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
227 if (!expandListIfNeeded && l->size() == 0)
230 unsigned long clampedIndex = index - 1;
235 if (expandListIfNeeded && clampedIndex >= l->size())
237 l->resize(clampedIndex + 1);
238 (*l)[clampedIndex] = value;
243 if (index > l->size())
244 clampedIndex = l->size() - 1;
249 (*l)[clampedIndex] = value;
260 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
262 unsigned long clampedIndex = index - 1;
267 if (index > l->size())
268 clampedIndex = l->size() - 1;
271 if (index <= l->size())
272 l->insert(l->begin() + clampedIndex, value);
282 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
284 l->insert(l->begin(), value);
292 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
302 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
304 size_t size = l->size();
308 unsigned long clampedIndexA = indexA - 1;
312 clampedIndexA = size - 1;
314 unsigned long clampedIndexB = indexB - 1;
318 clampedIndexB = size - 1;
321 (*l)[clampedIndexA] = (*l)[clampedIndexB];
322 (*l)[clampedIndexB] = value;
325 #ifdef VuoAudioEncoding_SUPPORTS_COMPARISON
331 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
333 size_t size = l->size();
337 std::sort(l->begin(), l->end(), VuoAudioEncoding_isLessThan);
348 std::vector<VuoAudioEncoding> *a = (std::vector<VuoAudioEncoding> *)_a;
349 std::vector<VuoAudioEncoding> *b = (std::vector<VuoAudioEncoding> *)_b;
350 if (a->size() != b->size())
353 for (std::vector<VuoAudioEncoding>::iterator ia = a->begin(), ib = b->begin(); ia != a->end(); ++ia, ++ib)
354 if (!VuoAudioEncoding_areEqual(*ia, *ib))
365 std::vector<VuoAudioEncoding> *a = (std::vector<VuoAudioEncoding> *)_a;
366 std::vector<VuoAudioEncoding> *b = (std::vector<VuoAudioEncoding> *)_b;
367 if (a->size() < b->size())
return true;
368 if (a->size() > b->size())
return false;
370 for (std::vector<VuoAudioEncoding>::iterator ia = a->begin(), ib = b->begin(); ia != a->end(); ++ia, ++ib)
372 if (VuoAudioEncoding_isLessThan(*ia, *ib))
return true;
373 if (VuoAudioEncoding_isLessThan(*ib, *ia))
return false;
385 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
387 size_t size = l->size();
391 double clampedChaos =
MIN(
MAX(chaos,0),1);
392 for (
unsigned long i = 0; i < size * clampedChaos; ++i)
406 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
407 std::reverse(l->begin(), l->end());
415 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
417 size_t size = l->size();
421 signed long clampedStartIndex = startIndex - 1;
422 signed long clampedEndIndex = clampedStartIndex + itemCount - 1;
424 if (clampedStartIndex < 0)
425 clampedStartIndex = 0;
426 if (clampedEndIndex >= (
signed long)size)
427 clampedEndIndex = size - 1;
429 if (clampedStartIndex > clampedEndIndex)
432 std::vector<VuoAudioEncoding> *newList =
new std::vector<VuoAudioEncoding>(
433 l->begin() + clampedStartIndex,
434 l->begin() + clampedEndIndex + 1);
437 for (std::vector<VuoAudioEncoding>::iterator i = newList->begin(); i != newList->end(); ++i)
440 return reinterpret_cast<VuoList_VuoAudioEncoding>(newList);
443 #ifdef VuoAudioEncoding_SUPPORTS_COMPARISON
449 auto *l = (std::vector<VuoAudioEncoding> *)list;
451 size_t size = l->size();
455 auto *newList =
new std::vector<VuoAudioEncoding>;
458 for (
auto i = l->begin(); i != l->end(); ++i)
461 for (
auto j = newList->begin(); j != newList->end(); ++j)
462 if (VuoAudioEncoding_areEqual(*i, *j))
468 newList->push_back(*i);
471 for (
auto i = newList->begin(); i != newList->end(); ++i)
474 return reinterpret_cast<VuoList_VuoAudioEncoding>(newList);
483 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
489 l->erase(l->begin());
497 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
523 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;
525 size_t size = l->size();
526 if (size == 0 || index > size)
529 l->erase(l->begin() + index - 1);
537 std::vector<VuoAudioEncoding> * l = (std::vector<VuoAudioEncoding> *)list;