2018-06-11 Fred Gleason <fredg@paravelsystems.com>

* Added a 'STATIONS.JACK_PORT' field to the database.
	* Incremented the database version to 287.
	* Added an 'Initial Audio Ports' control to the 'JACK Configuration'
	dialog in rdadmin(1).
	* Implemented 'Activate JACK Port' ['JA'] and 'Remove JACK Port' ['JR']
	RMLs.
This commit is contained in:
Fred Gleason
2018-06-11 15:59:05 +00:00
parent bcf29e8de3
commit 96fdfff8a0
23 changed files with 410 additions and 178 deletions

View File

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

View File

@@ -178,8 +178,10 @@ bool RDMacro::parseString(const char *str,int n)
case RDMacro::GE:
case RDMacro::GI:
case RDMacro::GO:
case RDMacro::JA:
case RDMacro::JC:
case RDMacro::JD:
case RDMacro::JR:
case RDMacro::LB:
case RDMacro::LC:
case RDMacro::LL:

View File

@@ -37,15 +37,15 @@ class RDMacro
public:
enum Command {AG=0x4147,AL=0x414C,BO=0x424F,CC=0x4343,CE=0x4345,CL=0x434C,
CP=0x4350,DB=0x4442,DL=0x444C,DP=0x4450,DS=0x4453,DX=0x4458,
EX=0x4558,FS=0x4653,GE=0x4745,GI=0x4749,GO=0x474F,JC=0x4A43,
JD=0x4A44,LB=0x4C42,LC=0x4C43,LL=0x4C4C,LO=0x4C4F,MB=0x4D42,
MD=0x4D44,MN=0x4D4E,MT=0x4D54,NN=0x4E4E,PB=0x5042,PC=0x5043,
PD=0x5044,PE=0x5045,PL=0x504C,PM=0x504D,PN=0x504E,PP=0x5050,
PS=0x5053,PT=0x5054,PU=0x5055,PW=0x5057,PX=0x5058,RL=0x524C,
RN=0x524E,RS=0x5253,RR=0x5252,SA=0x5341,SC=0x5343,SD=0x5344,
SG=0x5347,SI=0x5349,SL=0x534C,SN=0x534e,SO=0x534F,SP=0x5350,
SR=0x5352,ST=0x5354,SX=0x5358,SY=0x5359,SZ=0x535A,TA=0x5441,
UO=0x554F};
EX=0x4558,FS=0x4653,GE=0x4745,GI=0x4749,GO=0x474F,JA=0x4A41,
JC=0x4A43,JD=0x4A44,JR=0x4A52,LB=0x4C42,LC=0x4C43,LL=0x4C4C,
LO=0x4C4F,MB=0x4D42,MD=0x4D44,MN=0x4D4E,MT=0x4D54,NN=0x4E4E,
PB=0x5042,PC=0x5043,PD=0x5044,PE=0x5045,PL=0x504C,PM=0x504D,
PN=0x504E,PP=0x5050,PS=0x5053,PT=0x5054,PU=0x5055,PW=0x5057,
PX=0x5058,RL=0x524C,RN=0x524E,RS=0x5253,RR=0x5252,SA=0x5341,
SC=0x5343,SD=0x5344,SG=0x5347,SI=0x5349,SL=0x534C,SN=0x534e,
SO=0x534F,SP=0x5350,SR=0x5352,ST=0x5354,SX=0x5358,SY=0x5359,
SZ=0x535A,TA=0x5441,UO=0x554F};
enum Role {Invalid=0,Cmd=1,Reply=2};
RDMacro();
RDMacro::Role role() const;

View File

@@ -336,6 +336,18 @@ void RDStation::setJackCommandLine(const QString &str) const
}
int RDStation::jackPorts() const
{
return RDGetSqlValue("STATIONS","NAME",station_name,"JACK_PORTS").toInt();
}
void RDStation::setJackPorts(int ports) const
{
SetRow("JACK_PORTS",ports);
}
int RDStation::cueCard() const
{
return RDGetSqlValue("STATIONS","NAME",station_name,"CUE_CARD").toInt();
@@ -867,14 +879,15 @@ bool RDStation::create(const QString &name,QString *err_msg,
"START_JACK,"+ // 13
"JACK_SERVER_NAME,"+ // 14
"JACK_COMMAND_LINE,"+ // 15
"CUE_CARD,"+ // 16
"CUE_PORT,"+ // 17
"CUE_START_CART,"+ // 18
"CUE_STOP_CART,"+ // 19
"CARTSLOT_COLUMNS,"+ // 20
"CARTSLOT_ROWS,"+ // 21
"ENABLE_DRAGDROP,"+ // 22
"ENFORCE_PANEL_SETUP "+ // 23
"JACK_PORTS,"+ // 16
"CUE_CARD,"+ // 17
"CUE_PORT,"+ // 18
"CUE_START_CART,"+ // 19
"CUE_STOP_CART,"+ // 20
"CARTSLOT_COLUMNS,"+ // 21
"CARTSLOT_ROWS,"+ // 22
"ENABLE_DRAGDROP,"+ // 23
"ENFORCE_PANEL_SETUP "+ // 24
"from STATIONS where "+
"NAME=\""+RDEscapeString(exemplar)+"\"";
q=new RDSqlQuery(sql);
@@ -901,14 +914,15 @@ bool RDStation::create(const QString &name,QString *err_msg,
"START_JACK=\""+RDEscapeString(q->value(13).toString())+"\","+
"JACK_SERVER_NAME=\""+RDEscapeString(q->value(14).toString())+"\","+
"JACK_COMMAND_LINE=\""+RDEscapeString(q->value(15).toString())+"\","+
QString().sprintf("CUE_CARD=%d,",q->value(16).toInt())+
QString().sprintf("CUE_PORT=%d,",q->value(17).toInt())+
QString().sprintf("CUE_START_CART=%u,",q->value(18).toInt())+
QString().sprintf("CUE_STOP_CART=%u,",q->value(19).toInt())+
QString().sprintf("CARTSLOT_COLUMNS=%d,",q->value(20).toInt())+
QString().sprintf("CARTSLOT_ROWS=%d,",q->value(21).toInt())+
"ENABLE_DRAGDROP=\""+RDEscapeString(q->value(22).toString())+"\","+
"ENFORCE_PANEL_SETUP=\""+RDEscapeString(q->value(23).toString())+"\"";
QString().sprintf("JACK_PORTS=%d,",q->value(16).toInt())+
QString().sprintf("CUE_CARD=%d,",q->value(17).toInt())+
QString().sprintf("CUE_PORT=%d,",q->value(18).toInt())+
QString().sprintf("CUE_START_CART=%u,",q->value(19).toInt())+
QString().sprintf("CUE_STOP_CART=%u,",q->value(20).toInt())+
QString().sprintf("CARTSLOT_COLUMNS=%d,",q->value(21).toInt())+
QString().sprintf("CARTSLOT_ROWS=%d,",q->value(22).toInt())+
"ENABLE_DRAGDROP=\""+RDEscapeString(q->value(23).toString())+"\","+
"ENFORCE_PANEL_SETUP=\""+RDEscapeString(q->value(24).toString())+"\"";
q1=new RDSqlQuery(sql);
if(!q1->isActive()) {
*err_msg=QObject::tr("host already exists");

View File

@@ -76,6 +76,8 @@ class RDStation
void setJackServerName(const QString &str) const;
QString jackCommandLine() const;
void setJackCommandLine(const QString &str) const;
int jackPorts() const;
void setJackPorts(int ports) const;
int cueCard() const;
void setCueCard(int card);
int cuePort() const;