Add segue marker options to dropboxes

This commit is contained in:
Dennis Graiani 2017-10-13 17:08:52 -04:00
parent 162ebe545b
commit 7734f7d0e0
9 changed files with 158 additions and 23 deletions

View File

@ -24,7 +24,7 @@
/* /*
* Current Database Version * Current Database Version
*/ */
#define RD_VERSION_DATABASE 269 #define RD_VERSION_DATABASE 270
#endif // DBVERSION_H #endif // DBVERSION_H

View File

@ -311,6 +311,27 @@ void RDDropbox::setCreateEnddateOffset(int offset) const
SetRow("CREATE_ENDDATE_OFFSET",offset); 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 &param,int value) const void RDDropbox::SetRow(const QString &param,int value) const
{ {

View File

@ -71,6 +71,10 @@ class RDDropbox
void setCreateStartdateOffset(int offset) const; void setCreateStartdateOffset(int offset) const;
int createEnddateOffset() const; int createEnddateOffset() const;
void setCreateEnddateOffset(int offset) const; void setCreateEnddateOffset(int offset) const;
int segueLevel() const;
void setSegueLevel(int level) const;
int segueLength() const;
void setSegueLength(int length) const;
private: private:
void SetRow(const QString &param,int value) const; void SetRow(const QString &param,int value) const;

View File

@ -8482,6 +8482,14 @@ int UpdateDb(int ver)
delete q; 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: // Maintainer's Note:

View File

@ -238,14 +238,54 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
connect(box_autotrim_box,SIGNAL(toggled(bool)), connect(box_autotrim_box,SIGNAL(toggled(bool)),
this,SLOT(autotrimToggledData(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 // Use CartChunk ID
// //
box_use_cartchunk_id_box=new QCheckBox(this); 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, label=new QLabel(box_use_cartchunk_id_box,
tr("Get cart number from CartChunk CutID"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
@ -253,10 +293,10 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
// Title from CartChunk ID // Title from CartChunk ID
// //
box_title_from_cartchunk_id_box=new QCheckBox(this); 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, label=new QLabel(box_title_from_cartchunk_id_box,
tr("Get cart title from CartChunk CutID"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
@ -264,10 +304,10 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
// Fix Broken Formats // Fix Broken Formats
// //
box_fix_broken_formats_box=new QCheckBox(this); 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, label=new QLabel(box_fix_broken_formats_box,
tr("Attempt to work around malformatted input files"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
@ -276,14 +316,14 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
// //
box_startoffset_spin= box_startoffset_spin=
new QSpinBox(this); 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); box_startoffset_spin->setRange(-7,7);
label=new QLabel(box_startoffset_spin,tr("Offset start date by"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
label=new QLabel(box_startoffset_spin,tr("days"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
@ -292,14 +332,14 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
// //
box_endoffset_spin= box_endoffset_spin=
new QSpinBox(this); 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); box_endoffset_spin->setRange(-7,7);
label=new QLabel(box_endoffset_spin,tr("Offset end date by"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
label=new QLabel(box_endoffset_spin,tr("days"),this); 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->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
@ -307,38 +347,38 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
// Create Dates // Create Dates
// //
box_create_dates_box=new QCheckBox(this); 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"), label=new QLabel(box_create_dates_box,tr("Create Dates when no Dates Exist"),
this); this);
label->setGeometry(110,397,sizeHint().width()-40,20); label->setGeometry(110,468,sizeHint().width()-40,20);
label->setFont(font); label->setFont(font);
label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix); label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
box_create_startdate_offset_spin= box_create_startdate_offset_spin=
new QSpinBox(this); 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_offset_spin->setRange(-180,180);
box_create_startdate_label= box_create_startdate_label=
new QLabel(box_create_startdate_offset_spin,tr("Create start date offset:"), new QLabel(box_create_startdate_offset_spin,tr("Create start date offset:"),
this); 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->setFont(font);
box_create_startdate_label->setAlignment(AlignVCenter|AlignRight); box_create_startdate_label->setAlignment(AlignVCenter|AlignRight);
box_create_startdate_unit= box_create_startdate_unit=
new QLabel(box_create_startdate_offset_spin,("days"),this); 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_startdate_unit->setAlignment(AlignVCenter|AlignLeft);
box_create_enddate_offset_spin=new QSpinBox(this); 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_offset_spin->setRange(-180,180);
box_create_enddate_label= box_create_enddate_label=
new QLabel(box_create_enddate_offset_spin,tr("Create end date offset:"), new QLabel(box_create_enddate_offset_spin,tr("Create end date offset:"),
this); 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->setFont(font);
box_create_enddate_label->setAlignment(AlignVCenter|AlignRight); box_create_enddate_label->setAlignment(AlignVCenter|AlignRight);
box_create_enddate_unit= box_create_enddate_unit=
new QLabel(box_create_enddate_offset_spin,("days"),this); 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); box_create_enddate_unit->setAlignment(AlignVCenter|AlignLeft);
connect(box_create_dates_box,SIGNAL(toggled(bool)), connect(box_create_dates_box,SIGNAL(toggled(bool)),
this,SLOT(createDatesToggledData(bool))); this,SLOT(createDatesToggledData(bool)));
@ -413,7 +453,12 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
box_create_enddate_offset_spin->setValue(box_dropbox->createEnddateOffset()); box_create_enddate_offset_spin->setValue(box_dropbox->createEnddateOffset());
normalizationToggledData(box_normalization_box->isChecked()); normalizationToggledData(box_normalization_box->isChecked());
autotrimToggledData(box_autotrim_box->isChecked()); autotrimToggledData(box_autotrim_box->isChecked());
segueToggledData(box_segue_box->isChecked());
createDatesToggledData(box_create_dates_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 ")+ sql=QString("select SCHED_CODE from DROPBOX_SCHED_CODES ")+
QString().sprintf("where DROPBOX_ID=%d",box_dropbox->id()); QString().sprintf("where DROPBOX_ID=%d",box_dropbox->id());
@ -427,7 +472,7 @@ EditDropbox::EditDropbox(int id,QWidget *parent)
QSize EditDropbox::sizeHint() const 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); 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) void EditDropbox::createDatesToggledData(bool state)
{ {
box_create_startdate_offset_spin->setEnabled(state); box_create_startdate_offset_spin->setEnabled(state);
@ -560,6 +619,7 @@ void EditDropbox::okData()
box_dropbox-> box_dropbox->
setAutotrimLevel(box_autotrim_level_spin->value()*100); setAutotrimLevel(box_autotrim_level_spin->value()*100);
} }
else { else {
box_dropbox->setAutotrimLevel(0); box_dropbox->setAutotrimLevel(0);
} }
@ -573,6 +633,15 @@ void EditDropbox::okData()
box_dropbox->setCreateStartdateOffset(box_create_startdate_offset_spin->value()); box_dropbox->setCreateStartdateOffset(box_create_startdate_offset_spin->value());
box_dropbox->setCreateEnddateOffset(box_create_enddate_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 ")+ sql=QString("delete from DROPBOX_SCHED_CODES where ")+
QString().sprintf("DROPBOX_ID=%d",box_dropbox->id()); QString().sprintf("DROPBOX_ID=%d",box_dropbox->id());
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);

View File

@ -53,6 +53,7 @@ class EditDropbox : public QDialog
void schedcodesData(); void schedcodesData();
void normalizationToggledData(bool state); void normalizationToggledData(bool state);
void autotrimToggledData(bool state); void autotrimToggledData(bool state);
void segueToggledData(bool state);
void createDatesToggledData(bool state); void createDatesToggledData(bool state);
void resetData(); void resetData();
void okData(); void okData();
@ -93,6 +94,13 @@ class EditDropbox : public QDialog
QSpinBox *box_create_enddate_offset_spin; QSpinBox *box_create_enddate_offset_spin;
QLabel *box_create_enddate_label; QLabel *box_create_enddate_label;
QLabel *box_create_enddate_unit; 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; RDSchedCodesDialog *box_schedcodes_dialog;
QStringList box_schedcodes; QStringList box_schedcodes;
}; };

View File

@ -60,7 +60,9 @@ void MainObject::StartDropboxes()
"CREATE_STARTDATE_OFFSET,"+ // 17 "CREATE_STARTDATE_OFFSET,"+ // 17
"CREATE_ENDDATE_OFFSET,"+ // 18 "CREATE_ENDDATE_OFFSET,"+ // 18
"SET_USER_DEFINED,"+ // 19 "SET_USER_DEFINED,"+ // 19
"FORCE_TO_MONO "+ // 20 "FORCE_TO_MONO,"+ // 20
"SEGUE_LEVEL,"+ // 21
"SEGUE_LENGTH "+ // 22
"from DROPBOXES where "+ "from DROPBOXES where "+
"STATION_NAME=\""+RDEscapeString(catch_config->stationName())+"\""; "STATION_NAME=\""+RDEscapeString(catch_config->stationName())+"\"";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
@ -85,6 +87,12 @@ void MainObject::StartDropboxes()
if(q->value(6).toString()=="Y") { if(q->value(6).toString()=="Y") {
cmd+=" --use-cartchunk-cutid"; 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") { if(q->value(7).toString()=="Y") {
cmd+=" --title-from-cartchunk-cutid"; cmd+=" --title-from-cartchunk-cutid";
} }

View File

@ -236,6 +236,10 @@ void MainObject::Revert(int schema) const
Revert269(); Revert269();
break; break;
} }
case 270:
Revert270();
break;
} }
@ -705,6 +709,18 @@ void MainObject::Revert269() const
SetVersion(268); 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 int MainObject::GetVersion() const
{ {

View File

@ -65,6 +65,7 @@ class MainObject : public QObject
void Revert267() const; void Revert267() const;
void Revert268() const; void Revert268() const;
void Revert269() const; void Revert269() const;
void Revert270() const;
int GetVersion() const; int GetVersion() const;
void SetVersion(int schema) const; void SetVersion(int schema) const;
int MapSchema(const QString &ver); int MapSchema(const QString &ver);