XMMS2
|
00001 /* XMMS2 - X Music Multiplexer System 00002 * Copyright (C) 2003-2009 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, unsigned 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, unsigned int id); 00042 int xmmsv_coll_idlist_insert (xmmsv_coll_t *coll, unsigned int index, unsigned int id); 00043 int xmmsv_coll_idlist_move (xmmsv_coll_t *coll, unsigned int index, unsigned int newindex); 00044 int xmmsv_coll_idlist_remove (xmmsv_coll_t *coll, unsigned int index); 00045 int xmmsv_coll_idlist_clear (xmmsv_coll_t *coll); 00046 int xmmsv_coll_idlist_get_index (xmmsv_coll_t *coll, unsigned int index, uint32_t *val); 00047 int xmmsv_coll_idlist_set_index (xmmsv_coll_t *coll, unsigned int index, uint32_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 uint32_t *xmmsv_coll_get_idlist (xmmsv_coll_t *coll); 00052 00053 void xmmsv_coll_attribute_set (xmmsv_coll_t *coll, const char *key, const char *value); 00054 int xmmsv_coll_attribute_remove (xmmsv_coll_t *coll, const char *key); 00055 int xmmsv_coll_attribute_get (xmmsv_coll_t *coll, const char *key, char **value); 00056 void xmmsv_coll_attribute_foreach (xmmsv_coll_t *coll, xmmsv_coll_attribute_foreach_func func, void *user_data) XMMS_DEPRECATED; 00057 00058 struct xmmsv_St *xmmsv_coll_attributes_get (xmmsv_coll_t *coll); 00059 00060 xmmsv_coll_t *xmmsv_coll_universe (void); 00061 00062 00063 00064 /* compability */ 00065 typedef xmmsv_coll_t xmmsc_coll_t; 00066 00067 #define xmmsc_coll_new xmmsv_coll_new 00068 #define xmmsc_coll_ref xmmsv_coll_ref 00069 #define xmmsc_coll_unref xmmsv_coll_unref 00070 00071 #define xmmsc_coll_set_idlist xmmsv_coll_set_idlist 00072 #define xmmsc_coll_add_operand xmmsv_coll_add_operand 00073 #define xmmsc_coll_remove_operand xmmsv_coll_remove_operand 00074 00075 #define xmmsc_coll_idlist_append xmmsv_coll_idlist_append 00076 #define xmmsc_coll_idlist_insert xmmsv_coll_idlist_insert 00077 #define xmmsc_coll_idlist_move xmmsv_coll_idlist_move 00078 #define xmmsc_coll_idlist_remove xmmsv_coll_idlist_remove 00079 #define xmmsc_coll_idlist_clear xmmsv_coll_idlist_clear 00080 #define xmmsc_coll_idlist_get_index xmmsv_coll_idlist_get_index 00081 #define xmmsc_coll_idlist_set_index xmmsv_coll_idlist_set_index 00082 #define xmmsc_coll_idlist_get_size xmmsv_coll_idlist_get_size 00083 00084 #define xmmsc_coll_get_type xmmsv_coll_get_type 00085 #define xmmsc_coll_get_idlist xmmsv_coll_get_idlist 00086 00087 #define xmmsc_coll_attribute_set xmmsv_coll_attribute_set 00088 #define xmmsc_coll_attribute_remove xmmsv_coll_attribute_remove 00089 #define xmmsc_coll_attribute_get xmmsv_coll_attribute_get 00090 #define xmmsc_coll_attribute_foreach xmmsv_coll_attribute_foreach 00091 00092 #define xmmsc_coll_universe xmmsv_coll_universe 00093 00094 00095 00096 #ifdef __cplusplus 00097 } 00098 #endif 00099 00100 #endif