public function objectChanged(BaseObject $object, array $modifiedColumns) { $customData = $object->getCustomDataOldValues(); $updatedServers = array(); if (array_key_exists('mediaServers', $customData)) { $updatedServers = array_keys($customData['mediaServers']); } $mediaServersInfo = $object->getMediaServers(); if (empty($mediaServersInfo)) { $currentMediaServers = array(); } else { $currentMediaServers = array_keys($mediaServersInfo); } // If currently only one is set, and that's the one that was just changed $updatedMediaServers = array_intersect($updatedServers, $currentMediaServers); if (count($currentMediaServers) == 1 && count($updatedMediaServers) == 1) { // This hack was made to avoid cases in which someone updates the media server. $updatedMediaServer = $updatedMediaServers[0]; $oldHost = $customData['mediaServers'][$updatedMediaServer]; if (is_null($oldHost)) { $this->addEventCuePoint($object, EventType::BROADCAST_START); } } // If currently no one is set if (count($currentMediaServers) == 0) { $this->addEventCuePoint($object, EventType::BROADCAST_END); } return true; }
public static function isPostProcessCuePointsEvent(BaseObject $object, array $modifiedColumns) { if ($object instanceof LiveEntry && $object->getRecordStatus() == RecordStatus::DISABLED && !$object->hasMediaServer()) { // checking if the live-entry media-server was just unregistered $customDataOldValues = $object->getCustomDataOldValues(); if (isset($customDataOldValues[LiveEntry::CUSTOM_DATA_NAMESPACE_MEDIA_SERVERS])) { return true; } } return false; }