void StreamDialog::parseAvailableServices(QStringList directory) { DirectoryEntry de; QString servicePath; QString streamName; QString streamSource; for (int i = 0; i < directory.count(); i++) { de.setLine(directory.at(i)); if (!de.isValid()) continue; QStringList services = de.multicastServices(); for (int i = 0; i < services.count(); i++) { servicePath = de.appName() + SYNTRO_SERVICEPATH_SEP + services.at(i); SyntroUtils::removeStreamNameFromPath(servicePath, streamSource, streamName); if (m_currentStreams.contains(streamSource)) continue; if (streamName == SYNTRO_STREAMNAME_AVMUX) m_availableStreams.append(streamSource); } } }
char *SyntroPythonClient::lookupSources(const char *sourceName, int serviceType) { DirectoryEntry de; QString servicePath; QString streamName; QString streamSource; static char availableSources[SYNTRO_MAX_DELENGTH]; QStringList services; QMutexLocker lock(&m_lock); availableSources[0] = 0; for (int i = 0; i < m_directory.count(); i++) { de.setLine(m_directory.at(i)); if (!de.isValid()) continue; if (serviceType == SERVICETYPE_MULTICAST) services = de.multicastServices(); else services = de.e2eServices(); for (int i = 0; i < services.count(); i++) { servicePath = de.appName() + SYNTRO_SERVICEPATH_SEP + services.at(i); SyntroUtils::removeStreamNameFromPath(servicePath, streamSource, streamName); if (streamName == sourceName) { strcat(availableSources, qPrintable(streamSource)); strcat(availableSources, "\n"); } } } return availableSources; }