mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-31 16:09:35 +02:00
2021-07-02 Fred Gleason <fredg@paravelsystems.com>
* Added an 'AUDIO_INPUTS.LABEL' field to the database. * Added an 'AUDIO_OUTPUTS.LABEL' field to the database. * Incremented the database version to 350. * Added 'RDAudioPort::inputPortLabel()', 'RDAudioPort::setInputPortLabel()' 'RDAudioPort::outputPortLabel()' and 'RDAudioPort::setOutputPortLabel()' methods. * 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. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
bff832664d
commit
21d35faa50
10
ChangeLog
10
ChangeLog
@ -21989,3 +21989,13 @@
|
||||
rdadmin(1).
|
||||
2021-07-02 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Cleaned up indentation in 'rdadmin/edit_audios.cpp'.
|
||||
2021-07-02 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Added an 'AUDIO_INPUTS.LABEL' field to the database.
|
||||
* Added an 'AUDIO_OUTPUTS.LABEL' field to the database.
|
||||
* Incremented the database version to 350.
|
||||
* Added 'RDAudioPort::inputPortLabel()',
|
||||
'RDAudioPort::setInputPortLabel()' 'RDAudioPort::outputPortLabel()'
|
||||
and 'RDAudioPort::setOutputPortLabel()' methods.
|
||||
* 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.
|
||||
|
@ -9,6 +9,7 @@ ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME varchar(64)
|
||||
CARD_NUMBER int(11) signed
|
||||
PORT_NUMBER int(11) signed
|
||||
LABEL varchar(4)
|
||||
TYPE int(11) signed 0 = Analog, 1 = AES/EBU,
|
||||
2 = SP/DIFF
|
||||
LEVEL int(11) signed Gain offset, in 1/100 dB
|
||||
|
@ -9,4 +9,5 @@ ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME varchar(64)
|
||||
CARD_NUMBER int(11) signed
|
||||
PORT_NUMBER int(11) signed
|
||||
LABEL varchar(4)
|
||||
LEVEL int(11) signed Gain offset, in 1/100 dB
|
||||
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Current Database Version
|
||||
*/
|
||||
#define RD_VERSION_DATABASE 349
|
||||
#define RD_VERSION_DATABASE 350
|
||||
|
||||
|
||||
#endif // DBVERSION_H
|
||||
|
@ -83,6 +83,30 @@ void RDAirPlayConf::setPort(RDAirPlayConf::Channel chan,int port) const
|
||||
}
|
||||
|
||||
|
||||
QString RDAirPlayConf::portLabel(RDAirPlayConf::Channel chan) const
|
||||
{
|
||||
QString ret="??";
|
||||
QString sql;
|
||||
RDSqlQuery *q=NULL;
|
||||
|
||||
sql=QString("select ")+
|
||||
"`AUDIO_OUTPUTS`.`LABEL` "+ // 00
|
||||
"from `RDAIRPLAY_CHANNELS` left join `AUDIO_OUTPUTS` "+
|
||||
"on `RDAIRPLAY_CHANNELS`.`PORT`=`AUDIO_OUTPUTS`.`PORT_NUMBER` where "+
|
||||
"`AUDIO_OUTPUTS`.`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+
|
||||
"`AUDIO_OUTPUTS`.`CARD_NUMBER`=`RDAIRPLAY_CHANNELS`.`CARD` && "+
|
||||
"`AUDIO_OUTPUTS`.`PORT_NUMBER`=`RDAIRPLAY_CHANNELS`.`PORT` && "+
|
||||
QString().sprintf("`RDAIRPLAY_CHANNELS`.`INSTANCE`=%u",chan);
|
||||
q=new RDSqlQuery(sql);
|
||||
if(q->first()) {
|
||||
ret=q->value(0).toString();
|
||||
}
|
||||
delete q;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
QString RDAirPlayConf::startRml(RDAirPlayConf::Channel chan) const
|
||||
{
|
||||
return GetChannelValue("START_RML",chan).toString();
|
||||
|
@ -52,6 +52,7 @@ class RDAirPlayConf
|
||||
void setCard(Channel chan,int card) const;
|
||||
int port(Channel chan) const;
|
||||
void setPort(Channel chan,int port) const;
|
||||
QString portLabel(Channel chan) const;
|
||||
QString startRml(Channel chan) const;
|
||||
void setStartRml(Channel chan,QString str) const;
|
||||
QString stopRml(Channel chan) const;
|
||||
|
@ -44,7 +44,8 @@ RDAudioPort::RDAudioPort(QString station,int card)
|
||||
"`PORT_NUMBER`,"+ // 00
|
||||
"`LEVEL`,"+ // 01
|
||||
"`TYPE`,"+ // 02
|
||||
"`MODE` "+ // 03
|
||||
"`MODE`,"+ // 03
|
||||
"`LABEL` "+ // 04
|
||||
"from `AUDIO_INPUTS` where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d",port_card);
|
||||
@ -55,18 +56,21 @@ RDAudioPort::RDAudioPort(QString station,int card)
|
||||
(RDAudioPort::PortType)q->value(2).toInt();
|
||||
audio_input_port_mode[q->value(0).toInt()]=
|
||||
(RDCae::ChannelMode)q->value(3).toInt();
|
||||
audio_input_port_labels[q->value(0).toInt()]=q->value(4).toString();
|
||||
}
|
||||
delete q;
|
||||
|
||||
sql=QString("select ")+
|
||||
"`PORT_NUMBER`,"+ // 00
|
||||
"`LEVEL` "+ // 01
|
||||
"`LEVEL`,"+ // 01
|
||||
"`LABEL` "+ // 02
|
||||
"from `AUDIO_OUTPUTS` where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d",port_card);
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
audio_output_port_level[q->value(0).toInt()]=q->value(1).toInt();
|
||||
audio_output_port_labels[q->value(0).toInt()]=q->value(2).toString();
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
@ -110,6 +114,31 @@ void RDAudioPort::setClockSource(RDCae::ClockSource src)
|
||||
}
|
||||
|
||||
|
||||
QString RDAudioPort::inputPortLabel(int port) const
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
return QObject::tr("ERR");
|
||||
}
|
||||
|
||||
return audio_input_port_labels[port];
|
||||
}
|
||||
|
||||
|
||||
void RDAudioPort::setInputPortLabel(int port,const QString &str)
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
return;
|
||||
}
|
||||
audio_input_port_labels[port]=str;
|
||||
QString sql=QString("update `AUDIO_INPUTS` set ")+
|
||||
"`LABEL`='"+RDEscapeString(str)+"' where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+
|
||||
QString().sprintf("`PORT_NUMBER`=%d",port);
|
||||
RDSqlQuery::apply(sql);
|
||||
}
|
||||
|
||||
|
||||
RDAudioPort::PortType RDAudioPort::inputPortType(int port)
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
@ -188,6 +217,31 @@ void RDAudioPort::setInputPortLevel(int port,int level)
|
||||
}
|
||||
|
||||
|
||||
QString RDAudioPort::outputPortLabel(int port) const
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
return QObject::tr("ERR");
|
||||
}
|
||||
|
||||
return audio_output_port_labels[port];
|
||||
}
|
||||
|
||||
|
||||
void RDAudioPort::setOutputPortLabel(int port,const QString &str)
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
return;
|
||||
}
|
||||
audio_output_port_labels[port]=str;
|
||||
QString sql=QString("update `AUDIO_OUTPUTS` set ")+
|
||||
"`LABEL`='"+RDEscapeString(str)+"' where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+
|
||||
QString().sprintf("`PORT_NUMBER`=%d",port);
|
||||
RDSqlQuery::apply(sql);
|
||||
}
|
||||
|
||||
|
||||
int RDAudioPort::outputPortLevel(int port)
|
||||
{
|
||||
if(port<0||port>RD_MAX_PORTS) {
|
||||
|
@ -26,30 +26,36 @@
|
||||
|
||||
class RDAudioPort
|
||||
{
|
||||
public:
|
||||
enum PortType {Analog=0,AesEbu=1,SpDiff=2};
|
||||
RDAudioPort(QString station,int card);
|
||||
QString station() const;
|
||||
int card() const;
|
||||
RDCae::ClockSource clockSource();
|
||||
void setClockSource(RDCae::ClockSource src);
|
||||
RDAudioPort::PortType inputPortType(int port);
|
||||
void setInputPortType(int port,RDAudioPort::PortType type);
|
||||
RDCae::ChannelMode inputPortMode(int port);
|
||||
void setInputPortMode(int port,RDCae::ChannelMode mode);
|
||||
int inputPortLevel(int port);
|
||||
void setInputPortLevel(int port,int level);
|
||||
int outputPortLevel(int port);
|
||||
void setOutputPortLevel(int port,int level);
|
||||
public:
|
||||
enum PortType {Analog=0,AesEbu=1,SpDiff=2};
|
||||
RDAudioPort(QString station,int card);
|
||||
QString station() const;
|
||||
int card() const;
|
||||
RDCae::ClockSource clockSource();
|
||||
void setClockSource(RDCae::ClockSource src);
|
||||
QString inputPortLabel(int port) const;
|
||||
void setInputPortLabel(int port,const QString &str);
|
||||
RDAudioPort::PortType inputPortType(int port);
|
||||
void setInputPortType(int port,RDAudioPort::PortType type);
|
||||
RDCae::ChannelMode inputPortMode(int port);
|
||||
void setInputPortMode(int port,RDCae::ChannelMode mode);
|
||||
int inputPortLevel(int port);
|
||||
void setInputPortLevel(int port,int level);
|
||||
QString outputPortLabel(int port) const;
|
||||
void setOutputPortLabel(int port,const QString &str);
|
||||
int outputPortLevel(int port);
|
||||
void setOutputPortLevel(int port,int level);
|
||||
|
||||
private:
|
||||
QString port_station;
|
||||
int port_card;
|
||||
int audio_input_port_level[RD_MAX_PORTS];
|
||||
int audio_output_port_level[RD_MAX_PORTS];
|
||||
RDAudioPort::PortType audio_input_port_type[RD_MAX_PORTS];
|
||||
RDCae::ChannelMode audio_input_port_mode[RD_MAX_PORTS];
|
||||
private:
|
||||
QString port_station;
|
||||
int port_card;
|
||||
QString audio_input_port_labels[RD_MAX_PORTS];
|
||||
int audio_input_port_level[RD_MAX_PORTS];
|
||||
RDAudioPort::PortType audio_input_port_type[RD_MAX_PORTS];
|
||||
RDCae::ChannelMode audio_input_port_mode[RD_MAX_PORTS];
|
||||
int audio_output_port_level[RD_MAX_PORTS];
|
||||
QString audio_output_port_labels[RD_MAX_PORTS];
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
#endif // RDAUDIO_PORT_H
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "edit_audios.h"
|
||||
|
||||
EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
EditAudioPorts::EditAudioPorts(RDStation *station,QWidget *parent)
|
||||
: RDDialog(parent)
|
||||
{
|
||||
QString str;
|
||||
@ -34,9 +34,8 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
setMaximumSize(sizeHint());
|
||||
setMinimumSize(sizeHint());
|
||||
|
||||
edit_station=station;
|
||||
edit_card=NULL;
|
||||
rdstation=NULL;
|
||||
rdstation=station;
|
||||
|
||||
setWindowTitle("RDAdmin - "+tr("Edit Audio Ports"));
|
||||
|
||||
@ -74,7 +73,7 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
edit_clock_box=new QComboBox(this);
|
||||
edit_clock_label=new QLabel(tr("Clock Source:"),this);
|
||||
edit_clock_label->setFont(labelFont());
|
||||
edit_clock_label->setAlignment(Qt::AlignRight);
|
||||
edit_clock_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
|
||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||
//
|
||||
@ -83,7 +82,14 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
str=QString(tr("Input Port"));
|
||||
edit_inportnum_label[i]=new QLabel(str+QString().sprintf(" %d",i),this);
|
||||
edit_inportnum_label[i]->setFont(labelFont());
|
||||
edit_inportnum_label[i]->setAlignment(Qt::AlignHCenter);
|
||||
edit_inportnum_label[i]->setAlignment(Qt::AlignCenter);
|
||||
|
||||
edit_input_label_label[i]=new QLabel(tr("Label")+":",this);
|
||||
edit_input_label_label[i]->setFont(labelFont());
|
||||
edit_input_label_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
edit_input_label_edit[i]=new QLineEdit(this);
|
||||
edit_input_label_edit[i]->setMaxLength(4);
|
||||
|
||||
QSignalMapper *mapper=new QSignalMapper(this);
|
||||
connect(mapper,SIGNAL(mapped(int)),this,SLOT(inputMapData(int)));
|
||||
edit_type_box[i]=new QComboBox(this);
|
||||
@ -97,7 +103,7 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
connect(edit_type_box[i],SIGNAL(activated(int)),mapper,SLOT(map()));
|
||||
edit_type_label[i]=new QLabel(tr("Type:"),this);
|
||||
edit_type_label[i]->setFont(labelFont());
|
||||
edit_type_label[i]->setAlignment(Qt::AlignRight);
|
||||
edit_type_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
edit_mode_box[i]=new QComboBox(this);
|
||||
// NOTE: this drop down list box is populated to match RDCae::ChannelMode
|
||||
edit_mode_box[i]->
|
||||
@ -112,14 +118,14 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
connect(edit_mode_box[i],SIGNAL(activated(int)),mapper,SLOT(map()));
|
||||
edit_mode_label[i]=new QLabel(tr("Mode:"),this);
|
||||
edit_mode_label[i]->setFont(labelFont());
|
||||
edit_mode_label[i]->setAlignment(Qt::AlignRight);
|
||||
edit_mode_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
|
||||
edit_input_box[i]=new QSpinBox(this);
|
||||
edit_input_box[i]->setRange(-26,6);
|
||||
edit_input_box[i]->setSuffix(tr(" dB"));
|
||||
edit_input_label[i]=new QLabel(tr("Ref. Level:"),this);
|
||||
edit_input_label[i]->setFont(labelFont());
|
||||
edit_input_label[i]->setAlignment(Qt::AlignRight);
|
||||
edit_input_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Output Port Controls
|
||||
@ -127,14 +133,21 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
str=QString(tr("Output Port"));
|
||||
edit_outportnum_label[i]=new QLabel(str+QString().sprintf(" %d",i),this);
|
||||
edit_outportnum_label[i]->setFont(labelFont());
|
||||
edit_outportnum_label[i]->setAlignment(Qt::AlignHCenter);
|
||||
edit_outportnum_label[i]->setAlignment(Qt::AlignCenter);
|
||||
|
||||
edit_output_label_label[i]=new QLabel(tr("Label")+":",this);
|
||||
edit_output_label_label[i]->setFont(labelFont());
|
||||
edit_output_label_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
|
||||
edit_output_label_edit[i]=new QLineEdit(this);
|
||||
edit_output_label_edit[i]->setMaxLength(4);
|
||||
|
||||
edit_output_box[i]=new QSpinBox(this);
|
||||
edit_output_box[i]->setRange(-26,6);
|
||||
edit_output_box[i]->setSuffix(tr(" dB"));
|
||||
edit_output_label[i]=new QLabel(tr("Ref. Level:"),this);
|
||||
edit_output_label[i]->setFont(labelFont());
|
||||
edit_output_label[i]->setAlignment(Qt::AlignRight);
|
||||
edit_output_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
}
|
||||
|
||||
//
|
||||
@ -156,7 +169,8 @@ EditAudioPorts::EditAudioPorts(QString station,QWidget *parent)
|
||||
//
|
||||
// Populate Data
|
||||
//
|
||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||
int cards=rdstation->cards();
|
||||
for(int i=0;i<cards;i++) {
|
||||
edit_card_box->insertItem(edit_card_box->count(),QString().sprintf("%d",i));
|
||||
}
|
||||
edit_clock_box->insertItem(edit_clock_box->count(),tr("Internal"));
|
||||
@ -175,7 +189,7 @@ EditAudioPorts::~EditAudioPorts()
|
||||
|
||||
QSize EditAudioPorts::sizeHint() const
|
||||
{
|
||||
return QSize(1420,652);
|
||||
return QSize(1404,889);
|
||||
}
|
||||
|
||||
|
||||
@ -195,9 +209,6 @@ void EditAudioPorts::cardSelectedData(int card)
|
||||
|
||||
void EditAudioPorts::inputMapData(int id)
|
||||
{
|
||||
if(rdstation==NULL) {
|
||||
rdstation=new RDStation(edit_station);
|
||||
}
|
||||
if( (rdstation->cardDriver(edit_card_num)==RDStation::Hpi) &&
|
||||
(edit_type_box[id]->currentIndex()==RDAudioPort::Analog) ) {
|
||||
edit_input_label[id]->setEnabled(true);
|
||||
@ -227,21 +238,20 @@ void EditAudioPorts::closeData()
|
||||
|
||||
void EditAudioPorts::resizeEvent(QResizeEvent *e)
|
||||
{
|
||||
printf("resizeEvent(%d,%d)\n",size().width(),size().height());
|
||||
//
|
||||
// Header
|
||||
//
|
||||
edit_card_label->setGeometry(10,16,60,22);
|
||||
edit_card_box->setGeometry(75,10,60,26);
|
||||
|
||||
card_label_label->setGeometry(140,14,80,22);
|
||||
card_label_edit->setGeometry(225,14,300,22);
|
||||
card_label_label->setGeometry(140,16,80,22);
|
||||
card_label_edit->setGeometry(225,16,300,22);
|
||||
|
||||
card_driver_label->setGeometry(550,14,80,22);
|
||||
card_driver_edit->setGeometry(635,14,300,22);
|
||||
card_driver_label->setGeometry(550,16,80,22);
|
||||
card_driver_edit->setGeometry(635,16,300,22);
|
||||
|
||||
edit_clock_label->setGeometry(size().width()-265,16,100,22);
|
||||
edit_clock_box->setGeometry(size().width()-160,10,150,26);
|
||||
edit_clock_label->setGeometry(size().width()-265,16,100,26);
|
||||
edit_clock_box->setGeometry(size().width()-160,16,150,26);
|
||||
|
||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||
int row=i/8;
|
||||
@ -250,20 +260,30 @@ void EditAudioPorts::resizeEvent(QResizeEvent *e)
|
||||
//
|
||||
// Input Section
|
||||
//
|
||||
edit_inportnum_label[i]->setGeometry(50+170*col,55+row*180,170,22);
|
||||
edit_type_box[i]->setGeometry(95+170*col,75+row*180,110,26);
|
||||
edit_type_label[i]->setGeometry(50+170*col,81+row*180,40,22);
|
||||
edit_mode_box[i]->setGeometry(95+170*col,105+row*180,110,26);
|
||||
edit_mode_label[i]->setGeometry(50+170*col,111+row*180,40,22);
|
||||
edit_input_box[i]->setGeometry(95+170*col,135+row*180,60,24);
|
||||
edit_input_label[i]->setGeometry(10+170*col,140+row*180,80,22);
|
||||
edit_inportnum_label[i]->setGeometry(50+170*col,55+row*260,170,22);
|
||||
|
||||
edit_input_label_label[i]->setGeometry(50+170*col,76+row*260,40,24);
|
||||
edit_input_label_edit[i]->setGeometry(95+170*col,76+row*260,60,24);
|
||||
|
||||
edit_type_label[i]->setGeometry(50+170*col,105+row*260,40,26);
|
||||
edit_type_box[i]->setGeometry(95+170*col,105+row*260,110,26);
|
||||
|
||||
edit_mode_label[i]->setGeometry(50+170*col,135+row*260,40,26);
|
||||
edit_mode_box[i]->setGeometry(95+170*col,135+row*260,110,26);
|
||||
|
||||
edit_input_label[i]->setGeometry(10+170*col,165+row*260,80,24);
|
||||
edit_input_box[i]->setGeometry(95+170*col,165+row*260,60,24);
|
||||
|
||||
//
|
||||
// Output Section
|
||||
//
|
||||
edit_outportnum_label[i]->setGeometry(50+170*col,170+row*180,170,22);
|
||||
edit_output_box[i]->setGeometry(95+170*col,190+row*180,60,24);
|
||||
edit_output_label[i]->setGeometry(10+170*col,195+row*180,80,22);
|
||||
edit_outportnum_label[i]->setGeometry(50+170*col,200+row*260,170,22);
|
||||
|
||||
edit_output_label_label[i]->setGeometry(10+170*col,225+row*260,80,24);
|
||||
edit_output_label_edit[i]->setGeometry(95+170*col,225+row*260,60,24);
|
||||
|
||||
edit_output_label[i]->setGeometry(10+170*col,255+row*260,80,24);
|
||||
edit_output_box[i]->setGeometry(95+170*col,255+row*260,60,24);
|
||||
}
|
||||
|
||||
//
|
||||
@ -274,16 +294,18 @@ void EditAudioPorts::resizeEvent(QResizeEvent *e)
|
||||
}
|
||||
|
||||
|
||||
void EditAudioPorts::closeEvent(QCloseEvent *e)
|
||||
{
|
||||
closeData();
|
||||
}
|
||||
|
||||
|
||||
void EditAudioPorts::ReadRecord(int card)
|
||||
{
|
||||
if(edit_card!=NULL) {
|
||||
delete edit_card;
|
||||
}
|
||||
edit_card=new RDAudioPort(edit_station,card);
|
||||
if(rdstation!=NULL) {
|
||||
delete rdstation;
|
||||
}
|
||||
rdstation=new RDStation(edit_station);
|
||||
edit_card=new RDAudioPort(rdstation->name(),card);
|
||||
card_label_edit->setText(rdstation->cardName(card));
|
||||
|
||||
//
|
||||
@ -347,12 +369,16 @@ void EditAudioPorts::ReadRecord(int card)
|
||||
edit_clock_box->setDisabled(true);
|
||||
edit_clock_label->setDisabled(true);
|
||||
for (int i=0;i<RD_MAX_PORTS;i++) {
|
||||
edit_input_label_label[i]->setDisabled(true);
|
||||
edit_input_label_edit[i]->setDisabled(true);
|
||||
edit_type_label[i]->setDisabled(true);
|
||||
edit_type_box[i]->setDisabled(true);
|
||||
edit_mode_label[i]->setDisabled(true);
|
||||
edit_mode_box[i]->setDisabled(true);
|
||||
edit_input_label[i]->setDisabled(true);
|
||||
edit_input_box[i]->setDisabled(true);
|
||||
edit_output_label_label[i]->setDisabled(true);
|
||||
edit_output_label_edit[i]->setDisabled(true);
|
||||
edit_output_label[i]->setDisabled(true);
|
||||
edit_output_box[i]->setDisabled(true);
|
||||
}
|
||||
@ -360,6 +386,7 @@ void EditAudioPorts::ReadRecord(int card)
|
||||
}
|
||||
edit_clock_box->setCurrentIndex(edit_card->clockSource());
|
||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||
edit_input_label_edit[i]->setText(edit_card->inputPortLabel(i));
|
||||
edit_type_box[i]->setCurrentIndex((int)edit_card->inputPortType(i));
|
||||
if( (rdstation->cardDriver(card)==RDStation::Hpi) &&
|
||||
((RDAudioPort::PortType)edit_type_box[i]->currentIndex()==
|
||||
@ -373,6 +400,7 @@ void EditAudioPorts::ReadRecord(int card)
|
||||
}
|
||||
edit_mode_box[i]->setCurrentIndex((int)edit_card->inputPortMode(i));
|
||||
edit_input_box[i]->setValue(edit_card->inputPortLevel(i)/100);
|
||||
edit_output_label_edit[i]->setText(edit_card->outputPortLabel(i));
|
||||
edit_output_box[i]->setValue(edit_card->outputPortLevel(i)/100);
|
||||
}
|
||||
}
|
||||
@ -383,11 +411,13 @@ void EditAudioPorts::WriteRecord()
|
||||
edit_card->
|
||||
setClockSource((RDCae::ClockSource)edit_clock_box->currentIndex());
|
||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||
edit_card->setInputPortLabel(i,edit_input_label_edit[i]->text());
|
||||
edit_card->setInputPortType(i,
|
||||
(RDAudioPort::PortType)edit_type_box[i]->currentIndex());
|
||||
edit_card->setInputPortMode(i,
|
||||
(RDCae::ChannelMode)edit_mode_box[i]->currentIndex());
|
||||
edit_card->setInputPortLevel(i,edit_input_box[i]->value()*100);
|
||||
edit_card->setOutputPortLabel(i,edit_output_label_edit[i]->text());
|
||||
edit_card->setOutputPortLevel(i,edit_output_box[i]->value()*100);
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ class EditAudioPorts : public RDDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditAudioPorts(QString station,QWidget *parent=0);
|
||||
EditAudioPorts(RDStation *station,QWidget *parent=0);
|
||||
~EditAudioPorts();
|
||||
QSize sizeHint() const;
|
||||
QSizePolicy sizePolicy() const;
|
||||
@ -51,6 +51,7 @@ class EditAudioPorts : public RDDialog
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void closeEvent(QCloseEvent *e);
|
||||
|
||||
private:
|
||||
void ReadRecord(int card);
|
||||
@ -59,7 +60,6 @@ class EditAudioPorts : public RDDialog
|
||||
int edit_card_num;
|
||||
RDAudioPort *edit_card;
|
||||
RDStation *rdstation;
|
||||
QString edit_station;
|
||||
QLabel *edit_card_label;
|
||||
QComboBox *edit_card_box;
|
||||
QLabel *card_driver_label;
|
||||
@ -69,6 +69,8 @@ class EditAudioPorts : public RDDialog
|
||||
QLabel *edit_clock_label;
|
||||
QComboBox *edit_clock_box;
|
||||
QLabel *edit_inportnum_label[RD_MAX_PORTS];
|
||||
QLabel *edit_input_label_label[RD_MAX_PORTS];
|
||||
QLineEdit *edit_input_label_edit[RD_MAX_PORTS];
|
||||
QComboBox *edit_type_box[RD_MAX_PORTS];
|
||||
QLabel *edit_type_label[RD_MAX_PORTS];
|
||||
QComboBox *edit_mode_box[RD_MAX_PORTS];
|
||||
@ -76,6 +78,8 @@ class EditAudioPorts : public RDDialog
|
||||
QSpinBox *edit_input_box[RD_MAX_PORTS];
|
||||
QLabel *edit_input_label[RD_MAX_PORTS];
|
||||
QLabel *edit_outportnum_label[RD_MAX_PORTS];
|
||||
QLabel *edit_output_label_label[RD_MAX_PORTS];
|
||||
QLineEdit *edit_output_label_edit[RD_MAX_PORTS];
|
||||
QSpinBox *edit_output_box[RD_MAX_PORTS];
|
||||
QLabel *edit_output_label[RD_MAX_PORTS];
|
||||
QPushButton *edit_help_button;
|
||||
|
@ -408,7 +408,8 @@ EditStation::EditStation(QString sname,QWidget *parent)
|
||||
station_audioports_button->setText(tr("Audio\nPorts"));
|
||||
connect(station_audioports_button,SIGNAL(clicked()),
|
||||
this,SLOT(editAudioData()));
|
||||
|
||||
station_audioports_button->setDisabled(station_station->cards()==0);
|
||||
|
||||
//
|
||||
// TTY Configuration Button
|
||||
//
|
||||
@ -791,7 +792,7 @@ void EditStation::viewAdaptersData()
|
||||
|
||||
void EditStation::editAudioData()
|
||||
{
|
||||
EditAudioPorts *edit_conf=new EditAudioPorts(station_station->name(),0);
|
||||
EditAudioPorts *edit_conf=new EditAudioPorts(station_station,0);
|
||||
edit_conf->exec();
|
||||
delete edit_conf;
|
||||
}
|
||||
|
@ -410,6 +410,10 @@
|
||||
<source>[none]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Label</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditCartSlots</name>
|
||||
|
@ -193,6 +193,9 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent)
|
||||
//
|
||||
QList<int> strip_cards;
|
||||
QList<int> strip_ports;
|
||||
QStringList strip_labels;
|
||||
QList<int> strip_index;
|
||||
bool strip_changed=true;
|
||||
for(unsigned i=0;i<RDAirPlayConf::LastChannel;i++) {
|
||||
RDAirPlayConf::Channel chan=(RDAirPlayConf::Channel)i;
|
||||
if(((rda->airplayConf()->card(chan)>=0)&&
|
||||
@ -201,13 +204,28 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent)
|
||||
(!strip_ports.contains(rda->airplayConf()->port(chan))))) {
|
||||
strip_cards.push_back(rda->airplayConf()->card(chan));
|
||||
strip_ports.push_back(rda->airplayConf()->port(chan));
|
||||
strip_labels.push_back(rda->airplayConf()->portLabel(chan));
|
||||
strip_index.push_back(strip_index.size());
|
||||
}
|
||||
}
|
||||
while(strip_changed) {
|
||||
strip_changed=false;
|
||||
for(int i=0;i<(strip_index.size()-1);i++) {
|
||||
if(strip_labels.at(strip_index.at(i))>
|
||||
strip_labels.at(strip_index.at(i+1))) {
|
||||
int index=strip_index.at(i);
|
||||
strip_index[i]=strip_index.at(i+1);
|
||||
strip_index[i+1]=index;
|
||||
strip_changed=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
air_meter_strip=new RDMeterStrip(this);
|
||||
for(int i=0;i<strip_cards.size();i++) {
|
||||
air_top_strip->meterWidget()->
|
||||
addOutputMeter(strip_cards.at(i),strip_ports.at(i),
|
||||
QString().sprintf("M%d",i+1));
|
||||
addOutputMeter(strip_cards.at(strip_index.at(i)),
|
||||
strip_ports.at(strip_index.at(i)),
|
||||
strip_labels.at(strip_index.at(i)));
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -40,6 +40,16 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
// NEW SCHEMA REVERSIONS GO HERE...
|
||||
|
||||
|
||||
//
|
||||
// Revert 350
|
||||
//
|
||||
if((cur_schema==350)&&(set_schema<cur_schema)) {
|
||||
DropColumn("AUDIO_INPUTS","LABEL");
|
||||
DropColumn("AUDIO_OUTPUTS","LABEL");
|
||||
|
||||
WriteSchemaVersion(--cur_schema);
|
||||
}
|
||||
|
||||
//
|
||||
// Revert 349
|
||||
//
|
||||
|
@ -160,7 +160,7 @@ void MainObject::InitializeSchemaMap() {
|
||||
global_version_map["3.4"]=317;
|
||||
global_version_map["3.5"]=346;
|
||||
global_version_map["3.6"]=347;
|
||||
global_version_map["4.0"]=349;
|
||||
global_version_map["4.0"]=350;
|
||||
}
|
||||
|
||||
|
||||
|
@ -10784,6 +10784,52 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
if((cur_schema<350)&&(set_schema>cur_schema)) {
|
||||
sql=QString("alter table `AUDIO_INPUTS` ")+
|
||||
"add column `LABEL` varchar(4) after `PORT_NUMBER`";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
sql=QString("alter table `AUDIO_OUTPUTS` ")+
|
||||
"add column `LABEL` varchar(4) after `PORT_NUMBER`";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
//
|
||||
// Maintainer's Note:
|
||||
//
|
||||
// Use hard-coded maximum card/port quantities (24 four for each) here,
|
||||
// in case the #define'd values change in future!
|
||||
//
|
||||
sql=QString("select `NAME` from `STATIONS`");
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
for(int i=0;i<24;i++) {
|
||||
for(int j=0;j<24;j++) {
|
||||
sql=QString("update `AUDIO_INPUTS` set ")+
|
||||
"`LABEL`='"+RDEscapeString(QString().sprintf("M%d",j+1))+"' where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(q->value(0).toString())+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d && ",i)+
|
||||
QString().sprintf("`PORT_NUMBER`=%d",j);
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sql=QString("update `AUDIO_OUTPUTS` set ")+
|
||||
"`LABEL`='"+RDEscapeString(QString().sprintf("M%d",j+1))+"' where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(q->value(0).toString())+"' && "+
|
||||
QString().sprintf("`CARD_NUMBER`=%d && ",i)+
|
||||
QString().sprintf("`PORT_NUMBER`=%d",j);
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
|
||||
// NEW SCHEMA UPDATES GO HERE...
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user