blob: fc9b28553222f4505ecbf70da22916e8093952c2
1 | // |
2 | // |
3 | // amlogic 2013 |
4 | // |
5 | // @ Project : tv |
6 | // @ File Name : CTvDatabase.h |
7 | // @ Date : 2013-11 |
8 | // @ Author : |
9 | // |
10 | // |
11 | #include <am_db.h> |
12 | #if !defined(_CTVDATABASE_H) |
13 | #define _CTVDATABASE_H |
14 | // 使用AM_DB |
15 | #include <unistd.h> |
16 | #include <stdlib.h> |
17 | #include <utils/String8.h> |
18 | #include <utils/Log.h> |
19 | #include <utils/Vector.h> |
20 | #include <utils/RefBase.h> |
21 | #include <tvutils/CSqlite.h> |
22 | |
23 | #include "CTvLog.h" |
24 | |
25 | |
26 | using namespace android; |
27 | //根据现在情况需求,此类只针对电视功能绑定的单文件数据库,与AM_DB有关联性 |
28 | //无解的关联 |
29 | class CTvDatabase: public CSqlite { |
30 | public: |
31 | static const char *DEFAULT_DB_PATH; |
32 | static const int DB_VERSION = 8; |
33 | static const char *DB_VERSION_FIELD; |
34 | |
35 | static const char feTypes[][32]; |
36 | static const char srvTypes[][32]; |
37 | static const char vidFmts[][32]; |
38 | static const char audFmts[][32]; |
39 | static const char mods[][32]; |
40 | static const char bandwidths[][32]; |
41 | static const char lnbPowers[][32]; |
42 | static const char sig22K[][32]; |
43 | static const char tonebursts[][32]; |
44 | static const char diseqc10s[][32]; |
45 | static const char diseqc11s[][32]; |
46 | static const char motors[][32]; |
47 | static const char ofdmModes[][32]; |
48 | static const char atvVideoStds[][32]; |
49 | static const char atvAudioStds[][32]; |
50 | template<typename T> |
51 | int StringToIndex(const T &t, const char *item) |
52 | { |
53 | if (item == NULL) return -1; |
54 | int size = sizeof(t) / sizeof(t[0]); |
55 | for (int i = 0; i < size; i++) { |
56 | if (strcmp(t[i], item) == 0) return i; |
57 | } |
58 | return -1; |
59 | } |
60 | public: |
61 | CTvDatabase(); |
62 | //直接指定数据库连接句柄 |
63 | //CTvDatabase(char* path, sqlite3 * h); |
64 | static CTvDatabase *GetTvDb(); |
65 | static void deleteTvDb(); |
66 | ~CTvDatabase(); |
67 | //用指定路径创建TV数据库. |
68 | int UnInitTvDb(); |
69 | int InitTvDb(const char *path); |
70 | //showboz test |
71 | class ChannelPara : public LightRefBase<ChannelPara> { |
72 | public: |
73 | int mode; |
74 | int freq; |
75 | int symbol_rate; |
76 | int modulation; |
77 | int bandwidth; |
78 | int polar; |
79 | }; |
80 | |
81 | static int getChannelParaList(char *path, Vector<sp<ChannelPara> > &vcp); |
82 | |
83 | int importDbToXml(); |
84 | int importXmlToDB(const char *xmlPath); |
85 | bool isAtv256ProgInsertForSkyworth(); |
86 | int insert256AtvProgForSkyworth(); |
87 | int ClearDbTable(); |
88 | int clearDbAllProgramInfoTable(); |
89 | private: |
90 | static CTvDatabase *mpDb; |
91 | int isFreqListExist(void); |
92 | }; |
93 | |
94 | #endif //_CTVDATABASE_H |
95 |