Example #1
0
 public static function syncSonos()
 {
     $sonos = self::getSonos(true);
     $controllers = $sonos->getControllers();
     $speakers = sonos3::getSpeaker();
     foreach ($controllers as $controller) {
         $eqLogic = sonos3::byLogicalId($controller->ip, 'sonos3');
         if (!is_object($eqLogic)) {
             $eqLogic = new self();
             $eqLogic->setLogicalId($controller->ip);
             $eqLogic->setName($controller->room . ' - ' . $controller->name);
             $object = object::byName($controller->room);
             if (is_object($object)) {
                 $eqLogic->setObject_id($object->getId());
                 $eqLogic->setName($controller->name);
             }
             if (strpos($controller->name, 'PLAY:1') !== false) {
                 $eqLogic->setConfiguration('model', 'PLAY1');
             }
             if (strpos($controller->name, 'PLAY:3') !== false) {
                 $eqLogic->setConfiguration('model', 'PLAY3');
             }
             if (strpos($controller->name, 'PLAY:5') !== false) {
                 $eqLogic->setConfiguration('model', 'PLAY5');
             }
             if (strpos($controller->name, 'PLAYBAR') !== false) {
                 $eqLogic->setConfiguration('model', 'PLAYBAR');
             }
             if (strpos($controller->name, 'CONNECT') !== false) {
                 $eqLogic->setConfiguration('model', 'CONNECT');
             }
             if (strpos($controller->name, 'CONNECT:AMP') !== false) {
                 $eqLogic->setConfiguration('model', 'CONNECTAMP');
             }
             $eqLogic->setEqType_name('sonos3');
             $eqLogic->setIsVisible(1);
             $eqLogic->setIsEnable(1);
         }
         $speakers_array = array();
         foreach ($speakers as $speaker) {
             $speakers_array[$speaker->ip] = $speaker->room;
         }
         $eqLogic->setConfiguration('speakers', json_encode($speakers_array));
         $eqLogic->save();
     }
 }