diff --git a/ChangeLog b/ChangeLog index 66af9941..87152950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21999,3 +21999,6 @@ * Added 'Label' fields to the 'Input Port' and 'Output Port' sections of the 'Edit Audio Ports' dialog in rdadmin(1). * Added code to rdairplay(1) to use port labels on audio meters. +2021-07-03 Fred Gleason + * Modified the buttons in the Button Log widget in rdairplay(1) to + display channel labels when playing. diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index ea0aa593..7bc27d42 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -239,12 +239,13 @@ void RDLogPlay::setLogName(QString name) } -void RDLogPlay::setChannels(int cards[2],int ports[2], +void RDLogPlay::setChannels(int cards[2],int ports[2],QString labels[2], const QString start_rml[2],const QString stop_rml[2]) { for(int i=0;i<2;i++) { play_card[i]=cards[i]; play_port[i]=ports[i]; + play_label[i]=labels[i]; play_start_rml[i]=start_rml[i]; play_stop_rml[i]=stop_rml[i]; play_cae->requestTimescale(play_card[i]); @@ -2633,10 +2634,11 @@ QString RDLogPlay::GetPortName(int card,int port) for(int i=0;i<2;i++) { for(int j=0;j<2;j++) { if((play_card[i]==card)&&(play_port[i]==port)) { - return QString().sprintf("%d",i+1); + return play_label[i]; } } } + return QString(); } diff --git a/lib/rdlogplay.h b/lib/rdlogplay.h index 7e0ccb5a..27622d8d 100644 --- a/lib/rdlogplay.h +++ b/lib/rdlogplay.h @@ -61,7 +61,7 @@ class RDLogPlay : public RDLogModel RDAirPlayConf::OpMode mode() const; void setOpMode(RDAirPlayConf::OpMode mode); void setLogName(QString name); - void setChannels(int cards[2],int ports[2], + void setChannels(int cards[2],int ports[2],QString labels[2], const QString start_rml[2],const QString stop_rml[2]); void setSegueLength(int len); void setNowCart(unsigned cartnum); @@ -228,6 +228,7 @@ class RDLogPlay : public RDLogModel int play_grace_line; int play_card[2]; int play_port[2]; + QString play_label[2]; QString play_start_rml[2]; QString play_stop_rml[2]; bool play_timescaling_available; diff --git a/rdairplay/rdairplay.cpp b/rdairplay/rdairplay.cpp index 5670ace6..88cb910d 100644 --- a/rdairplay/rdairplay.cpp +++ b/rdairplay/rdairplay.cpp @@ -333,9 +333,11 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent) // air_cue_card=rda->airplayConf()->card(RDAirPlayConf::CueChannel); air_cue_port=rda->airplayConf()->port(RDAirPlayConf::CueChannel); + QString labels[3]; for(int i=0;i<3;i++) { air_meter_card[i]=rda->airplayConf()->card((RDAirPlayConf::Channel)i); air_meter_port[i]=rda->airplayConf()->port((RDAirPlayConf::Channel)i); + labels[i]=rda->airplayConf()->portLabel((RDAirPlayConf::Channel)i); cards[i]=rda->airplayConf()->card((RDAirPlayConf::Channel)i); ports[i]=rda->airplayConf()->port((RDAirPlayConf::Channel)i); start_rmls[i]=rda->airplayConf()->startRml((RDAirPlayConf::Channel)i); @@ -347,23 +349,25 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent) cards[1]=cards[0]; ports[1]=ports[0]; } - air_log[0]->setChannels(cards,ports,start_rmls,stop_rmls); + air_log[0]->setChannels(cards,ports,start_rmls,stop_rmls,labels); for(int i=0;i<2;i++) { cards[i]=rda->airplayConf()->card(RDAirPlayConf::AuxLog1Channel); ports[i]=rda->airplayConf()->port(RDAirPlayConf::AuxLog1Channel); + labels[i]=rda->airplayConf()->portLabel(RDAirPlayConf::AuxLog1Channel); start_rmls[i]=rda->airplayConf()->startRml(RDAirPlayConf::AuxLog1Channel); stop_rmls[i]=rda->airplayConf()->stopRml(RDAirPlayConf::AuxLog1Channel); } - air_log[1]->setChannels(cards,ports,start_rmls,stop_rmls); + air_log[1]->setChannels(cards,ports,labels,start_rmls,stop_rmls); for(int i=0;i<2;i++) { cards[i]=rda->airplayConf()->card(RDAirPlayConf::AuxLog2Channel); ports[i]=rda->airplayConf()->port(RDAirPlayConf::AuxLog2Channel); + ports[i]=rda->airplayConf()->port(RDAirPlayConf::AuxLog2Channel); start_rmls[i]=rda->airplayConf()->startRml(RDAirPlayConf::AuxLog2Channel); stop_rmls[i]=rda->airplayConf()->stopRml(RDAirPlayConf::AuxLog2Channel); } - air_log[2]->setChannels(cards,ports,start_rmls,stop_rmls); + air_log[2]->setChannels(cards,ports,labels,start_rmls,stop_rmls); // // Cart Picker diff --git a/rdairplay/start_button.cpp b/rdairplay/start_button.cpp index f42c58c8..cc0b3388 100644 --- a/rdairplay/start_button.cpp +++ b/rdairplay/start_button.cpp @@ -32,12 +32,6 @@ StartButton::StartButton(bool allow_pause,QWidget *parent) setFocusPolicy(Qt::NoFocus); - // - // Create Font - // - start_port_font=QFont(font().family(),20,QFont::Bold); - start_port_font.setPixelSize(20); - // // Create Palettes // @@ -195,27 +189,27 @@ void StartButton::paintEvent(QPaintEvent *e) if(start_mode!=StartButton::Disabled) { p->setPen(QColor(Qt::color1)); p->setFont(labelFont()); - p->drawText((geometry().width()-p->fontMetrics().width(start_title))/2, + p->drawText((w-p->fontMetrics().width(start_title))/2, 22,start_title); p->drawLine(10,24,70,24); if(!start_time.isNull()) { if(start_time_mode==RDAirPlayConf::TwentyFourHour) { - p->drawText((geometry().width()-p-> + p->drawText((w-p-> fontMetrics().width(start_time.toString("hh:mm:ss")))/2, 40,start_time.toString("hh:mm:ss")); } else { - p->drawText((geometry().width()-p-> + p->drawText((w-p-> fontMetrics().width(start_time.toString("h:mm:ss ap")))/2, 40,start_time.toString("h:mm:ss ap")); } } else { - p->drawText((geometry().width()-p->fontMetrics().width("--:--:--"))/2, + p->drawText((w-p->fontMetrics().width("--:--:--"))/2, 40,"--:--:--"); } - p->setFont(start_port_font); - p->drawText(15,70,start_port); + p->setFont(bigLabelFont()); + p->drawText((w-p->fontMetrics().width(start_port))/2,70,start_port); } p->end(); delete p; diff --git a/rdairplay/start_button.h b/rdairplay/start_button.h index 5d52246f..9001cade 100644 --- a/rdairplay/start_button.h +++ b/rdairplay/start_button.h @@ -42,9 +42,6 @@ class StartButton : public RDPushButton private: StartButton::Mode start_mode; - QFont start_label_font; - QFont start_counter_font; - QFont start_port_font; QString start_title; QString start_port; QPalette start_stop_color; diff --git a/rdvairplayd/rdvairplayd.cpp b/rdvairplayd/rdvairplayd.cpp index f4070b86..485308db 100644 --- a/rdvairplayd/rdvairplayd.cpp +++ b/rdvairplayd/rdvairplayd.cpp @@ -55,6 +55,8 @@ MainObject::MainObject(QObject *parent) { QString err_msg; RDApplication::ErrorType err_type=RDApplication::ErrorOk; + QString sql; + RDSqlQuery *q; // // Startup DateTime @@ -101,8 +103,6 @@ MainObject::MainObject(QObject *parent) connect(rda,SIGNAL(userChanged()),this,SLOT(userData())); connect(rda->ripc(),SIGNAL(rmlReceived(RDMacro *)), this,SLOT(rmlReceivedData(RDMacro *))); - // connect(rda->ripc(),SIGNAL(gpiStateChanged(int,int,bool)), - // this,SLOT(gpiStateChangedData(int,int,bool))); rda->ripc()-> connectHost("localhost",RIPCD_TCP_PORT,rda->config()->password()); @@ -141,18 +141,32 @@ MainObject::MainObject(QObject *parent) ports[0]=-1; ports[1]=-1; } + QString labels[2]; + for(int i=0;i<2;i++) { + if((cards[0]>=0)&&(ports[i]>=0)) { + sql=QString("select ")+ + "`LABEL` "+ // 00 + "from `AUDIO_OUTPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' && "+ + QString().sprintf("`CARD`=%d &&",cards[i])+ + QString().sprintf("`PORT`=%d",ports[i]); + q=new RDSqlQuery(sql); + if(q->first()) { + labels[i]=q->value(0).toString(); + } + delete q; + } + } QString start_rml[2]={"",""}; start_rml[0]=rda->airplayConf()->virtualStartRml(i+RD_RDVAIRPLAY_LOG_BASE); start_rml[1]=rda->airplayConf()->virtualStartRml(i+RD_RDVAIRPLAY_LOG_BASE); QString stop_rml[2]={"",""}; stop_rml[0]=rda->airplayConf()->virtualStopRml(i+RD_RDVAIRPLAY_LOG_BASE); stop_rml[1]=rda->airplayConf()->virtualStopRml(i+RD_RDVAIRPLAY_LOG_BASE); - air_logs[i]->setChannels(cards,ports,start_rml,stop_rml); + air_logs[i]->setChannels(cards,ports,labels,start_rml,stop_rml); air_logs[i]-> setOpMode(rda->airplayConf()->opMode(i+RD_RDVAIRPLAY_LOG_BASE)); } - // connect(air_logs[0],SIGNAL(transportChanged()), - // this,SLOT(transportChangedData())); // // Exit Timer @@ -171,12 +185,7 @@ void MainObject::ripcConnectedData(bool state) QString sql; RDSqlQuery *q; RDMacro rml; - /* - rml.setRole(RDMacro::Cmd); - addr.setAddress("127.0.0.1"); - rml.setAddress(addr); - rml.setEchoRequested(false); - */ + // // Get Onair Flag State //