Mercurial > audlegacy
comparison src/audacious/playlist.c @ 4076:8f9966f00c98
deep copy is needed!
author | Yoshiki Yazawa <yaz@cc.rim.or.jp> |
---|---|
date | Sat, 08 Dec 2007 02:14:10 +0900 |
parents | 6f4ee8c0d0d7 |
children | 96d8114f0b89 |
comparison
equal
deleted
inserted
replaced
4075:6f4ee8c0d0d7 | 4076:8f9966f00c98 |
---|---|
153 #define EXT_HAVE_SUBTUNE 2 | 153 #define EXT_HAVE_SUBTUNE 2 |
154 #define EXT_CUSTOM 3 | 154 #define EXT_CUSTOM 3 |
155 | 155 |
156 static gint filter_by_extension(const gchar *filename); | 156 static gint filter_by_extension(const gchar *filename); |
157 static gboolean is_http(const gchar *filename); | 157 static gboolean is_http(const gchar *filename); |
158 static gboolean do_precheck(Playlist *playlist, const gchar *uri, ProbeResult *pr); | 158 static gboolean do_precheck(Playlist *playlist, const gchar *uri, ProbeResult **pr); |
159 | 159 |
160 static mowgli_heap_t *playlist_entry_heap = NULL; | 160 static mowgli_heap_t *playlist_entry_heap = NULL; |
161 | 161 |
162 /* *********************** playlist entry code ********************** */ | 162 /* *********************** playlist entry code ********************** */ |
163 | 163 |
779 playlist_load_ins(playlist, filename, pos); | 779 playlist_load_ins(playlist, filename, pos); |
780 playlist->loading_playlist = FALSE; | 780 playlist->loading_playlist = FALSE; |
781 return TRUE; | 781 return TRUE; |
782 } | 782 } |
783 | 783 |
784 if(do_precheck(playlist, filename, pr)) { | 784 if(do_precheck(playlist, filename, &pr)) { |
785 if(pr) { | 785 if(pr) { |
786 dec = pr->ip; | 786 dec = pr->ip; |
787 tuple = pr->tuple; | 787 tuple = pr->tuple; |
788 } | 788 } |
789 /* add filename to playlist */ | 789 /* add filename to playlist */ |
1695 | 1695 |
1696 g_return_if_fail(uri != NULL); | 1696 g_return_if_fail(uri != NULL); |
1697 g_return_if_fail(playlist_name != NULL); | 1697 g_return_if_fail(playlist_name != NULL); |
1698 g_return_if_fail(playlist != NULL); | 1698 g_return_if_fail(playlist != NULL); |
1699 | 1699 |
1700 if(do_precheck(playlist, uri, pr)) { | 1700 if(do_precheck(playlist, uri, &pr)) { |
1701 __playlist_ins_file(playlist, uri, pos, NULL, title, len, pr ? pr->ip : NULL); | 1701 __playlist_ins_file(playlist, uri, pos, NULL, title, len, pr ? pr->ip : NULL); |
1702 } | 1702 } |
1703 g_free(pr); | 1703 g_free(pr); |
1704 } | 1704 } |
1705 | 1705 |
1714 | 1714 |
1715 g_return_if_fail(uri != NULL); | 1715 g_return_if_fail(uri != NULL); |
1716 g_return_if_fail(playlist_name != NULL); | 1716 g_return_if_fail(playlist_name != NULL); |
1717 g_return_if_fail(playlist != NULL); | 1717 g_return_if_fail(playlist != NULL); |
1718 | 1718 |
1719 if(do_precheck(playlist, uri, pr)) { | 1719 if(do_precheck(playlist, uri, &pr)) { |
1720 __playlist_ins_file(playlist, uri, pos, tuple, NULL, -1, pr ? pr->ip : NULL); | 1720 __playlist_ins_file(playlist, uri, pos, tuple, NULL, -1, pr ? pr->ip : NULL); |
1721 } | 1721 } |
1722 g_free(pr); | 1722 g_free(pr); |
1723 | 1723 |
1724 } | 1724 } |
1725 | 1725 |
1726 static gboolean | 1726 static gboolean |
1727 do_precheck(Playlist *playlist, const gchar *uri, ProbeResult *pr) | 1727 do_precheck(Playlist *playlist, const gchar *uri, ProbeResult **pr) |
1728 { | 1728 { |
1729 gint ext_flag = filter_by_extension(uri); | 1729 gint ext_flag = filter_by_extension(uri); |
1730 gboolean http_flag = is_http(uri); | 1730 gboolean http_flag = is_http(uri); |
1731 gboolean rv = FALSE; | 1731 gboolean rv = FALSE; |
1732 | 1732 |
1746 rv = TRUE; | 1746 rv = TRUE; |
1747 } | 1747 } |
1748 } | 1748 } |
1749 /* find decorder for local file */ | 1749 /* find decorder for local file */ |
1750 else { | 1750 else { |
1751 pr = input_check_file(uri, TRUE); | 1751 *pr = input_check_file(uri, TRUE); |
1752 if(pr) { | 1752 if(*pr) { |
1753 AUDDBG("got pr\n"); | 1753 AUDDBG("got pr\n"); |
1754 rv = TRUE; | 1754 rv = TRUE; |
1755 } | 1755 } |
1756 } | 1756 } |
1757 | 1757 |