From f26258760db51e00c394798bdcd8d9a916b3d114 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Thu, 17 May 2018 17:28:16 +0000 Subject: [PATCH] 2018-05-17 Fred Gleason * Added virtual log entries to the 'LOG_MODES' table. * Incremented the database version to 280. * Added a control for setting vLog start modes to the 'Log Mode Control' section of the 'Configure RDAirPlay' dialog in rdadmin(1). --- ChangeLog | 5 ++++ lib/dbversion.h | 2 +- lib/rdstation.cpp | 18 ++++++++++-- rdadmin/createdb.cpp | 22 +++++++++++++++ rdadmin/edit_rdairplay.cpp | 55 ++++++++++++++++++++++++++++++------- rdadmin/edit_rdairplay.h | 5 ++++ utils/rdrevert/rdrevert.cpp | 19 ++++++++++++- utils/rdrevert/rdrevert.h | 1 + 8 files changed, 113 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index b516fa08..d71fd143 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16825,3 +16825,8 @@ * Added a 'Virtual Log Outputs' subsection to the 'Channel Assignments' section of the 'Configure RDAirPlay' dialog in rdadmin(1). +2018-05-17 Fred Gleason + * Added virtual log entries to the 'LOG_MODES' table. + * Incremented the database version to 280. + * Added a control for setting vLog start modes to the 'Log Mode + Control' section of the 'Configure RDAirPlay' dialog in rdadmin(1). diff --git a/lib/dbversion.h b/lib/dbversion.h index a4649394..62d9c1de 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 279 +#define RD_VERSION_DATABASE 280 #endif // DBVERSION_H diff --git a/lib/rdstation.cpp b/lib/rdstation.cpp index 3aee862f..dc142a9e 100644 --- a/lib/rdstation.cpp +++ b/lib/rdstation.cpp @@ -718,6 +718,13 @@ bool RDStation::create(const QString &name,QString *err_msg, q=new RDSqlQuery(sql); delete q; } + for(int i=0;inext()) { sql=QString("insert into LOG_MACHINES set ")+ diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index d298a8b7..36d7fd3a 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -2426,6 +2426,14 @@ bool InitDb(QString name,QString pwd,QString station_name,RDConfig *config) return false; } } + for(unsigned i=0;inext()) { + for(unsigned i=0;ivalue(0).toString())+"\","+ + QString().sprintf("MACHINE=%u",i+RD_RDVAIRPLAY_LOG_BASE); + q1=new RDSqlQuery(sql,false); + delete q1; + } + } + } + // diff --git a/rdadmin/edit_rdairplay.cpp b/rdadmin/edit_rdairplay.cpp index d3079e81..20492de4 100644 --- a/rdadmin/edit_rdairplay.cpp +++ b/rdadmin/edit_rdairplay.cpp @@ -53,6 +53,7 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station, air_exitpasswd_changed=false; air_logmachine=0; air_virtual_logmachine=0; + air_virtual_logstartmachine=0; // // Fix the Window Size @@ -842,6 +843,24 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station, air_logstartmode_label[1]->setText(tr("Aux 1 Log Startup Mode:")); air_logstartmode_label[2]->setText(tr("Aux 2 Log Startup Mode:")); + air_virtual_logstartsel_box=new QComboBox(this); + air_virtual_logstartsel_box->setGeometry(435,638,120,20); + connect(air_virtual_logstartsel_box,SIGNAL(activated(int)), + this,SLOT(virtualModeActivatedData(int))); + for(int i=0;i + insertItem(QString().sprintf("vLog %d",i+RD_RDVAIRPLAY_LOG_BASE+1)); + } + label=new QLabel(":",this); + label->setGeometry(555,638,5,20); + label->setAlignment(Qt::AlignCenter|Qt::AlignVCenter); + air_virtual_logstartmode_box=new QComboBox(this); + air_virtual_logstartmode_box->setGeometry(565,638,110,20); + air_virtual_logstartmode_box->insertItem(tr("Previous")); + air_virtual_logstartmode_box->insertItem(tr("LiveAssist")); + air_virtual_logstartmode_box->insertItem(tr("Automatic")); + air_virtual_logstartmode_box->insertItem(tr("Manual")); + // // Ok Button // @@ -944,11 +963,13 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station, air_conf->logName(i+RD_RDVAIRPLAY_LOG_BASE); air_autorestarts[i+RD_RDVAIRPLAY_LOG_BASE]= air_conf->autoRestart(i+RD_RDVAIRPLAY_LOG_BASE); - // air_logstartmode_boxs[i]->setCurrentItem(air_conf->logStartMode(i)); - air_virtual_cards[i]=air_conf->virtualCard(i); - air_virtual_ports[i]=air_conf->virtualPort(i); - air_virtual_start_rmls[i]=air_conf->virtualStartRml(i); - air_virtual_stop_rmls[i]=air_conf->virtualStopRml(i); + air_virtual_cards[i]=air_conf->virtualCard(i+RD_RDVAIRPLAY_LOG_BASE); + air_virtual_ports[i]=air_conf->virtualPort(i+RD_RDVAIRPLAY_LOG_BASE); + air_virtual_start_rmls[i]= + air_conf->virtualStartRml(i+RD_RDVAIRPLAY_LOG_BASE); + air_virtual_stop_rmls[i]=air_conf->virtualStopRml(i+RD_RDVAIRPLAY_LOG_BASE); + air_virtual_opmodes[i]=air_conf->opMode(i+RD_RDVAIRPLAY_LOG_BASE); + air_virtual_logstartmode_box->setCurrentItem((int)air_virtual_opmodes[0]); } air_virtual_card_sel->setCard(air_virtual_cards[air_virtual_logmachine]); air_virtual_card_sel->setPort(air_virtual_ports[air_virtual_logmachine]); @@ -975,7 +996,7 @@ EditRDAirPlay::~EditRDAirPlay() QSize EditRDAirPlay::sizeHint() const { - return QSize(1010,660); + return QSize(1010,680); } @@ -1068,6 +1089,16 @@ void EditRDAirPlay::virtualLogActivatedData(int vlognum) } +void EditRDAirPlay::virtualModeActivatedData(int vlognum) +{ + air_virtual_opmodes[air_virtual_logstartmachine]= + (RDAirPlayConf::OpMode)air_virtual_logstartmode_box->currentItem(); + air_virtual_logstartmachine=vlognum; + air_virtual_logstartmode_box-> + setCurrentItem((int)air_virtual_opmodes[air_virtual_logstartmachine]); +} + + void EditRDAirPlay::startModeChangedData(int mode) { air_startlog_edit->setEnabled((RDAirPlayConf::StartMode)mode== @@ -1229,10 +1260,14 @@ void EditRDAirPlay::okData() air_startlogs[i+RD_RDVAIRPLAY_LOG_BASE]); air_conf->setAutoRestart(i+RD_RDVAIRPLAY_LOG_BASE, air_autorestarts[i+RD_RDVAIRPLAY_LOG_BASE]); - air_conf->setVirtualCard(i,air_virtual_cards[i]); - air_conf->setVirtualPort(i,air_virtual_ports[i]); - air_conf->setVirtualStartRml(i,air_virtual_start_rmls[i]); - air_conf->setVirtualStopRml(i,air_virtual_stop_rmls[i]); + air_conf->setVirtualCard(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_cards[i]); + air_conf->setVirtualPort(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_ports[i]); + air_conf-> + setVirtualStartRml(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_start_rmls[i]); + air_conf-> + setVirtualStopRml(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_stop_rmls[i]); + virtualModeActivatedData(air_virtual_logstartmachine); + air_conf->setOpMode(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_opmodes[i]); } air_conf->setSkinPath(air_skin_edit->text()); done(0); diff --git a/rdadmin/edit_rdairplay.h b/rdadmin/edit_rdairplay.h index 184d9c35..70ef72e2 100644 --- a/rdadmin/edit_rdairplay.h +++ b/rdadmin/edit_rdairplay.h @@ -57,6 +57,7 @@ class EditRDAirPlay : public QDialog void exitPasswordChangedData(const QString &str); void logActivatedData(int lognum); void virtualLogActivatedData(int vlognum); + void virtualModeActivatedData(int vlognum); void startModeChangedData(int mode); void selectData(); void nownextData(); @@ -145,6 +146,10 @@ class EditRDAirPlay : public QDialog QComboBox *air_modecontrol_box; QLabel *air_logstartmode_label[RDAIRPLAY_LOG_QUANTITY]; QComboBox *air_logstartmode_box[RDAIRPLAY_LOG_QUANTITY]; + QComboBox *air_virtual_logstartsel_box; + QComboBox *air_virtual_logstartmode_box; + int air_virtual_logstartmachine; + RDAirPlayConf::OpMode air_virtual_opmodes[RD_RDVAIRPLAY_LOG_QUAN]; }; diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index 1bee757c..ade406e1 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -275,6 +275,10 @@ void MainObject::Revert(int schema) const case 279: Revert279(); break; + + case 280: + Revert280(); + break; } } @@ -1022,6 +1026,19 @@ void MainObject::Revert279() const } +void MainObject::Revert280() const +{ + QString sql; + RDSqlQuery *q; + + sql=QString("delete from LOG_MODES where MACHINE>=100"); + q=new RDSqlQuery(sql,false); + delete q; + + SetVersion(279); +} + + int MainObject::GetVersion() const { QString sql; @@ -1068,7 +1085,7 @@ int MainObject::MapSchema(const QString &ver) version_map["2.17"]=268; version_map["2.18"]=272; version_map["2.19"]=275; - version_map["2.20"]=279; + version_map["2.20"]=280; // // Normalize String diff --git a/utils/rdrevert/rdrevert.h b/utils/rdrevert/rdrevert.h index f1427f62..62dbb040 100644 --- a/utils/rdrevert/rdrevert.h +++ b/utils/rdrevert/rdrevert.h @@ -75,6 +75,7 @@ class MainObject : public QObject void Revert277() const; void Revert278() const; void Revert279() const; + void Revert280() const; int GetVersion() const; void SetVersion(int schema) const; int MapSchema(const QString &ver);