diff options
author | Benjamin Drung <bdrung@ubuntu.com> | 2010-09-03 19:20:19 +0200 |
---|---|---|
committer | Benjamin Drung <bdrung@ubuntu.com> | 2010-09-03 19:20:19 +0200 |
commit | 01b842c996bdca86fcaaf80812550ed83d646d9b (patch) | |
tree | 4c07b5e2f3acfedaf5c366ef8dbbff3c704b8967 /src | |
parent | 4d82ce30fdda4dd8376819a65893daf4781af4ad (diff) |
Imported Upstream version 2.4.0
Diffstat (limited to 'src')
-rw-r--r-- | src/audacious/credits.c | 2 | ||||
-rw-r--r-- | src/audacious/playlist-new.c | 1 | ||||
-rw-r--r-- | src/audacious/ui_albumart.c | 12 | ||||
-rw-r--r-- | src/audacious/ui_preferences.c | 6 | ||||
-rw-r--r-- | src/libaudgui/libaudgui-gtk.h | 1 | ||||
-rw-r--r-- | src/libaudgui/util.c | 30 | ||||
-rw-r--r-- | src/libaudtag/id3/id3v22.c | 7 | ||||
-rw-r--r-- | src/libaudtag/id3/id3v24.c | 8 |
8 files changed, 51 insertions, 16 deletions
diff --git a/src/audacious/credits.c b/src/audacious/credits.c index dac9eed..b304f0d 100644 --- a/src/audacious/credits.c +++ b/src/audacious/credits.c @@ -260,6 +260,8 @@ static const gchar *translators_text[] = { NULL, N_("Polish:"), "Wojciech Myrda", + "Michał Kiedrowicz", + "Szymon Weihs", NULL, N_("Portugese:"), "Luís Picciochi Oliveira", diff --git a/src/audacious/playlist-new.c b/src/audacious/playlist-new.c index fd9c16f..f32ab85 100644 --- a/src/audacious/playlist-new.c +++ b/src/audacious/playlist-new.c @@ -1324,6 +1324,7 @@ void playlist_delete_selected(gint playlist_num) playlist->entries = others; number_entries(playlist, 0, index_count(playlist->entries)); + playlist->selected_count = 0; playlist->selected_length = 0; if (stop && playback_get_playing ()) diff --git a/src/audacious/ui_albumart.c b/src/audacious/ui_albumart.c index 2662d3e..6bbcb1e 100644 --- a/src/audacious/ui_albumart.c +++ b/src/audacious/ui_albumart.c @@ -123,9 +123,6 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar * if (cfg.recurse_for_cover && depth > cfg.recurse_for_cover_depth) return NULL; - if (str_has_prefix_nocase(path, "file://")) - path += 7; - d = g_dir_open(path, 0, NULL); if (d) { @@ -194,10 +191,15 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar * gchar * get_associated_image_file (const gchar * filename) { - gchar * path = g_path_get_dirname (filename); - gchar * base = g_path_get_basename (filename); + gchar * unesc = g_filename_from_uri (filename, NULL, NULL); + if (! unesc) + return NULL; + + gchar * path = g_path_get_dirname (unesc); + gchar * base = g_path_get_basename (unesc); gchar * image_file = fileinfo_recursive_get_image (path, base, 0); + g_free (unesc); g_free (path); g_free (base); return image_file; diff --git a/src/audacious/ui_preferences.c b/src/audacious/ui_preferences.c index 45a4fdd..82c778e 100644 --- a/src/audacious/ui_preferences.c +++ b/src/audacious/ui_preferences.c @@ -720,6 +720,7 @@ create_plugin_preferences(PluginPreferences *settings) g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(plugin_preferences_ok), settings); gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0); + gtk_widget_set_can_default (ok, TRUE); gtk_widget_grab_default(ok); apply = gtk_button_new_from_stock(GTK_STOCK_APPLY); @@ -1133,7 +1134,10 @@ on_cbox_changed_string(GtkComboBox * combobox, PreferencesWidget *widget) gint position = 0; position = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox)); - *((gchar **)widget->cfg) = (gchar *)widget->data.combo.elements[position].value; + + g_free(*((gchar **)widget->cfg)); + + *((gchar **)widget->cfg) = g_strdup(widget->data.combo.elements[position].value); } static void diff --git a/src/libaudgui/libaudgui-gtk.h b/src/libaudgui/libaudgui-gtk.h index 688a24f..f9316eb 100644 --- a/src/libaudgui/libaudgui-gtk.h +++ b/src/libaudgui/libaudgui-gtk.h @@ -54,6 +54,7 @@ void audgui_simple_message (GtkWidget * * widget, GtkMessageType type, void audgui_connect_check_box (GtkWidget * box, gboolean * setting); GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size); +GdkPixbuf * audgui_pixbuf_for_file (const gchar * filename); void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size); #endif diff --git a/src/libaudgui/util.c b/src/libaudgui/util.c index 87121a8..83e4ce2 100644 --- a/src/libaudgui/util.c +++ b/src/libaudgui/util.c @@ -19,12 +19,13 @@ * using our public API to be a derived work. */ -#define DEBUG #include <gdk/gdkkeysyms.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gtk/gtk.h> #include <audacious/debug.h> +#include <audacious/plugin.h> +#include <audacious/misc.h> #include "libaudgui.h" #include "libaudgui-gtk.h" @@ -104,6 +105,33 @@ GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size) return pixbuf; } +GdkPixbuf * audgui_pixbuf_for_file (const gchar * name) +{ + InputPlugin * decoder = aud_file_find_decoder (name, FALSE); + + if (! decoder) + return NULL; + + void * data; + gint size; + + if (aud_file_read_image (name, decoder, & data, & size)) + { + GdkPixbuf * p = audgui_pixbuf_from_data (data, size); + g_free (data); + return p; + } + + gchar * assoc = aud_get_associated_image_file (name); + + if (! assoc) + return NULL; + + GdkPixbuf * p = gdk_pixbuf_new_from_file (assoc, NULL); + g_free (assoc); + return p; +} + void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size) { gint width = gdk_pixbuf_get_width (* pixbuf); diff --git a/src/libaudtag/id3/id3v22.c b/src/libaudtag/id3/id3v22.c index ceec8e2..331b366 100644 --- a/src/libaudtag/id3/id3v22.c +++ b/src/libaudtag/id3/id3v22.c @@ -138,7 +138,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version, gboolean syncsafe, gint * frame_size, gchar * key, guchar * * data, gint * size) { ID3v2FrameHeader header; - gint skip = 0, i; + gint i; guint32 hdrsz = 0; if ((max_size -= sizeof (ID3v2FrameHeader)) < 0) @@ -168,10 +168,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version, * frame_size = sizeof (ID3v2FrameHeader) + hdrsz; sprintf (key, "%.3s", header.key); - if (skip > 0 && vfs_fseek (handle, skip, SEEK_CUR)) - return FALSE; - - * size = hdrsz - skip; + * size = hdrsz; * data = g_malloc (* size); if (vfs_fread (* data, 1, * size, handle) != * size) diff --git a/src/libaudtag/id3/id3v24.c b/src/libaudtag/id3/id3v24.c index 5d59a69..9d9d482 100644 --- a/src/libaudtag/id3/id3v24.c +++ b/src/libaudtag/id3/id3v24.c @@ -300,7 +300,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version, (GUINT32_FROM_BE (header.size)); header.flags = GUINT16_FROM_BE (header.flags); - if (header.size > max_size) + if (header.size > max_size || header.size == 0) return FALSE; AUDDBG ("Found frame:\n"); @@ -322,7 +322,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version, if (header.flags & ID3_FRAME_HAS_LENGTH) skip += 4; - if (skip > 0 && vfs_fseek (handle, skip, SEEK_CUR)) + if ((skip > 0 && vfs_fseek (handle, skip, SEEK_CUR)) || skip >= header.size) return FALSE; * size = header.size - skip; @@ -484,7 +484,7 @@ static void associate_string (Tuple * tuple, gint field, const gchar * { gchar * text = decode_text_frame (data, size); - if (text == NULL) + if (text == NULL || ! text[0]) return; if (customfield != NULL) @@ -501,7 +501,7 @@ static void associate_int (Tuple * tuple, gint field, const gchar * { gchar * text = decode_text_frame (data, size); - if (text == NULL) + if (text == NULL || ! text[0]) return; if (customfield != NULL) |