4 * Created on: 2009-10-05
8 #ifndef DATA_STRUCTS_H_
9 #define DATA_STRUCTS_H_
12 #include <libxml/tree.h>
14 extern int G_TYPE_ALBUM;
15 extern int G_TYPE_RADIO;
17 void data_structs_type_register();
22 typedef struct _Album {
24 * numeric id of the album
29 * link to the cover of the album
44 * Display name of the artist.
51 Album* album_new_from_xml(xmlNode* album_node);
53 Album* album_copy(Album* album);
55 void album_set_id(Album* album, const gint id);
57 void album_set_image(Album* album, const gchar* image);
59 gchar* album_get_image(Album* album, gint size);
61 void album_set_name(Album* album, const gchar* name);
63 void album_set_rating(Album* album, const gdouble rating);
65 void album_set_artist_name(Album* album, const gchar* artist_name);
67 void album_free(Album* album);
69 void album_dump(Album* album);
71 void album_list_free(GList* album_list);
77 typedef struct _Track {
91 Track* track_new_from_xml(xmlNode* track_node);
93 void track_free(Track* track);
95 void track_set_id(Track* track, const gint id);
97 void track_set_name(Track* track, const gchar* name);
99 void track_set_duration(Track* track, const gint duration);
101 void track_set_stream(Track* track, const gchar* stream);
103 void track_set_rating(Track* track, const gdouble rating);
105 void track_set_artist_id(Track* track, const gint artist_id);
107 void track_set_artist_name(Track* track, const gchar* artist_name);
109 void track_set_album_id(Track* track, const gint album_id);
111 void track_set_album_name(Track* track, const gchar* album_name);
113 void track_list_free(GList* track_list);
118 typedef struct _Radio {
126 Radio* radio_copy(Radio* radio);
128 Radio* radio_new_from_xml(xmlNode* radio_node);
130 void radio_free(Radio* radio);
132 void radio_set_id(Radio* radio, const gint id);
134 void radio_set_name(Radio* radio, const gchar* name);
136 void radio_set_image(Radio* radio, const gchar* image);
138 void radio_list_free(GList* radio_list);
140 #endif /* DATA_STRUCTS_H_ */