summaryrefslogtreecommitdiff
path: root/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'common.h')
-rw-r--r--common.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/common.h b/common.h
new file mode 100644
index 0000000..252a655
--- /dev/null
+++ b/common.h
@@ -0,0 +1,119 @@
+/*
+ * $Id: common.h,v 1.1 2004/12/30 22:43:55 lordjaxom Exp $
+ */
+
+#ifndef VDR_STREAMDEV_COMMON_H
+#define VDR_STREAMDEV_COMMON_H
+
+#include <vdr/tools.h>
+#include <vdr/plugin.h>
+
+#include "tools/socket.h"
+
+#ifdef DEBUG
+# include <stdio.h>
+# define Dprintf(x...) fprintf(stderr, x)
+#else
+# define Dprintf(x...)
+#endif
+
+#if VDRVERSNUM < 10300
+# define TRANSPONDER(c1, c2) (ISTRANSPONDER(c1->Frequency(), c2->Frequency()))
+#else
+# define TRANSPONDER(c1, c2) (c1->Transponder() == c2->Transponder())
+#endif
+
+#if VDRVERSNUM < 10307
+# define INFO(s) Interface->Info(s)
+# define STATUS(s) Interface->Status(s)
+# define ERROR(s) Interface->Status(s)
+# define FLUSH() Interface->Flush()
+#else
+# define INFO(s) Skins.Message(mtInfo, s)
+# define STATUS(s) Skins.Message(mtInfo, s)
+# define ERROR(s) Skins.Message(mtStatus, s)
+# define FLUSH() Skins.Flush()
+#endif
+
+/* Check if a channel is a radio station. */
+#define ISRADIO(x) ((x)->Vpid()==0||(x)->Vpid()==1||(x)->Vpid()==0x1fff)
+
+class cChannel;
+
+char *GetNextLine(char *String, uint Length, uint &Offset);
+
+cChannel *ChannelFromString(char *String);
+
+/* Disable logging if BUFCOUNT buffer overflows occur within BUFOVERTIME
+ milliseconds. Enable logging again if there is no error within BUFOVERTIME
+ milliseconds. */
+#define BUFOVERTIME 5000
+#define BUFOVERCOUNT 100
+
+#define STREAMDEVHOSTS AddDirectory(cPlugin::ConfigDirectory(), \
+ "streamdevhosts.conf")
+
+#define POLLFAIL esyslog("Streamdev: Polling failed: %s", strerror(errno))
+#define WRITEFAIL esyslog("Streamdev: Writing failed: %s", strerror(errno))
+#define READFAIL esyslog("Streamdev: Reading failed: %s", strerror(errno))
+#define CHECKPOLL(x) if ((x)<0){POLLFAIL; return false;}
+#define CHECKWRITE(x) if ((x)<0) { WRITEFAIL; return false; }
+#define CHECKREAD(x) if ((x)<0) { READFAIL; return false; }
+
+enum eStreamType {
+ stTS,
+ stPES,
+ stPS,
+ stES,
+ st_Count
+};
+
+enum eSuspendMode {
+ smOffer,
+ smAlways,
+ smNever,
+ sm_Count
+};
+
+enum eSocketId {
+ siLive,
+ siReplay,
+ si_Count
+};
+
+extern const char *VERSION;
+extern const char *StreamTypes[st_Count];
+extern const char *SuspendModes[sm_Count];
+extern const char IpCharacters[];
+
+class cStreamdevMenuSetupPage: public cMenuSetupPage {
+protected:
+ void AddCategory(const char *Title);
+ virtual void Store(void) = 0;
+
+ void AddBoolEdit(const char *Title, int &Value);
+ void AddIpEdit(const char *Title, char *Value);
+ void AddShortEdit(const char *Title, int &Value);
+ void AddRangeEdit(const char *Title, int &Value, int Min, int Max);
+ void AddSuspEdit(const char *Title, int &Value);
+ void AddTypeEdit(const char *Title, int &Value);
+};
+
+class cMenuEditIpItem: public cMenuEditItem {
+private:
+ char *value;
+ int curNum;
+ int pos;
+ bool step;
+
+protected:
+ virtual void Set(void);
+
+public:
+ cMenuEditIpItem(const char *Name, char *Value); // Value must be 16 bytes
+ ~cMenuEditIpItem();
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+#endif // VDR_STREAMDEV_COMMON_H