comparison audacious/playlist.c @ 1232:56b57ed0a136 trunk

[svn] - use tuples internally
author nenolod
date Wed, 14 Jun 2006 20:58:37 -0700
parents 6fe822f5a3c0
children 7918849bad3e
comparison
equal deleted inserted replaced
1231:502b369314c1 1232:56b57ed0a136
161 playlist_entry_free(PlaylistEntry * entry) 161 playlist_entry_free(PlaylistEntry * entry)
162 { 162 {
163 if (!entry) 163 if (!entry)
164 return; 164 return;
165 165
166 g_free(entry->filename); 166 if (entry->tuple != NULL)
167 g_free(entry->title); 167 bmp_title_input_free(entry->tuple);
168
169 if (entry->filename != NULL)
170 g_free(entry->filename);
171
172 if (entry->title != NULL)
173 g_free(entry->title);
174
168 g_free(entry); 175 g_free(entry);
169 } 176 }
170 177
171 static gboolean 178 static gboolean
172 playlist_entry_get_info(PlaylistEntry * entry) 179 playlist_entry_get_info(PlaylistEntry * entry)
173 { 180 {
174 gchar *title = NULL; 181 TitleInput *tuple;
175 gint length = -1;
176 182
177 g_return_val_if_fail(entry != NULL, FALSE); 183 g_return_val_if_fail(entry != NULL, FALSE);
178 184
179 if (entry->decoder == NULL) 185 if (entry->decoder == NULL || entry->decoder->get_song_tuple == NULL)
180 input_get_song_info(entry->filename, &title, &length); 186 tuple = input_get_song_tuple(entry->filename);
181 else if (entry->decoder->get_song_info != NULL) 187 else
182 entry->decoder->get_song_info(entry->filename, &title, &length); 188 tuple = entry->decoder->get_song_tuple(entry->filename);
183 189
184 if (!title && length == -1) 190 if (tuple == NULL)
185 return FALSE; 191 return FALSE;
186 192
187 /* entry is still around */ 193 /* entry is still around */
188 entry->title = title; 194 entry->title = xmms_get_titlestring(xmms_get_gentitle_format(), tuple);
189 entry->length = length; 195 entry->length = tuple->length;
196 entry->tuple = tuple;
190 197
191 return TRUE; 198 return TRUE;
192 } 199 }
193
194 200
195 const gchar * 201 const gchar *
196 playlist_get_current_name(void) 202 playlist_get_current_name(void)
197 { 203 {
198 return playlist_current_name; 204 return playlist_current_name;