XMMS2
|
00001 /* XMMS2 - X Music Multiplexer System 00002 * Copyright (C) 2003-2011 XMMS2 Team 00003 * 00004 * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!! 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 */ 00016 00017 #ifndef __XMMS_COLL_H__ 00018 #define __XMMS_COLL_H__ 00019 00020 #include "xmmsc/xmmsc_compiler.h" 00021 #include "xmmsc/xmmsc_stdint.h" 00022 #include "xmmsc/xmmsc_idnumbers.h" 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 typedef struct xmmsv_coll_St xmmsv_coll_t; 00029 00030 typedef void (*xmmsv_coll_attribute_foreach_func) (const char *key, const char *value, void *udata); 00031 00032 xmmsv_coll_t *xmmsv_coll_new (xmmsv_coll_type_t type); 00033 xmmsv_coll_t *xmmsv_coll_ref (xmmsv_coll_t *coll); 00034 void xmmsv_coll_unref (xmmsv_coll_t *coll); 00035 00036 void xmmsv_coll_set_idlist (xmmsv_coll_t *coll, int ids[]); 00037 void xmmsv_coll_add_operand (xmmsv_coll_t *coll, xmmsv_coll_t *op); 00038 void xmmsv_coll_remove_operand (xmmsv_coll_t *coll, xmmsv_coll_t *op); 00039 struct xmmsv_St *xmmsv_coll_operands_get (xmmsv_coll_t *coll); 00040 00041 int xmmsv_coll_idlist_append (xmmsv_coll_t *coll, int id); 00042 int xmmsv_coll_idlist_insert (xmmsv_coll_t *coll, int index, int id); 00043 int xmmsv_coll_idlist_move (xmmsv_coll_t *coll, int index, int newindex); 00044 int xmmsv_coll_idlist_remove (xmmsv_coll_t *coll, int index); 00045 int xmmsv_coll_idlist_clear (xmmsv_coll_t *coll); 00046 int xmmsv_coll_idlist_get_index (xmmsv_coll_t *coll, int index, int32_t *val); 00047 int xmmsv_coll_idlist_set_index (xmmsv_coll_t *coll, int index, int32_t val); 00048 size_t xmmsv_coll_idlist_get_size (xmmsv_coll_t *coll); 00049 00050 xmmsv_coll_type_t xmmsv_coll_get_type (xmmsv_coll_t *coll); 00051 struct xmmsv_St *xmmsv_coll_idlist_get (xmmsv_coll_t *coll); 00052 00053 /** @deprecated */ 00054 const int32_t *xmmsv_coll_get_idlist (xmmsv_coll_t *coll) XMMS_DEPRECATED; 00055 00056 void xmmsv_coll_attribute_set (xmmsv_coll_t *coll, const char *key, const char *value); 00057 int xmmsv_coll_attribute_remove (xmmsv_coll_t *coll, const char *key); 00058 int xmmsv_coll_attribute_get (xmmsv_coll_t *coll, const char *key, char **value); 00059 00060 /** @deprecated */ 00061 void xmmsv_coll_attribute_foreach (xmmsv_coll_t *coll, xmmsv_coll_attribute_foreach_func func, void *user_data) XMMS_DEPRECATED; 00062 00063 struct xmmsv_St *xmmsv_coll_attributes_get (xmmsv_coll_t *coll); 00064 00065 xmmsv_coll_t *xmmsv_coll_universe (void); 00066 00067 00068 00069 /* compability */ 00070 typedef xmmsv_coll_t xmmsc_coll_t; 00071 00072 #define xmmsc_coll_new xmmsv_coll_new 00073 #define xmmsc_coll_ref xmmsv_coll_ref 00074 #define xmmsc_coll_unref xmmsv_coll_unref 00075 00076 #define xmmsc_coll_set_idlist xmmsv_coll_set_idlist 00077 #define xmmsc_coll_add_operand xmmsv_coll_add_operand 00078 #define xmmsc_coll_remove_operand xmmsv_coll_remove_operand 00079 00080 #define xmmsc_coll_idlist_append xmmsv_coll_idlist_append 00081 #define xmmsc_coll_idlist_insert xmmsv_coll_idlist_insert 00082 #define xmmsc_coll_idlist_move xmmsv_coll_idlist_move 00083 #define xmmsc_coll_idlist_remove xmmsv_coll_idlist_remove 00084 #define xmmsc_coll_idlist_clear xmmsv_coll_idlist_clear 00085 #define xmmsc_coll_idlist_get_index xmmsv_coll_idlist_get_index 00086 #define xmmsc_coll_idlist_set_index xmmsv_coll_idlist_set_index 00087 #define xmmsc_coll_idlist_get_size xmmsv_coll_idlist_get_size 00088 00089 #define xmmsc_coll_get_type xmmsv_coll_get_type 00090 #define xmmsc_coll_get_idlist xmmsv_coll_get_idlist 00091 00092 #define xmmsc_coll_attribute_set xmmsv_coll_attribute_set 00093 #define xmmsc_coll_attribute_remove xmmsv_coll_attribute_remove 00094 #define xmmsc_coll_attribute_get xmmsv_coll_attribute_get 00095 #define xmmsc_coll_attribute_foreach xmmsv_coll_attribute_foreach 00096 00097 #define xmmsc_coll_universe xmmsv_coll_universe 00098 00099 00100 00101 #ifdef __cplusplus 00102 } 00103 #endif 00104 00105 #endif