Mercurial > audlegacy
annotate src/audacious/ui_lastfm.c @ 3183:bcf611cf5ae2 trunk
lastfm radio GUI
author | Cristi Magherusan <majeru@atheme-project.org> |
---|---|
date | Sat, 28 Jul 2007 01:27:59 +0300 |
parents | 49ce30748980 |
children | 1fef0ac7395e |
rev | line source |
---|---|
3183
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
1 #include <gtk/gtk.h> |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
2 #include <glib/gi18n.h> |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
3 #include <gdk/gdkkeysyms.h> |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
4 #include "configdb.h" |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
5 #include "playback.h" |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
6 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
7 #define DEBUG 1 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
8 typedef struct { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
9 gchar *username, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
10 *session; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
11 }last_fm; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
12 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
13 typedef struct |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
14 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
15 gchar *artist, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
16 *title; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
17 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
18 track_data; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
19 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
20 last_fm *login_data=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
21 Playlist *current_playlist=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
22 TitleInput *info = NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
23 GtkWidget *lastfm_url_entry, *lastfm_label,*artist_label,*title_label,*album_label, *gui_window=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
24 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
25 gpointer open_url(gpointer url) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
26 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
27 gchar*s=g_new0(gchar,20); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
28 VFSFile* fd = vfs_fopen((gchar*)url,"r"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
29 if(fd) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
30 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
31 vfs_fgets(s,20,fd); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
32 g_print("Got data: '%s'\n",s); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
33 vfs_fclose(fd); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
34 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
35 g_free(s); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
36 g_free(url); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
37 return NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
38 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
39 void command(gchar *comm) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
40 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
41 /* get the session from mowgli*/ |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
42 if(login_data->session) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
43 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
44 g_free(login_data->session); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
45 login_data->session=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
46 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
47 login_data->session = g_strdup(mowgli_global_storage_get("lastfm_session_id")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
48 gchar *url=g_strdup_printf("http://ws.audioscrobbler.com/radio/control.php?session=%s&command=%s&debug=0",login_data->session,comm); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
49 g_thread_create(open_url,url,FALSE,NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
50 if(!g_str_has_prefix(comm,"love")) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
51 g_thread_create((gpointer)playback_initiate,NULL,FALSE,NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
52 return; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
53 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
54 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
55 static void change_track_data_cb(gpointer track, gpointer unused) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
56 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
57 gchar **inf, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
58 **t, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
59 *alb, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
60 *tr; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
61 tr=((track_data*)track)->title; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
62 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
63 if(tr==NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
64 return ; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
65 #if DEBUG |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
66 g_print("New Track: %s \n",tr); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
67 #endif |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
68 if(g_str_has_prefix(tr,"lastfm://")) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
69 return; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
70 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
71 if(g_strrstr(tr,"Neighbour")!=NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
72 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
73 gchar *temp=g_strdup_printf("lastfm://user/%s/neighbours", login_data->username); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
74 gtk_entry_set_text(GTK_ENTRY(lastfm_url_entry),temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
75 g_free(temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
76 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
77 if(g_strrstr(tr,"Personal")!=NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
78 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
79 gchar *temp=g_strdup_printf("lastfm://user/%s/personal", login_data->username); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
80 gtk_entry_set_text(GTK_ENTRY(lastfm_url_entry),temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
81 g_free(temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
82 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
83 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
84 inf = g_strsplit(tr," - ",2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
85 if(inf[0]==NULL || inf[1]==NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
86 return; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
87 gchar* artist_markup=g_strdup_printf("<b>Artist:</b> %s" ,inf[0]); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
88 gtk_label_set_markup(GTK_LABEL(artist_label),artist_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
89 g_free(artist_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
90 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
91 t = g_strsplit(inf[1], g_strrstr(inf[1],"("),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
92 alb = g_strdup(mowgli_global_storage_get("lastfm_album")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
93 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
94 gchar* title_markup=g_strdup_printf("<b>Title:</b> %s" ,t[0]); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
95 gtk_label_set_markup( GTK_LABEL(title_label),title_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
96 g_free(title_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
97 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
98 gchar* album_markup=g_strdup_printf("<b>Album:</b> %s" ,alb); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
99 gtk_label_set_markup( GTK_LABEL(album_label),album_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
100 g_free(album_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
101 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
102 g_strfreev(inf); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
103 g_strfreev(t); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
104 g_free(alb); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
105 g_free(tr); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
106 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
107 return ; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
108 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
109 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
110 static void show_login_error_dialog(void) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
111 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
112 const gchar *markup = |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
113 N_("<b><big>Couldn't find your lastfm login data.</big></b>\n\n" |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
114 "Check if your Scrobbler's plugin login settings are configured properly.\n"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
115 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
116 GtkWidget *dialog = |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
117 gtk_message_dialog_new_with_markup(NULL, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
118 GTK_DIALOG_DESTROY_WITH_PARENT, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
119 GTK_MESSAGE_ERROR, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
120 GTK_BUTTONS_OK, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
121 _(markup)); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
122 gtk_dialog_run(GTK_DIALOG(dialog)); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
123 gtk_widget_destroy(dialog); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
124 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
125 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
126 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
127 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
128 void init_last_fm(void) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
129 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
130 login_data = g_new0(last_fm,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
131 login_data->username = NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
132 login_data->session = NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
133 ConfigDb *cfg = NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
134 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
135 if ((cfg = bmp_cfg_db_open()) != NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
136 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
137 login_data->username=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
138 bmp_cfg_db_get_string(cfg, "audioscrobbler","username", |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
139 &login_data->username); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
140 if(login_data->username==NULL) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
141 show_login_error_dialog(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
142 g_free(cfg); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
143 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
144 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
145 current_playlist = g_new0(Playlist,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
146 current_playlist = playlist_get_active(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
147 track_data * tr=g_new0(track_data,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
148 tr->title =NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
149 hook_associate( "playlist set info" , change_track_data_cb ,tr); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
150 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
151 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
152 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
153 /*event callback functions*/ |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
154 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
155 gboolean love_press_callback(GtkWidget *love) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
156 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
157 command("love"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
158 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
159 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
160 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
161 gboolean skip_press_callback(GtkWidget *skip) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
162 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
163 command("skip"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
164 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
165 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
166 gboolean ban_press_callback(GtkWidget *ban) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
167 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
168 command("ban"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
169 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
170 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
171 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
172 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
173 gboolean add_press_callback(GtkWidget *love) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
174 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
175 gchar *text=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
176 gint poz=0; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
177 text = g_strdup(gtk_entry_get_text(GTK_ENTRY(lastfm_url_entry))); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
178 poz = playlist_get_length(current_playlist); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
179 playlist_add_url(current_playlist, text); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
180 sleep(1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
181 playlist_set_position(current_playlist, poz); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
182 playback_initiate(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
183 g_free(text); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
184 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
185 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
186 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
187 gboolean neighbours_press_callback(GtkWidget *love) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
188 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
189 gchar *temp=g_strdup_printf("lastfm://user/%s/neighbours", login_data->username); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
190 gtk_entry_set_text(GTK_ENTRY(lastfm_url_entry),temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
191 g_free(temp); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
192 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
193 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
194 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
195 gboolean personal_press_callback(GtkWidget *love) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
196 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
197 gchar *per=g_strdup_printf("lastfm://user/%s/personal", login_data->username); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
198 gtk_entry_set_text(GTK_ENTRY(lastfm_url_entry),per); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
199 g_free(per); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
200 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
201 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
202 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
203 gboolean delete_window_callback(GtkWidget *window) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
204 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
205 gtk_widget_destroy(window); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
206 window=NULL; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
207 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
208 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
209 static gboolean keypress_callback(GtkWidget * widget, GdkEventKey * event, gpointer data) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
210 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
211 switch (event->keyval) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
212 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
213 case GDK_Escape: |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
214 gtk_widget_hide_all(widget); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
215 break; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
216 default: |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
217 return FALSE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
218 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
219 return TRUE; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
220 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
221 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
222 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
223 GtkWidget *ui_lastfm_create(void) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
224 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
225 GtkWidget *window; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
226 GtkWidget *box1,*box2,*vboxw,*vbox1,*vbox2,*v_hbox1,*v_hbox2,*labelbox; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
227 GtkWidget *love,*ban,*skip,*add,*neighbours,*personal; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
228 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
229 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
230 gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
231 gtk_window_set_title(GTK_WINDOW(window), N_("Audacious last.fm radio tuner")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
232 lastfm_label = gtk_label_new_with_mnemonic(N_("Station:")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
233 title_label = gtk_label_new(NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
234 artist_label = gtk_label_new(NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
235 album_label = gtk_label_new(NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
236 lastfm_url_entry = gtk_entry_new(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
237 gtk_editable_set_editable (GTK_EDITABLE(lastfm_url_entry),TRUE); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
238 gchar* artist_markup=g_strdup("<b>Artist:</b>"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
239 gtk_label_set_markup(GTK_LABEL(artist_label),artist_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
240 g_free(artist_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
241 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
242 gchar* title_markup=g_strdup("<b>Title:</b>"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
243 gtk_label_set_markup( GTK_LABEL(title_label),title_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
244 g_free(title_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
245 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
246 gchar* album_markup=g_strdup_printf("<b>Album:</b>"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
247 gtk_label_set_markup( GTK_LABEL(album_label),album_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
248 g_free(album_markup); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
249 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
250 love = gtk_button_new_with_label (N_("Love")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
251 ban = gtk_button_new_with_label (N_("Ban")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
252 skip = gtk_button_new_with_label (N_("Skip")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
253 add = gtk_button_new_with_label (N_("Tune in")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
254 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
255 neighbours = gtk_button_new_with_label(N_("Neighbours' radio")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
256 personal = gtk_button_new_with_label(N_("Personal radio")); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
257 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
258 box1 = gtk_hbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
259 box2 = gtk_hbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
260 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
261 vboxw = gtk_vbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
262 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
263 vbox1 = gtk_vbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
264 vbox2 = gtk_vbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
265 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
266 v_hbox1 = gtk_vbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
267 v_hbox2 = gtk_hbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
268 labelbox = gtk_vbox_new(FALSE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
269 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
270 gtk_misc_set_alignment(GTK_MISC(artist_label),0,0); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
271 gtk_misc_set_alignment(GTK_MISC(title_label),0,0); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
272 gtk_misc_set_alignment(GTK_MISC(album_label),0,0); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
273 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
274 gtk_box_pack_start(GTK_BOX(vboxw),box1,FALSE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
275 gtk_box_pack_end(GTK_BOX(vboxw),box2,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
276 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
277 gtk_box_pack_start(GTK_BOX(box1),lastfm_label,FALSE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
278 gtk_box_pack_start(GTK_BOX(box1),lastfm_url_entry,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
279 gtk_box_pack_start(GTK_BOX(box1),add,FALSE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
280 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
281 gtk_box_set_spacing(GTK_BOX(box1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
282 gtk_container_set_border_width(GTK_CONTAINER(box1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
283 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
284 gtk_box_pack_start(GTK_BOX(box2),vbox1,FALSE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
285 gtk_box_pack_start(GTK_BOX(box2),vbox2,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
286 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
287 gtk_box_pack_start(GTK_BOX(vbox1),neighbours,FALSE,TRUE,3); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
288 gtk_box_pack_start(GTK_BOX(vbox1),personal,FALSE,TRUE,3); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
289 gtk_box_set_spacing(GTK_BOX(vbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
290 gtk_container_set_border_width(GTK_CONTAINER(vbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
291 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
292 gtk_box_pack_start(GTK_BOX(vbox2),v_hbox1,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
293 gtk_box_pack_start(GTK_BOX(vbox2),v_hbox2,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
294 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
295 gtk_box_pack_start(GTK_BOX(v_hbox1),artist_label,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
296 gtk_box_pack_start(GTK_BOX(v_hbox1),title_label,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
297 gtk_box_pack_start(GTK_BOX(v_hbox1),album_label,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
298 gtk_box_set_spacing(GTK_BOX(v_hbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
299 gtk_container_set_border_width(GTK_CONTAINER(v_hbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
300 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
301 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
302 gtk_box_pack_start(GTK_BOX(v_hbox2),love,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
303 gtk_box_pack_start(GTK_BOX(v_hbox2),skip,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
304 gtk_box_pack_start(GTK_BOX(v_hbox2),ban,TRUE,TRUE,1); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
305 gtk_box_set_spacing(GTK_BOX(v_hbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
306 gtk_container_set_border_width(GTK_CONTAINER(v_hbox1),2); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
307 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
308 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
309 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
310 gtk_container_add (GTK_CONTAINER (window), vboxw); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
311 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
312 g_signal_connect (G_OBJECT (love), "button_press_event",G_CALLBACK (love_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
313 g_signal_connect (G_OBJECT (add), "button_press_event",G_CALLBACK (add_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
314 g_signal_connect (G_OBJECT (ban), "button_press_event",G_CALLBACK (ban_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
315 g_signal_connect (G_OBJECT (skip), "button_press_event",G_CALLBACK (skip_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
316 g_signal_connect (G_OBJECT (neighbours), "button_press_event",G_CALLBACK (neighbours_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
317 g_signal_connect (G_OBJECT (personal), "button_press_event",G_CALLBACK (personal_press_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
318 g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK (gtk_widget_hide_all), window); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
319 g_signal_connect (G_OBJECT (window), "key_press_event",G_CALLBACK(keypress_callback), NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
320 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
321 gtk_widget_set_size_request(GTK_WIDGET(window),400,124); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
322 gtk_window_set_resizable(GTK_WINDOW(window),FALSE); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
323 gtk_widget_show_all(gui_window); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
324 return window; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
325 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
326 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
327 static void no_lastfm_plugin_dialog(void) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
328 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
329 const gchar *markup = |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
330 N_("<b><big>The lastfm radio plugin could not be found.</big></b>\n\n" |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
331 "Check if the AudioScrobbler plugin was compiled in\n"); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
332 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
333 GtkWidget *dialog = |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
334 gtk_message_dialog_new_with_markup(NULL, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
335 GTK_DIALOG_DESTROY_WITH_PARENT, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
336 GTK_MESSAGE_ERROR, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
337 GTK_BUTTONS_OK, |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
338 _(markup)); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
339 gtk_dialog_run(GTK_DIALOG(dialog)); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
340 gtk_widget_destroy(dialog); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
341 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
342 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
343 |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
344 |
3023
49ce30748980
added lastfm GUI stub
Cristi Magherusan <majeru@atheme-project.org>
parents:
diff
changeset
|
345 void ui_lastfm(void) |
49ce30748980
added lastfm GUI stub
Cristi Magherusan <majeru@atheme-project.org>
parents:
diff
changeset
|
346 { |
3183
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
347 /*if(!mowgli_global_storage_get("lastfm_loaded")) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
348 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
349 no_lastfm_plugin_dialog(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
350 return; |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
351 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
352 */ |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
353 init_last_fm(); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
354 if(!gui_window) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
355 { |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
356 if((gui_window = ui_lastfm_create())!=NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
357 gtk_widget_show_all(gui_window); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
358 #if 0 /*here should be set the artist, title and album labels at the first run, because it isn't captured by the hook*/ |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
359 gchar* current_title = playlist_get_songtitle(current_playlist,playlist_get_position(current_playlist)); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
360 if(current_title) |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
361 change_track_data_cb(current_title,NULL); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
362 #endif |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
363 } |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
364 else |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
365 gtk_widget_show_all(gui_window); |
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
366 |
3023
49ce30748980
added lastfm GUI stub
Cristi Magherusan <majeru@atheme-project.org>
parents:
diff
changeset
|
367 } |
3183
bcf611cf5ae2
lastfm radio GUI
Cristi Magherusan <majeru@atheme-project.org>
parents:
3023
diff
changeset
|
368 |