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
*/
#define RD_VERSION_DATABASE 269
#define RD_VERSION_DATABASE 270
#endif // DBVERSION_H

View File

@ -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 &param,int value) const
{

View File

@ -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 &param,int value) const;

View File

@ -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:

View File

@ -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);

View File

@ -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;
};

View File

@ -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";
}

View File

@ -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
{

View File

@ -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);