OSDN Git Service

EPG解析再考中...
[iptd/iPTd.git] / src / ry0 / iPTd / Analyzer.h
diff --git a/src/ry0/iPTd/Analyzer.h b/src/ry0/iPTd/Analyzer.h
new file mode 100644 (file)
index 0000000..1edb2ef
--- /dev/null
@@ -0,0 +1,46 @@
+/**\r
+ * @file Analyzer.h\r
+ *\r
+ */\r
+\r
+#pragma once\r
+\r
+#include "Raym/Raym.h"\r
+#include "ry0/device/Tuner.h"\r
+#include "mpeg2/ts/Demultiplexer.h"\r
+\r
+namespace ry0\r
+{\r
+namespace iPTd\r
+{\r
+\r
+class Analyzer : public Raym::Object,\r
+                 public ry0::device::Tuner::Listener,\r
+                 public MPEG2::TS::Demultiplexer::Listener\r
+{\r
+private:\r
+    MPEG2::TS::Demultiplexer    _demux;\r
+    MPEG2::TS::SDT *            _sdt;\r
+    MPEG2::TS::EIT *            _eit;\r
+\r
+protected:\r
+    Analyzer();\r
+    ~Analyzer();\r
+\r
+public:\r
+    static Analyzer *alloc();\r
+    Analyzer *init();\r
+\r
+    Raym::Dictionary *stationInfo();\r
+    Raym::Array *collectEPGs(time_t limit);\r
+\r
+    // ry0::device::Tuner::Listener\r
+    void put(uint8_t *buffer, uint32_t size);\r
+\r
+    // MPEG2::TS::Demultiplexer::Listener\r
+    void detect(MPEG2::TS::SDT *sdt);\r
+    void detect(MPEG2::TS::EIT *eit);\r
+};\r
+\r
+} // iPTd\r
+} // ry0\r