diff src/audacious/input.c @ 3147:f8a449aa8a6f trunk

branch merge
author Tomasz Mon <desowin@gmail.com>
date Mon, 23 Jul 2007 10:39:01 +0200
parents 0aaad77951c7
children 5161ced1bce2 8775dfc57ead
line wrap: on
line diff
--- a/src/audacious/input.c	Mon Jul 23 10:38:18 2007 +0200
+++ b/src/audacious/input.c	Mon Jul 23 10:39:01 2007 +0200
@@ -371,6 +371,27 @@
     if (tmp != NULL && g_ascii_isdigit(*(tmp + 1)))
         *tmp = '\0';
 
+    /* CD-Audio uses cdda:// dummy paths, no filedescriptor handling for it */
+    if (!g_strncasecmp(filename, "cdda://", 7)) {
+        for (node = get_input_list(); node != NULL; node = g_list_next(node))
+        {
+            ip = INPUT_PLUGIN(node->data);
+            if (!ip || !input_is_enabled(ip->filename))
+                continue;
+            if (ip->is_our_file != NULL)
+                ret = ip->is_our_file(filename_proxy);
+            if (ret > 0)
+            {
+                g_free(filename_proxy);
+                pr = g_new0(ProbeResult, 1);
+                pr->ip = ip;
+                return pr;
+            }
+        }
+        g_free(filename_proxy);
+        return NULL;
+    }
+
     fd = vfs_buffered_file_new_from_uri(tmp_uri);
     g_free(tmp_uri);
 
@@ -393,7 +414,7 @@
         vfs_fclose(fd);
 
         pr = g_new0(ProbeResult, 1);
-        pr->ip = NULL;
+        pr->ip = ip;
 
         return pr;
     }