comparison src/vorbis/configure.c @ 421:1a82af4f13cf trunk

[svn] More xmms_create_dirbrowser cleanup
author mf0102
date Sun, 14 Jan 2007 02:35:15 -0800
parents 3da1b8942b8b
children d124034ebea3
comparison
equal deleted inserted replaced
420:810787dce408 421:1a82af4f13cf
9 #include <gtk/gtk.h> 9 #include <gtk/gtk.h>
10 #include <stdlib.h> 10 #include <stdlib.h>
11 #include <string.h> 11 #include <string.h>
12 12
13 #include "audacious/configdb.h" 13 #include "audacious/configdb.h"
14 #include "audacious/dirbrowser.h"
15 #include "audacious/titlestring.h" 14 #include "audacious/titlestring.h"
16 #include "audacious/util.h" 15 #include "audacious/util.h"
17 #include "audacious/plugin.h" 16 #include "audacious/plugin.h"
18 17
19 extern GMutex *vf_mutex; 18 extern GMutex *vf_mutex;
20 19
21 static GtkWidget *vorbis_configurewin = NULL; 20 static GtkWidget *vorbis_configurewin = NULL;
22 static GtkWidget *vbox, *notebook; 21 static GtkWidget *vbox, *notebook;
23 22
24 static GtkWidget *streaming_save_entry;
25 static GtkWidget *streaming_save_use, *streaming_size_spin, 23 static GtkWidget *streaming_save_use, *streaming_size_spin,
26 *streaming_pre_spin; 24 *streaming_pre_spin;
27 static GtkWidget *streaming_save_dirbrowser, *streaming_save_hbox; 25 static GtkWidget *streaming_save_dirbrowser, *streaming_save_hbox;
28 static GtkWidget *title_tag_override, *title_tag_box, *title_tag_entry, 26 static GtkWidget *title_tag_override, *title_tag_box, *title_tag_entry,
29 *title_desc; 27 *title_desc;
44 vorbis_cfg.http_prebuffer = 42 vorbis_cfg.http_prebuffer =
45 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(streaming_pre_spin)); 43 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(streaming_pre_spin));
46 44
47 vorbis_cfg.save_http_stream = 45 vorbis_cfg.save_http_stream =
48 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(streaming_save_use)); 46 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(streaming_save_use));
49 g_free(vorbis_cfg.save_http_path); 47
48 if (vorbis_cfg.save_http_path != NULL)
49 g_free(vorbis_cfg.save_http_path);
50 vorbis_cfg.save_http_path = 50 vorbis_cfg.save_http_path =
51 g_strdup(gtk_entry_get_text(GTK_ENTRY(streaming_save_entry))); 51 g_strdup(gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(streaming_save_dirbrowser)));
52 g_free(vorbis_cfg.tag_format); 52
53 if (vorbis_cfg.tag_format != NULL)
54 g_free(vorbis_cfg.tag_format);
53 vorbis_cfg.tag_format = 55 vorbis_cfg.tag_format =
54 g_strdup(gtk_entry_get_text(GTK_ENTRY(title_tag_entry))); 56 g_strdup(gtk_entry_get_text(GTK_ENTRY(title_tag_entry)));
55 57
56 tb = GTK_TOGGLE_BUTTON(title_tag_override); 58 tb = GTK_TOGGLE_BUTTON(title_tag_override);
57 vorbis_cfg.tag_override = gtk_toggle_button_get_active(tb); 59 vorbis_cfg.tag_override = gtk_toggle_button_get_active(tb);
90 bmp_cfg_db_close(db); 92 bmp_cfg_db_close(db);
91 gtk_widget_destroy(vorbis_configurewin); 93 gtk_widget_destroy(vorbis_configurewin);
92 } 94 }
93 95
94 static void 96 static void
95 streaming_save_dirbrowser_cb(gchar * dir)
96 {
97 gtk_entry_set_text(GTK_ENTRY(streaming_save_entry), dir);
98 }
99
100 static void
101 streaming_save_browse_cb(GtkWidget * w, gpointer data)
102 {
103 if (streaming_save_dirbrowser)
104 return;
105
106 streaming_save_dirbrowser =
107 xmms_create_dir_browser(_("Select the directory where you want "
108 "to store the Ogg Vorbis streams:"),
109 vorbis_cfg.save_http_path,
110 GTK_SELECTION_SINGLE,
111 streaming_save_dirbrowser_cb);
112 g_signal_connect(G_OBJECT(streaming_save_dirbrowser),
113 "destroy", G_CALLBACK(gtk_widget_destroyed),
114 &streaming_save_dirbrowser);
115 gtk_window_set_transient_for(GTK_WINDOW(streaming_save_dirbrowser),
116 GTK_WINDOW(vorbis_configurewin));
117 gtk_widget_show(streaming_save_dirbrowser);
118 }
119
120 static void
121 streaming_save_use_cb(GtkWidget * w, gpointer data) 97 streaming_save_use_cb(GtkWidget * w, gpointer data)
122 { 98 {
123 gboolean save_stream; 99 gboolean save_stream;
124 100
125 save_stream = 101 save_stream =
129 } 105 }
130 106
131 static void 107 static void
132 configure_destroy(GtkWidget * w, gpointer data) 108 configure_destroy(GtkWidget * w, gpointer data)
133 { 109 {
134 /* if (streaming_save_dirbrowser) */ 110 // nothing here currently
135 /* gtk_widget_destroy(streaming_save_dirbrowser); */
136 } 111 }
137 112
138 static void 113 static void
139 title_tag_override_cb(GtkWidget * w, gpointer data) 114 title_tag_override_cb(GtkWidget * w, gpointer data)
140 { 115 {
159 GtkWidget *streaming_vbox; 134 GtkWidget *streaming_vbox;
160 GtkWidget *streaming_buf_frame, *streaming_buf_hbox; 135 GtkWidget *streaming_buf_frame, *streaming_buf_hbox;
161 GtkWidget *streaming_size_box, *streaming_size_label; 136 GtkWidget *streaming_size_box, *streaming_size_label;
162 GtkWidget *streaming_pre_box, *streaming_pre_label; 137 GtkWidget *streaming_pre_box, *streaming_pre_label;
163 GtkWidget *streaming_save_frame, *streaming_save_vbox; 138 GtkWidget *streaming_save_frame, *streaming_save_vbox;
164 GtkWidget *streaming_save_label, *streaming_save_browse; 139 GtkWidget *streaming_save_label;
165 GtkWidget *title_frame, *title_tag_vbox, *title_tag_label; 140 GtkWidget *title_frame, *title_tag_vbox, *title_tag_label;
166 GtkWidget *rg_frame, *rg_vbox; 141 GtkWidget *rg_frame, *rg_vbox;
167 GtkWidget *bbox, *ok, *cancel; 142 GtkWidget *bbox, *ok, *cancel;
168 GtkWidget *rg_type_frame, *rg_type_vbox, *rg_album_gain; 143 GtkWidget *rg_type_frame, *rg_type_vbox, *rg_album_gain;
169 GtkObject *streaming_size_adj, *streaming_pre_adj; 144 GtkObject *streaming_size_adj, *streaming_pre_adj;
262 237
263 streaming_save_label = gtk_label_new(_("Path:")); 238 streaming_save_label = gtk_label_new(_("Path:"));
264 gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_label, 239 gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_label,
265 FALSE, FALSE, 0); 240 FALSE, FALSE, 0);
266 241
267 streaming_save_entry = gtk_entry_new(); 242 streaming_save_dirbrowser =
268 gtk_entry_set_text(GTK_ENTRY(streaming_save_entry), 243 gtk_file_chooser_button_new (_("Pick a folder"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
269 vorbis_cfg.save_http_path); 244 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(streaming_save_dirbrowser),
270 gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_entry, 245 vorbis_cfg.save_http_path);
271 TRUE, TRUE, 0); 246 gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_dirbrowser, TRUE, TRUE, 0);
272
273 streaming_save_browse = gtk_button_new_with_label(_("Browse"));
274 g_signal_connect(G_OBJECT(streaming_save_browse), "clicked",
275 G_CALLBACK(streaming_save_browse_cb), NULL);
276 gtk_box_pack_start(GTK_BOX(streaming_save_hbox), streaming_save_browse,
277 FALSE, FALSE, 0);
278 247
279 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), streaming_vbox, 248 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), streaming_vbox,
280 gtk_label_new(_("Streaming"))); 249 gtk_label_new(_("Streaming")));
281 250
282 /* Title config.. */ 251 /* Title config.. */