Mercurial > audlegacy
annotate libaudacious/beepctrl.c @ 2065:598564ddc4e9 trunk
[svn] - no, this is not going to work
| author | nenolod |
|---|---|
| date | Thu, 07 Dec 2006 00:22:55 -0800 |
| parents | 53a3d5db6b58 |
| children | f18a5b617c34 |
| 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. |
| 2060 | 1378 * @pos: The playlist position to add to the queue. |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1379 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1380 * Tells audacious to add a playlist entry to the playqueue. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1381 **/ |
| 0 | 1382 void |
| 1383 xmms_remote_playqueue_add(gint session, gint pos) | |
| 1384 { | |
| 1385 remote_send_guint32(session, CMD_PLAYQUEUE_ADD, pos); | |
| 1386 } | |
| 1387 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1388 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1389 * xmms_remote_playqueue_remove: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1390 * @session: Legacy XMMS-style session identifier. |
| 2060 | 1391 * @pos: The playlist position to remove from the queue. |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1392 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1393 * Tells audacious to remove a playlist entry from the playqueue. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1394 **/ |
| 0 | 1395 void |
| 1396 xmms_remote_playqueue_remove(gint session, gint pos) | |
| 1397 { | |
| 1398 remote_send_guint32(session, CMD_PLAYQUEUE_REMOVE, pos); | |
| 1399 } | |
| 1400 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1401 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1402 * xmms_remote_playqueue_clear: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1403 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1404 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1405 * Tells audacious to clear the playqueue. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1406 **/ |
| 984 | 1407 void |
| 1408 xmms_remote_playqueue_clear(gint session) | |
| 1409 { | |
| 1410 remote_cmd(session, CMD_PLAYQUEUE_CLEAR); | |
| 1411 } | |
| 1412 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1413 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1414 * xmms_remote_get_playqueue_length: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1415 * @session: Legacy XMMS-style session identifier. |
|
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 * Queries audacious about the playqueue's length. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1418 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1419 * Return value: The number of entries in the playqueue. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1420 **/ |
| 0 | 1421 gint |
| 1422 xmms_remote_get_playqueue_length(gint session) | |
| 1423 { | |
| 1424 return remote_get_gint(session, CMD_GET_PLAYQUEUE_LENGTH); | |
| 1425 } | |
| 1426 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1427 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1428 * xmms_remote_playqueue_is_queued: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1429 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1430 * @pos: Position to check queue for. |
|
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 * 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
|
1433 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1434 * Return value: TRUE if yes, FALSE otherwise. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1435 **/ |
| 984 | 1436 gboolean |
| 1437 xmms_remote_playqueue_is_queued(gint session, gint pos) | |
| 1438 { | |
| 1439 gpointer data; | |
| 1440 gint fd, ret = 0; | |
| 1441 guint32 p = pos; | |
| 1442 | |
| 1443 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1444 return ret; | |
| 1445 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
|
1446 data = remote_read_packet(fd); |
| 984 | 1447 if (data) { |
| 1448 ret = *((gint *) data); | |
| 1449 g_free(data); | |
| 1450 } | |
| 1451 remote_read_ack(fd); | |
| 1452 close(fd); | |
| 1453 return ret; | |
| 1454 } | |
| 1455 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1456 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1457 * xmms_remote_get_playqueue_position: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1458 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1459 * @pos: Position to check queue for. |
|
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 * 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
|
1462 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1463 * Return value: TRUE if yes, FALSE otherwise. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1464 **/ |
| 984 | 1465 gint |
| 1466 xmms_remote_get_playqueue_position(gint session, gint pos) | |
| 1467 { | |
| 1468 gpointer data; | |
| 1469 gint fd, ret = 0; | |
| 1470 guint32 p = pos; | |
| 1471 | |
| 1472 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1473 return ret; | |
| 1474 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
|
1475 data = remote_read_packet(fd); |
| 984 | 1476 if (data) { |
| 1477 ret = *((gint *) data); | |
| 1478 g_free(data); | |
| 1479 } | |
| 1480 remote_read_ack(fd); | |
| 1481 close(fd); | |
| 1482 return ret; | |
| 1483 } | |
| 1484 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1485 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1486 * xmms_remote_get_playqueue_queue_position: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1487 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1488 * @pos: Position to check queue for. |
|
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 * 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
|
1491 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1492 * Return value: TRUE if yes, FALSE otherwise. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1493 **/ |
| 984 | 1494 gint |
| 1495 xmms_remote_get_playqueue_queue_position(gint session, gint pos) | |
| 1496 { | |
| 1497 gpointer data; | |
| 1498 gint fd, ret = 0; | |
| 1499 guint32 p = pos; | |
| 1500 | |
| 1501 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1502 return ret; | |
| 1503 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
|
1504 data = remote_read_packet(fd); |
| 984 | 1505 if (data) { |
| 1506 ret = *((gint *) data); | |
| 1507 g_free(data); | |
| 1508 } | |
| 1509 remote_read_ack(fd); | |
| 1510 close(fd); | |
| 1511 return ret; | |
| 1512 } | |
| 1513 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1514 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1515 * xmms_remote_get_eq: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1516 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1517 * @preamp: Pointer to value for preamp setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1518 * @bands: Pointer to array of band settings. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1519 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1520 * Queries audacious about the equalizer settings. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1521 **/ |
| 0 | 1522 void |
| 1523 xmms_remote_get_eq(gint session, gfloat * preamp, gfloat ** bands) | |
| 1524 { | |
| 1525 gint fd; | |
| 1526 gpointer data; | |
| 1527 | |
| 1528 if (preamp) | |
| 1529 *preamp = 0.0; | |
| 1530 | |
| 1531 if (bands) | |
| 1532 *bands = NULL; | |
| 1533 | |
| 1534 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1535 return; | |
| 1536 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
|
1537 data = remote_read_packet(fd); |
| 0 | 1538 if (data) { |
| 1539 if (preamp) | |
| 1540 *preamp = *((gfloat *) data); | |
| 1541 if (bands) | |
| 1542 *bands = | |
| 1543 (gfloat *) g_memdup((gfloat *) data + 1, | |
| 1544 10 * sizeof(gfloat)); | |
| 1545 g_free(data); | |
| 1546 } | |
| 1547 remote_read_ack(fd); | |
| 1548 close(fd); | |
| 1549 } | |
| 1550 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1551 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1552 * xmms_remote_get_eq_preamp: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1553 * @session: Legacy XMMS-style session identifier. |
|
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 * Queries audacious about the equalizer preamp's setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1556 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1557 * Return value: The equalizer preamp's setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1558 **/ |
| 0 | 1559 gfloat |
| 1560 xmms_remote_get_eq_preamp(gint session) | |
| 1561 { | |
| 1562 return remote_get_gfloat(session, CMD_GET_EQ_PREAMP); | |
| 1563 } | |
| 1564 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1565 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1566 * xmms_remote_get_eq_band: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1567 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1568 * @band: Which band to lookup the value for. |
|
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 * Queries audacious about an equalizer band's value. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1571 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1572 * Return value: The equalizer band's value. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1573 **/ |
| 0 | 1574 gfloat |
| 1575 xmms_remote_get_eq_band(gint session, gint band) | |
| 1576 { | |
| 1577 gint fd; | |
| 1578 gpointer data; | |
| 1579 gfloat val = 0.0; | |
| 1580 | |
| 1581 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1582 return val; | |
| 1583 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
|
1584 data = remote_read_packet(fd); |
| 0 | 1585 if (data) { |
| 1586 val = *((gfloat *) data); | |
| 1587 g_free(data); | |
| 1588 } | |
| 1589 remote_read_ack(fd); | |
| 1590 close(fd); | |
| 1591 return val; | |
| 1592 } | |
| 1593 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1594 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1595 * xmms_remote_set_eq: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1596 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1597 * @preamp: Value for preamp setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1598 * @bands: Array of band settings. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1599 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1600 * 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
|
1601 **/ |
| 0 | 1602 void |
| 1603 xmms_remote_set_eq(gint session, gfloat preamp, gfloat * bands) | |
| 1604 { | |
| 1605 gint fd, i; | |
| 1606 gfloat data[11]; | |
| 1607 | |
| 1608 g_return_if_fail(bands != NULL); | |
| 1609 | |
| 1610 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1611 return; | |
| 1612 data[0] = preamp; | |
| 1613 for (i = 0; i < 10; i++) | |
| 1614 data[i + 1] = bands[i]; | |
| 1615 remote_send_packet(fd, CMD_SET_EQ, data, sizeof(data)); | |
| 1616 remote_read_ack(fd); | |
| 1617 close(fd); | |
| 1618 } | |
| 1619 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1620 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1621 * xmms_remote_set_eq_preamp: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1622 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1623 * @preamp: Value for preamp setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1624 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1625 * Tells audacious to set the equalizer's preamp setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1626 **/ |
| 0 | 1627 void |
| 1628 xmms_remote_set_eq_preamp(gint session, gfloat preamp) | |
| 1629 { | |
| 1630 remote_send_gfloat(session, CMD_SET_EQ_PREAMP, preamp); | |
| 1631 } | |
| 1632 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1633 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1634 * xmms_remote_set_eq_band: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1635 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1636 * @band: The band to set the value for. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1637 * @value: The value to set that band to. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1638 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1639 * Tells audacious to set an equalizer band's setting. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1640 **/ |
| 0 | 1641 void |
| 1642 xmms_remote_set_eq_band(gint session, gint band, gfloat value) | |
| 1643 { | |
| 1644 gint fd; | |
| 1645 gchar data[sizeof(gint) + sizeof(gfloat)]; | |
| 1646 | |
| 1647 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1648 return; | |
| 1649 *((gint *) data) = band; | |
| 1650 *((gfloat *) (data + sizeof(gint))) = value; | |
| 1651 remote_send_packet(fd, CMD_SET_EQ_BAND, data, sizeof(data)); | |
| 1652 remote_read_ack(fd); | |
| 1653 close(fd); | |
| 1654 } | |
| 1655 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1656 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1657 * xmms_remote_quit: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1658 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1659 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1660 * Tells audacious to quit. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1661 **/ |
| 0 | 1662 void |
| 1663 xmms_remote_quit(gint session) | |
| 1664 { | |
| 1665 gint fd; | |
| 1666 | |
| 1667 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1668 return; | |
| 1669 remote_send_packet(fd, CMD_QUIT, NULL, 0); | |
| 1670 remote_read_ack(fd); | |
| 1671 close(fd); | |
| 1672 } | |
| 1673 | |
|
2042
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1674 /** |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1675 * xmms_remote_activate: |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1676 * @session: Legacy XMMS-style session identifier. |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1677 * |
|
0985452d1962
[svn] - clean up some internal audacious controlsocket functions
nenolod
parents:
2002
diff
changeset
|
1678 * 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
|
1679 **/ |
| 0 | 1680 void |
| 1681 xmms_remote_activate(gint session) | |
| 1682 { | |
| 1683 gint fd; | |
| 1684 | |
| 1685 if ((fd = xmms_connect_to_session(session)) == -1) | |
| 1686 return; | |
| 1687 remote_send_packet(fd, CMD_ACTIVATE, NULL, 0); | |
| 1688 remote_read_ack(fd); | |
| 1689 close(fd); | |
| 1690 } |
