XMMS2
xmmsv_list.h
Go to the documentation of this file.
1 /* XMMS2 - X Music Multiplexer System
2  * Copyright (C) 2003-2011 XMMS2 Team
3  *
4  * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  */
16 
17 
18 #ifndef __XMMSV_LIST_H__
19 #define __XMMSV_LIST_H__
20 
21 #include "xmmsc/xmmsv_general.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /**
28  * @defgroup ListType Lists
29  * @ingroup ValueType
30  * @{
31  */
32 
33 xmmsv_t *xmmsv_new_list (void);
34 
35 int xmmsv_list_get (xmmsv_t *listv, int pos, xmmsv_t **val);
36 int xmmsv_list_set (xmmsv_t *listv, int pos, xmmsv_t *val);
37 int xmmsv_list_append (xmmsv_t *listv, xmmsv_t *val);
38 int xmmsv_list_insert (xmmsv_t *listv, int pos, xmmsv_t *val);
39 int xmmsv_list_remove (xmmsv_t *listv, int pos);
40 int xmmsv_list_move (xmmsv_t *listv, int old_pos, int new_pos);
41 int xmmsv_list_clear (xmmsv_t *listv);
42 int xmmsv_list_get_size (xmmsv_t *listv);
44 
45 int xmmsv_list_get_string (xmmsv_t *v, int pos, const char **val);
46 int xmmsv_list_get_int (xmmsv_t *v, int pos, int32_t *val);
47 int xmmsv_list_get_coll (xmmsv_t *v, int pos, xmmsv_coll_t **val);
48 
49 int xmmsv_list_set_string (xmmsv_t *v, int pos, const char *val);
50 int xmmsv_list_set_int (xmmsv_t *v, int pos, int32_t val);
51 int xmmsv_list_set_coll (xmmsv_t *v, int pos, xmmsv_coll_t *val);
52 
53 int xmmsv_list_insert_string (xmmsv_t *v, int pos, const char *val);
54 int xmmsv_list_insert_int (xmmsv_t *v, int pos, int32_t val);
55 int xmmsv_list_insert_coll (xmmsv_t *v, int pos, xmmsv_coll_t *val);
56 
57 int xmmsv_list_append_string (xmmsv_t *v, const char *val);
58 int xmmsv_list_append_int (xmmsv_t *v, int32_t val);
60 
61 /**
62  * @defgroup ListIterType Iteration
63  * @{
64  */
65 
66 typedef void (*xmmsv_list_foreach_func) (xmmsv_t *value, void *user_data);
67 int xmmsv_list_foreach (xmmsv_t *listv, xmmsv_list_foreach_func func, void* user_data);
68 
69 typedef struct xmmsv_list_iter_St xmmsv_list_iter_t;
70 int xmmsv_get_list_iter (const xmmsv_t *val, xmmsv_list_iter_t **it);
72 
79 int xmmsv_list_iter_seek (xmmsv_list_iter_t *it, int pos);
82 
85 
86 int xmmsv_list_iter_entry_string (xmmsv_list_iter_t *it, const char **val);
87 int xmmsv_list_iter_entry_int (xmmsv_list_iter_t *it, int32_t *val);
89 
90 int xmmsv_list_iter_insert_string (xmmsv_list_iter_t *it, const char *val);
91 int xmmsv_list_iter_insert_int (xmmsv_list_iter_t *it, int32_t val);
93 /** @} */
94 
95 /** @} */
96 
97 #ifdef __cplusplus
98 }
99 #endif
100 
101 #endif