Rearrange dnssd broadcast code to be more consistent and better fit class lifecycle.
This commit is contained in:
@@ -79,18 +79,16 @@ signals:
|
|||||||
|
|
||||||
SimpleCastTcpService::SimpleCastTcpService(MiniMediaPlayer *player,QObject *parent) : QTcpServer(parent),player(player),manager(new QNetworkAccessManager(this))
|
SimpleCastTcpService::SimpleCastTcpService(MiniMediaPlayer *player,QObject *parent) : QTcpServer(parent),player(player),manager(new QNetworkAccessManager(this))
|
||||||
{
|
{
|
||||||
connect(manager,SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)),this,SLOT(networkAccessChanged(QNetworkAccessManager::NetworkAccessibility)));
|
dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",this->serverPort(),"local");
|
||||||
|
dnsService->setParent(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SimpleCastTcpService::listen(const QHostAddress& address, quint16 port)
|
bool SimpleCastTcpService::listen(const QHostAddress& address, quint16 port)
|
||||||
{
|
{
|
||||||
bool listening = QTcpServer::listen(address,port);
|
bool listening = QTcpServer::listen(address,port);
|
||||||
|
dnssdConnection = connect(manager,SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)),this,SLOT(networkAccessChanged(QNetworkAccessManager::NetworkAccessibility)));
|
||||||
//Setup DNSSD
|
|
||||||
dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",this->serverPort(),"local");
|
|
||||||
dnsService->setParent(this);
|
|
||||||
//Start publishing now and if not, wait for networkAccessibleManager to let us know.
|
//Start publishing now and if not, wait for networkAccessibleManager to let us know.
|
||||||
if(manager->networkAccessible() == QNetworkAccessManager::Accessible && !dnsService->isPublished())
|
if(manager->networkAccessible() == QNetworkAccessManager::Accessible)
|
||||||
{
|
{
|
||||||
dnsService->publishAsync();
|
dnsService->publishAsync();
|
||||||
}
|
}
|
||||||
@@ -103,12 +101,17 @@ void SimpleCastTcpService::networkAccessChanged(QNetworkAccessManager::NetworkAc
|
|||||||
{
|
{
|
||||||
dnsService->publishAsync();
|
dnsService->publishAsync();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dnsService->stop();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SimpleCastTcpService::close()
|
void SimpleCastTcpService::close()
|
||||||
{
|
{
|
||||||
QTcpServer::close();
|
QTcpServer::close();
|
||||||
|
disconnect(dnssdConnection);
|
||||||
dnsService->stop();
|
dnsService->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ private:
|
|||||||
MiniMediaPlayer *player;
|
MiniMediaPlayer *player;
|
||||||
KDNSSD::PublicService *dnsService;
|
KDNSSD::PublicService *dnsService;
|
||||||
QNetworkAccessManager *manager;
|
QNetworkAccessManager *manager;
|
||||||
|
QMetaObject::Connection dnssdConnection;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user