annotate src/scrobbler/plugin.c @ 2284:d19b53359b24

cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV PLAYBACK. if somebody is more experienced with it and wants to restore the other formats, go ahead (maybe change the name of the plugin too?).
author mf0102 <0102@gmx.at>
date Wed, 09 Jan 2008 15:41:22 +0100
parents b8da6a0b0da2
children dd78327f5747
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
1 #include "settings.h"
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
2 #include "config.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
3
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
4 #include <glib.h>
527
d124034ebea3 [svn] - glib/gi18n.h -> audacious/i18n.h for automatic dgettext support
nenolod
parents: 402
diff changeset
5 #include <audacious/i18n.h>
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
6
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
7 #include <gdk/gdkkeysyms.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
8 #include <gtk/gtk.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
9
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
10 #include <audacious/plugin.h>
402
1d50eb0b5a0a [svn] - chase prefswin -> ui_preferences in audacious core
nenolod
parents: 364
diff changeset
11 #include <audacious/ui_preferences.h>
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
12 #include <audacious/playlist.h>
4
0ad4849f6219 [svn] - the first pass missed some libaudacious references, this fixes them
nenolod
parents: 0
diff changeset
13 #include <audacious/configdb.h>
1027
ef86db6345e4 [svn] - some more work here
nenolod
parents: 1026
diff changeset
14 #include <audacious/hook.h>
719
be03e09c7c20 [svn] - always bail on http streams
nenolod
parents: 601
diff changeset
15 #include <audacious/strings.h>
1015
69cf6184edef [svn] - make this work without controlsocket
nenolod
parents: 990
diff changeset
16 #include <audacious/main.h>
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
17
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
18 #include <unistd.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
19 #include <stdio.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
20 #include <stdlib.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
21 #include <string.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
22 #include <ctype.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
23 #include <wchar.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
24 #include <sys/time.h>
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
25
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
26 #include "scrobbler.h"
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
27 #include "gerpok.h"
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
28 #include "gtkstuff.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
29 #include "config.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
30 #include "fmt.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
31 #include "configure.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
32
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
33 #define XS_CS xmms_scrobbler.xmms_session
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
34 #define XS_SLEEP 1
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
35 #define HS_SLEEP 10
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
36
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
37 typedef struct submit_t
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
38 {
553
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
39 int dosubmit, pos_c, len, gerpok;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
40 } submit_t;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
41
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
42 static void init(void);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
43 static void cleanup(void);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
44 static void *xs_thread(void *);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
45 static void *hs_thread(void *);
990
238055a6cb8f [svn] - remove support for hatena music as hatena ceased their musical profile service.
yaz
parents: 880
diff changeset
46 static int sc_going, ge_going;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
47 static GtkWidget *cfgdlg;
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
48 static gboolean submit;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
49
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
50 static GMutex *m_scrobbler;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
51 static GThread *pt_scrobbler;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
52 static GThread *pt_handshake;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
53
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
54 static GMutex *hs_mutex, *xs_mutex;
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
55 static GCond *hs_cond, *xs_cond;
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
56
1066
d1f8b0594f37 [svn] - convert scrobbler to plugin API v2
nenolod
parents: 1060
diff changeset
57 static GeneralPlugin scrobbler_gp =
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
58 {
1635
16044c4a34d7 scrobbler: C99 initialisers
William Pitcock <nenolod@atheme.org>
parents: 1443
diff changeset
59 .description = "Scrobbler Plugin",
16044c4a34d7 scrobbler: C99 initialisers
William Pitcock <nenolod@atheme.org>
parents: 1443
diff changeset
60 .init = init,
16044c4a34d7 scrobbler: C99 initialisers
William Pitcock <nenolod@atheme.org>
parents: 1443
diff changeset
61 .about = about_show,
16044c4a34d7 scrobbler: C99 initialisers
William Pitcock <nenolod@atheme.org>
parents: 1443
diff changeset
62 .cleanup = cleanup
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
63 };
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
64
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
65 static gboolean ishttp(const char *a)
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
66 {
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
67 g_return_val_if_fail(a != NULL, FALSE);
2050
2ffc6a69fcd1 string API calls -> vtable
William Pitcock <nenolod@atheme.org>
parents: 1976
diff changeset
68 return aud_str_has_prefix_nocase(a, "http://") || aud_str_has_prefix_nocase(a, "https://");
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
69 }
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
70
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 2057
diff changeset
71 static void aud_hook_playback_begin(gpointer aud_hook_data, gpointer user_data)
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
72 {
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 2057
diff changeset
73 PlaylistEntry *entry = (PlaylistEntry *) aud_hook_data;
1027
ef86db6345e4 [svn] - some more work here
nenolod
parents: 1026
diff changeset
74
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
75 g_return_if_fail(entry != NULL);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
76
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
77 if (entry->length < 30)
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
78 {
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
79 pdebug(" *** not submitting due to entry->length < 30", DEBUG);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
80 return;
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
81 }
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
82
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
83 if (ishttp(entry->filename))
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
84 {
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
85 pdebug(" *** not submitting due to HTTP source", DEBUG);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
86 return;
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
87 }
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
88
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
89 /* wake up the scrobbler thread to submit or queue */
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
90 submit = TRUE;
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
91 g_cond_signal(xs_cond);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
92 }
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
93
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
94 static void init(void)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
95 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
96 char *username = NULL, *password = NULL;
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
97 char *ge_username = NULL, *ge_password = NULL;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
98 ConfigDb *cfgfile;
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
99 sc_going = 1;
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
100 ge_going = 1;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
101 GError **moo = NULL;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
102 cfgdlg = create_cfgdlg();
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
103
2071
f235b4a365a6 prefswin shit
William Pitcock <nenolod@atheme.org>
parents: 2060
diff changeset
104 aud_prefswin_page_new(cfgdlg, "Scrobbler", DATA_DIR "/images/audioscrobbler.png");
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
105
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
106 if ((cfgfile = aud_cfg_db_open()) != NULL) {
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
107 aud_cfg_db_get_string(cfgfile, "audioscrobbler", "username",
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
108 &username);
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
109 aud_cfg_db_get_string(cfgfile, "audioscrobbler", "password",
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
110 &password);
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
111 aud_cfg_db_get_string(cfgfile, "audioscrobbler", "ge_username",
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
112 &ge_username);
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
113 aud_cfg_db_get_string(cfgfile, "audioscrobbler", "ge_password",
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
114 &ge_password);
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 2071
diff changeset
115 aud_cfg_db_close(cfgfile);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
116 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
117
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
118 if ((!username || !password) || (!*username || !*password))
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
119 {
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
120 pdebug("username/password not found - not starting last.fm support",
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
121 DEBUG);
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
122 sc_going = 0;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
123 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
124 else
364
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
125 {
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
126 sc_init(username, password);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
127
364
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
128 g_free(username);
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
129 g_free(password);
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
130 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
131
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
132 if ((!ge_username || !ge_password) || (!*ge_username || !*ge_password))
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
133 {
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
134 pdebug("username/password not found - not starting Gerpok support",
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
135 DEBUG);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
136 ge_going = 0;
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
137 }
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
138 else
364
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
139 {
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
140 gerpok_sc_init(ge_username, ge_password);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
141
364
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
142 g_free(ge_username);
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
143 g_free(ge_password);
50347c06ec68 [svn] - make scrobbler behave better
nenolod
parents: 363
diff changeset
144 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
145
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
146 m_scrobbler = g_mutex_new();
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
147 hs_mutex = g_mutex_new();
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
148 xs_mutex = g_mutex_new();
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
149 hs_cond = g_cond_new();
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
150 xs_cond = g_cond_new();
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
151
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
152 if ((pt_scrobbler = g_thread_create(xs_thread, NULL, TRUE, moo)) == NULL)
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
153 {
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
154 pdebug(fmt_vastr("Error creating scrobbler thread: %s", moo), DEBUG);
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
155 sc_going = 0;
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
156 ge_going = 0;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
157 return;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
158 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
159
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
160 if ((pt_handshake = g_thread_create(hs_thread, NULL, TRUE, moo)) == NULL)
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
161 {
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
162 pdebug(fmt_vastr("Error creating handshake thread: %s", moo), DEBUG);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
163 sc_going = 0;
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
164 ge_going = 0;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
165 return;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
166 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
167
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 2057
diff changeset
168 aud_hook_associate("playback begin", aud_hook_playback_begin, NULL);
1027
ef86db6345e4 [svn] - some more work here
nenolod
parents: 1026
diff changeset
169
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
170 pdebug("plugin started", DEBUG);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
171 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
172
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
173 static void cleanup(void)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
174 {
2071
f235b4a365a6 prefswin shit
William Pitcock <nenolod@atheme.org>
parents: 2060
diff changeset
175 aud_prefswin_page_destroy(cfgdlg);
108
0eb1e99b7748 [svn] - move prefswin_page_destroy(cfgdlg) to before the plugin logs out of last.fm;
nenolod
parents: 12
diff changeset
176
990
238055a6cb8f [svn] - remove support for hatena music as hatena ceased their musical profile service.
yaz
parents: 880
diff changeset
177 if (!sc_going && !ge_going)
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
178 return;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
179 pdebug("about to lock mutex", DEBUG);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
180 g_mutex_lock(m_scrobbler);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
181 pdebug("locked mutex", DEBUG);
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
182 sc_going = 0;
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
183 ge_going = 0;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
184 g_mutex_unlock(m_scrobbler);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
185 pdebug("joining threads", DEBUG);
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
186
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
187 /* wake up waiting threads */
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
188 pdebug("send signal to xs and hs", DEBUG);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
189 g_cond_signal(xs_cond);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
190 g_cond_signal(hs_cond);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
191
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
192 pdebug("wait xs", DEBUG);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
193 g_thread_join(pt_scrobbler);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
194
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
195 pdebug("wait hs", DEBUG);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
196 g_thread_join(pt_handshake);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
197
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
198 g_cond_free(hs_cond);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
199 g_cond_free(xs_cond);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
200 g_mutex_free(hs_mutex);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
201 g_mutex_free(xs_mutex);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
202 g_mutex_free(m_scrobbler);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
203
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
204 sc_cleaner();
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
205 gerpok_sc_cleaner();
1027
ef86db6345e4 [svn] - some more work here
nenolod
parents: 1026
diff changeset
206
2060
0803fba87da8 hook shit
William Pitcock <nenolod@atheme.org>
parents: 2057
diff changeset
207 aud_hook_dissociate("playback begin", aud_hook_playback_begin);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
208 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
209
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
210 static void *xs_thread(void *data __attribute__((unused)))
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
211 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
212 int run = 1;
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
213
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
214 while (run) {
1443
f4d8082668c1 scrobbler: tuple API update
William Pitcock <nenolod@atheme-project.org>
parents: 1395
diff changeset
215 Tuple *tuple;
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
216 GTimeVal sleeptime;
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
217
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
218 /* Error catching */
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
219 if(sc_catch_error())
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
220 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
221 errorbox_show(sc_fetch_error());
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
222 sc_clear_error();
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
223 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
224
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
225 if(gerpok_sc_catch_error())
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
226 {
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
227 errorbox_show(gerpok_sc_fetch_error());
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
228 gerpok_sc_clear_error();
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
229 }
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
230
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
231 if (submit)
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
232 {
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
233 Playlist *playlist;
553
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
234
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
235 pdebug("Submitting song.", DEBUG);
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
236
2057
cf4fa45ffd80 playlist API vtabling
William Pitcock <nenolod@atheme.org>
parents: 2050
diff changeset
237 playlist = aud_playlist_get_active();
cf4fa45ffd80 playlist API vtabling
William Pitcock <nenolod@atheme.org>
parents: 2050
diff changeset
238 tuple = aud_playlist_get_tuple(playlist, aud_playlist_get_position(playlist));
553
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
239
601
45c9130027d9 [svn] - handle unavailable tuples better
nenolod
parents: 554
diff changeset
240 if (tuple == NULL)
45c9130027d9 [svn] - handle unavailable tuples better
nenolod
parents: 554
diff changeset
241 continue;
45c9130027d9 [svn] - handle unavailable tuples better
nenolod
parents: 554
diff changeset
242
1976
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
243 if (ishttp(aud_tuple_get_string(tuple, FIELD_FILE_NAME, NULL)))
553
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
244 continue;
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
245
1976
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
246 if (aud_tuple_get_string(tuple, FIELD_ARTIST, NULL) != NULL &&
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
247 aud_tuple_get_string(tuple, FIELD_TITLE, NULL) != NULL)
553
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
248 {
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
249 pdebug(fmt_vastr(
269841b8fb31 [svn] - submit gerpok tracks on immediate playback begin
nenolod
parents: 527
diff changeset
250 "submitting artist: %s, title: %s",
1976
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
251 aud_tuple_get_string(tuple, FIELD_ARTIST, NULL),
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
252 aud_tuple_get_string(tuple, FIELD_TITLE, NULL)), DEBUG);
1687
d158ce84fda7 Modified for Tuplez/plugin API changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 1443
diff changeset
253
1976
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
254 sc_addentry(m_scrobbler, tuple, aud_tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000);
5fa26178eaef s/tuple_/aud_tuple_/g
William Pitcock <nenolod@atheme.org>
parents: 1693
diff changeset
255 gerpok_sc_addentry(m_scrobbler, tuple, aud_tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
256 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
257 else
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
258 pdebug("tuple does not contain an artist or a title, not submitting.", DEBUG);
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
259
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
260 submit = FALSE;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
261 }
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
262
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
263 g_get_current_time(&sleeptime);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
264 sleeptime.tv_sec += XS_SLEEP;
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
265
1026
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
266 g_mutex_lock(xs_mutex);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
267 g_cond_timed_wait(xs_cond, xs_mutex, &sleeptime);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
268 g_mutex_unlock(xs_mutex);
ff0487e9d00d [svn] - first attempt at implementing AudioScrobbler 1.2 protocol
nenolod
parents: 1025
diff changeset
269
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
270 g_mutex_lock(m_scrobbler);
990
238055a6cb8f [svn] - remove support for hatena music as hatena ceased their musical profile service.
yaz
parents: 880
diff changeset
271 run = (sc_going != 0 || ge_going != 0);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
272 g_mutex_unlock(m_scrobbler);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
273 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
274 pdebug("scrobbler thread: exiting", DEBUG);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
275 g_thread_exit(NULL);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
276
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
277 return NULL;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
278 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
279
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
280 static void *hs_thread(void *data __attribute__((unused)))
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
281 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
282 int run = 1;
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
283 GTimeVal sleeptime;
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
284
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
285 while(run)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
286 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
287 if(sc_idle(m_scrobbler))
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
288 {
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
289 pdebug("Giving up due to fatal error", DEBUG);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
290 g_mutex_lock(m_scrobbler);
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
291 sc_going = 0;
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
292 g_mutex_unlock(m_scrobbler);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
293 }
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
294
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
295 if(gerpok_sc_idle(m_scrobbler))
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
296 {
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
297 pdebug("Giving up due to fatal error", DEBUG);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
298 g_mutex_lock(m_scrobbler);
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
299 ge_going = 0;
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
300 g_mutex_unlock(m_scrobbler);
344
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
301 }
03c1ae10bc8d [svn] - Merge audacious-scrobbler III, new features include:
nenolod
parents: 108
diff changeset
302
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
303 g_mutex_lock(m_scrobbler);
990
238055a6cb8f [svn] - remove support for hatena music as hatena ceased their musical profile service.
yaz
parents: 880
diff changeset
304 run = (sc_going != 0 || ge_going != 0);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
305 g_mutex_unlock(m_scrobbler);
353
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
306
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
307 if(run) {
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
308 g_get_current_time(&sleeptime);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
309 sleeptime.tv_sec += HS_SLEEP;
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
310
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
311 g_mutex_lock(hs_mutex);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
312 g_cond_timed_wait(hs_cond, hs_mutex, &sleeptime);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
313 g_mutex_unlock(hs_mutex);
1bd205b6e83d [svn] - replace g_usleep() with g_cond_timed_wait()
yaz
parents: 350
diff changeset
314 }
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
315 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
316 pdebug("handshake thread: exiting", DEBUG);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
317 g_thread_exit(NULL);
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
318
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
319 return NULL;
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
320 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
321
1066
d1f8b0594f37 [svn] - convert scrobbler to plugin API v2
nenolod
parents: 1060
diff changeset
322 GeneralPlugin *scrobbler_gplist[] = { &scrobbler_gp, NULL };
d1f8b0594f37 [svn] - convert scrobbler to plugin API v2
nenolod
parents: 1060
diff changeset
323
1395
761e17b23e0c added Discovery plugin type
Cristi Magherusan <majeru@atheme-project.org>
parents: 1066
diff changeset
324 DECLARE_PLUGIN(scrobbler, NULL, NULL, NULL, NULL, NULL, scrobbler_gplist, NULL, NULL);