2022-10-14 Fred Gleason <fredg@paravelsystems.com>

* Added a 'SERVICES.BYPASS_MODE' field to the database.
	* Added a 'SERVICES.MUS_TRANS_TYPE_OFFSET' field to the database.
	* Added a 'SERVICES.MUS_TRANS_TYPE_LENGTH' field to the database.
	* Added a 'SERVICES.MUS_TIME_TYPE_OFFSET' field to the database.
	* Added a 'SERVICES.MUS_TIME_TYPE_LENGTH' field to the database.
	* Added a 'IMPORT_TEMPLATES.TRANS_TYPE_OFFSET' field to the database.
	* Added a 'IMPORT_TEMPLATES.TRANS_TYPE_LENGTH' field to the database.
	* Added a 'IMPORT_TEMPLATES.TIME_TYPE_OFFSET' field to the database.
	* Added a 'IMPORT_TEMPLATES.TIME_TYPE_LENGTH' field to the database.
	* Added a 'IMPORTER_LINES.TRANS_TYPE' field to the database.
	* Added a 'IMPORTER_LINES.TIME_TYPE' field to the database.
	* Added a 'IMPORTER_LINES.GRACE_TIME' field to the database.
	* Incremented the database schema to 363.
	* Added a 'Bypass Grid Processing' dropdown to the 'Edit Service'
	dialog in rdadmin(1).
	* Added 'Transition Type' and 'Time Type' parameters to the music
	import parameters in the 'Edit Service' dialog in rdadmin(1).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2022-10-14 18:45:38 -04:00
parent 8d352dd3b7
commit 7c8fbeacb8
18 changed files with 567 additions and 160 deletions

View File

@@ -67,6 +67,19 @@ void RDSvc::setDescription(const QString &desc) const
}
bool RDSvc::bypassMode() const
{
return RDBool(RDGetSqlValue("SERVICES","NAME",svc_name,"BYPASS_MODE").
toString());
}
void RDSvc::setBypassMode(bool state) const
{
SetRow("BYPASS_MODE",RDYesNo(state));
}
QString RDSvc::programCode() const
{
return RDGetSqlValue("SERVICES","NAME",svc_name,"PROGRAM_CODE").
@@ -442,6 +455,7 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
QString data_buf;
QString eventid_buf;
QString annctype_buf;
int grace_time=0;
QString os_flag;
int cartlen;
QString sql;
@@ -536,7 +550,11 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
"`"+src_str+"LEN_MINUTES_OFFSET`,"+ // 18
"`"+src_str+"LEN_MINUTES_LENGTH`,"+ // 19
"`"+src_str+"LEN_SECONDS_OFFSET`,"+ // 20
"`"+src_str+"LEN_SECONDS_LENGTH` "+ // 21
"`"+src_str+"LEN_SECONDS_LENGTH`,"+ // 21
"`"+src_str+"TRANS_TYPE_OFFSET`,"+ // 22
"`"+src_str+"TRANS_TYPE_LENGTH`,"+ // 23
"`"+src_str+"TIME_TYPE_OFFSET`,"+ // 24
"`"+src_str+"TIME_TYPE_LENGTH` "+ // 25
"from "+parser_table+" where `NAME`='"+RDEscapeString(parser_name)+"'";
q=new RDSqlQuery(sql);
if(!q->first()) {
@@ -565,6 +583,10 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
int minutes_len_length=q->value(19).toInt();
int seconds_len_offset=q->value(20).toInt();
int seconds_len_length=q->value(21).toInt();
int trans_type_offset=q->value(22).toInt();
int trans_type_length=q->value(23).toInt();
int time_type_offset=q->value(24).toInt();
int time_type_length=q->value(25).toInt();
delete q;
@@ -588,6 +610,10 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
int file_line=0;
while(fgets(buf,RD_MAX_IMPORT_LINE_LENGTH,infile)!=NULL) {
str_buf=QString::fromUtf8(buf);
QString trans_type_buf;
RDLogLine::TransType trans_type=RDLogLine::NoTrans;
QString time_type_buf;
RDLogLine::TimeType time_type=RDLogLine::Relative;
//
// Cart Number
@@ -648,6 +674,33 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
//
title=str_buf.mid(title_offset,title_length).trimmed();
//
// Transition Type
//
trans_type_buf=str_buf.mid(trans_type_offset,trans_type_length).trimmed();
if(trans_type_buf.toLower()=="play") {
trans_type=RDLogLine::Play;
}
if(trans_type_buf.toLower()=="segue") {
trans_type=RDLogLine::Segue;
}
if(trans_type_buf.toLower()=="stop") {
trans_type=RDLogLine::Stop;
}
//
// Time Type
//
time_type_buf=str_buf.mid(time_type_offset,time_type_length).trimmed();
if(time_type_buf.toLower()=="soft") {
time_type=RDLogLine::Hard;
grace_time=-1;
}
if(time_type_buf.toLower()=="hard") {
time_type=RDLogLine::Hard;
grace_time=0;
}
//
// Process Line
//
@@ -658,6 +711,9 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str,
//
sql=QString("insert into `IMPORTER_LINES` set ")+
"`STATION_NAME`='"+RDEscapeString(svc_station->name())+"',"+
QString::asprintf("`TRANS_TYPE`=%d,",trans_type)+
QString::asprintf("`TIME_TYPE`=%d,",time_type)+
QString::asprintf("`GRACE_TIME`=%d,",grace_time)+
QString::asprintf("`PROCESS_ID`=%d,",getpid())+
QString::asprintf("`FILE_LINE`=%u,",file_line)+
QString::asprintf("`LINE_ID`=%d,",line_id);
@@ -1135,7 +1191,7 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date,
sql=QString("delete from `IMPORTER_LINES` where ")+
"`STATION_NAME`='"+RDEscapeString(svc_station->name())+"' && "+
QString::asprintf("`PROCESS_ID`=%u",getpid());
// printf("Importer Table Cleanup SQL: %s\n",(const char *)sql);
// printf("Importer Table Cleanup SQL: %s\n",sql.toUtf8().constData());
RDSqlQuery::apply(sql);
delete log_lock;
@@ -1718,6 +1774,14 @@ QString RDSvc::FieldString(ImportField field) const
case RDSvc::ExtAnncType:
fieldname="ANNC_TYPE_";
break;
case RDSvc::TransType:
fieldname="TRANS_TYPE_";
break;
case RDSvc::TimeType:
fieldname="TIME_TYPE_";
break;
}
return fieldname;
}