From 7734f7d0e0f2c8db85d70d0bb6ea838301a5382d Mon Sep 17 00:00:00 2001 From: Dennis Graiani Date: Fri, 13 Oct 2017 17:08:52 -0400 Subject: [PATCH 1/3] Add segue marker options to dropboxes --- lib/dbversion.h | 2 +- lib/rddropbox.cpp | 21 +++++++ lib/rddropbox.h | 4 ++ rdadmin/createdb.cpp | 8 +++ rdadmin/edit_dropbox.cpp | 111 +++++++++++++++++++++++++++++------- rdadmin/edit_dropbox.h | 8 +++ rdcatchd/startdropboxes.cpp | 10 +++- utils/rdrevert/rdrevert.cpp | 16 ++++++ utils/rdrevert/rdrevert.h | 1 + 9 files changed, 158 insertions(+), 23 deletions(-) diff --git a/lib/dbversion.h b/lib/dbversion.h index 5177fb43..b5b7492d 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 269 +#define RD_VERSION_DATABASE 270 #endif // DBVERSION_H diff --git a/lib/rddropbox.cpp b/lib/rddropbox.cpp index cd73183a..ccc6840b 100644 --- a/lib/rddropbox.cpp +++ b/lib/rddropbox.cpp @@ -311,6 +311,27 @@ void RDDropbox::setCreateEnddateOffset(int offset) const SetRow("CREATE_ENDDATE_OFFSET",offset); } +int RDDropbox::segueLevel() const +{ + return RDGetSqlValue("DROPBOXES","ID",box_id,"SEGUE_LEVEL").toInt(); +} + + +void RDDropbox::setSegueLevel(int level) const +{ + SetRow("SEGUE_LEVEL",level); +} + +int RDDropbox::segueLength() const +{ + return RDGetSqlValue("DROPBOXES","ID",box_id,"SEGUE_LENGTH").toInt(); +} + + +void RDDropbox::setSegueLength(int length) const +{ + SetRow("SEGUE_LENGTH",length); +} void RDDropbox::SetRow(const QString ¶m,int value) const { diff --git a/lib/rddropbox.h b/lib/rddropbox.h index 63d43dc5..bc727295 100644 --- a/lib/rddropbox.h +++ b/lib/rddropbox.h @@ -71,6 +71,10 @@ class RDDropbox void setCreateStartdateOffset(int offset) const; int createEnddateOffset() const; void setCreateEnddateOffset(int offset) const; + int segueLevel() const; + void setSegueLevel(int level) const; + int segueLength() const; + void setSegueLength(int length) const; private: void SetRow(const QString ¶m,int value) const; diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index b8c04964..af483ad9 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -8482,6 +8482,14 @@ int UpdateDb(int ver) delete q; } + if(ver<270) { + sql=QString("alter table DROPBOXES ")+ + "add column SEGUE_LEVEL int(11) default 1 after FORCE_TO_MONO, "+ + "add column SEGUE_LENGTH int(11) default 0 after SEGUE_LEVEL"; + q=new RDSqlQuery(sql); + delete q; + } + // // Maintainer's Note: diff --git a/rdadmin/edit_dropbox.cpp b/rdadmin/edit_dropbox.cpp index a91599d0..c1eb9c5b 100644 --- a/rdadmin/edit_dropbox.cpp +++ b/rdadmin/edit_dropbox.cpp @@ -238,14 +238,54 @@ EditDropbox::EditDropbox(int id,QWidget *parent) connect(box_autotrim_box,SIGNAL(toggled(bool)), this,SLOT(autotrimToggledData(bool))); + // + // Segue + // + box_segue_box=new QCheckBox(this); + box_segue_box->setGeometry(90,271,15,15); + label=new QLabel(box_segue_box,tr("Insert Segue Markers"), + this); + label->setGeometry(110,269,sizeHint().width()-40,20); + label->setFont(font); + label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); + box_segue_level_spin= + new QSpinBox(this); + box_segue_level_spin->setGeometry(300,295,50,20); + box_segue_level_spin->setRange(-100,0); + box_segue_level_label= + new QLabel(box_segue_level_spin,tr("Segue Level:"), + this); + box_segue_level_label->setGeometry(120,295,160,20); + box_segue_level_label->setFont(font); + box_segue_level_label->setAlignment(AlignVCenter|AlignRight); + box_segue_level_unit= + new QLabel(box_segue_level_spin,("dBFS"),this); + box_segue_level_unit->setGeometry(360,296,60,20); + box_segue_level_unit->setAlignment(AlignVCenter|AlignLeft); + box_segue_length_spin=new QSpinBox(this); + box_segue_length_spin->setGeometry(300,325,50,20); + box_segue_length_spin->setRange(0,180); + box_segue_length_label= + new QLabel(box_segue_length_spin,tr("Segue Length:"), + this); + box_segue_length_label->setGeometry(120,325,160,20); + box_segue_length_label->setFont(font); + box_segue_length_label->setAlignment(AlignVCenter|AlignRight); + box_segue_length_unit= + new QLabel(box_segue_length_spin,("Sec"),this); + box_segue_length_unit->setGeometry(360,326,60,20); + box_segue_length_unit->setAlignment(AlignVCenter|AlignLeft); + connect(box_segue_box,SIGNAL(toggled(bool)), + this,SLOT(segueToggledData(bool))); + // // Use CartChunk ID // box_use_cartchunk_id_box=new QCheckBox(this); - box_use_cartchunk_id_box->setGeometry(90,271,15,15); + box_use_cartchunk_id_box->setGeometry(90,350,15,15); label=new QLabel(box_use_cartchunk_id_box, tr("Get cart number from CartChunk CutID"),this); - label->setGeometry(110,269,sizeHint().width()-40,20); + label->setGeometry(110,348,sizeHint().width()-40,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); @@ -253,10 +293,10 @@ EditDropbox::EditDropbox(int id,QWidget *parent) // Title from CartChunk ID // box_title_from_cartchunk_id_box=new QCheckBox(this); - box_title_from_cartchunk_id_box->setGeometry(90,295,15,15); + box_title_from_cartchunk_id_box->setGeometry(90,374,15,15); label=new QLabel(box_title_from_cartchunk_id_box, tr("Get cart title from CartChunk CutID"),this); - label->setGeometry(110,293,sizeHint().width()-40,20); + label->setGeometry(110,372,sizeHint().width()-40,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); @@ -264,10 +304,10 @@ EditDropbox::EditDropbox(int id,QWidget *parent) // Fix Broken Formats // box_fix_broken_formats_box=new QCheckBox(this); - box_fix_broken_formats_box->setGeometry(90,319,15,15); + box_fix_broken_formats_box->setGeometry(90,398,15,15); label=new QLabel(box_fix_broken_formats_box, tr("Attempt to work around malformatted input files"),this); - label->setGeometry(110,317,sizeHint().width()-40,20); + label->setGeometry(110,396,sizeHint().width()-40,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); @@ -276,14 +316,14 @@ EditDropbox::EditDropbox(int id,QWidget *parent) // box_startoffset_spin= new QSpinBox(this); - box_startoffset_spin->setGeometry(215,341,50,20); + box_startoffset_spin->setGeometry(215,422,50,20); box_startoffset_spin->setRange(-7,7); label=new QLabel(box_startoffset_spin,tr("Offset start date by"),this); - label->setGeometry(90,341,120,20); + label->setGeometry(90,422,120,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label=new QLabel(box_startoffset_spin,tr("days"),this); - label->setGeometry(275,343,100,20); + label->setGeometry(275,424,100,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); @@ -292,14 +332,14 @@ EditDropbox::EditDropbox(int id,QWidget *parent) // box_endoffset_spin= new QSpinBox(this); - box_endoffset_spin->setGeometry(215,365,50,20); + box_endoffset_spin->setGeometry(215,446,50,20); box_endoffset_spin->setRange(-7,7); label=new QLabel(box_endoffset_spin,tr("Offset end date by"),this); - label->setGeometry(90,365,120,20); + label->setGeometry(90,446,120,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label=new QLabel(box_endoffset_spin,tr("days"),this); - label->setGeometry(275,365,100,20); + label->setGeometry(275,446,100,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); @@ -307,38 +347,38 @@ EditDropbox::EditDropbox(int id,QWidget *parent) // Create Dates // box_create_dates_box=new QCheckBox(this); - box_create_dates_box->setGeometry(90,399,15,15); + box_create_dates_box->setGeometry(90,470,15,15); label=new QLabel(box_create_dates_box,tr("Create Dates when no Dates Exist"), this); - label->setGeometry(110,397,sizeHint().width()-40,20); + label->setGeometry(110,468,sizeHint().width()-40,20); label->setFont(font); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); box_create_startdate_offset_spin= new QSpinBox(this); - box_create_startdate_offset_spin->setGeometry(300,423,50,20); + box_create_startdate_offset_spin->setGeometry(300,494,50,20); box_create_startdate_offset_spin->setRange(-180,180); box_create_startdate_label= new QLabel(box_create_startdate_offset_spin,tr("Create start date offset:"), this); - box_create_startdate_label->setGeometry(120,423,160,20); + box_create_startdate_label->setGeometry(120,494,160,20); box_create_startdate_label->setFont(font); box_create_startdate_label->setAlignment(AlignVCenter|AlignRight); box_create_startdate_unit= new QLabel(box_create_startdate_offset_spin,("days"),this); - box_create_startdate_unit->setGeometry(360,424,60,20); + box_create_startdate_unit->setGeometry(360,495,60,20); box_create_startdate_unit->setAlignment(AlignVCenter|AlignLeft); box_create_enddate_offset_spin=new QSpinBox(this); - box_create_enddate_offset_spin->setGeometry(300,453,50,20); + box_create_enddate_offset_spin->setGeometry(300,524,50,20); box_create_enddate_offset_spin->setRange(-180,180); box_create_enddate_label= new QLabel(box_create_enddate_offset_spin,tr("Create end date offset:"), this); - box_create_enddate_label->setGeometry(120,453,160,20); + box_create_enddate_label->setGeometry(120,524,160,20); box_create_enddate_label->setFont(font); box_create_enddate_label->setAlignment(AlignVCenter|AlignRight); box_create_enddate_unit= new QLabel(box_create_enddate_offset_spin,("days"),this); - box_create_enddate_unit->setGeometry(360,453,60,20); + box_create_enddate_unit->setGeometry(360,524,60,20); box_create_enddate_unit->setAlignment(AlignVCenter|AlignLeft); connect(box_create_dates_box,SIGNAL(toggled(bool)), this,SLOT(createDatesToggledData(bool))); @@ -413,7 +453,12 @@ EditDropbox::EditDropbox(int id,QWidget *parent) box_create_enddate_offset_spin->setValue(box_dropbox->createEnddateOffset()); normalizationToggledData(box_normalization_box->isChecked()); autotrimToggledData(box_autotrim_box->isChecked()); + segueToggledData(box_segue_box->isChecked()); createDatesToggledData(box_create_dates_box->isChecked()); + segueToggledData(box_segue_box->isChecked()); + box_segue_box->setChecked(box_dropbox->segueLevel()<1); + box_segue_level_spin->setValue(box_dropbox->segueLevel()/100); + box_segue_length_spin->setValue(box_dropbox->segueLength()/1000); sql=QString("select SCHED_CODE from DROPBOX_SCHED_CODES ")+ QString().sprintf("where DROPBOX_ID=%d",box_dropbox->id()); @@ -427,7 +472,7 @@ EditDropbox::EditDropbox(int id,QWidget *parent) QSize EditDropbox::sizeHint() const { - return QSize(450,573); + return QSize(450,644); } @@ -489,6 +534,20 @@ void EditDropbox::autotrimToggledData(bool state) box_autotrim_level_unit->setEnabled(state); } +void EditDropbox::segueToggledData(bool state) +{ + box_segue_level_spin->setEnabled(state); + box_segue_level_label->setEnabled(state); + box_segue_level_unit->setEnabled(state); + box_segue_length_spin->setEnabled(state); + box_segue_length_label->setEnabled(state); + box_segue_length_unit->setEnabled(state); + if (!state) { + box_segue_level_spin->setValue(1); + box_segue_length_spin->setValue(0); + } +} + void EditDropbox::createDatesToggledData(bool state) { box_create_startdate_offset_spin->setEnabled(state); @@ -560,6 +619,7 @@ void EditDropbox::okData() box_dropbox-> setAutotrimLevel(box_autotrim_level_spin->value()*100); } + else { box_dropbox->setAutotrimLevel(0); } @@ -573,6 +633,15 @@ void EditDropbox::okData() box_dropbox->setCreateStartdateOffset(box_create_startdate_offset_spin->value()); box_dropbox->setCreateEnddateOffset(box_create_enddate_offset_spin->value()); + if(box_segue_box->isChecked()){ + box_dropbox->setSegueLevel(box_segue_level_spin->value()*100); + box_dropbox->setSegueLength(box_segue_length_spin->value()*1000); + } + else{ + box_dropbox->setSegueLevel(1); + box_dropbox->setSegueLength(0); + } + sql=QString("delete from DROPBOX_SCHED_CODES where ")+ QString().sprintf("DROPBOX_ID=%d",box_dropbox->id()); q=new RDSqlQuery(sql); diff --git a/rdadmin/edit_dropbox.h b/rdadmin/edit_dropbox.h index 660fafbd..4fc9c8ef 100644 --- a/rdadmin/edit_dropbox.h +++ b/rdadmin/edit_dropbox.h @@ -53,6 +53,7 @@ class EditDropbox : public QDialog void schedcodesData(); void normalizationToggledData(bool state); void autotrimToggledData(bool state); + void segueToggledData(bool state); void createDatesToggledData(bool state); void resetData(); void okData(); @@ -93,6 +94,13 @@ class EditDropbox : public QDialog QSpinBox *box_create_enddate_offset_spin; QLabel *box_create_enddate_label; QLabel *box_create_enddate_unit; + QCheckBox *box_segue_box; + QSpinBox *box_segue_level_spin; + QLabel *box_segue_level_label; + QLabel *box_segue_level_unit; + QSpinBox *box_segue_length_spin; + QLabel *box_segue_length_label; + QLabel *box_segue_length_unit; RDSchedCodesDialog *box_schedcodes_dialog; QStringList box_schedcodes; }; diff --git a/rdcatchd/startdropboxes.cpp b/rdcatchd/startdropboxes.cpp index 3db621a5..99cd6b63 100644 --- a/rdcatchd/startdropboxes.cpp +++ b/rdcatchd/startdropboxes.cpp @@ -60,7 +60,9 @@ void MainObject::StartDropboxes() "CREATE_STARTDATE_OFFSET,"+ // 17 "CREATE_ENDDATE_OFFSET,"+ // 18 "SET_USER_DEFINED,"+ // 19 - "FORCE_TO_MONO "+ // 20 + "FORCE_TO_MONO,"+ // 20 + "SEGUE_LEVEL,"+ // 21 + "SEGUE_LENGTH "+ // 22 "from DROPBOXES where "+ "STATION_NAME=\""+RDEscapeString(catch_config->stationName())+"\""; q=new RDSqlQuery(sql); @@ -85,6 +87,12 @@ void MainObject::StartDropboxes() if(q->value(6).toString()=="Y") { cmd+=" --use-cartchunk-cutid"; } + if(q->value(21).toInt()<1) { + cmd+= + QString().sprintf(" --segue-level=%d",q->value(21).toInt()); + cmd+= + QString().sprintf(" --segue-length=%u",q->value(22).toUInt()); + } if(q->value(7).toString()=="Y") { cmd+=" --title-from-cartchunk-cutid"; } diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index d6666b32..ac6a48b6 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -236,6 +236,10 @@ void MainObject::Revert(int schema) const Revert269(); break; } + + case 270: + Revert270(); + break; } @@ -705,6 +709,18 @@ void MainObject::Revert269() const SetVersion(268); } +void MainObject::Revert270() const +{ + QString sql; + QSqlQuery *q; + sql=QString("alter table DROPBOXES drop column SEGUE_LEVEL, ")+ + "drop column SEGUE_LENGTH"; + q=new QSqlQuery(sql); + delete q; + + SetVersion(268); +} + int MainObject::GetVersion() const { diff --git a/utils/rdrevert/rdrevert.h b/utils/rdrevert/rdrevert.h index ed484d2a..d097c862 100644 --- a/utils/rdrevert/rdrevert.h +++ b/utils/rdrevert/rdrevert.h @@ -65,6 +65,7 @@ class MainObject : public QObject void Revert267() const; void Revert268() const; void Revert269() const; + void Revert270() const; int GetVersion() const; void SetVersion(int schema) const; int MapSchema(const QString &ver); From 27753a6a8517d5dbeecc4e5ebafaf927184f593b Mon Sep 17 00:00:00 2001 From: Dennis Graiani Date: Fri, 13 Oct 2017 17:30:40 -0400 Subject: [PATCH 2/3] Fixed typo in rdrevert --- utils/rdrevert/rdrevert.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index ac6a48b6..2c44f777 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -235,11 +235,11 @@ void MainObject::Revert(int schema) const case 269: Revert269(); break; - } - + case 270: Revert270(); break; + } } From ed0a4dc99915ccd1887db3421f18520d588f57ed Mon Sep 17 00:00:00 2001 From: Dennis Graiani Date: Fri, 13 Oct 2017 20:22:48 -0400 Subject: [PATCH 3/3] fixed schema number --- utils/rdrevert/rdrevert.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index 2c44f777..297c8e10 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -718,7 +718,7 @@ void MainObject::Revert270() const q=new QSqlQuery(sql); delete q; - SetVersion(268); + SetVersion(269); }