33 int (* compare) (
const void *
a,
const void *
b);
37 int (* compare) (
const void *
a,
const void *
b,
void * data);
43 Index * index = g_slice_new (Index);
55 g_slice_free (Index, index);
65 if (size <= index->size)
71 while (size > index->size)
74 index->data = g_realloc (index->data, sizeof (
void *) * index->size);
79 index->data[
at] = value;
84 return index->data[
at];
91 if (at < index->count)
92 memmove (index->data + at + count, index->data + at, sizeof (
void *) *
95 index->count += count;
101 index->data[
at] = value;
112 memcpy (target->data + to, source->data + from, sizeof (
void *) * count);
119 memcpy (target->data + to, source->data + from, sizeof (
void *) * count);
140 memmove (index->data + to, index->data + from, sizeof (
void *) * count);
145 index->count -= count;
146 memmove (index->data + at, index->data + at + count, sizeof (
void *) *
147 (index->count - at));
150 static int index_compare (
const void * ap,
const void * bp,
void * _wrapper)
153 return wrapper->
compare (* (
const void * *) ap, * (
const void * *) bp);
156 EXPORT
void index_sort (Index * index,
int (* compare) (
const void *,
const void *))
159 g_qsort_with_data (index->data, index->count, sizeof (
void *),
166 return wrapper->
compare (* (
const void * *) ap, * (
const void * *) bp, wrapper->
data);
170 (
const void *
a,
const void *
b,
void * data),
void * data)
173 g_qsort_with_data (index->data, index->count, sizeof (
void *),
EXPORT Index * index_new(void)
EXPORT void index_insert(Index *index, int at, void *value)
static float a[EQ_BANDS][2]
EXPORT void index_delete(Index *index, int at, int count)
static int index_compare2(const void *ap, const void *bp, void *_wrapper)
const char PluginHandle decoder const char PluginHandle decoder const char PluginHandle decoder void const PreferencesWidget int
static float b[EQ_BANDS][2]
EXPORT int index_count(Index *index)
EXPORT void index_merge_insert(Index *first, int at, Index *second)
EXPORT void index_allocate(Index *index, int size)
EXPORT void index_sort(Index *index, int(*compare)(const void *, const void *))
EXPORT void * index_get(Index *index, int at)
EXPORT void index_append(Index *index, void *value)
static void make_room(Index *index, int at, int count)
int(* compare)(const void *a, const void *b)
EXPORT void index_sort_with_data(Index *index, int(*compare)(const void *a, const void *b, void *data), void *data)
EXPORT void index_free(Index *index)
EXPORT void index_copy_set(Index *source, int from, Index *target, int to, int count)
static int index_compare(const void *ap, const void *bp, void *_wrapper)
EXPORT void index_copy_append(Index *source, int from, Index *target, int count)
EXPORT void index_set(Index *index, int at, void *value)
EXPORT void index_move(Index *index, int from, int to, int count)
EXPORT void index_merge_append(Index *first, Index *second)
EXPORT void index_copy_insert(Index *source, int from, Index *target, int to, int count)
int(* compare)(const void *a, const void *b, void *data)