Exemple #1
0
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;
}