annotate src/lastfm/lastfm.c @ 976:c1bda49a5039 trunk

[svn] - fix indentation
author nenolod
date Sun, 22 Apr 2007 17:23:29 -0700
parents 8bdd0d76a0ca
children 3513bc2fd738
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
1 /* Audacious
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
2 * Copyright (c) 2007 Cristi Magherusan
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
3 *
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
7 * (at your option) any later version.
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
8 *
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
12 * GNU General Public License for more details.
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
13 *
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
15 * along with this program; if not, write to the Free Software
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
17 */
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
18
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
19 #include <audacious/vfs.h>
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
20 #include <audacious/plugin.h>
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
21 #include <audacious/configdb.h>
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
22
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
23 #include <curl/curl.h>
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
24 #include <glib.h>
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
25
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
26
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
27 #define LASTFM_HANDSHAKE_URL "http://ws.audioscrobbler.com/radio/handshake.php?version=1.1.1&platform=linux&username=%s&passwordmd5=%s&debug=0&language=jp"
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
28 #define LASTFM_ADJUST_URL "http://ws.audioscrobbler.com/radio/adjust.php?session=%s&url=%s&debug=0"
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
29 #define LASTFM_CURL_TIMEOUT 5
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
30 //#define DEBUG 1
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
31
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
32 typedef struct
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
33 {
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
34 VFSFile *proxy_fd;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
35 gchar *lastfm_session_id;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
36 gchar *lastfm_mp3_stream_url;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
37 gchar *lastfm_station_name;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
38 int login_count;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
39 } LastFM;
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
40
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
41 LastFM *LastFMGlobalData;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
42 /*this keeps the login data in a global place
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
43 since we cannot login on every fopen call
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
44 if anyone has a better solution to this any help is welcome */
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
45
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
46 static size_t lastfm_store_res(void *ptr, size_t size, size_t nmemb, void *udata)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
47 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
48 GString *data = (GString *) udata;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
49 g_string_append_len(data, ptr, nmemb);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
50 return size * nmemb;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
51 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
52
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
53
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
54 static gboolean lastfm_login()
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
55 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
56 /*gets the session ID in lastfm_session_id and returns the URL to be played
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
57 read http://gabistapler.de/blog/index.php?/archives/268-Play-last.fm-streams-without-the-player.html for more info
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
58 */
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
59 // LastFM *LastFMData = g_new0(LastFM,1);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
60 gint status, i;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
61 gchar buf[4096], **split = NULL;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
62 GString *res = g_string_new(NULL);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
63 ConfigDb *cfgfile = NULL;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
64 char *username = NULL, *password = NULL;
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
65 CURL *curl;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
66 if ((cfgfile = bmp_cfg_db_open()) != NULL)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
67 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
68 bmp_cfg_db_get_string(cfgfile, "audioscrobbler", "username", &username);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
69 bmp_cfg_db_get_string(cfgfile, "audioscrobbler", "password", &password);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
70 //puts(username);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
71 //puts(password);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
72
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
73 g_free(cfgfile);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
74 }
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
75
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
76 if (username != NULL && password != NULL)
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
77 {
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
78
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
79 snprintf(buf, sizeof(buf), LASTFM_HANDSHAKE_URL, username, password);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
80 // g_free(password);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
81 // g_free(username);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
82 }
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
83 else
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
84 return FALSE;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
85
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
86 puts("preparing curl");
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
87 curl = curl_easy_init();
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
88 curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
89 curl_easy_setopt(curl, CURLOPT_USERAGENT, "Audacious");
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
90 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, lastfm_store_res);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
91 curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
92 curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
93 curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, LASTFM_CURL_TIMEOUT);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
94 curl_easy_setopt(curl, CURLOPT_URL, buf);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
95 curl_easy_setopt(curl, CURLOPT_WRITEDATA, res);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
96 status = curl_easy_perform(curl);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
97 curl_easy_cleanup(curl);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
98
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
99 puts("curl is done");
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
100 puts(buf);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
101 puts(res->str);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
102 if (status == CURLE_OK)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
103 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
104 split = g_strsplit(res->str, "\n", 7);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
105
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
106 for (i = 0; split && split[i]; i++)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
107 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
108 if (g_str_has_prefix(split[i], "session="))
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
109 LastFMGlobalData->lastfm_session_id = g_strndup(split[i] + 8, 32);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
110 else if (g_str_has_prefix(split[i], "stream_url="))
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
111 LastFMGlobalData->lastfm_mp3_stream_url = g_strdup(split[i] + 11);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
112 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
113 }
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
114 else
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
115 return FALSE;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
116
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
117 // printf("URL: '%s'\n",LastFMGlobalData->lastfm_mp3_stream_url);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
118 // printf("session_id: '%s'\n",LastFMGlobalData->lastfm_session_id);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
119
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
120 g_strfreev(split);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
121 g_string_erase(res, 0, -1);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
122 return (gboolean) TRUE;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
123 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
124
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
125 static gboolean lastfm_adjust(const gchar * url)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
126 {
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
127 LastFM *LastFMData = g_new0(LastFM, 1);
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
128
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
129 int status, i;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
130 gchar tmp[4096], **split = NULL;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
131 gboolean ret = FALSE;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
132 GString *res = g_string_new(NULL);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
133 CURL *curl;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
134 if (LastFMGlobalData->lastfm_session_id == NULL)
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
135 return FALSE;
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
136 snprintf(tmp, sizeof(tmp), LASTFM_ADJUST_URL, LastFMGlobalData->lastfm_session_id, url);
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
137 puts("test1");
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
138
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
139
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
140 curl = curl_easy_init();
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
141 curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
142 curl_easy_setopt(curl, CURLOPT_USERAGENT, "Audacious");
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
143 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, lastfm_store_res);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
144 curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
145 curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
146 curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, LASTFM_CURL_TIMEOUT);
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
147 curl_easy_setopt(curl, CURLOPT_URL, tmp);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
148 curl_easy_setopt(curl, CURLOPT_WRITEDATA, res);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
149 status = curl_easy_perform(curl);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
150 curl_easy_cleanup(curl);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
151
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
152
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
153 puts("Adjust received data:");
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
154 puts(res->str);
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
155
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
156 if (status == CURLE_OK)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
157 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
158 split = g_strsplit(res->str, "\n", 3);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
159
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
160 for (i = 0; split && split[i]; i++)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
161 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
162 if (g_str_has_prefix(split[i], "response=OK"))
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
163 ret = TRUE;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
164 if (g_str_has_prefix(split[i], "stationname="))
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
165 {
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
166 LastFMGlobalData->lastfm_station_name = g_strdup(split[i] + 12);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
167 puts("StationnName:");
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
168 puts(LastFMGlobalData->lastfm_station_name);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
169 }
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
170 }
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
171
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
172 g_strfreev(split);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
173 }
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
174 g_string_erase(res, 0, -1);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
175
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
176 return ret;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
177 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
178
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
179
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
180 VFSFile *lastfm_vfs_fopen_impl(const gchar * path, const gchar * mode)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
181 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
182 VFSFile *file;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
183 LastFM *handle;
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
184 file = g_new0(VFSFile, 1);
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
185 handle = g_new0(LastFM, 1);
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
186
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
187 puts("Starting fopen");
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
188
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
189 while ((LastFMGlobalData->lastfm_mp3_stream_url == NULL) && (LastFMGlobalData->login_count <= 3))
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
190 {
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
191 printf("Login try count: %d\n", LastFMGlobalData->login_count++);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
192 lastfm_login();
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
193 if (LastFMGlobalData->lastfm_mp3_stream_url == NULL)
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
194 sleep(5);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
195
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
196 }
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
197 handle->lastfm_mp3_stream_url = g_strdup(LastFMGlobalData->lastfm_mp3_stream_url);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
198 handle->lastfm_session_id = g_strdup(LastFMGlobalData->lastfm_session_id);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
199 handle->lastfm_station_name = g_strdup(LastFMGlobalData->lastfm_station_name);
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
200
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
201 if (lastfm_adjust(path))
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
202
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
203 printf("Tuning completed OK\n");
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
204 else
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
205 puts("Cannot tune to given channel");
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
206
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
207 handle->proxy_fd = vfs_fopen(handle->lastfm_mp3_stream_url, mode);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
208 file->handle = handle;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
209
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
210
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
211 puts("Returning from fopen");
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
212 return file;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
213 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
214
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
215 gint lastfm_vfs_fclose_impl(VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
216 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
217 gint ret = 0;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
218
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
219
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
220 if (file == NULL)
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
221 return -1;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
222
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
223 LastFM *handle = file->handle;
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
224 ret = vfs_fclose(handle->proxy_fd);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
225
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
226
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
227 return ret;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
228 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
229
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
230 size_t lastfm_vfs_fread_impl(gpointer ptr, size_t size, size_t nmemb, VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
231 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
232
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
233 LastFM *handle = file->handle;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
234 size_t ret = vfs_fread(ptr, size, nmemb, handle->proxy_fd);
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
235 // g_free(handle);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
236 return ret;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
237 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
238
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
239 size_t lastfm_vfs_fwrite_impl(gconstpointer ptr, size_t size, size_t nmemb, VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
240 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
241 return -1;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
242 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
243
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
244 gint lastfm_vfs_getc_impl(VFSFile * stream)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
245 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
246 LastFM *handle = stream->handle;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
247 return vfs_getc(handle->proxy_fd);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
248 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
249
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
250 gint lastfm_vfs_ungetc_impl(gint c, VFSFile * stream)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
251 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
252 LastFM *handle = stream->handle;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
253
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
254 return vfs_ungetc(c, handle->proxy_fd);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
255 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
256
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
257 gint lastfm_vfs_fseek_impl(VFSFile * file, glong offset, gint whence)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
258 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
259 return -1;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
260 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
261
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
262 void lastfm_vfs_rewind_impl(VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
263 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
264 return;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
265 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
266
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
267 glong lastfm_vfs_ftell_impl(VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
268 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
269 LastFM *handle = file->handle;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
270
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
271 return vfs_ftell(handle->proxy_fd);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
272 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
273
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
274 gboolean lastfm_vfs_feof_impl(VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
275 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
276 LastFM *handle = file->handle;
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
277
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
278 return vfs_feof(handle->proxy_fd);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
279 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
280
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
281 gint lastfm_vfs_truncate_impl(VFSFile * file, glong size)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
282 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
283 return -1;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
284 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
285
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
286 off_t lastfm_vfs_fsize_impl(VFSFile * file)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
287 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
288 return -1;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
289 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
290
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
291 gchar *lastfm_vfs_metadata_impl(VFSFile * file, const gchar * key)
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
292 {
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
293 LastFM *handle = file->handle;
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
294
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
295 if (!strcasecmp(key, "stream-name"))
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
296 return g_strdup(handle->lastfm_station_name);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
297
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
298 return NULL;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
299 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
300
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
301 VFSConstructor lastfm_const = {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
302 "lastfm://",
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
303 lastfm_vfs_fopen_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
304 lastfm_vfs_fclose_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
305 lastfm_vfs_fread_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
306 lastfm_vfs_fwrite_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
307 lastfm_vfs_getc_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
308 lastfm_vfs_ungetc_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
309 lastfm_vfs_fseek_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
310 lastfm_vfs_rewind_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
311 lastfm_vfs_ftell_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
312 lastfm_vfs_feof_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
313 lastfm_vfs_truncate_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
314 lastfm_vfs_fsize_impl,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
315 lastfm_vfs_metadata_impl
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
316 };
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
317
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
318 static void init(void)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
319 {
975
8bdd0d76a0ca [svn] New release by majeru.
chainsaw
parents: 972
diff changeset
320 LastFMGlobalData = g_new0(LastFM, 1);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
321 vfs_register_transport(&lastfm_const);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
322 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
323
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
324 static void cleanup(void)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
325 {
976
c1bda49a5039 [svn] - fix indentation
nenolod
parents: 975
diff changeset
326 g_free(LastFMGlobalData);
972
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
327 #if 0
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
328 vfs_unregister_transport(&default_const);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
329 vfs_unregister_transport(&file_const);
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
330 #endif
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
331 }
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
332
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
333 LowlevelPlugin llp_lastfm = {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
334 NULL,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
335 NULL,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
336 "lastfm:// URI Transport",
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
337 init,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
338 cleanup,
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
339 };
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
340
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
341 LowlevelPlugin *get_lplugin_info(void)
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
342 {
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
343 return &llp_lastfm;
cf7021ca4e7b [svn] Add lastfm:// transport, an abstract VFS class which derives from curl
nenolod
parents:
diff changeset
344 }