pid = $pid; } /** * Returna a new Fedora Object with the QT movie ??? * @return fedora_item */ function fedoraObject() { return new fedora_item($this->pid); } /** * Tecnical metadata ?? * @param type $defaults * @param type $dsid * @return type */ function technicalMetadata($defaults = array(), $dsid = 'OBJ_EXIFTOOL') { $data = $defaults; try { $src = ObjectHelper::getStream($this->pid, $dsid); $doc = new SimpleXMLElement($src); $doc->registerXPathNamespace('File', 'http://ns.exiftool.ca/File/1.0/'); $doc->registerXPathNamespace('Composite', 'http://ns.exiftool.ca/Composite/1.0/'); $mime = reset($doc->xpath('//File:MIMEType')); $data['mime'] = $mime; if (strpos($mime, 'audio/') !== FALSE) { $data['width'] = 300; $data['height'] = 0; } else { $size = reset($doc->xpath('//Composite:ImageSize/text()')); list($width, $height) = explode('x', $size); $data['width'] = $width; $data['height'] = $height; } $data['doc'] = $src; } catch (Exception $e) { $data = $defaults; } return $data; } /** * Get Poster Frame Datastream Information ?? * @param type $dsid * @return type */ function getPosterFrameDatastreamInfo($dsid = 'FULL_SIZE') { $p = ObjectHelper::getDatastreamInfo($this->pid, $dsid); if (empty($p) || $p == ' ' || $p === FALSE) { return FALSE; } return $p; } /** * Get Media Datastream Information ?? * @param type $dsid * @param type $alt * @return type */ function getMediaDatastreamInfo($dsid = 'OBJ', $alt = array('')) { $p = ObjectHelper::getDatastreamInfo($this->pid, $dsid); if (empty($p) || $p == ' ' || $p === FALSE) { if (!empty($alt)) { $ds = array_shift($alt); return $this->getMediaDatastreamInfo($ds, $alt); } return FALSE; } return $p; } /** * Is download enabled. It always returns FALSE. ??? * @return FALSE */ function enableDownload() { return FALSE; } /** * Show the QT ??? * @global type $base_url * @return type */ function showQt() { module_load_include('inc', 'fedora_repository', 'plugins/tagging_form'); module_load_include('inc', 'fedora_repository', 'plugins/ShowStreamsInFieldSets'); module_load_include('inc', 'fedora_repository', 'api/fedora_item'); $info = $this->technicalMetadata(array('width' => 640, 'height' => 480)); $width = $info['width']; $height = $info['height']; $pframe = $this->getPosterFrameDatastreamInfo(); $media = $this->getMediaDatastreamInfo('PROXY', array('OBJ')); if ($media === FALSE) { return ''; } $path = drupal_get_path('module', 'Fedora_Repository'); drupal_add_js("$path/js/AC_Quicktime.js"); $divid = 'player' . md5($this->pid) . 'MOV'; $collection_fieldset = array( '#title' => t('Quicktime'), '#collapsible' => TRUE, '#collapsed' => FALSE, 'player' => array( '#type' => 'markup', '#prefix' => '
', '#suffix' => '
', ), ); if ($pframe !== FALSE) { $collection_fieldset['player']['poster_container'] = array( '#type' => 'markup', '#prefix' => '
', '#suffix' => '
', 'poster' => array( '#type' => 'markup', '#value' => theme('image', "fedora/repository/{$this->pid}/{$pframe->ID}/poster.jpg", '', '', NULL, FALSE) ) 'play' => array( '#type' => 'markup', '#prefix' => '
', '#suffix' => '
', '#value' => ' ', ), ); } if ($this->enableDownload()) { //$url = url(); $collection_fieldset['download_link'] = array( '#type' => 'markup', '#value' => l(t('Download Media File'), "fedora/repository/{$this->pid}/OBJ/MOV.mov", array('attributes' => array('class' => 'download'))), ); } $src = url("fedora/repository/{$this->pid}/{$media->ID}/MOV.mov"; $qtparams = "'autostart', '" . ($pframe !== FALSE ? 'TRUE' : 'FALSE') . "', "; $init = <<