Make client audio type support configurable
[noxon-gateway.git] / src / mediatomb.php
index d80e20ee8681f85fc41bc931d9e81fe05cc92fcb..532bbef892ed36d7fc2adc71863907e93c713a14 100644 (file)
@@ -65,7 +65,8 @@ function mediatombAddFile(&$listItems, $item)
 
     $di = $item->getDetailedItem();
     $itemUrl = $item->url;
-    if ($di->mimetype !== 'audio/mpeg') {
+    if (!clientSupportsType($di->mimetype)) {
+        //client wants transcoded file
         //noxon iRadio cube does not want to play .ogg files
         $itemUrl = $host1 . 'transcode-nocache.php'
             . '?url=' . urlencode($itemUrl);
@@ -78,6 +79,20 @@ function mediatombAddFile(&$listItems, $item)
     );
 }
 
+function clientSupportsType($mimetype)
+{
+    if ($mimetype === 'audio/mpeg') {
+        return true;
+    }
+    $ip = $_SERVER['REMOTE_ADDR'];
+    if (isset($GLOBALS['clientSupport'][$ip][$mimetype])
+        && $GLOBALS['clientSupport'][$ip][$mimetype] === true
+    ) {
+        return true;
+    }
+    return false;
+}
+
 /**
  * Single file mode - shows directories that only have a single file in them.
  * Each audio file gets its own virtual directory, containing only the