udapted vi.po
[rhythmbox.git] / daapsharing / rb-daap-structure.h
blob402ace28f51444a904fb90855b2abbf3ef3f6b44
1 /*
2 * Header for DAAP (iTunes Music Sharing) structures
4 * Copyright (C) 2004,2005 Charles Schmidt <cschmidt2@emich.edu>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program 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
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
22 #ifndef __RB_DAAP_STRUCTURE_H
23 #define __RB_DAAP_STRUCTURE_H
25 #include <glib.h>
26 #include <glib-object.h>
28 G_BEGIN_DECLS
30 typedef enum {
31 RB_DAAP_CC_INVALID = 0,
32 RB_DAAP_CC_MDCL = 1,
33 RB_DAAP_CC_MSTT,
34 RB_DAAP_CC_MIID,
35 RB_DAAP_CC_MINM,
36 RB_DAAP_CC_MIKD,
37 RB_DAAP_CC_MPER,
38 RB_DAAP_CC_MCON,
39 RB_DAAP_CC_MCTI,
40 RB_DAAP_CC_MPCO,
41 RB_DAAP_CC_MSTS, // 10
42 RB_DAAP_CC_MIMC,
43 RB_DAAP_CC_MCTC,
44 RB_DAAP_CC_MRCO,
45 RB_DAAP_CC_MTCO,
46 RB_DAAP_CC_MLCL,
47 RB_DAAP_CC_MLIT,
48 RB_DAAP_CC_MBCL,
49 RB_DAAP_CC_MSRV,
50 RB_DAAP_CC_MSAU,
51 RB_DAAP_CC_MSLR, // 20
52 RB_DAAP_CC_MPRO,
53 RB_DAAP_CC_APRO,
54 RB_DAAP_CC_MSAL,
55 RB_DAAP_CC_MSUP,
56 RB_DAAP_CC_MSPI,
57 RB_DAAP_CC_MSEX,
58 RB_DAAP_CC_MSBR,
59 RB_DAAP_CC_MSQY,
60 RB_DAAP_CC_MSIX,
61 RB_DAAP_CC_MSRS, // 30
62 RB_DAAP_CC_MSTM,
63 RB_DAAP_CC_MSDC,
64 RB_DAAP_CC_MCCR,
65 RB_DAAP_CC_MCNM,
66 RB_DAAP_CC_MCNA,
67 RB_DAAP_CC_MCTY,
68 RB_DAAP_CC_MLOG,
69 RB_DAAP_CC_MLID,
70 RB_DAAP_CC_MUPD,
71 RB_DAAP_CC_MUSR, // 40
72 RB_DAAP_CC_MUTY,
73 RB_DAAP_CC_MUDL,
74 RB_DAAP_CC_AVDB,
75 RB_DAAP_CC_ABRO,
76 RB_DAAP_CC_ABAL,
77 RB_DAAP_CC_ABAR,
78 RB_DAAP_CC_ABCP,
79 RB_DAAP_CC_ABGN,
80 RB_DAAP_CC_ADBS,
81 RB_DAAP_CC_ASAL, // 50
82 RB_DAAP_CC_ASAR,
83 RB_DAAP_CC_ASBT,
84 RB_DAAP_CC_ASBR,
85 RB_DAAP_CC_ASCM,
86 RB_DAAP_CC_ASCO,
87 RB_DAAP_CC_ASDA,
88 RB_DAAP_CC_ASDM,
89 RB_DAAP_CC_ASDC,
90 RB_DAAP_CC_ASDN,
91 RB_DAAP_CC_ASDB, // 60
92 RB_DAAP_CC_ASEQ,
93 RB_DAAP_CC_ASFM,
94 RB_DAAP_CC_ASGN,
95 RB_DAAP_CC_ASDT,
96 RB_DAAP_CC_ASRV,
97 RB_DAAP_CC_ASSR,
98 RB_DAAP_CC_ASSZ,
99 RB_DAAP_CC_ASST,
100 RB_DAAP_CC_ASSP,
101 RB_DAAP_CC_ASTM, // 70
102 RB_DAAP_CC_ASTC,
103 RB_DAAP_CC_ASTN,
104 RB_DAAP_CC_ASUR,
105 RB_DAAP_CC_ASYR,
106 RB_DAAP_CC_ASDK,
107 RB_DAAP_CC_ASUL,
108 RB_DAAP_CC_APLY,
109 RB_DAAP_CC_ABPL,
110 RB_DAAP_CC_APSO,
111 RB_DAAP_CC_PRSV, // 80
112 RB_DAAP_CC_ARIF,
113 RB_DAAP_CC_AESV,
114 RB_DAAP_CC_MSAS,
115 RB_DAAP_CC_AGRP,
116 RB_DAAP_CC_ASCP,
117 } RBDAAPContentCode;
119 typedef struct _RBDAAPItem RBDAAPItem;
121 struct _RBDAAPItem {
122 RBDAAPContentCode content_code;
123 GValue content;
124 guint size;
127 GNode *
128 rb_daap_structure_add (GNode *parent,
129 RBDAAPContentCode cc,
130 ...);
132 gchar *
133 rb_daap_structure_serialize (GNode *structure,
134 guint *length);
136 GNode *
137 rb_daap_structure_parse (const gchar *buf,
138 gint buf_length);
140 RBDAAPItem *
141 rb_daap_structure_find_item (GNode *structure,
142 RBDAAPContentCode code);
144 GNode *
145 rb_daap_structure_find_node (GNode *structure,
146 RBDAAPContentCode code);
148 void
149 rb_daap_structure_print (GNode *structure);
151 void
152 rb_daap_structure_destroy (GNode *structure);
154 typedef enum {
155 RB_DAAP_TYPE_BYTE = 0x0001,
156 RB_DAAP_TYPE_SIGNED_INT = 0x0002,
157 RB_DAAP_TYPE_SHORT = 0x0003,
158 RB_DAAP_TYPE_INT = 0x0005,
159 RB_DAAP_TYPE_INT64 = 0x0007,
160 RB_DAAP_TYPE_STRING = 0x0009,
161 RB_DAAP_TYPE_DATE = 0x000A,
162 RB_DAAP_TYPE_VERSION = 0x000B,
163 RB_DAAP_TYPE_CONTAINER = 0x000C
164 } RBDAAPType;
166 typedef struct _RBDAAPContentCodeDefinition RBDAAPContentCodeDefinition;
168 struct _RBDAAPContentCodeDefinition {
169 RBDAAPContentCode code;
170 gint32 int_code;
171 const gchar *name;
172 const gchar *string;
173 RBDAAPType type;
176 const RBDAAPContentCodeDefinition *
177 rb_daap_content_codes (guint *number);
179 gint32
180 rb_daap_content_code_string_as_int32 (const gchar *str);
182 const gchar *
183 rb_daap_content_code_name (RBDAAPContentCode code);
185 RBDAAPType
186 rb_daap_content_code_rb_daap_type (RBDAAPContentCode code);
188 const gchar *
189 rb_daap_content_code_string (RBDAAPContentCode code);
191 G_END_DECLS
193 #endif /* __RB_DAAP_STRUCTURE_H */