mirror of
https://github.com/iDescriptor/iDescriptor.git
synced 2026-06-21 19:35:49 +08:00
refactor: update deviceRemoved signal to use MAC address instead of device name
This commit is contained in:
@@ -144,6 +144,7 @@ void AvahiService::browseCallback(AvahiServiceBrowser *browser,
|
||||
Q_UNUSED(flags)
|
||||
|
||||
AvahiService *service = static_cast<AvahiService *>(userdata);
|
||||
QString macAddress = QString::fromUtf8(name).split('@').first();
|
||||
|
||||
switch (event) {
|
||||
case AVAHI_BROWSER_NEW:
|
||||
@@ -157,14 +158,14 @@ void AvahiService::browseCallback(AvahiServiceBrowser *browser,
|
||||
|
||||
case AVAHI_BROWSER_REMOVE:
|
||||
qDebug() << "Apple device removed:" << name;
|
||||
emit service->deviceRemoved(QString::fromUtf8(name));
|
||||
emit service->deviceRemoved(macAddress);
|
||||
|
||||
// Remove from our list
|
||||
{
|
||||
QMutexLocker locker(&service->m_devicesMutex);
|
||||
service->m_networkDevices.removeIf(
|
||||
[name](const NetworkDevice &dev) {
|
||||
return dev.name == QString::fromUtf8(name);
|
||||
[macAddress](const NetworkDevice &dev) {
|
||||
return dev.macAddress == macAddress;
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
|
||||
signals:
|
||||
void deviceAdded(const NetworkDevice &device);
|
||||
void deviceRemoved(const QString &deviceName);
|
||||
void deviceRemoved(const QString &macAddress);
|
||||
|
||||
private slots:
|
||||
void pollAvahi();
|
||||
|
||||
@@ -140,16 +140,16 @@ void DNSSD_API DnssdService::browseCallback(
|
||||
DNSServiceRefDeallocate(resolveRef);
|
||||
}
|
||||
} else {
|
||||
qDebug() << "Apple device removed:" << serviceName;
|
||||
emit service->deviceRemoved(QString::fromUtf8(serviceName));
|
||||
QString macAddress = QString::fromUtf8(serviceName).split('@').first();
|
||||
emit service->deviceRemoved(macAddress);
|
||||
|
||||
// Remove from our list
|
||||
QMutexLocker locker(&service->m_devicesMutex);
|
||||
service->m_networkDevices.removeIf(
|
||||
[serviceName](const NetworkDevice &dev) {
|
||||
return dev.name == QString::fromUtf8(serviceName);
|
||||
[macAddress](const NetworkDevice &dev) {
|
||||
return dev.macAddress == macAddress;
|
||||
});
|
||||
service->m_pendingDevices.remove(QString::fromUtf8(serviceName));
|
||||
service->m_pendingDevices.remove(macAddress);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
|
||||
signals:
|
||||
void deviceAdded(const NetworkDevice &device);
|
||||
void deviceRemoved(const QString &deviceName);
|
||||
void deviceRemoved(const QString &macAddress);
|
||||
|
||||
private slots:
|
||||
void processDnssdEvents();
|
||||
|
||||
Reference in New Issue
Block a user