mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 09:03:40 +02:00
Fixed conflict in 'ChangeLog'
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// The Current Database Schema Version for Rivendell
|
||||
//
|
||||
// (C) Copyright 2002-2016 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Current Database Version
|
||||
*/
|
||||
#define RD_VERSION_DATABASE 306
|
||||
#define RD_VERSION_DATABASE 307
|
||||
|
||||
|
||||
#endif // DBVERSION_H
|
||||
|
@@ -324,7 +324,7 @@ bool RDClock::generateLog(int hour,const QString &logname,
|
||||
eventline.setStartTime(QTime().addMSecs(q->value(1).toInt()).
|
||||
addSecs(3600*hour));
|
||||
eventline.setLength(q->value(2).toInt());
|
||||
eventline.generateLog(logname,svc_name,errors,artistsep,clock_name);
|
||||
eventline.generateLog(logname,svc_name,errors,clock_name);
|
||||
eventline.clear();
|
||||
}
|
||||
delete q;
|
||||
|
@@ -40,6 +40,7 @@ RDEvent::RDEvent(const QString &name,bool create)
|
||||
delete q;
|
||||
sql=QString("insert into EVENTS set ")+
|
||||
"NAME=\""+RDEscapeString(event_name)+"\","+
|
||||
"ARTIST_SEP=15,"+
|
||||
"TITLE_SEP=100";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
@@ -398,13 +399,26 @@ void RDEvent::setHaveCode2(QString str)
|
||||
SetRow("HAVE_CODE2",str,true);
|
||||
}
|
||||
|
||||
unsigned RDEvent::titleSep()
|
||||
|
||||
int RDEvent::artistSep()
|
||||
{
|
||||
return GetIntValue("ARTIST_SEP");
|
||||
}
|
||||
|
||||
|
||||
void RDEvent::setArtistSep(int artistsep)
|
||||
{
|
||||
SetRow("ARTIST_SEP",artistsep);
|
||||
}
|
||||
|
||||
|
||||
int RDEvent::titleSep()
|
||||
{
|
||||
return GetIntValue("TITLE_SEP");
|
||||
}
|
||||
|
||||
|
||||
void RDEvent::setTitleSep(unsigned titlesep)
|
||||
void RDEvent::setTitleSep(int titlesep)
|
||||
{
|
||||
SetRow("TITLE_SEP",titlesep);
|
||||
}
|
||||
|
@@ -73,8 +73,10 @@ class RDEvent
|
||||
void setHaveCode(QString str);
|
||||
QString HaveCode2();
|
||||
void setHaveCode2(QString str);
|
||||
unsigned titleSep();
|
||||
void setTitleSep(unsigned titlesep);
|
||||
int artistSep();
|
||||
void setArtistSep(int artistsep);
|
||||
int titleSep();
|
||||
void setTitleSep(int titlesep);
|
||||
|
||||
private:
|
||||
int GetIntValue(const QString &field) const;
|
||||
|
@@ -316,6 +316,7 @@ void RDEventLine::clear()
|
||||
event_sched_group="";
|
||||
event_have_code="";
|
||||
event_have_code2="";
|
||||
event_artist_sep=15;
|
||||
event_title_sep=100;
|
||||
event_nested_event="";
|
||||
}
|
||||
@@ -340,9 +341,10 @@ bool RDEventLine::load()
|
||||
"AUTOFILL_SLOP,"+ // 13
|
||||
"NESTED_EVENT,"+ // 14
|
||||
"SCHED_GROUP,"+ // 15
|
||||
"TITLE_SEP,"+ // 16
|
||||
"HAVE_CODE,"+ // 17
|
||||
"HAVE_CODE2 "+ // 18
|
||||
"ARTIST_SEP,"+ // 16
|
||||
"TITLE_SEP,"+ // 17
|
||||
"HAVE_CODE,"+ // 18
|
||||
"HAVE_CODE2 "+ // 19
|
||||
"from EVENTS where "+
|
||||
"NAME=\""+RDEscapeString(event_name)+"\"";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
@@ -373,9 +375,10 @@ bool RDEventLine::load()
|
||||
event_autofill_slop=q->value(13).toInt();
|
||||
event_nested_event=q->value(14).toString();
|
||||
event_sched_group=q->value(15).toString();
|
||||
event_title_sep=q->value(16).toUInt();
|
||||
event_have_code=q->value(17).toString();
|
||||
event_have_code2=q->value(18).toString();
|
||||
event_artist_sep=q->value(16).toInt();
|
||||
event_title_sep=q->value(17).toInt();
|
||||
event_have_code=q->value(18).toString();
|
||||
event_have_code2=q->value(19).toString();
|
||||
|
||||
delete q;
|
||||
event_preimport_list->load();
|
||||
@@ -407,6 +410,7 @@ bool RDEventLine::save(RDConfig *config)
|
||||
QString().sprintf("AUTOFILL_SLOP=%d,",event_autofill_slop)+
|
||||
"NESTED_EVENT=\""+RDEscapeString(event_nested_event)+"\","+
|
||||
"SCHED_GROUP=\""+RDEscapeString(event_sched_group)+"\","+
|
||||
QString().sprintf("ARTIST_SEP=%d,",event_artist_sep)+
|
||||
QString().sprintf("TITLE_SEP=%d,",event_title_sep)+
|
||||
"HAVE_CODE=\""+RDEscapeString(event_have_code)+"\","+
|
||||
"HAVE_CODE2=\""+RDEscapeString(event_have_code2)+"\" "+
|
||||
@@ -446,8 +450,7 @@ bool RDEventLine::save(RDConfig *config)
|
||||
|
||||
|
||||
bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
QString *report, unsigned artistsep,
|
||||
QString clockname)
|
||||
QString *report, QString clockname)
|
||||
{
|
||||
QString sql;
|
||||
RDSqlQuery *q;
|
||||
@@ -582,6 +585,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
// Scheduler
|
||||
|
||||
if(event_import_source == RDEventLine::Scheduler) {
|
||||
int artistsep;
|
||||
int titlesep;
|
||||
int stackid;
|
||||
int counter;
|
||||
@@ -591,7 +595,10 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
svcname_rp.replace(" ","_");
|
||||
|
||||
time.addMSecs(postimport_length);
|
||||
|
||||
|
||||
//
|
||||
// Load all carts with requested scheduler codes into schedCL
|
||||
//
|
||||
sql=QString("select NUMBER,ARTIST from CART");
|
||||
if(event_have_code!="") {
|
||||
sql+=" INNER JOIN CART_SCHED_CODES AS S1 on (NUMBER=S1.CART_NUMBER AND S1.SCHED_CODE='"+RDEscapeString(event_have_code)+"')";
|
||||
@@ -602,15 +609,20 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
sql+=" where GROUP_NAME='"+RDEscapeString(SchedGroup())+"'";
|
||||
q=new RDSqlQuery(sql);
|
||||
if(q->size()>0) {
|
||||
if(event_title_sep>=0 && event_title_sep<=50000)
|
||||
{
|
||||
titlesep = (int)event_title_sep;
|
||||
if(event_artist_sep>=-1 && event_artist_sep<=50000) {
|
||||
artistsep = event_artist_sep;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
artistsep = 15;
|
||||
}
|
||||
|
||||
if(event_title_sep>=-1 && event_title_sep<=50000) {
|
||||
titlesep = event_title_sep;
|
||||
}
|
||||
else {
|
||||
titlesep = 100;
|
||||
}
|
||||
|
||||
|
||||
int querysize=(int)q->size();
|
||||
SchedCartList *schedCL;
|
||||
schedCL=new SchedCartList(querysize);
|
||||
@@ -623,6 +635,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
}
|
||||
delete q;
|
||||
|
||||
//
|
||||
// Get next stack id from the stack
|
||||
//
|
||||
sql=QString("select ")+
|
||||
"MAX(SCHED_STACK_ID) "+
|
||||
"from STACK_LINES where "+
|
||||
@@ -640,56 +655,75 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
delete q;
|
||||
|
||||
|
||||
// Add deconflicting rules here
|
||||
// Title separation
|
||||
schedCL->save();
|
||||
sql=QString("select CART from STACK_LINES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+
|
||||
QString().sprintf("SCHED_STACK_ID >= %d",stackid-titlesep);
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||
if(q->value(0).toUInt()==schedCL->getItemCartnumber(counter)) {
|
||||
schedCL->removeItem(counter);
|
||||
counter--;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
if(schedCL->getNumberOfItems()==0) {
|
||||
*report+=time.toString("hh:mm:ss")+" "+
|
||||
QObject::tr("Rule broken: Title separation");
|
||||
if(!HaveCode().isEmpty()) {
|
||||
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
||||
//////////////////////////////////
|
||||
// //
|
||||
// Add deconflicting rules here //
|
||||
// //
|
||||
//////////////////////////////////
|
||||
|
||||
//
|
||||
// Title separation
|
||||
//
|
||||
// Iterate through schedCL and remove carts from schedCL that
|
||||
// match cart number on the stack essentially removing matched titles.
|
||||
//
|
||||
if(titlesep>=0) {
|
||||
schedCL->save();
|
||||
sql=QString("select CART from STACK_LINES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+
|
||||
QString().sprintf("SCHED_STACK_ID >= %d",stackid-titlesep);
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||
if(q->value(0).toUInt()==schedCL->getItemCartnumber(counter)) {
|
||||
schedCL->removeItem(counter);
|
||||
counter--;
|
||||
}
|
||||
}
|
||||
}
|
||||
*report+="\n";
|
||||
delete q;
|
||||
if(schedCL->getNumberOfItems()==0) {
|
||||
*report+=time.toString("hh:mm:ss")+" "+
|
||||
QObject::tr("Rule broken: Title separation");
|
||||
if(!HaveCode().isEmpty()) {
|
||||
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
||||
}
|
||||
*report+="\n";
|
||||
}
|
||||
schedCL->restore();
|
||||
}
|
||||
schedCL->restore();
|
||||
|
||||
//
|
||||
// Artist separation
|
||||
schedCL->save();
|
||||
sql=QString("select ARTIST from STACK_LINES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+
|
||||
QString().sprintf("SCHED_STACK_ID >= %d",stackid-artistsep);
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||
if(q->value(0).toString()==schedCL->getItemArtist(counter)) {
|
||||
schedCL->removeItem(counter);
|
||||
counter--;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
if(schedCL->getNumberOfItems()==0) {
|
||||
*report+=time.toString("hh:mm:ss")+" "+
|
||||
QObject::tr("Rule broken: Artist separation");
|
||||
if(!HaveCode().isEmpty()) {
|
||||
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
||||
//
|
||||
// Iterate through schedCL and remove carts from schedCL that
|
||||
// match artist on the stack.
|
||||
//
|
||||
if(artistsep>=0) {
|
||||
schedCL->save();
|
||||
sql=QString("select ARTIST from STACK_LINES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+
|
||||
QString().sprintf("SCHED_STACK_ID >= %d",stackid-artistsep);
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||
if(q->value(0).toString()==schedCL->getItemArtist(counter)) {
|
||||
schedCL->removeItem(counter);
|
||||
counter--;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
if(schedCL->getNumberOfItems()==0) {
|
||||
*report+=time.toString("hh:mm:ss")+" "+
|
||||
QObject::tr("Rule broken: Artist separation");
|
||||
if(!HaveCode().isEmpty()) {
|
||||
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
||||
}
|
||||
*report+="\n";
|
||||
}
|
||||
*report+="\n";
|
||||
schedCL->restore();
|
||||
}
|
||||
schedCL->restore();
|
||||
|
||||
// Scheduler Codes
|
||||
sql=QString("select ")+
|
||||
@@ -811,9 +845,17 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
}
|
||||
delete q;
|
||||
|
||||
// end of deconflicting rules
|
||||
////////////////////////////////
|
||||
// //
|
||||
// End of deconflicting rules //
|
||||
// //
|
||||
////////////////////////////////
|
||||
|
||||
int schedpos=rand()%schedCL->getNumberOfItems();
|
||||
//
|
||||
// Pick a random cart from those that are remaining.
|
||||
//
|
||||
int r=rand();
|
||||
int schedpos=r%schedCL->getNumberOfItems();
|
||||
sql=QString("insert into LOG_LINES set ")+
|
||||
"LOG_NAME=\""+RDEscapeString(logname)+"\","+
|
||||
QString().sprintf("LINE_ID=%d,",count)+
|
||||
|
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// Abstract a Rivendell Log Manager Event
|
||||
//
|
||||
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@@ -81,7 +81,7 @@ class RDEventLine
|
||||
bool load();
|
||||
bool save(RDConfig *config);
|
||||
bool generateLog(QString logname,const QString &svcname,
|
||||
QString *errors, unsigned artistsep,QString clockname);
|
||||
QString *errors,QString clockname);
|
||||
bool linkLog(RDLogEvent *e,RDLog *log,const QString &svcname,
|
||||
RDLogLine *link_logline,const QString &track_str,
|
||||
const QString &label_cart,const QString &track_cart,
|
||||
@@ -112,7 +112,8 @@ class RDEventLine
|
||||
QString event_sched_group;
|
||||
QString event_have_code;
|
||||
QString event_have_code2;
|
||||
unsigned event_title_sep;
|
||||
int event_artist_sep;
|
||||
int event_title_sep;
|
||||
RDStation *event_station;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user