annotate src/streambrowser/bookmarks.c @ 2891:c27da2c06805

initial code for bookmarks
author Calin Crisan ccrisan@gmail.com
date Tue, 12 Aug 2008 23:49:32 +0200
parents
children 113454baecf8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2891
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
1 /*
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
2 * Audacious Streambrowser Plugin
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
3 *
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
4 * Copyright (c) 2008 Calin Crisan <ccrisan@gmail.com>
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
5 *
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
8 * the Free Software Foundation; under version 3 of the License.
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
9 *
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
13 * GNU General Public License for more details.
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
14 *
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
16 * along with this program. If not, see <http://www.gnu.org/licenses>.
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
17 */
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
18
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
19
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
20 #include <string.h>
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
21 #include <glib.h>
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
22 #include <audacious/plugin.h>
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
23
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
24 #include "streambrowser.h"
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
25 #include "bookmarks.h"
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
26
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
27
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
28 static bookmark_t *bookmarks;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
29 static int bookmarks_count;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
30
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
31 gboolean bookmarks_streaminfo_fetch(category_t *category, streaminfo_t *streaminfo)
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
32 {
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
33 }
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
34
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
35 gboolean bookmarks_category_fetch(streamdir_t *streamdir, category_t *category)
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
36 {
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
37 debug("bookmarks: filling category '%s'\n", category->name);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
38
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
39 /* free/remove any existing streaminfos in this category */
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
40 while (streaminfo_get_count(category) > 0)
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
41 streaminfo_remove(category, streaminfo_get_by_index(category, 0));
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
42
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
43 int i;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
44 /* find bookmarks that match this category */
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
45 for (i = 0; i < bookmarks_count; i++)
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
46 if (strcmp(bookmarks[i].streamdir_name, streamdir->name) == 0 &&
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
47 strcmp(bookmarks[i].category_name, category->name) == 0) {
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
48
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
49 debug("bookmarks: adding stream info for '%s/%d'\n", streamdir->name, category->name);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
50
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
51 streaminfo_t *streaminfo = streaminfo_new(bookmarks[i].name, bookmarks[i].playlist_url, bookmarks[i].url, "");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
52 streaminfo_add(category, streaminfo);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
53
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
54 debug("bookmarks: stream info added\n");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
55 }
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
56
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
57 return TRUE;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
58 }
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
59
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
60 streamdir_t* bookmarks_streamdir_fetch(bookmark_t *bms, int count)
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
61 {
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
62 bookmarks = bms;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
63 bookmarks_count = count;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
64
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
65 streamdir_t *streamdir = streamdir_new(BOOKMARKS_NAME);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
66
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
67 debug("bookmarks: creating streaming directory for bookmarks\n");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
68
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
69 category_t *category = category_new("Shoutcast");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
70 category_add(streamdir, category);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
71
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
72 category = category_new("Xiph");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
73 category_add(streamdir, category);
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
74
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
75 debug("bookmarks: streaming directory successfuly created\n");
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
76
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
77 return streamdir;
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
78 }
c27da2c06805 initial code for bookmarks
Calin Crisan ccrisan@gmail.com
parents:
diff changeset
79