/**
  * Sets jingle of the station.
  * @use	$config['audioFormats']
  */
 function setJingle($filename, $copy = false)
 {
     global $config, $page;
     $source = $filename;
     if (!is_file($source)) {
         raiseError("no such file: {$source}");
     }
     $srcFile = new sotf_AudioFile($source);
     $target = $this->getMetaDir() . '/jingle_' . $srcFile->getFormatFilename();
     debug("jingle file", $target);
     if ($srcFile->type != 'audio') {
         raiseError("this is not an audio file");
     }
     if (is_file($target)) {
         raiseError($page->getlocalized('format_already_present'));
     }
     if ($copy) {
         $success = copy($source, $target);
     } else {
         $success = rename($source, $target);
     }
     if (!$success) {
         raiseError("could not copy/move {$source}");
     }
     return true;
     //TODO? save into database
 }
 function saveFileInfo($filepath, $mainContent = false)
 {
     global $db;
     // convert boolean into pgsql format
     if ($mainContent) {
         $mainContent = 'true';
     } else {
         $mainContent = 'false';
     }
     // get audio properties of file
     $file = new sotf_AudioFile($filepath);
     // find if this is an existing file
     if ($file->isAudio()) {
         $fileInfo = new sotf_NodeObject('sotf_media_files');
     } else {
         $fileInfo = new sotf_NodeObject('sotf_other_files');
     }
     $fileInfo->set("prog_id", $this->id);
     $fileInfo->set("filename", $file->name);
     $fileInfo->find();
     // save file info into database
     if ($file->isAudio()) {
         $fileInfo->set('play_length', round($file->duration));
         $fileInfo->set('type', $file->type);
         if (is_numeric($file->bitrate)) {
             // constant bitrate
             $fileInfo->set('kbps', round($file->bitrate));
             $fileInfo->set('vbr', 'f');
         } else {
             // variable bitrate
             $fileInfo->set('kbps', round($file->average_bitrate));
             $fileInfo->set('vbr', 't');
         }
         $fileInfo->set('format', $file->getFormatFilename());
         $fileInfo->set('main_content', $mainContent);
     }
     $fstat = stat($filepath);
     $fileInfo->set('filesize', $fstat['size']);
     $fileInfo->set('last_modified', $db->getTimestampTz($fstat['mtime']));
     $fileInfo->set('mime_type', $file->mimetype);
     $success = $fileInfo->save();
     //if(!$success)
     //	raiseError("could not write into database");
     // change id3 tags in file
     $this->saveID3($file);
     return $fileInfo->id;
 }
 function setAudio($filename, $copy = false)
 {
     global $user;
     $filename = sotf_Utils::getFileFromPath($filename);
     $source = $user->getUserDir() . '/' . $filename;
     if (!is_file($source)) {
         raiseError("no such file: {$source}");
     }
     $srcFile = new sotf_AudioFile($source);
     $target = $this->getAudioDir() . '/' . 'prg_' . $srcFile->getFormatFilename();
     if ($srcFile->type == audio) {
         if ($copy) {
             $success = copy($source, $target);
         } else {
             $success = rename($source, $target);
         }
         if (!$success) {
             raiseError("could not copy/move {$source}");
         }
         return true;
     }
     return false;
     //$this->audioFiles->add($target);
 }