summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tv/CTvBooking.cpp (plain)
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
9int 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
46int 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
64int 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
89int 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
112int 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
124int 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
149CTvBooking::CTvBooking(CTvDatabase::Cursor &c)
150{
151 InitFromCursor(c);
152}
153
154CTvBooking::CTvBooking()
155{
156}
157
158CTvBooking::~CTvBooking()
159{
160}
161
162
163