[audio-length]');
return token_replace($format, 'node', $node);
}
/**
* Format the audio node for display
*/
function theme_audio_display($node) {
$items = array();
if ($player = audio_get_node_player($node)) {
$items[] = $player;
}
foreach (audio_get_tag_settings() as $tag => $setting) {
if (!$setting['hidden'] && isset($node->audio_tags[$tag])) {
$items[] = ''. t(ucwords(str_replace('_', ' ', $tag))) .': '
. theme('audio_format_tag', $tag, $node->audio_tags[$tag], $setting);
}
}
$items[] = ''. t('Length') .': '. theme('audio_format_filelength', $node->audio);
$items[] = ''. t('Format') .': '. theme('audio_format_fileformat', $node->audio);
$output = "
\n";
// give audio_image.module (or a theme) a chance to display the images.
if (isset($node->audio_images)) {
$output .= theme('audio_images', $node->audio_images);
}
$output .= theme('item_list', $items, NULL, 'ul', array('class' => 'audio-info'));
$output .= "
\n";
return $output ;
}
/**
* Format a metadata tag.
*/
function theme_audio_format_tag($tag, $value, $setting) {
if ($setting['browsable']) {
return l($value, "audio/by/$tag/". audio_clean_tag($value));
}
else {
switch ($tag) {
// url tags
case 'url_file':
case 'url_artist':
case 'url_source':
case 'url_station':
return ''. check_plain($value) .'';
default:
return check_plain($value);
}
}
}
/**
* Return a string describing the node's file size and play time.
*
* @param $fileinfo
* Audio node's audio array.
*/
function theme_audio_format_filelength($fileinfo) {
$args['@filesize'] = format_size(isset($fileinfo['file']->filesize) ? $fileinfo['file']->filesize : 0);
if (empty($fileinfo['playtime'])) {
return t('@filesize', $args);
}
else {
$args['@playtime'] = $fileinfo['playtime'];
return t('@playtime minutes (@filesize)', $args);
}
}
/**
* Return a string describing the node's file information.
*
* @param $fileinfo
* Audio node's audioinfo array.
*/
function theme_audio_format_fileformat($fileinfo) {
$format = '';
$args = array();
if (!empty($fileinfo['format'])) {
$format .= '@format ';
$args['@format'] = check_plain(drupal_strtoupper($fileinfo['format']));
}
if (!empty($fileinfo['channel_mode'])) {
$format .= '@channel_mode ';
$args['@channel_mode'] = check_plain(drupal_ucfirst($fileinfo['channel_mode']));
}
if (!empty($fileinfo['sample_rate'])) {
$format .= '@sampleratekHz ';
$args['@samplerate'] = (integer) ($fileinfo['sample_rate'] / 1000);
}
if (!empty($fileinfo['bitrate'])) {
$format .= '@bitrateKbps ';
$args['@bitrate'] = (integer) ($fileinfo['bitrate'] / 1000);
if (!empty($fileinfo['bitrate_mode'])) {
$format .= '(@bitrate_mode)';
$args['@bitrate_mode'] = check_plain(drupal_strtoupper($fileinfo['bitrate_mode']));
}
}
return strtr($format, $args);
}