summaryrefslogtreecommitdiffstats
path: root/noatun/modules/net/net.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commite2de64d6f1beb9e492daf5b886e19933c1fa41dd (patch)
tree9047cf9e6b5c43878d5bf82660adae77ceee097a /noatun/modules/net/net.cpp
downloadtdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.tar.gz
tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'noatun/modules/net/net.cpp')
-rw-r--r--noatun/modules/net/net.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/noatun/modules/net/net.cpp b/noatun/modules/net/net.cpp
new file mode 100644
index 00000000..5e3ba707
--- /dev/null
+++ b/noatun/modules/net/net.cpp
@@ -0,0 +1,57 @@
+#include "net.h"
+#include <noatun/player.h>
+#include <noatun/app.h>
+
+extern "C"
+{
+ KDE_EXPORT Plugin *create_plugin()
+ {
+ return new Net();
+ }
+}
+
+
+Net::Net() : QServerSocket(7539, 10), Plugin()
+{
+ mFDs.setAutoDelete(true);
+ connect(napp->player(), SIGNAL(newSong()), SLOT(newSong()));
+}
+
+Net::~Net()
+{
+}
+
+
+void Net::newConnection(int fd)
+{
+ QSocket *s=new QSocket;
+ s->setSocket(fd);
+ mFDs.append(s);
+}
+
+void Net::newSong()
+{
+ if (!napp->player()->current())
+ return;
+
+ for (QSocket *i=mFDs.first(); i!=0; i=mFDs.next())
+ {
+ QCString line;
+ line=napp->player()->current().title().latin1();
+ line+='\n';
+ ::write(i->socket(), (const void*)line.data(), line.length());
+ }
+}
+
+void Net::closed()
+{
+ for (QSocket *i=mFDs.first(); i!=0; i=mFDs.next())
+ {
+ if (sender()==i)
+ mFDs.removeRef(i);
+ }
+}
+
+
+
+#include "net.moc"