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