mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-27 14:09:38 +02:00
2016-06-07 Fred Gleason <fredg@paravelsystems.com>
* Added code in 'lib/rdevent_line.cpp' and 'lib/rdsvc.cpp' to allow embedded traffic breaks to be specified with start time and length in the music schedule.
This commit is contained in:
parent
04b4db9157
commit
6a05fd90a5
@ -15196,3 +15196,7 @@
|
|||||||
* Changed the default value of the 'CART_NUMBER' field in '_LOG'
|
* Changed the default value of the 'CART_NUMBER' field in '_LOG'
|
||||||
tables from NULL to 0.
|
tables from NULL to 0.
|
||||||
* Incremented the database version to 258.
|
* Incremented the database version to 258.
|
||||||
|
2016-06-07 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added code in 'lib/rdevent_line.cpp' and 'lib/rdsvc.cpp' to allow
|
||||||
|
embedded traffic breaks to be specified with start time and length
|
||||||
|
in the music schedule.
|
||||||
|
@ -939,15 +939,26 @@ bool RDEventLine::linkLog(RDLogEvent *e,int next_id,const QString &svcname,
|
|||||||
// Load Matching Events and Insert into Log
|
// Load Matching Events and Insert into Log
|
||||||
//
|
//
|
||||||
int id=-1;
|
int id=-1;
|
||||||
sql=QString().sprintf("select CART_NUMBER,START_SECS,LENGTH,EXT_DATA,\
|
sql=QString("select ")+
|
||||||
EXT_EVENT_ID,EXT_ANNC_TYPE,EXT_CART_NAME,\
|
"CART_NUMBER,"+ // 00
|
||||||
INSERT_BREAK,INSERT_TRACK,INSERT_FIRST,TITLE,\
|
"START_SECS,"+ // 01
|
||||||
TRACK_STRING from `%s` where (START_HOUR=%d)&&\
|
"LENGTH,"+ // 02
|
||||||
(START_SECS>=%d)&&(START_SECS<=%d)&&\
|
"EXT_DATA,"+ // 03
|
||||||
(EVENT_USED=\"N\") order by ID",
|
"EXT_EVENT_ID,"+ // 04
|
||||||
(const char *)import_table,
|
"EXT_ANNC_TYPE,"+ // 05
|
||||||
start_start_hour,start_start_secs/1000,
|
"EXT_CART_NAME,"+ // 06
|
||||||
end_start_secs/1000);
|
"INSERT_BREAK,"+ // 07
|
||||||
|
"INSERT_TRACK,"+ // 08
|
||||||
|
"INSERT_FIRST,"+ // 09
|
||||||
|
"TITLE,"+ // 10
|
||||||
|
"TRACK_STRING,"+ // 11
|
||||||
|
"LINK_START_TIME,"+ // 12
|
||||||
|
"LINK_LENGTH "+ // 13
|
||||||
|
"from `"+import_table+"` where "+
|
||||||
|
QString().sprintf("(START_HOUR=%d)&&",start_start_hour)+
|
||||||
|
QString().sprintf("(START_SECS>=%d)&&",start_start_secs/1000)+
|
||||||
|
QString().sprintf("(START_SECS<=%d)&&",end_start_secs/1000)+
|
||||||
|
"(EVENT_USED=\"N\") order by ID";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
while(q->next()) {
|
while(q->next()) {
|
||||||
if((id=e->nextId())>next_id) {
|
if((id=e->nextId())>next_id) {
|
||||||
@ -966,8 +977,14 @@ bool RDEventLine::linkLog(RDLogEvent *e,int next_id,const QString &svcname,
|
|||||||
logline->setTransType(trans_type);
|
logline->setTransType(trans_type);
|
||||||
logline->setEventLength(event_length);
|
logline->setEventLength(event_length);
|
||||||
logline->setLinkEventName(event_nested_event);
|
logline->setLinkEventName(event_nested_event);
|
||||||
|
if((!q->value(12).isNull())&&(!q->value(13).isNull())) {
|
||||||
|
logline->setLinkStartTime(q->value(12).toTime());
|
||||||
|
logline->setLinkLength(q->value(13).toInt());
|
||||||
|
}
|
||||||
|
else {
|
||||||
logline->setLinkStartTime(link_logline->linkStartTime());
|
logline->setLinkStartTime(link_logline->linkStartTime());
|
||||||
logline->setLinkLength(link_logline->linkLength());
|
logline->setLinkLength(link_logline->linkLength());
|
||||||
|
}
|
||||||
logline->setLinkStartSlop(link_logline->linkStartSlop());
|
logline->setLinkStartSlop(link_logline->linkStartSlop());
|
||||||
logline->setLinkEndSlop(link_logline->linkEndSlop());
|
logline->setLinkEndSlop(link_logline->linkEndSlop());
|
||||||
logline->setLinkId(link_logline->linkId());
|
logline->setLinkId(link_logline->linkId());
|
||||||
|
107
lib/rdsvc.cpp
107
lib/rdsvc.cpp
@ -521,33 +521,30 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
//
|
//
|
||||||
// Setup Data Source and Destination
|
// Setup Data Source and Destination
|
||||||
//
|
//
|
||||||
/*
|
|
||||||
if((infile=fopen(RDDateDecode(infilename,date),"r"))==NULL) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
sql=QString().sprintf("drop table `%s`",(const char *)dest_table);
|
sql=QString().sprintf("drop table `%s`",(const char *)dest_table);
|
||||||
QSqlQuery *qq; // Use QSqlQuery so we don't generate a
|
QSqlQuery *qq; // Use QSqlQuery so we don't generate a
|
||||||
qq=new QSqlQuery(sql); // spurious error message.
|
qq=new QSqlQuery(sql); // spurious error message.
|
||||||
delete qq;
|
delete qq;
|
||||||
sql=QString().sprintf("create table `%s` (\
|
sql=QString("create table ")+
|
||||||
ID int primary key,\
|
"`"+dest_table+"` ("+
|
||||||
START_HOUR int not null,\
|
"ID int primary key,"+
|
||||||
START_SECS int not null,\
|
"START_HOUR int not null,"+
|
||||||
CART_NUMBER int unsigned,\
|
"START_SECS int not null,"+
|
||||||
TITLE char(255),\
|
"CART_NUMBER int unsigned,"+
|
||||||
LENGTH int,\
|
"TITLE char(255),"+
|
||||||
INSERT_BREAK enum('N','Y') default 'N',\
|
"LENGTH int,"+
|
||||||
INSERT_TRACK enum('N','Y') default 'N',\
|
"INSERT_BREAK enum('N','Y') default 'N',"+
|
||||||
INSERT_FIRST int unsigned default 0,\
|
"INSERT_TRACK enum('N','Y') default 'N',"+
|
||||||
TRACK_STRING char(255),\
|
"INSERT_FIRST int unsigned default 0,"+
|
||||||
EXT_DATA char(32),\
|
"TRACK_STRING char(255),"+
|
||||||
EXT_EVENT_ID char(32),\
|
"EXT_DATA char(32),"+
|
||||||
EXT_ANNC_TYPE char(8),\
|
"EXT_EVENT_ID char(32),"+
|
||||||
EXT_CART_NAME char(32),\
|
"EXT_ANNC_TYPE char(8),"+
|
||||||
EVENT_USED enum('N','Y') default 'N',\
|
"EXT_CART_NAME char(32),"+
|
||||||
INDEX START_TIME_IDX (START_HOUR,START_SECS))",
|
"LINK_START_TIME time default NULL,"+
|
||||||
(const char *)dest_table);
|
"LINK_LENGTH int default NULL,"+
|
||||||
|
"EVENT_USED enum('N','Y') default 'N',"+
|
||||||
|
"INDEX START_TIME_IDX (START_HOUR,START_SECS))";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
@ -563,6 +560,9 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
bool break_first=false;
|
bool break_first=false;
|
||||||
bool track_first=false;
|
bool track_first=false;
|
||||||
QString track_label;
|
QString track_label;
|
||||||
|
QTime link_time;
|
||||||
|
int link_length=-1;
|
||||||
|
|
||||||
while(fgets(buf,RD_MAX_IMPORT_LINE_LENGTH,infile)!=NULL) {
|
while(fgets(buf,RD_MAX_IMPORT_LINE_LENGTH,infile)!=NULL) {
|
||||||
line_used=false;
|
line_used=false;
|
||||||
str_buf=buf;
|
str_buf=buf;
|
||||||
@ -619,30 +619,39 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
(cartname==label_cart))||
|
(cartname==label_cart))||
|
||||||
((!track_cart.isEmpty())&&
|
((!track_cart.isEmpty())&&
|
||||||
(cartname==track_cart))) {
|
(cartname==track_cart))) {
|
||||||
sql=QString().sprintf("insert into `%s` \
|
sql=QString("insert into ")+
|
||||||
set ID=%d,START_HOUR=%d,START_SECS=%d,\
|
"`"+dest_table+"` set "+
|
||||||
CART_NUMBER=%u,TITLE=\"%s\",LENGTH=%d,\
|
QString().sprintf("ID=%d,",line_id++)+
|
||||||
EXT_DATA=\"%s\",EXT_EVENT_ID=\"%s\",\
|
QString().sprintf("START_HOUR=%d,",start_hour)+
|
||||||
EXT_ANNC_TYPE=\"%s\",EXT_CART_NAME=\"%s\"",
|
QString().sprintf("START_SECS=%d,",
|
||||||
(const char *)dest_table,
|
60*start_minutes+start_seconds)+
|
||||||
line_id++,
|
QString().sprintf("CART_NUMBER=%u,",cartnum)+
|
||||||
start_hour,
|
"TITLE=\""+RDEscapeString(title)+"\","+
|
||||||
60*start_minutes+
|
QString().sprintf("LENGTH=%d,",cartlen)+
|
||||||
start_seconds,
|
"EXT_DATA=\""+data_buf+"\","+
|
||||||
cartnum,
|
"EXT_EVENT_ID=\""+eventid_buf+"\","+
|
||||||
(const char *)
|
"EXT_ANNC_TYPE=\""+annctype_buf+"\","+
|
||||||
RDEscapeString(title),
|
"EXT_CART_NAME=\""+cartname+"\"";
|
||||||
cartlen,
|
|
||||||
(const char *)data_buf,
|
|
||||||
(const char *)eventid_buf,
|
|
||||||
(const char *)annctype_buf,
|
|
||||||
(const char *)cartname);
|
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
//
|
//
|
||||||
// Insert Break
|
// Insert Break
|
||||||
//
|
//
|
||||||
if(insert_break) {
|
if(insert_break) {
|
||||||
|
sql=QString("update ")+"`"+dest_table+"` set "+
|
||||||
|
"INSERT_BREAK=\"Y\"";
|
||||||
|
if(break_first) {
|
||||||
|
sql+=QString().sprintf(",INSERT_FIRST=%d",
|
||||||
|
RDEventLine::InsertBreak);
|
||||||
|
}
|
||||||
|
if(link_time.isValid()&&(link_length>=0)) {
|
||||||
|
sql+=",LINK_START_TIME=\""+
|
||||||
|
link_time.toString("hh:mm:ss")+"\""+
|
||||||
|
QString().sprintf(",LINK_LENGTH=%d",
|
||||||
|
link_length);
|
||||||
|
}
|
||||||
|
sql+=QString().sprintf(" where ID=%d",line_id-1);
|
||||||
|
/*
|
||||||
if(break_first) {
|
if(break_first) {
|
||||||
sql=QString().
|
sql=QString().
|
||||||
sprintf("update `%s` set INSERT_BREAK=\"Y\",\
|
sprintf("update `%s` set INSERT_BREAK=\"Y\",\
|
||||||
@ -657,6 +666,7 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
(const char *)dest_table,line_id-1);
|
(const char *)dest_table,line_id-1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
}
|
}
|
||||||
@ -691,6 +701,15 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
insert_found=false;
|
insert_found=false;
|
||||||
line_used=true;
|
line_used=true;
|
||||||
}
|
}
|
||||||
|
if(cartname==break_str) {
|
||||||
|
link_time=
|
||||||
|
QTime(start_hour,start_minutes,start_seconds);
|
||||||
|
link_length=cartlen;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
link_time=QTime();
|
||||||
|
link_length=-1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -714,7 +733,6 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
|
|||||||
break_first=true;
|
break_first=true;
|
||||||
insert_found=true;
|
insert_found=true;
|
||||||
}
|
}
|
||||||
// q=new RDSqlQuery(sql);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!track_str.isEmpty()) {
|
if(!track_str.isEmpty()) {
|
||||||
@ -1003,11 +1021,12 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date,
|
|||||||
emit generationProgress(24);
|
emit generationProgress(24);
|
||||||
delete src_event;
|
delete src_event;
|
||||||
delete dest_event;
|
delete dest_event;
|
||||||
// printf("Import Table: %s\n",(const char *)import_name);
|
printf("Import Table: %s\n",(const char *)import_name);
|
||||||
|
/*
|
||||||
sql=QString().sprintf("drop table `%s`",(const char *)import_name);
|
sql=QString().sprintf("drop table `%s`",(const char *)import_name);
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
*/
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user