/**
  * Get Mime type
  *
  * @param	string		full path of file (incl. filename)
  * @param	string		file name (must be provided if no full path is given)
  * @param	string		mime type that will be used initially. Provide
  *						any mime type headers
  */
 static function getMimeType($a_file = "", $a_filename = "", $a_mime = "")
 {
     global $ilLog;
     $mime = "";
     // if we have an http reference , we check for youtube
     if (in_array(substr($a_file, 0, 7), array("http://", "https:/"))) {
         if (is_int(strpos($a_file, "youtube."))) {
             return "video/youtube";
         }
         if (is_int(strpos($a_file, "vimeo."))) {
             return "video/vimeo";
         }
     }
     // determine extension
     $ext = "";
     if ($a_filename != "") {
         $path = pathinfo($a_filename);
         $ext = "." . strtolower($path["extension"]);
     } else {
         if ($a_file != "") {
             $path = pathinfo($a_file);
             $ext = "." . strtolower($path["extension"]);
         }
     }
     $types_map = ilMimeTypeUtil::getExt2MimeMap();
     if ($types_map[$ext] != "") {
         $mime = $types_map[$ext];
     }
     if ($mime == "" && extension_loaded('Fileinfo') && is_file($a_file)) {
         $finfo = finfo_open(FILEINFO_MIME);
         $mime = finfo_file($finfo, $a_file);
         finfo_close($finfo);
         if ($pos = strpos($mime, ' ')) {
             $mime = substr($mime, 0, $pos);
         }
         // remove trailing ";"
         if (substr($mime, strlen($mime) - 1, 1) == ";") {
             $mime = substr($mime, 0, strlen($mime) - 1);
         }
     }
     if ($mime == "") {
         $mime = "application/octet-stream";
     }
     return $mime;
 }
 /**
  * Constructor
  * @access public
  */
 function ilObjMediaCastGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output = true)
 {
     global $ilCtrl, $lng;
     $this->type = "mcst";
     $this->ilObjectGUI($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
     $lng->loadLanguageModule("mcst");
     $lng->loadLanguageModule("news");
     $ilCtrl->saveParameter($this, "item_id");
     include_once "./Modules/MediaCast/classes/class.ilMediaCastSettings.php";
     $settings = ilMediaCastSettings::_getInstance();
     $this->purposeSuffixes = $settings->getPurposeSuffixes();
     $this->mimeTypes = array();
     $mime_types = $settings->getMimeTypes();
     foreach ($mime_types as $mt) {
         $this->mimeTypes[$mt] = $mt;
     }
     include_once "./Services/Utilities/classes/class.ilMimeTypeUtil.php";
     foreach (ilMimeTypeUtil::getExt2MimeMap() as $mt) {
         $this->mimeTypes[$mt] = $mt;
     }
     asort($this->mimeTypes);
 }
 /**
  * Init storage class (ilSetting)
  * @access private
  * 
  */
 private function initStorage()
 {
     include_once './Services/Administration/classes/class.ilSetting.php';
     $this->storage = new ilSetting('mcst');
     include_once './Modules/MediaCast/classes/class.ilObjMediaCast.php';
     $this->purposeSuffixes = array_flip(ilObjMediaCast::$purposes);
     $this->purposeSuffixes["Standard"] = array("mp3", "flv", "mp4", "m4v", "mov", "wmv", "gif", "png");
     $this->purposeSuffixes["AudioPortable"] = array("mp3");
     $this->purposeSuffixes["VideoPortable"] = array("mp4", "m4v", "mov");
     $this->setDefaultAccess("users");
     include_once "./Services/Utilities/classes/class.ilMimeTypeUtil.php";
     $mimeTypes = array_unique(array_values(ilMimeTypeUtil::getExt2MimeMap()));
     sort($mimeTypes);
     $this->setMimeTypes($mimeTypes);
 }