OSDN Git Service

1edb2ef8be6100c4e1482bcf1d0e94585cfa1add
[iptd/iPTd.git] / src / ry0 / iPTd / Analyzer.h
1 /**\r
2  * @file Analyzer.h\r
3  *\r
4  */\r
5 \r
6 #pragma once\r
7 \r
8 #include "Raym/Raym.h"\r
9 #include "ry0/device/Tuner.h"\r
10 #include "mpeg2/ts/Demultiplexer.h"\r
11 \r
12 namespace ry0\r
13 {\r
14 namespace iPTd\r
15 {\r
16 \r
17 class Analyzer : public Raym::Object,\r
18                  public ry0::device::Tuner::Listener,\r
19                  public MPEG2::TS::Demultiplexer::Listener\r
20 {\r
21 private:\r
22     MPEG2::TS::Demultiplexer    _demux;\r
23     MPEG2::TS::SDT *            _sdt;\r
24     MPEG2::TS::EIT *            _eit;\r
25 \r
26 protected:\r
27     Analyzer();\r
28     ~Analyzer();\r
29 \r
30 public:\r
31     static Analyzer *alloc();\r
32     Analyzer *init();\r
33 \r
34     Raym::Dictionary *stationInfo();\r
35     Raym::Array *collectEPGs(time_t limit);\r
36 \r
37     // ry0::device::Tuner::Listener\r
38     void put(uint8_t *buffer, uint32_t size);\r
39 \r
40     // MPEG2::TS::Demultiplexer::Listener\r
41     void detect(MPEG2::TS::SDT *sdt);\r
42     void detect(MPEG2::TS::EIT *eit);\r
43 };\r
44 \r
45 } // iPTd\r
46 } // ry0\r