diff options
author | Tobias Grimm <etobi@debian.org> | 2015-10-07 19:30:05 +0200 |
---|---|---|
committer | Tobias Grimm <etobi@debian.org> | 2015-10-07 19:30:05 +0200 |
commit | 7092a2d6a6b2f988c86aea447edf553d0048cb4e (patch) | |
tree | 57aac6ae7d5467527e3b07e898504b3d86ef48c8 /xineExternal.h | |
download | vdr-plugin-xine-0.9.4.tar.gz vdr-plugin-xine-0.9.4.tar.bz2 |
Imported v0.9.4v0.9.4
Diffstat (limited to 'xineExternal.h')
-rw-r--r-- | xineExternal.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/xineExternal.h b/xineExternal.h new file mode 100644 index 0000000..e450cae --- /dev/null +++ b/xineExternal.h @@ -0,0 +1,74 @@ + +#ifndef __XINEEXTERNAL_H +#define __XINEEXTERNAL_H + + + +#include "xineCommon.h" + +#include <vdr/thread.h> + + + +#define FIFO_NAME_EXT_CONTROL "/external.control" +#define FIFO_NAME_EXT_RESULT "/external.result" + +#define EXTERNAL_COMMAND_MAX_LEN (1000) + + + +namespace PluginXine +{ + + class cXineLib; + + class cXineExternal : public cThread + { + int m_fdControl; + int m_fdResult; + + bool m_shutdown; + cMutex m_shutdownMutex; + cCondVar m_shutdownCondVar; + + bool m_connected; + + cXineLib *m_xineLib; + + cMutex m_enabledMutex; + bool m_enabled; + + char m_command[ EXTERNAL_COMMAND_MAX_LEN ]; + + virtual void Action(void); + + bool checkConnect(); + bool isConnected(); + + bool readCommand(); + + void cmdPlay(const char *const mrl); + bool writeResult(const char *result); + + public: + cXineExternal(); + virtual ~cXineExternal(); + + void setXineLib(cXineLib *const xineLib) + { + m_xineLib = xineLib; + } + + void enable(const bool enable); + void externalStreamFinished(); + void disconnect(); + + void StartExternal(); + void StopExternal(); + }; + +}; + + + +#endif //__XINEEXTERNAL_H |