/* * Update the UID : port mapping with this new data */ void Universe::NewUIDList(OutputPort *port, const ola::rdm::UIDSet &uids) { map<UID, OutputPort*>::iterator iter = m_output_uids.begin(); while (iter != m_output_uids.end()) { if (iter->second == port && !uids.Contains(iter->first)) m_output_uids.erase(iter++); else ++iter; } ola::rdm::UIDSet::Iterator set_iter = uids.Begin(); for (; set_iter != uids.End(); ++set_iter) { iter = m_output_uids.find(*set_iter); if (iter == m_output_uids.end()) { m_output_uids[*set_iter] = port; } else if (iter->second != port) { OLA_WARN << "UID " << *set_iter << " seen on more than one port"; } } if (m_export_map) (*m_export_map->GetUIntMapVar(K_UNIVERSE_UID_COUNT_VAR))[m_universe_id_str] = m_output_uids.size(); }
/* * This is called when we receive uids for a universe * @param universes a vector of OlaUniverses */ void UIDList(const ola::rdm::UIDSet &uids, const string &error) { UIDSet vendorcast; if (error.empty()) { UIDSet::Iterator iter = uids.Begin(); for (; iter != uids.End(); ++iter) { cout << *iter << endl; vendorcast.AddUID(UID::VendorcastAddress(*iter)); } if (opts.vendorcast) { iter = vendorcast.Begin(); for (; iter != vendorcast.End(); ++iter) { cout << *iter << endl; } } if (opts.broadcast) { cout << UID::AllDevices().ToString() << endl; } } else { cerr << error << endl; } ss->Terminate(); }