mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-11-26 15:20:29 +01:00
2016-07-25 Fred Gleason <fredg@paravelsystems.com>
* Added a 'SERVICE_CLOCKS' table to the database. * Incremented the database version to 259. * Modified 'rdlogmanager/edit_clock.cpp' to use the new 'SERVICE_CLOCKS' table. * Modified 'rdlogmanager/list_clocks.cpp' to use the new 'SERVICE_CLOCKS' table.
This commit is contained in:
322
lib/rdsvc.cpp
322
lib/rdsvc.cpp
@@ -800,16 +800,15 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname,
|
||||
delete q;
|
||||
}
|
||||
RDCreateLogTable(RDLog::tableName(logname));
|
||||
// RDCreateLogTable(QString().sprintf("%s_LOG",(const char *)logname_esc));
|
||||
emit generationProgress(1);
|
||||
|
||||
//
|
||||
// Generate Events
|
||||
//
|
||||
for(int i=0;i<24;i++) {
|
||||
sql=QString().sprintf("select CLOCK%d from SERVICES where NAME=\"%s\"",
|
||||
24*(date.dayOfWeek()-1)+i,
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
sql=QString("select CLOCK_NAME from SERVICE_CLOCKS where ")+
|
||||
"(SERVICE_NAME=\""+RDEscapeString(svc_name)+"\")&&"+
|
||||
QString().sprintf("(HOUR=%d)",24*(date.dayOfWeek()-1)+i);
|
||||
q=new RDSqlQuery(sql);
|
||||
if(q->first()) {
|
||||
if((!q->value(0).isNull())&&(!q->value(0).toString().isEmpty())) {
|
||||
@@ -1119,119 +1118,133 @@ void RDSvc::create(const QString exemplar) const
|
||||
delete q1;
|
||||
}
|
||||
delete q;
|
||||
|
||||
for(int i=0;i<168;i++) {
|
||||
sql=QString("insert into SERVICE_CLOCKS set ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\","+
|
||||
QString().sprintf("HOUR=%d,",i)+
|
||||
"CLOCK_NAME=null";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
}
|
||||
}
|
||||
else { // Base on Existing Service
|
||||
sql=QString().sprintf("select NAME_TEMPLATE,DESCRIPTION_TEMPLATE,\
|
||||
CHAIN_LOG,AUTO_REFRESH,\
|
||||
ELR_SHELFLIFE,TFC_PATH,TFC_WIN_PATH,\
|
||||
TFC_CART_OFFSET,TFC_CART_LENGTH,\
|
||||
TFC_START_OFFSET,TFC_START_LENGTH,\
|
||||
TFC_LENGTH_OFFSET,TFC_LENGTH_LENGTH,\
|
||||
TFC_HOURS_OFFSET,TFC_HOURS_LENGTH,\
|
||||
TFC_MINUTES_OFFSET,TFC_MINUTES_LENGTH,\
|
||||
TFC_SECONDS_OFFSET,TFC_SECONDS_LENGTH,\
|
||||
TFC_DATA_OFFSET,TFC_DATA_LENGTH,\
|
||||
TFC_EVENT_ID_OFFSET,TFC_EVENT_ID_LENGTH,\
|
||||
TFC_ANNC_TYPE_OFFSET,TFC_ANNC_TYPE_LENGTH,\
|
||||
MUS_PATH,MUS_WIN_PATH,\
|
||||
MUS_CART_OFFSET,MUS_CART_LENGTH,\
|
||||
MUS_START_OFFSET,MUS_START_LENGTH,\
|
||||
MUS_LENGTH_OFFSET,MUS_LENGTH_LENGTH,\
|
||||
MUS_HOURS_OFFSET,MUS_HOURS_LENGTH,\
|
||||
MUS_MINUTES_OFFSET,MUS_MINUTES_LENGTH,\
|
||||
MUS_SECONDS_OFFSET,MUS_SECONDS_LENGTH,\
|
||||
MUS_DATA_OFFSET,MUS_DATA_LENGTH,\
|
||||
MUS_EVENT_ID_OFFSET,MUS_EVENT_ID_LENGTH,\
|
||||
MUS_ANNC_TYPE_OFFSET,MUS_ANNC_TYPE_LENGTH,");
|
||||
for(int i=0;i<168;i++) {
|
||||
sql+=QString().sprintf("CLOCK%d,",i);
|
||||
}
|
||||
sql=sql.left(sql.length()-1);
|
||||
sql+=QString().sprintf(" from SERVICES where NAME=\"%s\"",
|
||||
(const char *)exemplar);
|
||||
sql=QString("select ")+
|
||||
"NAME_TEMPLATE,"+ // 00
|
||||
"DESCRIPTION_TEMPLATE,"+ // 01
|
||||
"CHAIN_LOG,"+ // 02
|
||||
"AUTO_REFRESH,"+ // 03
|
||||
"ELR_SHELFLIFE,"+ // 04
|
||||
"TFC_PATH,"+ // 05
|
||||
"TFC_WIN_PATH,"+ // 06
|
||||
"TFC_CART_OFFSET,"+ // 07
|
||||
"TFC_CART_LENGTH,"+ // 08
|
||||
"TFC_START_OFFSET,"+ // 09
|
||||
"TFC_START_LENGTH,"+ // 10
|
||||
"TFC_LENGTH_OFFSET,"+ // 11
|
||||
"TFC_LENGTH_LENGTH,"+ // 12
|
||||
"TFC_HOURS_OFFSET,"+ // 13
|
||||
"TFC_HOURS_LENGTH,"+ // 14
|
||||
"TFC_MINUTES_OFFSET,"+ // 15
|
||||
"TFC_MINUTES_LENGTH,"+ // 16
|
||||
"TFC_SECONDS_OFFSET,"+ // 17
|
||||
"TFC_SECONDS_LENGTH,"+ // 18
|
||||
"TFC_DATA_OFFSET,"+ // 19
|
||||
"TFC_DATA_LENGTH,"+ // 20
|
||||
"TFC_EVENT_ID_OFFSET,"+ // 21
|
||||
"TFC_EVENT_ID_LENGTH,"+ // 22
|
||||
"TFC_ANNC_TYPE_OFFSET,"+ // 23
|
||||
"TFC_ANNC_TYPE_LENGTH,"+ // 24
|
||||
"MUS_PATH,"+ // 25
|
||||
"MUS_WIN_PATH,"+ // 26
|
||||
"MUS_CART_OFFSET,"+ // 27
|
||||
"MUS_CART_LENGTH,"+ // 28
|
||||
"MUS_START_OFFSET,"+ // 29
|
||||
"MUS_START_LENGTH,"+ // 30
|
||||
"MUS_LENGTH_OFFSET,"+ // 31
|
||||
"MUS_LENGTH_LENGTH,"+ // 32
|
||||
"MUS_HOURS_OFFSET,"+ // 33
|
||||
"MUS_HOURS_LENGTH,"+ // 34
|
||||
"MUS_MINUTES_OFFSET,"+ // 35
|
||||
"MUS_MINUTES_LENGTH,"+ // 36
|
||||
"MUS_SECONDS_OFFSET,"+ // 37
|
||||
"MUS_SECONDS_LENGTH,"+ // 38
|
||||
"MUS_DATA_OFFSET,"+ // 39
|
||||
"MUS_DATA_LENGTH,"+ // 40
|
||||
"MUS_EVENT_ID_OFFSET,"+ // 41
|
||||
"MUS_EVENT_ID_LENGTH,"+ // 42
|
||||
"MUS_ANNC_TYPE_OFFSET,"+ // 43
|
||||
"MUS_ANNC_TYPE_LENGTH "+ // 44
|
||||
" from SERVICES where NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
if(q->first()) {
|
||||
sql=QString().sprintf("insert into SERVICES set\
|
||||
NAME_TEMPLATE=\"%s\",\
|
||||
DESCRIPTION_TEMPLATE=\"%s\",\
|
||||
CHAIN_LOG=\"%s\",\
|
||||
AUTO_REFRESH=\"%s\",ELR_SHELFLIFE=%d,\
|
||||
TFC_PATH=\"%s\",TFC_WIN_PATH=\"%s\",\
|
||||
TFC_CART_OFFSET=%d,TFC_CART_LENGTH=%d,\
|
||||
TFC_START_OFFSET=%d,TFC_START_LENGTH=%d,\
|
||||
TFC_LENGTH_OFFSET=%d,TFC_LENGTH_LENGTH=%d,\
|
||||
TFC_HOURS_OFFSET=%d,TFC_HOURS_LENGTH=%d,\
|
||||
TFC_MINUTES_OFFSET=%d,TFC_MINUTES_LENGTH=%d,\
|
||||
TFC_SECONDS_OFFSET=%d,TFC_SECONDS_LENGTH=%d,\
|
||||
TFC_DATA_OFFSET=%d,TFC_DATA_LENGTH=%d,\
|
||||
TFC_EVENT_ID_OFFSET=%d,TFC_EVENT_ID_LENGTH=%d,\
|
||||
TFC_ANNC_TYPE_OFFSET=%d,TFC_ANNC_TYPE_LENGTH=%d,\
|
||||
MUS_PATH=\"%s\",MUS_WIN_PATH=\"%s\",\
|
||||
MUS_CART_OFFSET=%d,MUS_CART_LENGTH=%d,\
|
||||
MUS_START_OFFSET=%d,MUS_START_LENGTH=%d,\
|
||||
MUS_LENGTH_OFFSET=%d,MUS_LENGTH_LENGTH=%d,\
|
||||
MUS_HOURS_OFFSET=%d,MUS_HOURS_LENGTH=%d,\
|
||||
MUS_MINUTES_OFFSET=%d,MUS_MINUTES_LENGTH=%d,\
|
||||
MUS_SECONDS_OFFSET=%d,MUS_SECONDS_LENGTH=%d,\
|
||||
MUS_DATA_OFFSET=%d,MUS_DATA_LENGTH=%d,\
|
||||
MUS_EVENT_ID_OFFSET=%d,MUS_EVENT_ID_LENGTH=%d,\
|
||||
MUS_ANNC_TYPE_OFFSET=%d,MUS_ANNC_TYPE_LENGTH=%d,\
|
||||
NAME=\"%s\",",
|
||||
(const char *)
|
||||
RDEscapeString(q->value(0).toString()),
|
||||
(const char *)
|
||||
RDEscapeString(q->value(1).toString()),
|
||||
(const char *)q->value(2).toString(),
|
||||
(const char *)q->value(3).toString(),
|
||||
q->value(4).toInt(),
|
||||
(const char *)q->value(5).toString(),
|
||||
(const char *)q->value(6).toString(),
|
||||
q->value(7).toInt(),
|
||||
q->value(8).toInt(),
|
||||
q->value(9).toInt(),
|
||||
q->value(10).toInt(),
|
||||
q->value(11).toInt(),
|
||||
q->value(12).toInt(),
|
||||
q->value(13).toInt(),
|
||||
q->value(14).toInt(),
|
||||
q->value(15).toInt(),
|
||||
q->value(16).toInt(),
|
||||
q->value(17).toInt(),
|
||||
q->value(18).toInt(),
|
||||
q->value(19).toInt(),
|
||||
q->value(20).toInt(),
|
||||
q->value(21).toInt(),
|
||||
q->value(22).toInt(),
|
||||
q->value(23).toInt(),
|
||||
q->value(24).toInt(),
|
||||
(const char *)q->value(25).toString(),
|
||||
(const char *)q->value(26).toString(),
|
||||
q->value(27).toInt(),
|
||||
q->value(28).toInt(),
|
||||
q->value(29).toInt(),
|
||||
q->value(30).toInt(),
|
||||
q->value(31).toInt(),
|
||||
q->value(32).toInt(),
|
||||
q->value(33).toInt(),
|
||||
q->value(34).toInt(),
|
||||
q->value(35).toInt(),
|
||||
q->value(36).toInt(),
|
||||
q->value(37).toInt(),
|
||||
q->value(38).toInt(),
|
||||
q->value(39).toInt(),
|
||||
q->value(40).toInt(),
|
||||
q->value(41).toInt(),
|
||||
q->value(42).toInt(),
|
||||
q->value(43).toInt(),
|
||||
q->value(44).toInt(),
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
for(int i=0;i<168;i++) {
|
||||
sql+=QString().sprintf("CLOCK%d=\"%s\",",
|
||||
i,(const char *)q->value(45+i).toString());
|
||||
}
|
||||
sql=sql.left(sql.length()-1);
|
||||
sql=QString("insert into SERVICES set ")+
|
||||
"NAME_TEMPLATE=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||
"DESCRIPTION_TEMPLATE=\""+RDEscapeString(q->value(1).toString())+"\","+
|
||||
"CHAIN_LOG=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||
"AUTO_REFRESH=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||
QString().sprintf("ELR_SHELFLIFE=%d,",q->value(4).toInt())+
|
||||
"TFC_PATH=\""+RDEscapeString(q->value(5).toString())+"\","+
|
||||
"TFC_WIN_PATH=\""+RDEscapeString(q->value(6).toString())+"\","+
|
||||
QString().sprintf("TFC_CART_OFFSET=%d,",q->value(7).toInt())+
|
||||
QString().sprintf("TFC_CART_LENGTH=%d,",q->value(8).toInt())+
|
||||
QString().sprintf("TFC_START_OFFSET=%d,",q->value(9).toInt())+
|
||||
QString().sprintf("TFC_START_LENGTH=%d,",q->value(10).toInt())+
|
||||
QString().sprintf("TFC_LENGTH_OFFSET=%d,",q->value(11).toInt())+
|
||||
QString().sprintf("TFC_LENGTH_LENGTH=%d,",q->value(12).toInt())+
|
||||
QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(13).toInt())+
|
||||
QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(14).toInt())+
|
||||
QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(15).toInt())+
|
||||
QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(16).toInt())+
|
||||
QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(17).toInt())+
|
||||
QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(18).toInt())+
|
||||
QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(19).toInt())+
|
||||
QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(20).toInt())+
|
||||
QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(21).toInt())+
|
||||
QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(22).toInt())+
|
||||
QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(23).toInt())+
|
||||
QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(24).toInt())+
|
||||
"MUS_PATH=\""+RDEscapeString(q->value(25).toString())+"\","+
|
||||
"MUS_WIN_PATH=\""+RDEscapeString(q->value(26).toString())+"\","+
|
||||
QString().sprintf("MUS_CART_OFFSET=%d,",q->value(27).toInt())+
|
||||
QString().sprintf("MUS_CART_LENGTH=%d,",q->value(28).toInt())+
|
||||
QString().sprintf("MUS_START_OFFSET=%d,",q->value(29).toInt())+
|
||||
QString().sprintf("MUS_START_LENGTH=%d,",q->value(30).toInt())+
|
||||
QString().sprintf("MUS_LENGTH_OFFSET=%d,",q->value(31).toInt())+
|
||||
QString().sprintf("MUS_LENGTH_LENGTH=%d,",q->value(32).toInt())+
|
||||
QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(33).toInt())+
|
||||
QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(34).toInt())+
|
||||
QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(35).toInt())+
|
||||
QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(36).toInt())+
|
||||
QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(37).toInt())+
|
||||
QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(38).toInt())+
|
||||
QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(39).toInt())+
|
||||
QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(40).toInt())+
|
||||
QString().sprintf("MUS_EVENT_ID_OFFSET=%d,",q->value(41).toInt())+
|
||||
QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(42).toInt())+
|
||||
QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(43).toInt())+
|
||||
QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(44).toInt())+
|
||||
"NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=QString("select HOUR,CLOCK_NAME from SERVICE_CLOCKS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
sql=QString("insert into SERVICE_CLOCKS set ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\","+
|
||||
QString().sprintf("HOUR=%d,",q->value(0).toInt());
|
||||
|
||||
if(q->value(1).isNull()) {
|
||||
sql+="CLOCK_NAME=null";
|
||||
}
|
||||
else {
|
||||
sql+="CLOCK_NAME=\""+RDEscapeString(q->value(1).toString())+"\"";
|
||||
}
|
||||
q1=new RDSqlQuery(sql);
|
||||
delete q1;
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1340,47 +1353,54 @@ void RDSvc::remove() const
|
||||
RDSqlQuery *q1;
|
||||
QString logname;
|
||||
|
||||
sql=QString().sprintf("delete from AUDIO_PERMS where SERVICE_NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=
|
||||
QString().sprintf("delete from SERVICE_PERMS where SERVICE_NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=QString().sprintf("update RDAIRPLAY set DEFAULT_SERVICE=\"\" \
|
||||
where DEFAULT_SERVICE=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=
|
||||
QString().sprintf("delete from EVENT_PERMS where SERVICE_NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=
|
||||
QString().sprintf("delete from CLOCK_PERMS where SERVICE_NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=
|
||||
QString().sprintf("delete from AUTOFILLS where SERVICE=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=
|
||||
QString().sprintf("delete from REPORT_SERVICES where SERVICE_NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=QString().sprintf("delete from SERVICES where NAME=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
sql=QString("delete from AUDIO_PERMS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("select NAME from LOGS where SERVICE=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
sql=QString("delete from SERVICE_PERMS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("update RDAIRPLAY set ")+
|
||||
"DEFAULT_SERVICE=\"\" where "+
|
||||
"DEFAULT_SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from EVENT_PERMS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from CLOCK_PERMS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from AUTOFILLS where ")+
|
||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from REPORT_SERVICES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from SERVICES where ")+
|
||||
"NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("delete from SERVICE_CLOCKS where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString("select NAME from LOGS where ")+
|
||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
logname=q->value(0).toString();
|
||||
@@ -1404,8 +1424,8 @@ void RDSvc::remove() const
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("delete from LOGS where SERVICE=\"%s\"",
|
||||
(const char *)RDEscapeString(svc_name));
|
||||
sql=QString("delete from LOGS where ")+
|
||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user