annotate foosdk/sdk/foobar2000/helpers/cfg_guidlist.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "cfg_objList.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include <pfc/bsearch_inline.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 class cfg_guidlist : public cfg_objList<GUID> {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 cfg_guidlist(const GUID& p_guid) : cfg_objList(p_guid) {}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 void sort() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 auto v = this->get();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 pfc::sort_t(v, pfc::guid_compare, v.size());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 set(std::move(v));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 bool have_item_bsearch(const GUID & p_item) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 size_t dummy;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 return pfc::bsearch_simple_inline_t(*this, size(), p_item, pfc::guid_compare, dummy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 bool bsearch(const GUID& item, size_t & idx) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 return pfc::bsearch_simple_inline_t(*this, size(), item, pfc::guid_compare, idx);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 size_t bsearch(const GUID& item) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 size_t ret = SIZE_MAX;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 pfc::bsearch_simple_inline_t(*this, size(), item, pfc::guid_compare, ret);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 return ret;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 };