コード例 #1
0
	function Entertainment_SyncRoomControls($RoomId) {
		$RoomName     = IPS_GetName($RoomId);
		$RoomPower    = GetValue(get_ControlIdByRoomId($RoomId, c_Control_RoomPower));
	   $RoomConfig   = get_RoomConfiguration();
	   $ControlTypes = $RoomConfig[$RoomName];
	   foreach ($ControlTypes as $ControlType=>$ControlData) {
			if ($ControlType==c_Control_Muting or
				 $ControlType==c_Control_Volume or
				 $ControlType==c_Control_Balance or
				 $ControlType==c_Control_Treble or
				 $ControlType==c_Control_Middle or
				 $ControlType==c_Control_Bass or
				 $ControlType==c_Control_Program or
			    $ControlType==c_Control_RemoteVolume or
			    $ControlType==c_Control_iRemoteVolume or
			    $ControlType==c_Control_RemoteSource or
			    $ControlType==c_Control_iRemoteSource or
			    $ControlType==c_Control_Mode) {
				$RoomControlId   = get_ControlIdByRoomId($RoomId, $ControlType);
				$DeviceControlId = get_DeviceControlIdByRoomControlId($RoomControlId);

				if ($DeviceControlId===false and $ControlType==c_Control_iRemoteVolume) {
					$DeviceControlId = get_DeviceControlIdByRoomControlId($RoomControlId, c_Control_RemoteVolume);
				} else if ($DeviceControlId===false and $ControlType==c_Control_iRemoteSource) {
					$DeviceControlId = get_DeviceControlIdByRoomControlId($RoomControlId, c_Control_RemoteSource);
				} else {
				  //
				}

				IPSLogger_Trc(__file__,'Sync Room="'.$RoomName.'", Control="'.$ControlType.'", DeviceControlId='.$DeviceControlId);
				if ($DeviceControlId!==false) {
					SetValue($RoomControlId, GetValue($DeviceControlId));
					Entertainment_SetRoomControlVisibility($RoomControlId, $RoomPower);
				} else {
					Entertainment_SetRoomControlVisibility($RoomControlId, false);
				}
			}
	   }
	}
コード例 #2
0
	function Entertainment_SetDeviceControlByRoomControlId($RoomControlId, $Value) {
		$DeviceControlId = get_DeviceControlIdByRoomControlId($RoomControlId);
		if ($DeviceControlId !== false) {
		   Entertainment_SetDeviceControl($DeviceControlId, $Value);
		} else {
		   IPSLogger_Err(__file__, 'No DeviceControl found for RoomControlId='.$RoomControlId.', Name="'.IPS_GetName($RoomControlId).'"');
		}
	}