$path = substr($fullPath, strlen($prefix));
$container = $smt->getContainerByPath($path);
+ if ($container === null) {
+ sendMessage('Error accessing ' . $fullPath);
+ return;
+ }
+
$listItems = array();
$it = $container->getItemIterator(false);
$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);
+ if (isset($GLOBALS['cacheDir']) && $GLOBALS['cacheDir'] != '') {
+ $itemUrl = $host1 . 'transcode-cache.php'
+ . '?url=' . urlencode($itemUrl);
+ } else {
+ $itemUrl = $host1 . 'transcode-nocache.php'
+ . '?url=' . urlencode($itemUrl);
+ }
}
$listItems[] = getEpisodeItem(
$item->title,
);
}
+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