[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:26:37 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=9523039
The following commit has been merged in the master branch:
commit 9523039473535c92343f3ac3d59c39b4ade7b785
Author: Albert Vaca <albertvaka at gmail.com>
Date: Mon Jun 17 12:23:08 2013 +0200
Avahi discovering
---
CMakeLists.txt | 2 +
letsgo.sh | 2 +-
src/CMakeLists.txt | 21 ++--
src/avahidevicelocator.cpp | 112 +++++++++++++++++++++
...bonjourdevicelocator.h => avahidevicelocator.h} | 35 +++++--
src/bonjourdevicelocator.cpp | 52 ----------
src/daemon.cpp | 83 +++++++++++----
src/daemon.h | 22 ++++
src/device.h | 16 ++-
src/devicelocator.h | 8 +-
src/fakedevicelocator.cpp | 34 +++----
src/fakedevicelocator.h | 14 ++-
src/networkpackage.cpp | 24 ++++-
src/networkpackage.h | 8 ++
src/udpdevicelink.cpp | 17 ++--
src/udpdevicelink.h | 10 +-
test/CMakeLists.txt | 16 +++
17 files changed, 343 insertions(+), 133 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2bf849..3c90365 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,3 +6,5 @@ include(KDE4Defaults)
include_directories(${KDE4_INCLUDES})
add_subdirectory(src)
+
+add_subdirectory(test)
diff --git a/letsgo.sh b/letsgo.sh
index 8ea1cf4..864fc40 100755
--- a/letsgo.sh
+++ b/letsgo.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
#Source bashrc to define kdebuild
#http://techbase.kde.org/Getting_Started/Build/Environment
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6498c92..593f34a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,17 +1,26 @@
-set(kded_androidshine_SRCS fakedevicelocator.cpp echodevicelink.cpp udpdevicelink.cpp bonjourdevicelocator.cpp pausemusicpackagereceiver.cpp notificationpackagereceiver.cpp networkpackage.cpp
- daemon.cpp devicelink.cpp devicelocator.cpp packagereceiver.cpp
+set(kded_androidshine_SRCS
+ fakedevicelocator.cpp
+ echodevicelink.cpp
+ udpdevicelink.cpp
+ avahidevicelocator.cpp
+ pausemusicpackagereceiver.cpp
+ notificationpackagereceiver.cpp
+ networkpackage.cpp
+ daemon.cpp
+ devicelink.cpp
+ devicelocator.cpp
+ packagereceiver.cpp
)
-kde4_add_plugin(kded_androidshine
- ${kded_androidshine_SRCS}
-)
+kde4_add_plugin(kded_androidshine ${kded_androidshine_SRCS})
target_link_libraries(kded_androidshine
${KDE4_KDECORE_LIBS}
${KDE4_KDEUI_LIBS}
+ kdnssd
${QT_QTNETWORK_LIBRARY}
)
install(TARGETS kded_androidshine DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES androidshine.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)
-install(FILES androidshine.notifyrc DESTINATION ${DATA_INSTALL_DIR}/androidshine)
\ No newline at end of file
+install(FILES androidshine.notifyrc DESTINATION ${DATA_INSTALL_DIR}/androidshine)
diff --git a/src/avahidevicelocator.cpp b/src/avahidevicelocator.cpp
new file mode 100644
index 0000000..a59bbdb
--- /dev/null
+++ b/src/avahidevicelocator.cpp
@@ -0,0 +1,112 @@
+/**
+ * Copyright 2013 Albert Vaca <albertvaka at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License or (at your option) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of version 3 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "avahidevicelocator.h"
+
+#include "udpdevicelink.h"
+
+
+AvahiDeviceLocator::AvahiDeviceLocator()
+{
+ //http://api.kde.org/4.x-api/kdelibs-apidocs/dnssd/html/index.html
+ browser = new DNSSD::ServiceBrowser("_device._tcp");
+ connect(browser, SIGNAL(serviceAdded(DNSSD::RemoteService::Ptr)),this,SLOT(deviceDetected(DNSSD::RemoteService::Ptr)));
+ connect(browser, SIGNAL(serviceRemoved(DNSSD::RemoteService::Ptr)),this,SLOT(deviceLost(DNSSD::RemoteService::Ptr)));
+ browser->startBrowse();
+}
+
+bool AvahiDeviceLocator::canLink(QString id) {
+ return visibleDevices.contains(id);
+}
+
+DeviceLink* AvahiDeviceLocator::link(QString id) {
+
+ if (!visibleDevices.contains(id)) return NULL;
+
+ Device* d = visibleDevices[id];
+ const DNSSD::RemoteService::Ptr& rs = deviceRoutes[d];
+
+ DeviceLink* dl = new UdpDeviceLink(QHostAddress(rs->hostName()),rs->port());
+ linkedDevices.append(dl); //Store the ref to be able to delete the memory later
+
+ return dl;
+}
+
+bool AvahiDeviceLocator::pair(Device* d)
+{
+ //TODO: ?
+ d->pair();
+ return true;
+}
+
+void AvahiDeviceLocator::deviceDetected(DNSSD::RemoteService::Ptr s)
+{
+ qDebug() << "DETECTED";
+
+ Device* d = getDeviceInfo(s);
+
+ if (!visibleDevices.contains(d->id())) {
+ visibleDevices[d->id()] = d;
+ deviceRoutes[d] = s;
+ } else {
+ qDebug() << "Warning: duplicate device id " + d->id();
+ }
+}
+
+void AvahiDeviceLocator::deviceLost(DNSSD::RemoteService::Ptr s)
+{
+ qDebug() << "LOST";
+
+ Device* found = NULL;
+
+ for(QMap< Device*, DNSSD::RemoteService::Ptr >::iterator it = deviceRoutes.begin(), itEnd = deviceRoutes.end(); it != itEnd; it++) {
+ if (s == it.value()) {
+ found = it.key();
+ }
+ }
+
+ if (found != NULL) {
+ visibleDevices.remove(found->id());
+ deviceRoutes.remove(found);
+ delete found; //created at getDeviceInfo called from deviceDetected
+ } else {
+ //TODO: Add a TAG to the debug messages
+ qDebug() << "Warning: lost unknown device?";
+ }
+}
+
+Device* AvahiDeviceLocator::getDeviceInfo(DNSSD::RemoteService::Ptr s)
+{
+ //TODO: I have no idea on how to get this info using only DNSSD, wihtout connecting to the device
+ Device* d = new Device("1234567890", "Unnamed"); //deleted at deviceLost
+ return d;
+}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/bonjourdevicelocator.h b/src/avahidevicelocator.h
similarity index 59%
rename from src/bonjourdevicelocator.h
rename to src/avahidevicelocator.h
index dfc1a44..e95432c 100644
--- a/src/bonjourdevicelocator.h
+++ b/src/avahidevicelocator.h
@@ -18,27 +18,44 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef BONJOURDEVICELOCATOR_H
-#define BONJOURDEVICELOCATOR_H
+#ifndef AVAHIDEVICELOCATOR_H
+#define AVAHIDEVICELOCATOR_H
#include <QObject>
+#include <KDE/DNSSD/ServiceBrowser>
+
+#include <KDE/DNSSD/RemoteService>
#include "devicelocator.h"
-class BonjourDeviceLocator
+class AvahiDeviceLocator
: public DeviceLocator
{
Q_OBJECT
public:
- BonjourDeviceLocator();
-
+ AvahiDeviceLocator();
+ QString getName() { return "Avahi"; }
Priority getPriority() { return PRIORITY_HIGH; }
- bool canLink(Device* d) { return true; }
- DeviceLink* link(Device* d);
+ bool canLink(QString id);
+ DeviceLink* link(QString id);
bool pair(Device* d);
- QVector<Device*> discover();
+ QList<Device*> discover() { return visibleDevices.values(); }
+
+private slots:
+ void deviceDetected(DNSSD::RemoteService::Ptr s);
+ void deviceLost(DNSSD::RemoteService::Ptr s);
+
+private:
+ DNSSD::ServiceBrowser* browser;
+
+ Device* getDeviceInfo(DNSSD::RemoteService::Ptr s);
+
+ QMap<QString, Device*> visibleDevices;
+ QMap<Device*, DNSSD::RemoteService::Ptr> deviceRoutes;
+
+ QList<DeviceLink*> linkedDevices;
};
-#endif // BONJOURDEVICELOCATOR_H
+#endif // AVAHIDEVICELOCATOR_H
diff --git a/src/bonjourdevicelocator.cpp b/src/bonjourdevicelocator.cpp
deleted file mode 100644
index 64d371d..0000000
--- a/src/bonjourdevicelocator.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Copyright 2013 Albert Vaca <albertvaka at gmail.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License or (at your option) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of version 3 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "bonjourdevicelocator.h"
-
-#include "udpdevicelink.h"
-
-BonjourDeviceLocator::BonjourDeviceLocator()
-{
-
-/*
- //http://api.kde.org/4.x-api/kdelibs-apidocs/dnssd/html/index.html
- DNSSD::ServiceBrowser* browser = new DNSSD::ServiceBrowser("_http._tcp");
- connect(browser, SIGNAL(serviceAdded(RemoteService::Ptr)),
- this, SLOT(addService(RemoteService::Ptr)));
- connect(browser, SIGNAL(serviceRemoved(RemoteService::Ptr)),
- this, SLOT(delService(RemoteService::Ptr)));
- browser->startBrowse();
- In above example addService() will
-*/
-}
-
-DeviceLink* BonjourDeviceLocator::link(Device* d) {
- DeviceLink* dl = new UdpDeviceLink("192.168.1.48");
- return dl;
-}
-
-bool BonjourDeviceLocator::pair(Device* d) {
- return true;
-}
-
-QVector<Device*> BonjourDeviceLocator::discover() {
- QVector<Device*> devices;
- return devices;
-}
diff --git a/src/daemon.cpp b/src/daemon.cpp
index 2ccd971..cbe18c2 100644
--- a/src/daemon.cpp
+++ b/src/daemon.cpp
@@ -22,7 +22,7 @@
#include "networkpackage.h"
#include "notificationpackagereceiver.h"
#include "pausemusicpackagereceiver.h"
-#include "bonjourdevicelocator.h"
+#include "avahidevicelocator.h"
#include "fakedevicelocator.h"
#include <QtNetwork/QUdpSocket>
@@ -30,12 +30,40 @@
#include <KDE/KIcon>
+#include <sstream>
+#include <iomanip>
#include <iostream>
-K_PLUGIN_FACTORY(AndroidShineFactory,
- registerPlugin<Daemon>();)
+K_PLUGIN_FACTORY(AndroidShineFactory, registerPlugin<Daemon>();)
K_EXPORT_PLUGIN(AndroidShineFactory("androidshine", "androidshine"))
+DeviceLink* Daemon::linkTo(QString id) {
+
+ DeviceLink* link = NULL;
+
+ Q_FOREACH (DeviceLocator* locator, deviceLocators) {
+ if (locator->canLink(id)) {
+ link = locator->link(id);
+ if (link != NULL) break;
+ }
+ }
+
+ if (link != NULL) {
+
+ linkedDevices.append(link);
+
+ Q_FOREACH (PackageReceiver* pr, packageReceivers) {
+ QObject::connect(link,SIGNAL(receivedPackage(const NetworkPackage&)),
+ pr,SLOT(receivePackage(const NetworkPackage&)));
+ }
+
+ } else {
+ qDebug() << "Could not link device id " + id;
+ }
+
+ return link;
+
+}
Daemon::Daemon(QObject *parent, const QList<QVariant>&)
: KDEDModule(parent)
@@ -43,45 +71,55 @@ Daemon::Daemon(QObject *parent, const QList<QVariant>&)
qDebug() << "GO GO GO!";
-
//TODO: Do not hardcode the load of the package receivers
packageReceivers.push_back(new NotificationPackageReceiver());
packageReceivers.push_back(new PauseMusicPackageReceiver());
//TODO: Do not hardcode the load of the device locators
- deviceLocators.insert(new BonjourDeviceLocator());
+ deviceLocators.insert(new AvahiDeviceLocator());
deviceLocators.insert(new FakeDeviceLocator());
//TODO: Read paired devices from config
pairedDevices.push_back(new Device("MyAndroid","MyAndroid"));
+ //At boot time, try to link to all paired devices
+ Q_FOREACH (Device* device, pairedDevices) {
+ linkTo(device->id());
+ }
- //Try to link to all paired devices
- foreach (Device* device, pairedDevices) {
+}
- DeviceLink* link = NULL;
- foreach (DeviceLocator* locator, deviceLocators) {
+QString Daemon::listVisibleDevices()
+{
- if (locator->canLink(device)) {
- link = locator->link(device);
- if (link != NULL) break;
- }
+ std::stringstream ret;
- }
+ ret << std::setw(20) << "ID";
+ ret << std::setw(20) << "Name";
+ ret << std::setw(20) << "Source";
+ ret << std::endl;
- if (link != NULL) linkedDevices.append(link);
- else qDebug() << "Could not link " + device->name();
+ QList<Device*> visibleDevices;
- }
-
- foreach (DeviceLink* ld, linkedDevices) {
- foreach (PackageReceiver* pr, packageReceivers) {
- QObject::connect(ld,SIGNAL(receivedPackage(const NetworkPackage&)),
- pr,SLOT(receivePackage(const NetworkPackage&)));
+ foreach (DeviceLocator* dl, deviceLocators) {
+ foreach (Device* d, dl->discover()) {
+ ret << std::setw(20) << d->id().toStdString();
+ ret << std::setw(20) << d->name().toStdString();
+ ret << std::setw(20) << dl->getName().toStdString();
+ ret << std::endl;
}
}
+ return QString::fromStdString(ret.str());
+
+}
+
+bool Daemon::linkDevice(QString id)
+{
+
+ return linkTo(id);
+
}
Daemon::~Daemon()
@@ -89,3 +127,4 @@ Daemon::~Daemon()
qDebug() << "SAYONARA BABY";
}
+
diff --git a/src/daemon.h b/src/daemon.h
index e83a39c..0c89e49 100644
--- a/src/daemon.h
+++ b/src/daemon.h
@@ -52,8 +52,30 @@ public:
Daemon(QObject *parent, const QList<QVariant>&);
~Daemon();
+//DBUS interface
+
+public Q_SLOTS:
+
+ Q_SCRIPTABLE QString listVisibleDevices();
+
+ Q_SCRIPTABLE bool linkDevice(QString id);
+
+/*
+ Q_SCRIPTABLE bool pairDevice(long id);
+
+ Q_SCRIPTABLE QString listPairedDevices(long id);
+
+ Q_SCRIPTABLE bool linkAllPairedDevices();
+
+ Q_SCRIPTABLE QString listLinkedDevices(long id);
+
+*/
+
private:
+ //Get a DeviceLink through the best DeviceLocator available
+ DeviceLink* linkTo(QString d);
+
//All known devices (read from/stored to settings)
QVector<Device*> pairedDevices;
diff --git a/src/device.h b/src/device.h
index 4f812b8..d68c0c7 100644
--- a/src/device.h
+++ b/src/device.h
@@ -26,15 +26,21 @@
class Device
{
public:
- Device(QString id, QString name) {
+ Device(const QString& id, const QString& name)
+ {
mDeviceId = id;
mDeviceName = name;
}
- QString id() { return mDeviceId; }
- QString name() { return mDeviceName; }
- bool paired() { return mPaired; }
- void pair() { mPaired = true; }
+ QString id() const{ return mDeviceId; }
+ QString name() const { return mDeviceName; }
+ bool paired() const { return mPaired; }
+
+ void pair() {
+ mPaired = true;
+ //TODO: Actually do something
+
+ }
private:
bool mPaired;
diff --git a/src/devicelocator.h b/src/devicelocator.h
index dc7a816..9c5f38a 100644
--- a/src/devicelocator.h
+++ b/src/devicelocator.h
@@ -36,6 +36,8 @@ public:
DeviceLocator();
virtual ~DeviceLocator() { }
+ virtual QString getName() = 0;
+
enum Priority {
PRIORITY_LOW = 0, //ie: 3g
PRIORITY_MEDIUM = 50, //ie: internet
@@ -43,10 +45,10 @@ public:
};
virtual Priority getPriority() = 0;
- virtual bool canLink(Device* d) = 0;
- virtual DeviceLink* link(Device* d) = 0;
+ virtual bool canLink(QString id) = 0;
+ virtual DeviceLink* link(QString id) = 0;
virtual bool pair(Device* d) = 0;
- virtual QVector<Device*> discover() = 0;
+ virtual QList<Device*> discover() = 0;
};
diff --git a/src/fakedevicelocator.cpp b/src/fakedevicelocator.cpp
index 91501f5..460ca40 100644
--- a/src/fakedevicelocator.cpp
+++ b/src/fakedevicelocator.cpp
@@ -21,29 +21,29 @@
#include "fakedevicelocator.h"
#include "echodevicelink.h"
-bool FakeDeviceLocator::canLink(Device* d) {
- return d->name() == "fake";
+FakeDeviceLocator::FakeDeviceLocator()
+{
+ fakeDevice = new Device("fake","Fake device");
+ echoDeviceLink = new EchoDeviceLink();
}
-DeviceLink* FakeDeviceLocator::link(Device* d) {
- if (d->name() == "fake") {
- return new EchoDeviceLink();
- } else {
- return NULL;
- }
+bool FakeDeviceLocator::canLink(QString id) {
+ return id == "fake";
+}
+
+DeviceLink* FakeDeviceLocator::link(QString id) {
+ if (!canLink(id)) return NULL;
+ return echoDeviceLink;
}
bool FakeDeviceLocator::pair(Device* d) {
- if (d->name() != "fake") {
- return false;
- } else {
- d->pair();
- return true;
- }
+ if (d != fakeDevice) return false;
+ d->pair();
+ return true;
}
-QVector<Device*> FakeDeviceLocator::discover() {
- QVector<Device*> devices;
- devices.append(new Device("fake","Fake device"));
+QList<Device*> FakeDeviceLocator::discover() {
+ QList<Device*> devices;
+ devices.append(fakeDevice);
return devices;
}
diff --git a/src/fakedevicelocator.h b/src/fakedevicelocator.h
index 4210bc6..6ac865e 100644
--- a/src/fakedevicelocator.h
+++ b/src/fakedevicelocator.h
@@ -26,12 +26,20 @@ class FakeDeviceLocator
: public DeviceLocator
{
public:
+ FakeDeviceLocator();
+ QString getName() { return "FakeLocator"; }
+
Priority getPriority() { return PRIORITY_LOW; }
- bool canLink(Device* d);
- DeviceLink* link(Device* d);
+ bool canLink(QString id);
+ DeviceLink* link(QString id);
bool pair(Device* d);
- QVector<Device*> discover();
+ QList<Device*> discover();
+
+private:
+ Device* fakeDevice;
+ DeviceLink* echoDeviceLink;
+
};
#endif // FAKEDEVICELOCATOR_H
diff --git a/src/networkpackage.cpp b/src/networkpackage.cpp
index 6348196..81bf46e 100644
--- a/src/networkpackage.cpp
+++ b/src/networkpackage.cpp
@@ -28,17 +28,17 @@
NetworkPackage NetworkPackage::fromString(QByteArray s)
{
-
- NetworkPackage pp;
-
//FIXME: How can I do this using Qt?
std::string stds(std::string(s.data()));
std::cout << stds << std::endl;
std::stringstream ss(stds);
- ss >> pp.mId;
- std::cout << pp.mId << std::endl;
+ long id;
+ ss >> id;
+ qDebug() << "Receiving package with id: " << id;
+
+ NetworkPackage pp(id);
ss >> pp.mDeviceId;
qDebug() << pp.mDeviceId;
@@ -64,3 +64,17 @@ NetworkPackage NetworkPackage::fromString(QByteArray s)
}
+QByteArray NetworkPackage::toString() const
+{
+
+ QByteArray s;
+
+ //TODO
+ s += "HOLA";
+
+ return s;
+
+}
+
+
+
diff --git a/src/networkpackage.h b/src/networkpackage.h
index a8bd152..2cc692e 100644
--- a/src/networkpackage.h
+++ b/src/networkpackage.h
@@ -29,13 +29,21 @@ class NetworkPackage
public:
+ NetworkPackage(long id) {
+ mId = id;
+ //TODO
+ }
+
static NetworkPackage fromString(QByteArray);
+ QByteArray toString() const;
QString type() const { return mType; }
QString body() const { return mBody; }
long id() const { return mId; }
bool isCancel() const { return mIsCancel; }
+
+
private:
long mId;
diff --git a/src/udpdevicelink.cpp b/src/udpdevicelink.cpp
index 76dda08..5bdc672 100644
--- a/src/udpdevicelink.cpp
+++ b/src/udpdevicelink.cpp
@@ -21,25 +21,28 @@
#include "udpdevicelink.h"
-UdpDeviceLink::UdpDeviceLink(QString ip)
+UdpDeviceLink::UdpDeviceLink(QHostAddress ip, quint16 port)
{
- m_udpSocket = new QUdpSocket();
- m_udpSocket->bind(10600);
- connect(m_udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingNotifications()));
+ mIp = ip;
+ mPort = port;
+
+ mUdpSocket = new QUdpSocket();
+ mUdpSocket->bind(port);
+ connect(mUdpSocket, SIGNAL(readyRead()), this, SLOT(readPendingNotifications()));
}
void UdpDeviceLink::readPendingNotifications()
{
- while (m_udpSocket->hasPendingDatagrams()) {
+ while (mUdpSocket->hasPendingDatagrams()) {
QByteArray datagram;
- datagram.resize(m_udpSocket->pendingDatagramSize());
+ datagram.resize(mUdpSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
- m_udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
+ mUdpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
//log.write(datagram);
qDebug() << datagram;
diff --git a/src/udpdevicelink.h b/src/udpdevicelink.h
index f41f768..0e6da86 100644
--- a/src/udpdevicelink.h
+++ b/src/udpdevicelink.h
@@ -33,10 +33,11 @@ class UdpDeviceLink
Q_OBJECT
public:
- UdpDeviceLink(QString ip);
+ UdpDeviceLink(QHostAddress ip, quint16 port);
void sendPackage(const NetworkPackage& np) {
- //TODO: Not implemented
+ mUdpSocket->writeDatagram(np.toString(), mIp, mPort);
+
}
@@ -45,7 +46,10 @@ private Q_SLOTS:
void readPendingNotifications();
private:
- QUdpSocket* m_udpSocket;
+ QUdpSocket* mUdpSocket;
+
+ QHostAddress mIp;
+ quint16 mPort;
};
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index e69de29..2cf7e9d 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -0,0 +1,16 @@
+set(kded_androidshine_tests_SRCS
+ backendtests.cpp
+)
+
+kde4_add_unit_test(kded_androidshine_tests ${kded_androidshine_tests_SRCS})
+
+target_link_libraries(kded_androidshine_tests
+ ${KDE4_KDECORE_LIBS}
+ ${KDE4_KDEUI_LIBS}
+ kdnssd
+ ${QT_QTNETWORK_LIBRARY}
+)
+
+add_test(kded_androidshine_tests ${CMAKE_CURRENT_BINARY_DIR}/kded_androidshine_tests)
+
+
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list