function get_SourceListByDeviceName($DeviceName) { $SourceConfig = get_SourceConfiguration(); $SourceList = array(); foreach ($SourceConfig as $RoomName=>$RoomSources) { $RoomId = get_RoomId($RoomName); $CurrentIdx = get_SourceIdxByRoomId($RoomId); foreach ($RoomSources as $SourceIdx=>$SourceData) { $DeviceNames = get_DeviceNamesByRoomId($RoomId, $SourceIdx, array(c_Property_Output)); if (in_array($DeviceName, $DeviceNames)) { if (!array_key_exists($RoomId, $SourceList)) { $SourceList[$RoomId] = $SourceIdx; } if ($CurrentIdx==$SourceIdx) { $SourceList[$RoomId] = $SourceIdx; break; } } } } return $SourceList; }
function Entertainment_SendDataBySourceIdx($RoomId, $SourceIdx, $MessageType) { if ($MessageType <> c_MessageType_Action) { return; } $RoomName = IPS_GetName($RoomId); $DeviceTypes = get_SourceDeviceTypes($RoomId, $SourceIdx); $SourceConf = get_SourceConfiguration(); foreach ($DeviceTypes as $DeviceType=>$DeviceName) { $SourceData = $SourceConf[$RoomName][$SourceIdx][$DeviceType]; if (array_key_exists(c_Property_CommSrc, $SourceData)) { Entertainment_SendData($DeviceName, c_Control_Source, $SourceData[c_Property_CommSrc], c_Property_CommSrc); } } }