00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef LIBAUDCORE_INDEX_H
00021 #define LIBAUDCORE_INDEX_H
00022
00023 struct _Index;
00024 typedef struct _Index Index;
00025
00026 Index * index_new (void);
00027 void index_free (Index * index);
00028 int index_count (Index * index);
00029 void index_allocate (Index * index, int size);
00030 void index_set (Index * index, int at, void * value);
00031 void * index_get (Index * index, int at);
00032 void index_insert (Index * index, int at, void * value);
00033 void index_append (Index * index, void * value);
00034 void index_copy_set (Index * source, int from, Index * target, int to, int count);
00035 void index_copy_insert (Index * source, int from, Index * target, int to, int count);
00036 void index_copy_append (Index * source, int from, Index * target, int count);
00037 void index_merge_insert (Index * first, int at, Index * second);
00038 void index_merge_append (Index * first, Index * second);
00039 void index_move (Index * index, int from, int to, int count);
00040 void index_delete (Index * index, int at, int count);
00041 void index_sort (Index * index, int (* compare) (const void * a, const void * b));
00042 void index_sort_with_data (Index * index, int (* compare) (const void * a,
00043 const void * b, void * data), void * data);
00044
00045 #endif