summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tv/CTvBooking.cpp (plain)
blob: 220d25ebac7b4afee8da9cca694a79fd73ec5f69
1#define LOG_TAG "CTvBooking"
2
3#include "CTvBooking.h"
4#include "CTvDatabase.h"
5
6int 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
43int 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
61int 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
86int 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
109int 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
121int 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
146CTvBooking::CTvBooking(CTvDatabase::Cursor &c)
147{
148 InitFromCursor(c);
149}
150
151CTvBooking::CTvBooking()
152{
153}
154
155CTvBooking::~CTvBooking()
156{
157}
158
159
160