blob: 1ad45dbd911c1e48bf88dd2ee8d864d70242c7b3
1 | |
2 | #include "CTvBooking.h" |
3 | #include "CTvDatabase.h" |
4 | |
5 | #ifdef LOG_TAG |
6 | #undef LOG_TAG |
7 | #define LOG_TAG "CTvBooking" |
8 | #endif |
9 | int CTvBooking::InitFromCursor(CTvDatabase::Cursor &c) |
10 | { |
11 | int col; |
12 | |
13 | col = c.getColumnIndex("db_id"); |
14 | this->id = c.getInt(col); |
15 | |
16 | col = c.getColumnIndex("db_srv_id"); |
17 | this->programId = c.getInt(col); |
18 | |
19 | col = c.getColumnIndex("db_evt_id"); |
20 | this->eventId = c.getInt(col); |
21 | |
22 | col = c.getColumnIndex("flag"); |
23 | this->flag = c.getInt(col); |
24 | |
25 | col = c.getColumnIndex("status"); |
26 | this->status = c.getInt(col); |
27 | |
28 | col = c.getColumnIndex("repeat"); |
29 | this->repeat = c.getInt(col); |
30 | |
31 | col = c.getColumnIndex("start"); |
32 | this->start = (long)c.getInt(col); |
33 | |
34 | col = c.getColumnIndex("duration"); |
35 | this->duration = (long)c.getInt(col) ; |
36 | |
37 | col = c.getColumnIndex("srv_name"); |
38 | this->progName = c.getString(col); |
39 | |
40 | col = c.getColumnIndex("evt_name"); |
41 | this->evtName = c.getString(col); |
42 | |
43 | return 0; |
44 | } |
45 | |
46 | int CTvBooking::selectByID(int id, CTvBooking &CtvBook) |
47 | { |
48 | CTvDatabase::Cursor c; |
49 | String8 sql; |
50 | |
51 | sql = String8("select * from booking_table where booking_table.db_evt_id = ") + String8::format("%d", id); |
52 | CTvDatabase::GetTvDb()->select(sql.string(), c); |
53 | if (c.moveToFirst()) { |
54 | CtvBook.InitFromCursor(c); |
55 | } else { |
56 | c.close(); |
57 | return -1; |
58 | } |
59 | |
60 | c.close(); |
61 | return 0; |
62 | } |
63 | |
64 | int CTvBooking::getBookedEventList(Vector<sp<CTvBooking> > &vBv) |
65 | { |
66 | String8 cmd; |
67 | |
68 | cmd = String8("select * from booking_table order by start"); |
69 | |
70 | CTvDatabase::Cursor c; |
71 | int ret = CTvDatabase::GetTvDb()->select(cmd, c); |
72 | |
73 | if (c.moveToFirst()) { |
74 | do { |
75 | vBv.add(new CTvBooking(c)); |
76 | } while (c.moveToNext()); |
77 | |
78 | |
79 | } else { |
80 | c.close(); |
81 | return -1; |
82 | } |
83 | |
84 | c.close(); |
85 | return 0; |
86 | |
87 | } |
88 | |
89 | int CTvBooking::bookProgram(CTvProgram &prog, CTvEvent &evt) |
90 | { |
91 | String8 cmd; |
92 | String8 progName = String8(prog.getName()); |
93 | String8 evtName = String8(evt.getName()); |
94 | |
95 | |
96 | /*book this program*/ |
97 | cmd = String8("insert into booking_table(db_srv_id, db_evt_id, srv_name, evt_name,") |
98 | + String8("start,duration,flag,status,file_name,vid_pid,vid_fmt,aud_pids,aud_fmts,aud_languages,") |
99 | + String8("sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_languages,") |
100 | + String8("ttx_pids,ttx_types,ttx_magazine_numbers,ttx_page_numbers,ttx_languages, other_pids,from_storage,repeat)") |
101 | + String8("values(") + String8::format("%d,", prog.getID()) + String8::format("%d,", evt.getEventId()) + progName.string() + String8(",") + evtName.string() |
102 | + String8::format("%d,", evt.getStartTime()) + String8::format("%d,", evt.getEndTime() - evt.getStartTime()) + String8::format("%d,", flag) |
103 | + String8::format("%d,", status) + String8(",") + String8::format("%d,", prog.getVideo()->getPID()) + String8::format("%d,", prog.getVideo()->getFormat()) |
104 | + String8::format("%d,", prog.getAudio(0)->getPID()) + String8::format("%d,", prog.getAudio(0)->getFormat()) + prog.getAudio(0)->getLang().string() |
105 | + String8(" , , , , , , , , , , , , ,)"); |
106 | |
107 | CTvDatabase::GetTvDb()->exeSql(cmd.string()); |
108 | |
109 | return 0; |
110 | } |
111 | |
112 | int CTvBooking::deleteBook(int evtIdFlag) |
113 | { |
114 | String8 cmd; |
115 | |
116 | cmd = String8("delete from booking_table where db_evt_id=") |
117 | + String8::format("%d", evtIdFlag); |
118 | |
119 | CTvDatabase::GetTvDb()->exeSql(cmd.string()); |
120 | |
121 | return 0; |
122 | } |
123 | |
124 | int CTvBooking::bookEvent(int evtId, bool bBookFlag) |
125 | { |
126 | String8 cmd; |
127 | |
128 | cmd = String8("update evt_table set sub_flag=") + String8::format("%d", bBookFlag) |
129 | + String8(" where db_id=") + String8::format("%d", evtId); |
130 | |
131 | CTvDatabase::GetTvDb()->exeSql(cmd.string()); |
132 | |
133 | if (true == bBookFlag) { |
134 | CTvEvent evt; |
135 | CTvEvent::selectByID(evtId, evt); |
136 | |
137 | CTvProgram prog; |
138 | CTvProgram::selectByID(evt.getProgramId(), prog); |
139 | |
140 | bookProgram(prog, evt); |
141 | } else { |
142 | deleteBook(evtId); |
143 | } |
144 | |
145 | return 0; |
146 | |
147 | } |
148 | |
149 | CTvBooking::CTvBooking(CTvDatabase::Cursor &c) |
150 | { |
151 | InitFromCursor(c); |
152 | } |
153 | |
154 | CTvBooking::CTvBooking() |
155 | { |
156 | } |
157 | |
158 | CTvBooking::~CTvBooking() |
159 | { |
160 | } |
161 | |
162 | |
163 |