public function genSbs(MultimediaObject $multimediaObject, $opencastUrls = array())
 {
     if (!$this->sbsProfile) {
         return false;
     }
     $tracks = $multimediaObject->getTracks();
     if (!$tracks) {
         return false;
     }
     $track = $tracks[0];
     $path = $this->getPath($track->getUrl());
     $language = $multimediaObject->getProperty('opencastlanguage') ? strtolower($multimediaObject->getProperty('opencastlanguage')) : 'en';
     $vars = $this->defaultVars;
     if ($opencastUrls) {
         $vars += array('ocurls' => $opencastUrls);
     }
     return $this->jobService->addJob($path, $this->sbsProfile, 2, $multimediaObject, $language, array(), $vars);
 }
 public function preExecute(MultimediaObject $multimediaObject, Request $request)
 {
     if ($multimediaObject->getProperty('iframeable') === true) {
         $this->dispatchViewEvent($multimediaObject);
         return $this->forward('PumukitGeantWebTVBundle:Iframe:index', array('request' => $request, 'multimediaObject' => $multimediaObject));
     } else {
         if ($multimediaObject->getProperty('redirect') === true) {
             $this->dispatchViewEvent($multimediaObject);
             $redirectUrl = $multimediaObject->getProperty('redirect_url');
             if (!$redirectUrl) {
                 throw $this->createNotFoundException();
             }
             return $this->redirect($redirectUrl);
         }
     }
 }
 public function preExecute(MultimediaObject $multimediaObject, Request $request)
 {
     if ($opencasturl = $multimediaObject->getProperty("opencasturl")) {
         $response = $this->testBroadcast($multimediaObject, $request);
         if ($response instanceof Response) {
             return $response;
         }
         $this->updateBreadcrumbs($multimediaObject);
         $this->incNumView($multimediaObject);
         $this->dispatch($multimediaObject);
         $userAgent = $this->getRequest()->headers->get('user-agent');
         $mobileDetectorService = $this->get('mobile_detect.mobile_detector');
         $mobileDevice = $mobileDetectorService->isMobile($userAgent) || $mobileDetectorService->isTablet($userAgent);
         $isOldBrowser = $this->getIsOldBrowser($userAgent);
         return $this->render("PumukitCmarWebTVBundle:MultimediaObject:opencast.html.twig", array("multimediaObject" => $multimediaObject, "is_old_browser" => $isOldBrowser, "mobile_device" => $mobileDevice));
     }
 }
 public function preExecute(MultimediaObject $multimediaObject, Request $request)
 {
     if ($opencasturl = $multimediaObject->getProperty("opencasturl")) {
         $response = $this->testBroadcast($multimediaObject, $request);
         if ($response instanceof Response) {
             return $response;
         }
         $this->incNumView($multimediaObject);
         $this->dispatch($multimediaObject);
         if ($invert = $multimediaObject->getProperty('opencastinvert')) {
             $opencasturl .= '&display=invert';
         }
         return $this->redirect($opencasturl);
     }
 }
 /**
  * @Template("PumukitWebTVBundle:MultimediaObject:iframeplayer.html.twig")
  */
 public function indexAction(MultimediaObject $multimediaObject, Request $request)
 {
     $iframeUrl = $multimediaObject->getProperty('iframe_url');
     $this->updateBreadcrumbs($multimediaObject);
     return array('multimediaObject' => $multimediaObject, 'iframe_url' => $iframeUrl);
 }
 /**
  * Render iframe
  */
 private function renderIframe(MultimediaObject $multimediaObject, Request $request)
 {
     if ($multimediaObject->getProperty('opencast')) {
         /* $this->incNumView($multimediaObject); */
         /* $this->dispatch($multimediaObject); */
         $userAgent = $this->getRequest()->headers->get('user-agent');
         $mobileDetectorService = $this->get('mobile_detect.mobile_detector');
         $mobileDevice = $mobileDetectorService->isMobile($userAgent) || $mobileDetectorService->isTablet($userAgent);
         $isOldBrowser = $this->getIsOldBrowser($userAgent);
         $track = $multimediaObject->getTrackWithTag('sbs');
         return $this->render("PumukitMoodleBundle:Moodle:opencastiframe.html.twig", array("multimediaObject" => $multimediaObject, "track" => $track, "is_old_browser" => $isOldBrowser, "mobile_device" => $mobileDevice));
     } else {
         $track = $request->query->has('track_id') ? $multimediaObject->getTrackById($request->query->get('track_id')) : $multimediaObject->getFilteredTrackWithTags(array('display'));
     }
     if (!$track) {
         throw $this->createNotFoundException();
     }
     //$this->incNumView($multimediaObject, $track);
     //$this->dispatch($multimediaObject, $track);
     return $this->render("PumukitMoodleBundle:Moodle:iframe.html.twig", array('autostart' => $request->query->get('autostart', 'false'), 'intro' => false, 'multimediaObject' => $multimediaObject, 'track' => $track));
 }
 public function testGetterAndSetter()
 {
     $series = new Series();
     $rank = 3;
     $status = MultimediaObject::STATUS_PUBLISHED;
     $record_date = new \DateTime();
     $public_date = new \DateTime();
     $title = 'Star Wars';
     $subtitle = 'Spoiler';
     $description = "Darth Vader: Obi-Wan never told you what happened to your father.\n\t\t\tLuke Skywalker: He told me enough! He told me you killed him!\n\t\t\tDarth Vader: No. I am your father.\n\t\t\tLuke Skywalker: No... that's not true! That's impossible!";
     $numview = 2;
     $locale = 'en';
     $line2 = 'line2';
     $keyword = 'keyword';
     $properties = array('property1', 'property2');
     $tag1 = new Tag();
     $tag1->setCod('tag1');
     $tag2 = new Tag();
     $tag2->setCod('tag2');
     $tag3 = new Tag();
     $tag3->setCod('tag3');
     $mm_tags = array($tag1, $tag2, $tag3);
     $broadcast = new Broadcast();
     $broadcast->setName('Private');
     $broadcast->setBroadcastTypeId(Broadcast::BROADCAST_TYPE_PRI);
     $broadcast->setPasswd('password');
     $broadcast->setDefaultSel(true);
     $broadcast->setDescription('Private broadcast');
     $mm = new MultimediaObject();
     $mm->setRank($rank);
     $mm->setStatus($status);
     $mm->setSeries($series);
     $mm->setRecordDate($record_date);
     $mm->setPublicDate($public_date);
     $mm->setTitle($title);
     $mm->setSubtitle($subtitle);
     $mm->setDescription($description);
     $mm->addTag($tag1);
     $mm->addTag($tag2);
     $mm->addTag($tag3);
     $mm->setBroadcast($broadcast);
     $mm->setNumview($numview);
     $mm->setLocale($locale);
     $mm->setLine2($line2);
     $mm->setKeyword($keyword);
     $mm->setProperties($properties);
     $this->assertEquals($series, $mm->getSeries());
     $this->assertEquals($rank, $mm->getRank());
     $this->assertEquals($status, $mm->getStatus());
     $this->assertEquals($record_date, $mm->getRecordDate());
     $this->assertEquals($public_date, $mm->getPublicDate());
     $this->assertEquals($title, $mm->getTitle());
     $this->assertNotEquals($title . "2", $mm->getTitle());
     $this->assertEquals($subtitle, $mm->getSubtitle());
     $this->assertEquals($description, $mm->getDescription());
     $this->assertEquals(count($mm_tags), count($mm->getTags()));
     $this->assertEquals($broadcast, $mm->getBroadcast());
     $this->assertEquals($numview, $mm->getNumview());
     $this->assertEquals($locale, $mm->getLocale());
     $this->assertEquals($line2, $mm->getLine2());
     $this->assertEquals($keyword, $mm->getKeyword());
     $this->assertEquals($properties, $mm->getProperties());
     $title = null;
     $subtitle = null;
     $description = null;
     $line2 = null;
     $keyword = null;
     $mm->setTitle($title);
     $mm->setSubtitle($subtitle);
     $mm->setDescription($description);
     $mm->setLine2($line2);
     $mm->setKeyword($keyword);
     $this->assertEquals(null, $mm->getTitle());
     $this->assertEquals(null, $mm->getSubtitle());
     $this->assertEquals(null, $mm->getDescription());
     $this->assertEquals(null, $mm->getLine2());
     $this->assertEquals(null, $mm->getKeyword());
     $properties = array('prop2' => 'property2');
     $mm->setProperties($properties);
     $key = 'prop2';
     $this->assertEquals($properties[$key], $mm->getProperty($key));
     $property3 = 'property3';
     $value3 = 'value3';
     $mm->setProperty($property3, $value3);
     $this->assertEquals($value3, $mm->getProperty($property3));
     $mm->removeProperty($property3);
     $this->assertNull($mm->getProperty($property3));
 }
 /**
  * Clone a multimedia object.
  *
  * @param  MultimediaObject $src
  * @return MultimediaObject
  */
 public function cloneMultimediaObject(MultimediaObject $src)
 {
     $new = new MultimediaObject();
     $new->setI18nTitle($src->getI18nTitle());
     $new->setI18nSubtitle($src->getI18nSubtitle());
     $new->setI18nDescription($src->getI18nDescription());
     $new->setI18nLine2($src->getI18nLine2());
     $new->setI18nKeyword($src->getI18nKeyword());
     $new->setCopyright($src->getCopyright());
     $new->setLicense($src->getLicense());
     // NOTE: #7408 Specify which properties are clonable
     $new->setProperty("subseries", $src->getProperty("subseries"));
     $new->setProperty("subseriestitle", $src->getProperty("subseriestitle"));
     $new->setProperty("clonedfrom", $src->getId());
     foreach ($src->getTags() as $tag) {
         $tagAdded = $this->tagService->addTagToMultimediaObject($new, $tag->getId(), false);
     }
     foreach ($src->getRoles() as $embeddedRole) {
         foreach ($embeddedRole->getPeople() as $embeddedPerson) {
             $new->addPersonWithRole($embeddedPerson, $embeddedRole);
         }
     }
     $new->setSeries($src->getSeries());
     if ($broadcast = $src->getBroadcast()) {
         $new->setBroadcast($broadcast);
         $this->dm->persist($broadcast);
     }
     $new->setPublicDate($src->getPublicDate());
     $new->setRecordDate($src->getRecordDate());
     $new->setStatus(MultimediaObject::STATUS_BLOQ);
     $this->dm->persist($new);
     $this->dm->flush();
     return $new;
 }
 /**
  * @Route("/generatesbs/{id}", name="pumukit_opencast_mm_generatesbs")
  */
 public function generateSbsAction(MultimediaObject $multimediaObject, Request $request)
 {
     $opencastUrls = $this->get('pumukit_opencast.import')->getOpencastUrls($multimediaObject->getProperty('opencast'));
     $this->get('pumukit_opencast.job')->genSbs($multimediaObject, $opencastUrls);
     return $this->redirect($this->generateUrl('pumukitnewadmin_track_list', array('id' => $multimediaObject->getId())));
 }