# HG changeset patch # User Yoshiki Yazawa # Date 1184817128 -32400 # Node ID 2a6865d42dc452268309e463bec6f681ace1d867 # Parent ef8c6b02bdf7865ec0a41207c4f0db4ac2238f46 more adaptation for file:// scheme. diff -r ef8c6b02bdf7 -r 2a6865d42dc4 src/tta/libtta.c --- a/src/tta/libtta.c Tue Jul 17 13:15:16 2007 +0900 +++ b/src/tta/libtta.c Thu Jul 19 12:52:08 2007 +0900 @@ -300,6 +300,7 @@ tta_info ttainfo; char *title; gchar *utf_filename = NULL; + gchar *realfn = NULL; if (!window) { GtkWidget *vbox, *hbox, *left_vbox, *table; @@ -422,8 +423,9 @@ gtk_widget_show_all (window); } - - utf_filename = str_to_utf8(filename); + realfn = g_filename_from_uri(filename, NULL, NULL); + utf_filename = str_to_utf8(realfn ? realfn : filename); + g_free(realfn); realfn = NULL; title = g_strdup_printf(_("File Info - %s"), g_basename(utf_filename)); gtk_window_set_title(GTK_WINDOW(window), title); g_free(title); @@ -467,7 +469,7 @@ play_file (InputPlayback *playback) { gchar *filename = playback->filename; - char *title; + char *title = NULL; int datasize, origsize, bitrate; TitleInput *tuple = NULL; @@ -569,6 +571,7 @@ TitleInput *tuple = NULL; tta_info *ttainfo; VFSFile *file; + gchar *realfn = NULL; ttainfo = g_malloc0(sizeof(tta_info)); @@ -576,10 +579,12 @@ if(open_tta_file(filename, ttainfo, 0) >= 0) { tuple = bmp_title_input_new(); - tuple->file_name = g_path_get_basename(filename); - tuple->file_path = g_path_get_dirname(filename); - tuple->file_ext = extname(filename); + realfn = g_filename_from_uri(filename, NULL, NULL); + tuple->file_name = g_path_get_basename(realfn ? realfn : filename); + tuple->file_path = g_path_get_dirname(realfn ? realfn : filename); + tuple->file_ext = extname(realfn ? realfn : filename); tuple->length = ttainfo->LENGTH * 1000; + g_free(realfn); realfn = NULL; if (ttainfo->ID3.id3has) { if(ttainfo->ID3.artist && strlen((char *)ttainfo->ID3.artist)) @@ -822,11 +827,14 @@ int get_id3_tags (const char *filename, tta_info *ttainfo) { int id3v2_size = 0; gchar *str = NULL; + gchar *realfn = NULL; struct id3_file *id3file = NULL; struct id3_tag *tag = NULL; - id3file = id3_file_open (filename, ID3_FILE_MODE_READONLY); + realfn = g_filename_from_uri(filename, NULL, NULL); + id3file = id3_file_open (realfn ? realfn : filename, ID3_FILE_MODE_READONLY); + g_free(realfn); realfn = NULL; if (id3file) { tag = id3_file_tag (id3file);