summaryrefslogtreecommitdiff
path: root/vdr-androvdr/androvdrthread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vdr-androvdr/androvdrthread.cpp')
-rw-r--r--vdr-androvdr/androvdrthread.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/vdr-androvdr/androvdrthread.cpp b/vdr-androvdr/androvdrthread.cpp
new file mode 100644
index 0000000..3329e3e
--- /dev/null
+++ b/vdr-androvdr/androvdrthread.cpp
@@ -0,0 +1,62 @@
+/*
+ * VdrmonThread
+ */
+#include <string.h>
+#include <vdr/plugin.h>
+#include <vdr/thread.h>
+#include "androvdrthread.h"
+#include "select.h"
+#include "helpers.h"
+
+cAndroVdrThread::cAndroVdrThread(int port, const char * password)
+{
+ select = NULL;
+ this->port = port;
+ this->password = password;
+}
+
+cAndroVdrThread::~cAndroVdrThread()
+{
+ Cleanup();
+}
+
+void cAndroVdrThread::Action(void)
+{
+ // create listener socket
+ if (!Init())
+ return;
+
+ // do processing
+ select->Action();
+
+ // cleanup
+ Cleanup();
+}
+
+bool cAndroVdrThread::Init()
+{
+ // create select
+ select = new cSelect();
+ if (select == NULL)
+ return false;
+
+ // create server socket
+ cVdrmanagerServerSocket * sock = new cVdrmanagerServerSocket();
+ if (sock == NULL || !sock->Create(port, password))
+ return false;
+
+ // register server socket
+ select->SetServerSocket(sock);
+
+ return true;
+}
+
+void cAndroVdrThread::Cleanup()
+{
+ if (select)
+ delete select;
+}
+
+void cAndroVdrThread::Shutdown()
+{
+}