-} p_items[] = {
- { "http/shout-winamp://www.shoutcast.com/sbin/newxml.phtml",
- N_("Shoutcast Radio"), { NULL } },
- { "http/shout-winamp://www.shoutcast.com/sbin/newtvlister.phtml?alltv=1",
- N_("Shoutcast TV"), { NULL } },
- { "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u",
- N_("Freebox TV"), { "m3u-extvlcopt=1", NULL } },
+ const struct shout_item_t * p_children;
+};
+
+#define endItem( ) { NULL, NULL, { NULL }, NULL }
+#define item( title, url ) { url, title, { NULL }, NULL }
+#define itemWithOption( title, url, option ) { url, title, { option, NULL }, NULL }
+#define itemWithChildren( title, children ) { "vlc:skip", title, { NULL }, children }
+
+/* WARN: We support only two levels */
+
+static const struct shout_item_t p_frenchtv_canalplus[] = {
+ item( N_("Les Guignols"), "http://www.canalplus.fr/index.php?pid=1784" ),
+ endItem()
+};
+
+static const struct shout_item_t p_frenchtv[] = {
+ itemWithChildren( N_("Canal +"), p_frenchtv_canalplus ),
+ endItem()
+};
+
+static const struct shout_item_t p_items[] = {
+ item( N_("Shoutcast Radio"), "http/shout-winamp://www.shoutcast.com/sbin/newxml.phtml" ),
+ item( N_("Shoutcast TV"), "http/shout-winamp://www.shoutcast.com/sbin/newtvlister.phtml?alltv=1" ),
+ itemWithOption ( N_("Freebox TV"), "http://mafreebox.freebox.fr/freeboxtv/playlist.m3u", "m3u-extvlcopt=1" ),
+ itemWithChildren(N_("French TV"), p_frenchtv ),
+ endItem()
+};
+
+#undef endItem
+#undef item
+#undef itemWithOptions
+#undef itemWithChildren
+
+struct shout_category_t {
+ services_discovery_t * p_sd;
+ const char * psz_category;