Audacious  $Id:Doxyfile42802007-03-2104:39:00Znenolod$
index.h
Go to the documentation of this file.
00001 /*
00002  * index.h
00003  * Copyright 2009-2010 John Lindgren
00004  *
00005  * This file is part of Audacious.
00006  *
00007  * Audacious is free software: you can redistribute it and/or modify it under
00008  * the terms of the GNU General Public License as published by the Free Software
00009  * Foundation, version 2 or version 3 of the License.
00010  *
00011  * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
00012  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
00013  * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License along with
00016  * Audacious. If not, see <http://www.gnu.org/licenses/>.
00017  *
00018  * The Audacious team does not consider modular code linking to Audacious or
00019  * using our public API to be a derived work.
00020  */
00021 
00022 #ifndef AUDACIOUS_INDEX_H
00023 #define AUDACIOUS_INDEX_H
00024 
00025 struct index;
00026 
00027 struct index * index_new (void);
00028 void index_free (struct index * index);
00029 gint index_count (struct index * index);
00030 void index_set (struct index * index, gint at, void * value);
00031 void * index_get (struct index * index, gint at);
00032 void index_insert (struct index * index, gint at, void * value);
00033 void index_append (struct index * index, void * value);
00034 void index_copy_set (struct index * source, gint from, struct index * target,
00035  gint to, gint count);
00036 void index_copy_insert (struct index * source, gint from, struct index * target,
00037  gint to, gint count);
00038 void index_copy_append (struct index * source, gint from, struct index * target,
00039  gint count);
00040 void index_merge_insert (struct index * first, gint at, struct index * second);
00041 void index_merge_append (struct index * first, struct index * second);
00042 void index_move (struct index * index, gint from, gint to, gint count);
00043 void index_delete (struct index * index, gint at, gint count);
00044 void index_sort (struct index * index, gint (* compare) (const void * a,
00045  const void * b));
00046 void index_sort_with_data (struct index * index, gint (* compare)
00047  (const void * a, const void * b, void * data), void * data);
00048 
00049 #endif