Mercurial > audlegacy
annotate libaudacious/beepctrl.c @ 2044:7d8bb80e3a40 trunk
[svn] - bye bye dirbrowser
author | nenolod |
---|---|
date | Mon, 04 Dec 2006 01:30:01 -0800 |
parents | 0985452d1962 |
children | 53a3d5db6b58 |
rev | line source |
---|---|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1 /* Audacious |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
2 * Copyright (C) 2005-2007 Audacious team |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
3 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
4 * XMMS - Cross-platform multimedia player |
0 | 5 * Copyright (C) 1998-2003 Peter Alm, Mikael Alm, Olle Hallnas, |
6 * Thomas Nilsson and 4Front Technologies | |
7 * Copyright (C) 1999-2003 Haavard Kvaalen | |
8 * | |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
1459 | 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
0 | 22 */ |
23 | |
24 #ifdef HAVE_CONFIG_H | |
25 # include "config.h" | |
26 #endif | |
27 | |
28 #include <glib.h> | |
29 #include <sys/types.h> | |
30 #include <sys/stat.h> | |
31 #include <sys/socket.h> | |
32 #include <sys/un.h> | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
33 #include <arpa/inet.h> |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
34 #include <netdb.h> |
0 | 35 #include <errno.h> |
36 #include <stdio.h> | |
37 #include <stdlib.h> | |
38 #include <string.h> | |
39 #include "beepctrl.h" | |
40 #include "audacious/controlsocket.h" | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
41 #include "libaudacious/configdb.h" |
0 | 42 |
1583 | 43 #include <netdb.h> |
44 #include <netinet/in.h> | |
45 #include <unistd.h> | |
46 #include <grp.h> | |
47 #include <sys/time.h> | |
48 #include <sys/wait.h> | |
49 #include <sys/resource.h> | |
50 #include <sys/socket.h> | |
51 #include <fcntl.h> | |
52 #include <arpa/inet.h> | |
53 | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
54 /* overrides audacious_get_session_uri(). */ |
1438 | 55 gchar *audacious_session_uri = NULL; |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
56 gint audacious_session_type = 0; |
0 | 57 |
58 #ifdef HAVE_UNISTD_H | |
59 #include <unistd.h> | |
60 #endif | |
61 | |
62 static gpointer | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
63 remote_read_packet(gint fd) |
0 | 64 { |
65 gpointer data = NULL; | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
66 ServerPktHeader pkt_hdr = { 0, 0 }; |
1766
6cbb9360e8e2
[svn] - always zero-out stack variables, as stack memory may be dirty on x86 and friends
nenolod
parents:
1583
diff
changeset
|
67 |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
68 if (read(fd, &pkt_hdr, sizeof(ServerPktHeader)) == |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
69 sizeof(ServerPktHeader)) |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
70 { |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
71 if (pkt_hdr.version == XMMS_PROTOCOL_VERSION && |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
72 pkt_hdr.data_length > 0) |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
73 { |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
74 size_t data_length = pkt_hdr.data_length; |
0 | 75 data = g_malloc0(data_length); |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
76 if ((size_t)read(fd, data, data_length) < data_length) |
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
77 { |
0 | 78 g_free(data); |
79 data = NULL; | |
80 } | |
81 } | |
82 } | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
83 |
0 | 84 return data; |
85 } | |
86 | |
87 static void | |
88 remote_read_ack(gint fd) | |
89 { | |
90 gpointer data; | |
91 | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
92 data = remote_read_packet(fd); |
0 | 93 if (data) |
94 g_free(data); | |
95 | |
96 } | |
97 | |
98 static void | |
99 remote_send_packet(gint fd, guint32 command, gpointer data, | |
100 guint32 data_length) | |
101 { | |
102 ClientPktHeader pkt_hdr; | |
103 | |
1766
6cbb9360e8e2
[svn] - always zero-out stack variables, as stack memory may be dirty on x86 and friends
nenolod
parents:
1583
diff
changeset
|
104 memset(&pkt_hdr, '\0', sizeof(ClientPktHeader)); |
6cbb9360e8e2
[svn] - always zero-out stack variables, as stack memory may be dirty on x86 and friends
nenolod
parents:
1583
diff
changeset
|
105 |
0 | 106 pkt_hdr.version = XMMS_PROTOCOL_VERSION; |
107 pkt_hdr.command = command; | |
108 pkt_hdr.data_length = data_length; | |
1582
d7af2755a397
[svn] - gcc 4.1.0, 4.1.1, 4.1.2 tree optimization workaround:
nenolod
parents:
1581
diff
changeset
|
109 if ((size_t)write(fd, &pkt_hdr, sizeof(ClientPktHeader)) < sizeof(pkt_hdr)) |
0 | 110 return; |
111 if (data_length && data) | |
1582
d7af2755a397
[svn] - gcc 4.1.0, 4.1.1, 4.1.2 tree optimization workaround:
nenolod
parents:
1581
diff
changeset
|
112 write(fd, data, data_length); |
0 | 113 } |
114 | |
115 static void | |
116 remote_send_guint32(gint session, guint32 cmd, guint32 val) | |
117 { | |
118 gint fd; | |
119 | |
120 if ((fd = xmms_connect_to_session(session)) == -1) | |
121 return; | |
122 remote_send_packet(fd, cmd, &val, sizeof(guint32)); | |
123 remote_read_ack(fd); | |
124 close(fd); | |
125 } | |
126 | |
127 static void | |
128 remote_send_boolean(gint session, guint32 cmd, gboolean val) | |
129 { | |
130 gint fd; | |
131 | |
132 if ((fd = xmms_connect_to_session(session)) == -1) | |
133 return; | |
134 remote_send_packet(fd, cmd, &val, sizeof(gboolean)); | |
135 remote_read_ack(fd); | |
136 close(fd); | |
137 } | |
138 | |
139 static void | |
140 remote_send_gfloat(gint session, guint32 cmd, gfloat value) | |
141 { | |
142 gint fd; | |
143 | |
144 if ((fd = xmms_connect_to_session(session)) == -1) | |
145 return; | |
146 remote_send_packet(fd, cmd, &value, sizeof(gfloat)); | |
147 remote_read_ack(fd); | |
148 close(fd); | |
149 } | |
150 | |
151 static void | |
152 remote_send_string(gint session, guint32 cmd, gchar * string) | |
153 { | |
154 gint fd; | |
155 | |
156 if ((fd = xmms_connect_to_session(session)) == -1) | |
157 return; | |
158 remote_send_packet(fd, cmd, string, string ? strlen(string) + 1 : 0); | |
159 remote_read_ack(fd); | |
160 close(fd); | |
161 } | |
162 | |
163 static gboolean | |
164 remote_cmd(gint session, guint32 cmd) | |
165 { | |
166 gint fd; | |
167 | |
168 if ((fd = xmms_connect_to_session(session)) == -1) | |
169 return FALSE; | |
170 remote_send_packet(fd, cmd, NULL, 0); | |
171 remote_read_ack(fd); | |
172 close(fd); | |
173 | |
174 return TRUE; | |
175 } | |
176 | |
177 static gboolean | |
178 remote_get_gboolean(gint session, gint cmd) | |
179 { | |
180 gboolean ret = FALSE; | |
181 gpointer data; | |
182 gint fd; | |
183 | |
184 if ((fd = xmms_connect_to_session(session)) == -1) | |
185 return ret; | |
186 remote_send_packet(fd, cmd, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
187 data = remote_read_packet(fd); |
0 | 188 if (data) { |
189 ret = *((gboolean *) data); | |
190 g_free(data); | |
191 } | |
192 remote_read_ack(fd); | |
193 close(fd); | |
194 | |
195 return ret; | |
196 } | |
197 | |
198 static guint32 | |
199 remote_get_gint(gint session, gint cmd) | |
200 { | |
201 gpointer data; | |
202 gint fd, ret = 0; | |
203 | |
204 if ((fd = xmms_connect_to_session(session)) == -1) | |
205 return ret; | |
206 remote_send_packet(fd, cmd, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
207 data = remote_read_packet(fd); |
0 | 208 if (data) { |
209 ret = *((gint *) data); | |
210 g_free(data); | |
211 } | |
212 remote_read_ack(fd); | |
213 close(fd); | |
214 return ret; | |
215 } | |
216 | |
217 static gfloat | |
218 remote_get_gfloat(gint session, gint cmd) | |
219 { | |
220 gpointer data; | |
221 gint fd; | |
222 gfloat ret = 0.0; | |
223 | |
224 if ((fd = xmms_connect_to_session(session)) == -1) | |
225 return ret; | |
226 remote_send_packet(fd, cmd, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
227 data = remote_read_packet(fd); |
0 | 228 if (data) { |
229 ret = *((gfloat *) data); | |
230 g_free(data); | |
231 } | |
232 remote_read_ack(fd); | |
233 close(fd); | |
234 return ret; | |
235 } | |
236 | |
237 gchar * | |
238 remote_get_string(gint session, gint cmd) | |
239 { | |
240 gpointer data; | |
241 gint fd; | |
242 | |
243 if ((fd = xmms_connect_to_session(session)) == -1) | |
244 return NULL; | |
245 remote_send_packet(fd, cmd, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
246 data = remote_read_packet(fd); |
0 | 247 remote_read_ack(fd); |
248 close(fd); | |
249 return data; | |
250 } | |
251 | |
252 gchar * | |
253 remote_get_string_pos(gint session, gint cmd, guint32 pos) | |
254 { | |
255 gpointer data; | |
256 gint fd; | |
257 | |
258 if ((fd = xmms_connect_to_session(session)) == -1) | |
259 return NULL; | |
260 remote_send_packet(fd, cmd, &pos, sizeof(guint32)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
261 data = remote_read_packet(fd); |
0 | 262 remote_read_ack(fd); |
263 close(fd); | |
264 return data; | |
265 } | |
266 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
267 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
268 * audacious_set_session_uri: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
269 * @uri: The session URI to set the client API to. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
270 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
271 * Sets the Session URI where Audacious can be reached at. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
272 **/ |
1437 | 273 void |
274 audacious_set_session_uri(gchar *uri) | |
275 { | |
1438 | 276 audacious_session_uri = uri; |
1437 | 277 } |
278 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
279 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
280 * audacious_get_session_uri: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
281 * @session: Legacy XMMS session id (usually 0). |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
282 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
283 * Attempts to determine what the Session URI may be. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
284 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
285 * Return value: A session URI. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
286 **/ |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
287 gchar * |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
288 audacious_get_session_uri(gint session) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
289 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
290 ConfigDb *db; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
291 gchar *value = NULL; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
292 |
1438 | 293 if (audacious_session_uri != NULL) |
294 { | |
1869
b7cac9c9c4a1
[svn] - audacious_determine_session_type() would crash if audacious_session_uri had value.
yaz
parents:
1766
diff
changeset
|
295 return g_strdup(audacious_session_uri); |
1438 | 296 } |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
297 |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
298 if (audacious_session_type != AUDACIOUS_TYPE_UNIX) |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
299 { |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
300 db = bmp_cfg_db_open(); |
1444
c04ce16b2b57
[svn] - libaudacious/beepctrl.c: optimise further and be more paranoid about leaks
nenolod
parents:
1442
diff
changeset
|
301 |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
302 bmp_cfg_db_get_string(db, NULL, "listen_uri_base", &value); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
303 |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
304 bmp_cfg_db_close(db); |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
305 } |
1442 | 306 |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
307 if (value == NULL) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
308 return g_strdup_printf("unix://localhost/%s/%s_%s.%d", g_get_tmp_dir(), |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
309 CTRLSOCKET_NAME, g_get_user_name(), session); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
310 |
1444
c04ce16b2b57
[svn] - libaudacious/beepctrl.c: optimise further and be more paranoid about leaks
nenolod
parents:
1442
diff
changeset
|
311 audacious_session_uri = value; |
c04ce16b2b57
[svn] - libaudacious/beepctrl.c: optimise further and be more paranoid about leaks
nenolod
parents:
1442
diff
changeset
|
312 |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
313 return value; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
314 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
315 |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
316 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
317 * audacious_set_session_type: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
318 * @type: The type to set the session type to. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
319 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
320 * Sets the type of session used by the audacious server. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
321 **/ |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
322 void |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
323 audacious_set_session_type(gint type) |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
324 { |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
325 audacious_session_type = type; |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
326 } |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
327 |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
328 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
329 * audacious_determine_session_type: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
330 * @session: Legacy XMMS session id (usually 0). |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
331 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
332 * Attempts to determine what the session type may be. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
333 **/ |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
334 gint |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
335 audacious_determine_session_type(gint session) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
336 { |
1869
b7cac9c9c4a1
[svn] - audacious_determine_session_type() would crash if audacious_session_uri had value.
yaz
parents:
1766
diff
changeset
|
337 gchar *uri = NULL; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
338 |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
339 if (audacious_session_type != 0) |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
340 { |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
341 return audacious_session_type; |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
342 } |
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
343 |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
344 uri = audacious_get_session_uri(session); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
345 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
346 if (!g_strncasecmp(uri, "tcp://", 6)) |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
347 audacious_session_type = AUDACIOUS_TYPE_TCP; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
348 else |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
349 audacious_session_type = AUDACIOUS_TYPE_UNIX; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
350 |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
351 if (audacious_session_type == 0) |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
352 audacious_session_type = AUDACIOUS_TYPE_UNIX; |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
353 |
1500 | 354 /* memory leak! */ |
355 g_free(uri); | |
356 | |
1456
6fe7ba6e5489
[svn] - Don't poll the config database if not using TCP sockets.
nhjm449
parents:
1450
diff
changeset
|
357 return audacious_session_type; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
358 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
359 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
360 /* tcp://192.168.100.1:5900/zyzychynxi389xvmfewqaxznvnw */ |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
361 |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
362 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
363 * audacious_decode_tcp_uri: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
364 * @session: The legacy XMMS session id (usually 0). |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
365 * @in: A TCP:// Session URI to decode. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
366 * @host: Pointer to a host buffer. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
367 * @port: Pointer to the TCP port. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
368 * @key: Pointer to a security key buffer. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
369 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
370 * Decodes a tcp:// session URI. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
371 **/ |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
372 void |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
373 audacious_decode_tcp_uri(gint session, gchar *in, gchar **host, gint *port, gchar **key) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
374 { |
1439 | 375 static gchar *workbuf, *keybuf; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
376 gint iport; |
1439 | 377 gchar *tmp = g_strdup(in); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
378 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
379 /* split out the host/port and key */ |
1439 | 380 workbuf = tmp; |
1448
3b1c464cbbb0
[svn] Seems safer to me to free this way, assuming I'm not misreading.
nemo
parents:
1447
diff
changeset
|
381 workbuf += 6; |
1439 | 382 |
1448
3b1c464cbbb0
[svn] Seems safer to me to free this way, assuming I'm not misreading.
nemo
parents:
1447
diff
changeset
|
383 keybuf = strchr(workbuf, '/'); |
1439 | 384 *keybuf++ = '\0'; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
385 |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
386 *key = g_strdup(keybuf); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
387 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
388 if (strchr(workbuf, ':') == NULL) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
389 { |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
390 *host = g_strdup(workbuf); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
391 *port = 37370 + session; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
392 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
393 else |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
394 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
395 gchar *hostbuf = NULL; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
396 sscanf(workbuf, "%s:%d", hostbuf, &iport); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
397 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
398 *port = iport + session; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
399 } |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
400 |
1447 | 401 g_free(tmp); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
402 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
403 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
404 /* unix://localhost/tmp/audacious_nenolod.0 */ |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
405 |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
406 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
407 * audacious_decode_unix_uri: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
408 * @session: The legacy XMMS session id (usually 0). |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
409 * @in: A UNIX:// Session URI to decode. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
410 * @key: Pointer to a UNIX path buffer. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
411 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
412 * Decodes a unix:// session URI. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
413 **/ |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
414 void |
1439 | 415 audacious_decode_unix_uri(gint session, gchar *in, gchar **key) |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
416 { |
1439 | 417 static gchar *workbuf, *keybuf; |
418 gchar *tmp = g_strdup(in); | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
419 |
1439 | 420 /* split out the host/port and key */ |
421 workbuf = tmp; | |
1448
3b1c464cbbb0
[svn] Seems safer to me to free this way, assuming I'm not misreading.
nemo
parents:
1447
diff
changeset
|
422 workbuf += 7; |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
423 |
1448
3b1c464cbbb0
[svn] Seems safer to me to free this way, assuming I'm not misreading.
nemo
parents:
1447
diff
changeset
|
424 keybuf = strchr(workbuf, '/'); |
1439 | 425 *keybuf++ = '\0'; |
426 | |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
427 *key = g_strdup(keybuf); |
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
428 |
1447 | 429 g_free(tmp); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
430 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
431 |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
432 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
433 * xmms_connect_to_session: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
434 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
435 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
436 * Connects to an audacious server. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
437 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
438 * Return value: an FD on success, otherwise -1. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
439 **/ |
0 | 440 gint |
441 xmms_connect_to_session(gint session) | |
442 { | |
443 gint fd; | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
444 gint type = audacious_determine_session_type(session); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
445 gchar *uri = audacious_get_session_uri(session); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
446 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
447 if (type == AUDACIOUS_TYPE_UNIX) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
448 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
449 if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) != -1) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
450 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
451 uid_t stored_uid, euid; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
452 struct sockaddr_un saddr; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
453 gchar *path; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
454 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
455 saddr.sun_family = AF_UNIX; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
456 stored_uid = getuid(); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
457 euid = geteuid(); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
458 setuid(euid); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
459 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
460 audacious_decode_unix_uri(session, uri, &path); |
0 | 461 |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
462 g_strlcpy(saddr.sun_path, path, 108); |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
463 g_free(path); |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
464 setreuid(stored_uid, euid); |
1501 | 465 |
466 g_free(uri); | |
467 | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
468 if (connect(fd, (struct sockaddr *) &saddr, sizeof(saddr)) != -1) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
469 return fd; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
470 } |
0 | 471 } |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
472 else |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
473 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
474 if ((fd = socket(AF_INET, SOCK_STREAM, 0)) != -1) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
475 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
476 struct hostent *hp; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
477 struct sockaddr_in saddr; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
478 gchar *host, *key; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
479 gint port; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
480 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
481 audacious_decode_tcp_uri(session, uri, &host, &port, &key); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
482 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
483 /* resolve it */ |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
484 if ((hp = gethostbyname(host)) == NULL) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
485 { |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
486 close(fd); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
487 return -1; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
488 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
489 |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
490 memset(&saddr, '\0', sizeof(saddr)); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
491 saddr.sin_family = AF_INET; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
492 saddr.sin_port = htons(port); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
493 memcpy(&saddr.sin_addr, hp->h_addr, hp->h_length); |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
494 |
1441
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
495 g_free(host); |
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
496 g_free(key); |
ed80e946f30b
[svn] - ok, don't eat up all the system ram (I forgot to g_free())
nenolod
parents:
1439
diff
changeset
|
497 |
1501 | 498 g_free(uri); |
499 | |
1436
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
500 if (connect(fd, (struct sockaddr *) &saddr, sizeof(saddr)) != -1) |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
501 return fd; |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
502 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
503 } |
c70b68bcf527
[svn] - add framework for later handling tcp:// connections
nenolod
parents:
984
diff
changeset
|
504 |
0 | 505 close(fd); |
506 return -1; | |
507 } | |
508 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
509 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
510 * xmms_remote_playlist: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
511 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
512 * @list: A list of URIs to play. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
513 * @num: Number of URIs to play. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
514 * @enqueue: Whether or not the new playlist should be added on, or replace the current playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
515 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
516 * Sends a playlist to audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
517 **/ |
0 | 518 void |
519 xmms_remote_playlist(gint session, gchar ** list, gint num, gboolean enqueue) | |
520 { | |
521 gint fd, i; | |
522 gchar *data, *ptr; | |
523 gint data_length; | |
524 guint32 len; | |
525 | |
526 g_return_if_fail(list != NULL); | |
527 g_return_if_fail(num > 0); | |
528 | |
529 if (!enqueue) | |
530 xmms_remote_playlist_clear(session); | |
531 | |
532 if ((fd = xmms_connect_to_session(session)) == -1) | |
533 return; | |
534 | |
535 for (i = 0, data_length = 0; i < num; i++) | |
536 data_length += (((strlen(list[i]) + 1) + 3) / 4) * 4 + 4; | |
537 if (data_length) { | |
538 data_length += 4; | |
539 data = g_malloc(data_length); | |
540 for (i = 0, ptr = data; i < num; i++) { | |
541 len = strlen(list[i]) + 1; | |
542 *((guint32 *) ptr) = len; | |
543 ptr += 4; | |
544 memcpy(ptr, list[i], len); | |
545 ptr += ((len + 3) / 4) * 4; | |
546 } | |
547 *((guint32 *) ptr) = 0; | |
548 remote_send_packet(fd, CMD_PLAYLIST_ADD, data, data_length); | |
549 remote_read_ack(fd); | |
550 close(fd); | |
551 g_free(data); | |
552 } | |
553 | |
554 if (!enqueue) | |
555 xmms_remote_play(session); | |
556 } | |
557 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
558 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
559 * xmms_remote_get_version: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
560 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
561 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
562 * Queries audacious for it's protocol version. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
563 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
564 * Return value: The protocol version used by Audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
565 **/ |
0 | 566 gint |
567 xmms_remote_get_version(gint session) | |
568 { | |
569 return remote_get_gint(session, CMD_GET_VERSION); | |
570 } | |
571 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
572 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
573 * xmms_remote_play_files: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
574 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
575 * @list: A GList of URIs to play. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
576 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
577 * Sends a list of URIs to Audacious to play. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
578 **/ |
0 | 579 void |
580 xmms_remote_play_files(gint session, GList * list) | |
581 { | |
582 g_return_if_fail(list != NULL); | |
583 | |
584 xmms_remote_playlist_clear(session); | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
585 xmms_remote_playlist_add(session, list); |
0 | 586 xmms_remote_play(session); |
587 } | |
588 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
589 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
590 * xmms_remote_playlist_add: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
591 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
592 * @list: A GList of URIs to add to the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
593 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
594 * Sends a list of URIs to Audacious to add to the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
595 **/ |
0 | 596 void |
597 xmms_remote_playlist_add(gint session, GList * list) | |
598 { | |
599 gchar **str_list; | |
600 GList *node; | |
601 gint i, num; | |
602 | |
603 g_return_if_fail(list != NULL); | |
604 | |
605 num = g_list_length(list); | |
606 str_list = g_malloc0(num * sizeof(gchar *)); | |
607 for (i = 0, node = list; i < num && node; i++, node = g_list_next(node)) | |
608 str_list[i] = node->data; | |
609 | |
610 xmms_remote_playlist(session, str_list, num, TRUE); | |
611 g_free(str_list); | |
612 } | |
613 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
614 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
615 * xmms_remote_playlist_delete: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
616 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
617 * @pos: The playlist position to delete. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
618 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
619 * Deletes a playlist entry. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
620 **/ |
0 | 621 void |
622 xmms_remote_playlist_delete(gint session, gint pos) | |
623 { | |
624 remote_send_guint32(session, CMD_PLAYLIST_DELETE, pos); | |
625 } | |
626 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
627 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
628 * xmms_remote_play: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
629 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
630 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
631 * Tells audacious to begin playback. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
632 **/ |
0 | 633 void |
634 xmms_remote_play(gint session) | |
635 { | |
636 remote_cmd(session, CMD_PLAY); | |
637 } | |
638 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
639 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
640 * xmms_remote_pause: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
641 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
642 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
643 * Tells audacious to pause. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
644 **/ |
0 | 645 void |
646 xmms_remote_pause(gint session) | |
647 { | |
648 remote_cmd(session, CMD_PAUSE); | |
649 } | |
650 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
651 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
652 * xmms_remote_stop: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
653 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
654 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
655 * Tells audacious to stop. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
656 **/ |
0 | 657 void |
658 xmms_remote_stop(gint session) | |
659 { | |
660 remote_cmd(session, CMD_STOP); | |
661 } | |
662 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
663 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
664 * xmms_remote_play_pause: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
665 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
666 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
667 * Tells audacious to either play or pause. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
668 **/ |
0 | 669 void |
670 xmms_remote_play_pause(gint session) | |
671 { | |
672 remote_cmd(session, CMD_PLAY_PAUSE); | |
673 } | |
674 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
675 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
676 * xmms_remote_is_playing: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
677 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
678 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
679 * Queries audacious about whether it is playing or not. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
680 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
681 * Return value: TRUE if playing, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
682 **/ |
0 | 683 gboolean |
684 xmms_remote_is_playing(gint session) | |
685 { | |
686 return remote_get_gboolean(session, CMD_IS_PLAYING); | |
687 } | |
688 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
689 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
690 * xmms_remote_is_paused: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
691 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
692 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
693 * Queries audacious about whether it is paused or not. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
694 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
695 * Return value: TRUE if playing, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
696 **/ |
0 | 697 gboolean |
698 xmms_remote_is_paused(gint session) | |
699 { | |
700 return remote_get_gboolean(session, CMD_IS_PAUSED); | |
701 } | |
702 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
703 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
704 * xmms_remote_get_playlist_pos: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
705 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
706 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
707 * Queries audacious about the current playlist position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
708 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
709 * Return value: The current playlist position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
710 **/ |
0 | 711 gint |
712 xmms_remote_get_playlist_pos(gint session) | |
713 { | |
714 return remote_get_gint(session, CMD_GET_PLAYLIST_POS); | |
715 } | |
716 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
717 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
718 * xmms_remote_set_playlist_pos: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
719 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
720 * @pos: Playlist position to jump to. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
721 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
722 * Tells audacious to jump to a different playlist position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
723 **/ |
0 | 724 void |
725 xmms_remote_set_playlist_pos(gint session, gint pos) | |
726 { | |
727 remote_send_guint32(session, CMD_SET_PLAYLIST_POS, pos); | |
728 } | |
729 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
730 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
731 * xmms_remote_get_playlist_length: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
732 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
733 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
734 * Queries audacious about the current playlist length. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
735 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
736 * Return value: The amount of entries in the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
737 **/ |
0 | 738 gint |
739 xmms_remote_get_playlist_length(gint session) | |
740 { | |
741 return remote_get_gint(session, CMD_GET_PLAYLIST_LENGTH); | |
742 } | |
743 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
744 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
745 * xmms_remote_playlist_clear: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
746 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
747 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
748 * Clears the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
749 **/ |
0 | 750 void |
751 xmms_remote_playlist_clear(gint session) | |
752 { | |
753 remote_cmd(session, CMD_PLAYLIST_CLEAR); | |
754 } | |
755 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
756 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
757 * xmms_remote_get_output_time: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
758 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
759 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
760 * Queries audacious about the current output position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
761 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
762 * Return value: The current output position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
763 **/ |
0 | 764 gint |
765 xmms_remote_get_output_time(gint session) | |
766 { | |
767 return remote_get_gint(session, CMD_GET_OUTPUT_TIME); | |
768 } | |
769 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
770 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
771 * xmms_remote_jump_to_time: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
772 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
773 * @pos: The time (in milliseconds) to jump to. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
774 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
775 * Tells audacious to seek to a new time position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
776 **/ |
0 | 777 void |
778 xmms_remote_jump_to_time(gint session, gint pos) | |
779 { | |
780 remote_send_guint32(session, CMD_JUMP_TO_TIME, pos); | |
781 } | |
782 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
783 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
784 * xmms_remote_get_volume: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
785 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
786 * @vl: Pointer to integer containing the left channel's volume. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
787 * @vr: Pointer to integer containing the right channel's volume. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
788 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
789 * Queries audacious about the current volume. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
790 **/ |
0 | 791 void |
792 xmms_remote_get_volume(gint session, gint * vl, gint * vr) | |
793 { | |
794 gint fd; | |
795 gpointer data; | |
796 | |
797 if ((fd = xmms_connect_to_session(session)) == -1) | |
798 return; | |
799 | |
800 remote_send_packet(fd, CMD_GET_VOLUME, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
801 data = remote_read_packet(fd); |
0 | 802 if (data) { |
803 *vl = ((guint32 *) data)[0]; | |
804 *vr = ((guint32 *) data)[1]; | |
805 g_free(data); | |
806 } | |
807 remote_read_ack(fd); | |
808 close(fd); | |
809 } | |
810 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
811 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
812 * xmms_remote_get_main_volume: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
813 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
814 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
815 * Queries audacious about the current volume. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
816 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
817 * Return value: The current volume. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
818 **/ |
0 | 819 gint |
820 xmms_remote_get_main_volume(gint session) | |
821 { | |
822 gint vl, vr; | |
823 | |
824 xmms_remote_get_volume(session, &vl, &vr); | |
825 | |
826 return (vl > vr) ? vl : vr; | |
827 } | |
828 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
829 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
830 * xmms_remote_get_balance: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
831 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
832 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
833 * Queries audacious about the current balance. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
834 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
835 * Return value: The current balance. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
836 **/ |
0 | 837 gint |
838 xmms_remote_get_balance(gint session) | |
839 { | |
840 return remote_get_gint(session, CMD_GET_BALANCE); | |
841 } | |
842 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
843 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
844 * xmms_remote_set_volume: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
845 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
846 * @vl: The volume for the left channel. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
847 * @vr: The volume for the right channel. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
848 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
849 * Sets the volume for the left and right channels in Audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
850 **/ |
0 | 851 void |
852 xmms_remote_set_volume(gint session, gint vl, gint vr) | |
853 { | |
854 gint fd; | |
855 guint32 v[2]; | |
856 | |
857 if (vl < 0) | |
858 vl = 0; | |
859 if (vl > 100) | |
860 vl = 100; | |
861 if (vr < 0) | |
862 vr = 0; | |
863 if (vr > 100) | |
864 vr = 100; | |
865 | |
866 if ((fd = xmms_connect_to_session(session)) == -1) | |
867 return; | |
868 v[0] = vl; | |
869 v[1] = vr; | |
870 remote_send_packet(fd, CMD_SET_VOLUME, v, 2 * sizeof(guint32)); | |
871 remote_read_ack(fd); | |
872 close(fd); | |
873 } | |
874 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
875 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
876 * xmms_remote_set_main_volume: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
877 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
878 * @v: The volume to set. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
879 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
880 * Sets the volume in Audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
881 **/ |
0 | 882 void |
883 xmms_remote_set_main_volume(gint session, gint v) | |
884 { | |
885 gint b, vl, vr; | |
886 | |
887 b = xmms_remote_get_balance(session); | |
888 | |
889 if (b < 0) { | |
890 vl = v; | |
891 vr = (v * (100 - abs(b))) / 100; | |
892 } | |
893 else if (b > 0) { | |
894 vl = (v * (100 - b)) / 100; | |
895 vr = v; | |
896 } | |
897 else | |
898 vl = vr = v; | |
899 xmms_remote_set_volume(session, vl, vr); | |
900 } | |
901 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
902 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
903 * xmms_remote_set_balance: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
904 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
905 * @b: The balance to set. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
906 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
907 * Sets the balance in Audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
908 **/ |
0 | 909 void |
910 xmms_remote_set_balance(gint session, gint b) | |
911 { | |
912 gint v, vl, vr; | |
913 | |
914 if (b < -100) | |
915 b = -100; | |
916 if (b > 100) | |
917 b = 100; | |
918 | |
919 v = xmms_remote_get_main_volume(session); | |
920 | |
921 if (b < 0) { | |
922 vl = v; | |
923 vr = (v * (100 - abs(b))) / 100; | |
924 } | |
925 else if (b > 0) { | |
926 vl = (v * (100 - b)) / 100; | |
927 vr = v; | |
928 } | |
929 else | |
930 vl = vr = v; | |
931 xmms_remote_set_volume(session, vl, vr); | |
932 } | |
933 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
934 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
935 * xmms_remote_get_skin: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
936 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
937 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
938 * Queries Audacious about it's skin. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
939 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
940 * Return value: A path to the currently selected skin. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
941 **/ |
0 | 942 gchar * |
943 xmms_remote_get_skin(gint session) | |
944 { | |
945 return remote_get_string(session, CMD_GET_SKIN); | |
946 } | |
947 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
948 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
949 * xmms_remote_set_skin: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
950 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
951 * @skinfile: Path to a skinfile to use with Audacious. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
952 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
953 * Tells audacious to start using the skinfile provided. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
954 **/ |
0 | 955 void |
956 xmms_remote_set_skin(gint session, gchar * skinfile) | |
957 { | |
958 remote_send_string(session, CMD_SET_SKIN, skinfile); | |
959 } | |
960 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
961 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
962 * xmms_remote_get_playlist_file: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
963 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
964 * @pos: The playlist position to query for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
965 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
966 * Queries Audacious about a playlist entry's file. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
967 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
968 * Return value: A path to the file in the playlist at %pos position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
969 **/ |
0 | 970 gchar * |
971 xmms_remote_get_playlist_file(gint session, gint pos) | |
972 { | |
973 return remote_get_string_pos(session, CMD_GET_PLAYLIST_FILE, pos); | |
974 } | |
975 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
976 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
977 * xmms_remote_get_playlist_title: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
978 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
979 * @pos: The playlist position to query for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
980 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
981 * Queries Audacious about a playlist entry's title. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
982 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
983 * Return value: The title for the entry in the playlist at %pos position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
984 **/ |
0 | 985 gchar * |
986 xmms_remote_get_playlist_title(gint session, gint pos) | |
987 { | |
988 return remote_get_string_pos(session, CMD_GET_PLAYLIST_TITLE, pos); | |
989 } | |
990 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
991 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
992 * xmms_remote_get_playlist_time: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
993 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
994 * @pos: The playlist position to query for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
995 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
996 * Queries Audacious about a playlist entry's length. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
997 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
998 * Return value: The length of the entry in the playlist at %pos position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
999 **/ |
0 | 1000 gint |
1001 xmms_remote_get_playlist_time(gint session, gint pos) | |
1002 { | |
1003 gpointer data; | |
1004 gint fd, ret = 0; | |
1005 guint32 p = pos; | |
1006 | |
1007 if ((fd = xmms_connect_to_session(session)) == -1) | |
1008 return ret; | |
1009 remote_send_packet(fd, CMD_GET_PLAYLIST_TIME, &p, sizeof(guint32)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1010 data = remote_read_packet(fd); |
0 | 1011 if (data) { |
1012 ret = *((gint *) data); | |
1013 g_free(data); | |
1014 } | |
1015 remote_read_ack(fd); | |
1016 close(fd); | |
1017 return ret; | |
1018 } | |
1019 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1020 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1021 * xmms_remote_get_info: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1022 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1023 * @rate: Pointer to an integer containing the bitrate. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1024 * @freq: Pointer to an integer containing the frequency. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1025 * @nch: Pointer to an integer containing the number of channels. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1026 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1027 * Queries Audacious about the current audio format. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1028 **/ |
0 | 1029 void |
1030 xmms_remote_get_info(gint session, gint * rate, gint * freq, gint * nch) | |
1031 { | |
1032 gint fd; | |
1033 gpointer data; | |
1034 | |
1035 if ((fd = xmms_connect_to_session(session)) == -1) | |
1036 return; | |
1037 remote_send_packet(fd, CMD_GET_INFO, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1038 data = remote_read_packet(fd); |
0 | 1039 if (data) { |
1040 *rate = ((guint32 *) data)[0]; | |
1041 *freq = ((guint32 *) data)[1]; | |
1042 *nch = ((guint32 *) data)[2]; | |
1043 g_free(data); | |
1044 } | |
1045 remote_read_ack(fd); | |
1046 close(fd); | |
1047 } | |
1048 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1049 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1050 * xmms_remote_get_eq_data: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1051 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1052 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1053 * Not implemented, present for compatibility with libxmms API. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1054 **/ |
0 | 1055 void |
1056 xmms_remote_get_eq_data(gint session) | |
1057 { | |
1058 /* Obsolete */ | |
1059 } | |
1060 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1061 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1062 * xmms_remote_set_eq_data: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1063 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1064 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1065 * Not implemented, present for compatibility with libxmms API. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1066 **/ |
0 | 1067 void |
1068 xmms_remote_set_eq_data(gint session) | |
1069 { | |
1070 /* Obsolete */ | |
1071 } | |
1072 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1073 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1074 * xmms_remote_pl_win_toggle: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1075 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1076 * @show: Whether or not to show the playlist window. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1077 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1078 * Toggles the playlist window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1079 **/ |
0 | 1080 void |
1081 xmms_remote_pl_win_toggle(gint session, gboolean show) | |
1082 { | |
1083 remote_send_boolean(session, CMD_PL_WIN_TOGGLE, show); | |
1084 } | |
1085 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1086 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1087 * xmms_remote_eq_win_toggle: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1088 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1089 * @show: Whether or not to show the equalizer window. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1090 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1091 * Toggles the equalizer window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1092 **/ |
0 | 1093 void |
1094 xmms_remote_eq_win_toggle(gint session, gboolean show) | |
1095 { | |
1096 remote_send_boolean(session, CMD_EQ_WIN_TOGGLE, show); | |
1097 } | |
1098 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1099 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1100 * xmms_remote_main_win_toggle: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1101 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1102 * @show: Whether or not to show the main window. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1103 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1104 * Toggles the main window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1105 **/ |
0 | 1106 void |
1107 xmms_remote_main_win_toggle(gint session, gboolean show) | |
1108 { | |
1109 remote_send_boolean(session, CMD_MAIN_WIN_TOGGLE, show); | |
1110 } | |
1111 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1112 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1113 * xmms_remote_is_main_win: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1114 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1115 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1116 * Queries Audacious about the main window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1117 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1118 * Return value: TRUE if visible, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1119 **/ |
0 | 1120 gboolean |
1121 xmms_remote_is_main_win(gint session) | |
1122 { | |
1123 return remote_get_gboolean(session, CMD_IS_MAIN_WIN); | |
1124 } | |
1125 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1126 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1127 * xmms_remote_is_pl_win: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1128 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1129 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1130 * Queries Audacious about the playlist window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1131 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1132 * Return value: TRUE if visible, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1133 **/ |
0 | 1134 gboolean |
1135 xmms_remote_is_pl_win(gint session) | |
1136 { | |
1137 return remote_get_gboolean(session, CMD_IS_PL_WIN); | |
1138 } | |
1139 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1140 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1141 * xmms_remote_is_eq_win: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1142 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1143 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1144 * Queries Audacious about the equalizer window's visibility. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1145 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1146 * Return value: TRUE if visible, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1147 **/ |
0 | 1148 gboolean |
1149 xmms_remote_is_eq_win(gint session) | |
1150 { | |
1151 return remote_get_gboolean(session, CMD_IS_EQ_WIN); | |
1152 } | |
1153 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1154 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1155 * xmms_remote_show_prefs_box: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1156 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1157 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1158 * Tells audacious to show the preferences pane. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1159 **/ |
0 | 1160 void |
1161 xmms_remote_show_prefs_box(gint session) | |
1162 { | |
1163 remote_cmd(session, CMD_SHOW_PREFS_BOX); | |
1164 } | |
1165 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1166 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1167 * xmms_remote_show_jtf_box: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1168 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1169 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1170 * Tells audacious to show the Jump-to-File pane. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1171 **/ |
0 | 1172 void |
984 | 1173 xmms_remote_show_jtf_box(gint session) |
1174 { | |
1175 remote_cmd(session, CMD_SHOW_JTF_BOX); | |
1176 } | |
1177 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1178 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1179 * xmms_remote_toggle_aot: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1180 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1181 * @ontop: Whether or not Audacious should be always-on-top. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1182 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1183 * Tells audacious to toggle the always-on-top feature. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1184 **/ |
984 | 1185 void |
0 | 1186 xmms_remote_toggle_aot(gint session, gboolean ontop) |
1187 { | |
1188 remote_send_boolean(session, CMD_TOGGLE_AOT, ontop); | |
1189 } | |
1190 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1191 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1192 * xmms_remote_show_about_box: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1193 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1194 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1195 * Tells audacious to show the about pane. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1196 **/ |
0 | 1197 void |
1198 xmms_remote_show_about_box(gint session) | |
1199 { | |
1200 remote_cmd(session, CMD_SHOW_ABOUT_BOX); | |
1201 } | |
1202 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1203 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1204 * xmms_remote_eject: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1205 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1206 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1207 * Tells audacious to display the open files pane. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1208 **/ |
0 | 1209 void |
1210 xmms_remote_eject(gint session) | |
1211 { | |
1212 remote_cmd(session, CMD_EJECT); | |
1213 } | |
1214 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1215 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1216 * xmms_remote_playlist_prev: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1217 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1218 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1219 * Tells audacious to move backwards in the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1220 **/ |
0 | 1221 void |
1222 xmms_remote_playlist_prev(gint session) | |
1223 { | |
1224 remote_cmd(session, CMD_PLAYLIST_PREV); | |
1225 } | |
1226 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1227 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1228 * xmms_remote_playlist_next: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1229 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1230 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1231 * Tells audacious to move forward in the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1232 **/ |
0 | 1233 void |
1234 xmms_remote_playlist_next(gint session) | |
1235 { | |
1236 remote_cmd(session, CMD_PLAYLIST_NEXT); | |
1237 } | |
1238 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1239 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1240 * xmms_remote_playlist_add_url_string: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1241 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1242 * @string: The URI to add. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1243 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1244 * Tells audacious to add an URI to the playlist. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1245 **/ |
0 | 1246 void |
1247 xmms_remote_playlist_add_url_string(gint session, gchar * string) | |
1248 { | |
1249 g_return_if_fail(string != NULL); | |
1250 remote_send_string(session, CMD_PLAYLIST_ADD_URL_STRING, string); | |
1251 } | |
1252 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1253 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1254 * xmms_remote_playlist_ins_url_string: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1255 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1256 * @string: The URI to add. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1257 * @pos: The position to add the URI at. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1258 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1259 * Tells audacious to add an URI to the playlist at a specific position. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1260 **/ |
0 | 1261 void |
1262 xmms_remote_playlist_ins_url_string(gint session, gchar * string, gint pos) | |
1263 { | |
1264 gint fd, size; | |
1265 gchar *packet; | |
1266 | |
1267 g_return_if_fail(string != NULL); | |
1268 | |
1269 size = strlen(string) + 1 + sizeof(gint); | |
1270 | |
1271 if ((fd = xmms_connect_to_session(session)) == -1) | |
1272 return; | |
1273 | |
1274 packet = g_malloc0(size); | |
1275 *((gint *) packet) = pos; | |
1276 strcpy(packet + sizeof(gint), string); | |
1277 remote_send_packet(fd, CMD_PLAYLIST_INS_URL_STRING, packet, size); | |
1278 remote_read_ack(fd); | |
1279 close(fd); | |
1280 g_free(packet); | |
1281 } | |
1282 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1283 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1284 * xmms_remote_is_running: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1285 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1286 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1287 * Checks to see if an Audacious server is running. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1288 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1289 * Return value: TRUE if yes, otherwise FALSE. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1290 **/ |
0 | 1291 gboolean |
1292 xmms_remote_is_running(gint session) | |
1293 { | |
1294 return remote_cmd(session, CMD_PING); | |
1295 } | |
1296 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1297 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1298 * xmms_remote_toggle_repeat: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1299 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1300 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1301 * Tells audacious to toggle the repeat feature. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1302 **/ |
0 | 1303 void |
1304 xmms_remote_toggle_repeat(gint session) | |
1305 { | |
1306 remote_cmd(session, CMD_TOGGLE_REPEAT); | |
1307 } | |
1308 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1309 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1310 * xmms_remote_toggle_shuffle: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1311 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1312 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1313 * Tells audacious to toggle the shuffle feature. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1314 **/ |
0 | 1315 void |
1316 xmms_remote_toggle_shuffle(gint session) | |
1317 { | |
1318 remote_cmd(session, CMD_TOGGLE_SHUFFLE); | |
1319 } | |
1320 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1321 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1322 * xmms_remote_toggle_advance: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1323 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1324 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1325 * Tells audacious to toggle the no-playlist-advance feature. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1326 **/ |
0 | 1327 void |
1328 xmms_remote_toggle_advance(int session) | |
1329 { | |
1330 remote_cmd(session, CMD_TOGGLE_ADVANCE); | |
1331 } | |
1332 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1333 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1334 * xmms_remote_is_repeat: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1335 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1336 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1337 * Queries audacious about whether or not the repeat feature is active. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1338 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1339 * Return value: TRUE if yes, otherwise FALSE. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1340 **/ |
0 | 1341 gboolean |
1342 xmms_remote_is_repeat(gint session) | |
1343 { | |
1344 return remote_get_gboolean(session, CMD_IS_REPEAT); | |
1345 } | |
1346 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1347 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1348 * xmms_remote_is_shuffle: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1349 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1350 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1351 * Queries audacious about whether or not the shuffle feature is active. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1352 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1353 * Return value: TRUE if yes, otherwise FALSE. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1354 **/ |
0 | 1355 gboolean |
1356 xmms_remote_is_shuffle(gint session) | |
1357 { | |
1358 return remote_get_gboolean(session, CMD_IS_SHUFFLE); | |
1359 } | |
1360 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1361 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1362 * xmms_remote_is_advance: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1363 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1364 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1365 * Queries audacious about whether or not the no-playlist-advance feature is active. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1366 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1367 * Return value: TRUE if yes, otherwise FALSE. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1368 **/ |
0 | 1369 gboolean |
1370 xmms_remote_is_advance(gint session) | |
1371 { | |
1372 return remote_get_gboolean(session, CMD_IS_ADVANCE); | |
1373 } | |
1374 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1375 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1376 * xmms_remote_playqueue_add: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1377 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1378 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1379 * Tells audacious to add a playlist entry to the playqueue. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1380 **/ |
0 | 1381 void |
1382 xmms_remote_playqueue_add(gint session, gint pos) | |
1383 { | |
1384 remote_send_guint32(session, CMD_PLAYQUEUE_ADD, pos); | |
1385 } | |
1386 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1387 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1388 * xmms_remote_playqueue_remove: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1389 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1390 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1391 * Tells audacious to remove a playlist entry from the playqueue. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1392 **/ |
0 | 1393 void |
1394 xmms_remote_playqueue_remove(gint session, gint pos) | |
1395 { | |
1396 remote_send_guint32(session, CMD_PLAYQUEUE_REMOVE, pos); | |
1397 } | |
1398 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1399 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1400 * xmms_remote_playqueue_clear: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1401 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1402 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1403 * Tells audacious to clear the playqueue. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1404 **/ |
984 | 1405 void |
1406 xmms_remote_playqueue_clear(gint session) | |
1407 { | |
1408 remote_cmd(session, CMD_PLAYQUEUE_CLEAR); | |
1409 } | |
1410 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1411 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1412 * xmms_remote_get_playqueue_length: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1413 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1414 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1415 * Queries audacious about the playqueue's length. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1416 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1417 * Return value: The number of entries in the playqueue. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1418 **/ |
0 | 1419 gint |
1420 xmms_remote_get_playqueue_length(gint session) | |
1421 { | |
1422 return remote_get_gint(session, CMD_GET_PLAYQUEUE_LENGTH); | |
1423 } | |
1424 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1425 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1426 * xmms_remote_playqueue_is_queued: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1427 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1428 * @pos: Position to check queue for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1429 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1430 * Queries audacious about whether or not a playlist entry is in the playqueue. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1431 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1432 * Return value: TRUE if yes, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1433 **/ |
984 | 1434 gboolean |
1435 xmms_remote_playqueue_is_queued(gint session, gint pos) | |
1436 { | |
1437 gpointer data; | |
1438 gint fd, ret = 0; | |
1439 guint32 p = pos; | |
1440 | |
1441 if ((fd = xmms_connect_to_session(session)) == -1) | |
1442 return ret; | |
1443 remote_send_packet(fd, CMD_PLAYQUEUE_IS_QUEUED, &p, sizeof(guint32)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1444 data = remote_read_packet(fd); |
984 | 1445 if (data) { |
1446 ret = *((gint *) data); | |
1447 g_free(data); | |
1448 } | |
1449 remote_read_ack(fd); | |
1450 close(fd); | |
1451 return ret; | |
1452 } | |
1453 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1454 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1455 * xmms_remote_get_playqueue_position: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1456 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1457 * @pos: Position to check queue for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1458 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1459 * Queries audacious about what the playqueue position is for a playlist entry. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1460 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1461 * Return value: TRUE if yes, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1462 **/ |
984 | 1463 gint |
1464 xmms_remote_get_playqueue_position(gint session, gint pos) | |
1465 { | |
1466 gpointer data; | |
1467 gint fd, ret = 0; | |
1468 guint32 p = pos; | |
1469 | |
1470 if ((fd = xmms_connect_to_session(session)) == -1) | |
1471 return ret; | |
1472 remote_send_packet(fd, CMD_PLAYQUEUE_GET_POS, &p, sizeof(guint32)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1473 data = remote_read_packet(fd); |
984 | 1474 if (data) { |
1475 ret = *((gint *) data); | |
1476 g_free(data); | |
1477 } | |
1478 remote_read_ack(fd); | |
1479 close(fd); | |
1480 return ret; | |
1481 } | |
1482 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1483 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1484 * xmms_remote_get_playqueue_queue_position: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1485 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1486 * @pos: Position to check queue for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1487 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1488 * Queries audacious about what the playlist position is for a playqueue entry. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1489 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1490 * Return value: TRUE if yes, FALSE otherwise. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1491 **/ |
984 | 1492 gint |
1493 xmms_remote_get_playqueue_queue_position(gint session, gint pos) | |
1494 { | |
1495 gpointer data; | |
1496 gint fd, ret = 0; | |
1497 guint32 p = pos; | |
1498 | |
1499 if ((fd = xmms_connect_to_session(session)) == -1) | |
1500 return ret; | |
1501 remote_send_packet(fd, CMD_PLAYQUEUE_GET_QPOS, &p, sizeof(guint32)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1502 data = remote_read_packet(fd); |
984 | 1503 if (data) { |
1504 ret = *((gint *) data); | |
1505 g_free(data); | |
1506 } | |
1507 remote_read_ack(fd); | |
1508 close(fd); | |
1509 return ret; | |
1510 } | |
1511 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1512 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1513 * xmms_remote_get_eq: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1514 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1515 * @preamp: Pointer to value for preamp setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1516 * @bands: Pointer to array of band settings. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1517 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1518 * Queries audacious about the equalizer settings. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1519 **/ |
0 | 1520 void |
1521 xmms_remote_get_eq(gint session, gfloat * preamp, gfloat ** bands) | |
1522 { | |
1523 gint fd; | |
1524 gpointer data; | |
1525 | |
1526 if (preamp) | |
1527 *preamp = 0.0; | |
1528 | |
1529 if (bands) | |
1530 *bands = NULL; | |
1531 | |
1532 if ((fd = xmms_connect_to_session(session)) == -1) | |
1533 return; | |
1534 remote_send_packet(fd, CMD_GET_EQ, NULL, 0); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1535 data = remote_read_packet(fd); |
0 | 1536 if (data) { |
1537 if (preamp) | |
1538 *preamp = *((gfloat *) data); | |
1539 if (bands) | |
1540 *bands = | |
1541 (gfloat *) g_memdup((gfloat *) data + 1, | |
1542 10 * sizeof(gfloat)); | |
1543 g_free(data); | |
1544 } | |
1545 remote_read_ack(fd); | |
1546 close(fd); | |
1547 } | |
1548 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1549 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1550 * xmms_remote_get_eq_preamp: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1551 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1552 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1553 * Queries audacious about the equalizer preamp's setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1554 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1555 * Return value: The equalizer preamp's setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1556 **/ |
0 | 1557 gfloat |
1558 xmms_remote_get_eq_preamp(gint session) | |
1559 { | |
1560 return remote_get_gfloat(session, CMD_GET_EQ_PREAMP); | |
1561 } | |
1562 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1563 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1564 * xmms_remote_get_eq_band: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1565 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1566 * @band: Which band to lookup the value for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1567 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1568 * Queries audacious about an equalizer band's value. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1569 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1570 * Return value: The equalizer band's value. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1571 **/ |
0 | 1572 gfloat |
1573 xmms_remote_get_eq_band(gint session, gint band) | |
1574 { | |
1575 gint fd; | |
1576 gpointer data; | |
1577 gfloat val = 0.0; | |
1578 | |
1579 if ((fd = xmms_connect_to_session(session)) == -1) | |
1580 return val; | |
1581 remote_send_packet(fd, CMD_GET_EQ_BAND, &band, sizeof(band)); | |
2002
c97cd4a8c470
[svn] - cleanup the controlsocket code. (nenolod + help from ticpu)
nenolod
parents:
1869
diff
changeset
|
1582 data = remote_read_packet(fd); |
0 | 1583 if (data) { |
1584 val = *((gfloat *) data); | |
1585 g_free(data); | |
1586 } | |
1587 remote_read_ack(fd); | |
1588 close(fd); | |
1589 return val; | |
1590 } | |
1591 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1592 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1593 * xmms_remote_set_eq: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1594 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1595 * @preamp: Value for preamp setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1596 * @bands: Array of band settings. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1597 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1598 * Tells audacious to set the equalizer up using the provided values. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1599 **/ |
0 | 1600 void |
1601 xmms_remote_set_eq(gint session, gfloat preamp, gfloat * bands) | |
1602 { | |
1603 gint fd, i; | |
1604 gfloat data[11]; | |
1605 | |
1606 g_return_if_fail(bands != NULL); | |
1607 | |
1608 if ((fd = xmms_connect_to_session(session)) == -1) | |
1609 return; | |
1610 data[0] = preamp; | |
1611 for (i = 0; i < 10; i++) | |
1612 data[i + 1] = bands[i]; | |
1613 remote_send_packet(fd, CMD_SET_EQ, data, sizeof(data)); | |
1614 remote_read_ack(fd); | |
1615 close(fd); | |
1616 } | |
1617 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1618 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1619 * xmms_remote_set_eq_preamp: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1620 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1621 * @preamp: Value for preamp setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1622 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1623 * Tells audacious to set the equalizer's preamp setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1624 **/ |
0 | 1625 void |
1626 xmms_remote_set_eq_preamp(gint session, gfloat preamp) | |
1627 { | |
1628 remote_send_gfloat(session, CMD_SET_EQ_PREAMP, preamp); | |
1629 } | |
1630 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1631 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1632 * xmms_remote_set_eq_band: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1633 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1634 * @band: The band to set the value for. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1635 * @value: The value to set that band to. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1636 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1637 * Tells audacious to set an equalizer band's setting. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1638 **/ |
0 | 1639 void |
1640 xmms_remote_set_eq_band(gint session, gint band, gfloat value) | |
1641 { | |
1642 gint fd; | |
1643 gchar data[sizeof(gint) + sizeof(gfloat)]; | |
1644 | |
1645 if ((fd = xmms_connect_to_session(session)) == -1) | |
1646 return; | |
1647 *((gint *) data) = band; | |
1648 *((gfloat *) (data + sizeof(gint))) = value; | |
1649 remote_send_packet(fd, CMD_SET_EQ_BAND, data, sizeof(data)); | |
1650 remote_read_ack(fd); | |
1651 close(fd); | |
1652 } | |
1653 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1654 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1655 * xmms_remote_quit: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1656 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1657 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1658 * Tells audacious to quit. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1659 **/ |
0 | 1660 void |
1661 xmms_remote_quit(gint session) | |
1662 { | |
1663 gint fd; | |
1664 | |
1665 if ((fd = xmms_connect_to_session(session)) == -1) | |
1666 return; | |
1667 remote_send_packet(fd, CMD_QUIT, NULL, 0); | |
1668 remote_read_ack(fd); | |
1669 close(fd); | |
1670 } | |
1671 | |
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1672 /** |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1673 * xmms_remote_activate: |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1674 * @session: Legacy XMMS-style session identifier. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1675 * |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1676 * Tells audacious to display the main window and become the selected window. |
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1677 **/ |
0 | 1678 void |
1679 xmms_remote_activate(gint session) | |
1680 { | |
1681 gint fd; | |
1682 | |
1683 if ((fd = xmms_connect_to_session(session)) == -1) | |
1684 return; | |
1685 remote_send_packet(fd, CMD_ACTIVATE, NULL, 0); | |
1686 remote_read_ack(fd); | |
1687 close(fd); | |
1688 } |