$path = substr($fullPath, strlen($prefix));
$container = $smt->getContainerByPath($path);
+ if ($container === null) {
+ sendMessage('Error accessing ' . $fullPath);
+ return;
+ }
+
$listItems = array();
- addPreviousItem($listItems, $fullPath);
$it = $container->getItemIterator(false);
$it->rewind();
mediatombAddFile($listItems, $item);
}
- sendListItems($listItems);
+ sendListItems($listItems, buildPreviousItem($fullPath));
}
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);
+ 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
$container = $smt->getContainerByPath($path);
$listItems = array();
+ $previous = null;
if ($fileMode) {
//show single file to play
- addPreviousItem($listItems, pathEncode($fullPath));
+ $previous = buildPreviousItem(pathEncode($fullPath));
$item = $smt->getSingleItem($container, $fileTitle, false);
mediatombAddFile($listItems, $item);
} else {
- addPreviousItem($listItems, pathEncode('internetradio/' . $path . '/dummy'));
+ $previous = buildPreviousItem(pathEncode('internetradio/' . $path . '/dummy'));
//browse directory
foreach ($container->getItemIterator(false) as $item) {
}
}
- sendListItems($listItems);
+ sendListItems($listItems, $previous);
}
?>