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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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