mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-08-16 08:34:12 +02:00
Merged provisioning
This commit is contained in:
commit
cf0ac6c8d9
14
ChangeLog
14
ChangeLog
@ -16068,3 +16068,17 @@
|
|||||||
* Fixed bugs that broke the build under Windows.
|
* Fixed bugs that broke the build under Windows.
|
||||||
2017-09-21 Fred Gleason <fredg@paravelsystems.com>
|
2017-09-21 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Incremented the package version to 2.16.0int09.
|
* Incremented the package version to 2.16.0int09.
|
||||||
|
2017-09-30 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added a [Provisioning] section to rd.conf(5).
|
||||||
|
* Moved code to create new hosts to the 'RDStation::create()' method.
|
||||||
|
* Moved code to delete hosts to the 'RDStation::remove()' method.
|
||||||
|
* Implemented 'CreateHost=' and 'NewHostTemplate=' parameters
|
||||||
|
in the [Provisioning] section of rd.conf(5).
|
||||||
|
2017-09-30 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added static 'RDSvc::create()' and 'RDSvc::remove()' methods.
|
||||||
|
* Implemented 'CreateService=' and 'NewServiceTemplate=' parameters
|
||||||
|
in the [Provisioning] section of rd.conf(5).
|
||||||
|
2017-10-02 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added an '%s' datetime wildcard for Service Name.
|
||||||
|
2017-10-03 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Implemented the '%s' wildcard in the report file path.
|
||||||
|
62
cae/cae.cpp
62
cae/cae.cpp
@ -42,8 +42,11 @@
|
|||||||
#include <rdsocket.h>
|
#include <rdsocket.h>
|
||||||
#include <rdconf.h>
|
#include <rdconf.h>
|
||||||
#include <rdcheck_daemons.h>
|
#include <rdcheck_daemons.h>
|
||||||
|
#include <rddb.h>
|
||||||
|
#include <rdescape_string.h>
|
||||||
#include <rddebug.h>
|
#include <rddebug.h>
|
||||||
#include <rdcmd_switch.h>
|
#include <rdcmd_switch.h>
|
||||||
|
#include <rdsvc.h>
|
||||||
#include <rdsystem.h>
|
#include <rdsystem.h>
|
||||||
|
|
||||||
#include <cae_socket.h>
|
#include <cae_socket.h>
|
||||||
@ -240,6 +243,11 @@ MainObject::MainObject(QObject *parent,const char *name)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Provisioning
|
||||||
|
//
|
||||||
|
InitProvisioning();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Start Up the Drivers
|
// Start Up the Drivers
|
||||||
//
|
//
|
||||||
@ -568,6 +576,60 @@ void MainObject::updateMeters()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainObject::InitProvisioning() const
|
||||||
|
{
|
||||||
|
QString sql;
|
||||||
|
RDSqlQuery *q;
|
||||||
|
QString err_msg;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Provision a Host
|
||||||
|
//
|
||||||
|
if(rd_config->provisioningCreateHost()) {
|
||||||
|
if(!rd_config->provisioningHostTemplate().isEmpty()) {
|
||||||
|
sql=QString("select NAME from STATIONS where ")+
|
||||||
|
"NAME=\""+RDEscapeString(rd_config->stationName())+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(!q->first()) {
|
||||||
|
if(RDStation::create(rd_config->stationName(),&err_msg,rd_config->provisioningHostTemplate())) {
|
||||||
|
syslog(LOG_INFO,"created new host entry \"%s\"",
|
||||||
|
(const char *)rd_config->stationName());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fprintf(stderr,"caed: unable to provision host [%s]\n",
|
||||||
|
(const char *)err_msg);
|
||||||
|
exit(256);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Provision a Service
|
||||||
|
//
|
||||||
|
if(rd_config->provisioningCreateService()) {
|
||||||
|
if(!rd_config->provisioningServiceTemplate().isEmpty()) {
|
||||||
|
sql=QString("select NAME from SERVICES where ")+
|
||||||
|
"NAME=\""+RDEscapeString(rd_config->stationName())+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(!q->first()) {
|
||||||
|
if(RDSvc::create(rd_config->stationName(),&err_msg,rd_config->provisioningServiceTemplate())) {
|
||||||
|
syslog(LOG_INFO,"created new service entry \"%s\"",
|
||||||
|
(const char *)rd_config->stationName());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fprintf(stderr,"caed: unable to provision service [%s]\n",
|
||||||
|
(const char *)err_msg);
|
||||||
|
exit(256);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MainObject::InitMixers()
|
void MainObject::InitMixers()
|
||||||
{
|
{
|
||||||
for(int i=0;i<RD_MAX_CARDS;i++) {
|
for(int i=0;i<RD_MAX_CARDS;i++) {
|
||||||
|
@ -121,6 +121,7 @@ class MainObject : public QObject
|
|||||||
void updateMeters();
|
void updateMeters();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void InitProvisioning() const;
|
||||||
void InitMixers();
|
void InitMixers();
|
||||||
void ParseCommand(int);
|
void ParseCommand(int);
|
||||||
void DispatchCommand(int);
|
void DispatchCommand(int);
|
||||||
|
@ -33,6 +33,20 @@ MountOptions=defaults
|
|||||||
CaeHostname=
|
CaeHostname=
|
||||||
XportHostname=
|
XportHostname=
|
||||||
|
|
||||||
|
[Provisioning]
|
||||||
|
; If CreateHost=Yes, a Host entry will be automatically created in the DB
|
||||||
|
; when the 'rivendell' system service is started, using the Host definition
|
||||||
|
; specified in NewHostTemplate= as the template.
|
||||||
|
CreateHost=No
|
||||||
|
NewHostTemplate=some_host_entry
|
||||||
|
|
||||||
|
; If CreateService=Yes, a Service entry will be automatically created in the DB
|
||||||
|
; when the 'rivendell' system service is started, using the Service definition
|
||||||
|
; specified in NewServiceTemplate= as the template. The new service entry will
|
||||||
|
; have the same name as the hostname.
|
||||||
|
CreateService=No
|
||||||
|
NewServiceTemplate=some_service_entry
|
||||||
|
|
||||||
[Logs]
|
[Logs]
|
||||||
; Set the method to be used for logging. Possible values are:
|
; Set the method to be used for logging. Possible values are:
|
||||||
; Syslog = Use the syslog facility.
|
; Syslog = Use the syslog facility.
|
||||||
|
@ -87,7 +87,7 @@ where:
|
|||||||
|
|
||||||
R -- [unassigned]
|
R -- [unassigned]
|
||||||
|
|
||||||
s -- [unassigned]
|
s -- Service Name
|
||||||
|
|
||||||
S -- Seconds, zero padded (00 - 60)
|
S -- Seconds, zero padded (00 - 60)
|
||||||
|
|
||||||
|
@ -39,9 +39,11 @@ bool RDReport::ExportBmiEmr(const QDate &startdate,const QDate &enddate,
|
|||||||
QString station_format=stationFormat();
|
QString station_format=stationFormat();
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -41,9 +41,11 @@ bool RDReport::ExportCutLog(const QDate &startdate,const QDate &enddate,
|
|||||||
QString cart_num;
|
QString cart_num;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -43,9 +43,11 @@ bool RDReport::ExportDeltaflex(const QDate &startdate,const QDate &enddate,
|
|||||||
QString air_fmt;
|
QString air_fmt;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -41,9 +41,11 @@ bool RDReport::ExportMusicClassical(const QDate &startdate,const QDate &enddate,
|
|||||||
QString cart_num;
|
QString cart_num;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -41,9 +41,11 @@ bool RDReport::ExportMusicPlayout(const QDate &startdate,const QDate &enddate,
|
|||||||
QString cart_num;
|
QString cart_num;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -40,9 +40,11 @@ bool RDReport::ExportMusicSummary(const QDate &startdate,const QDate &enddate,
|
|||||||
QString str;
|
QString str;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -51,9 +51,11 @@ bool RDReport::ExportNprSoundEx(const QDate &startdate,const QDate &enddate,
|
|||||||
QString channel_name=stationId();
|
QString channel_name=stationId();
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
if((f=fopen(filename,"wb"))==NULL) {
|
if((f=fopen(filename,"wb"))==NULL) {
|
||||||
report_error_code=RDReport::ErrorCantOpen;
|
report_error_code=RDReport::ErrorCantOpen;
|
||||||
|
@ -38,9 +38,11 @@ bool RDReport::ExportRadioTraffic(const QDate &startdate,const QDate &enddate,
|
|||||||
QString air_fmt;
|
QString air_fmt;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -48,9 +48,11 @@ bool RDReport::ExportSoundEx(const QDate &startdate,const QDate &enddate,
|
|||||||
QString channel_name=stationId();
|
QString channel_name=stationId();
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -50,9 +50,11 @@ bool RDReport::ExportSpinCount(const QDate &startdate,const QDate &enddate,
|
|||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -44,9 +44,11 @@ bool RDReport::ExportTechnical(const QDate &startdate,const QDate &enddate,
|
|||||||
char eol[3]="\n";
|
char eol[3]="\n";
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
if(incl_crs) {
|
if(incl_crs) {
|
||||||
strcpy(eol,"\r\n");
|
strcpy(eol,"\r\n");
|
||||||
}
|
}
|
||||||
|
@ -42,9 +42,11 @@ bool RDReport::ExportTextLog(const QDate &startdate,const QDate &enddate,
|
|||||||
QString cart_num;
|
QString cart_num;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Windows),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Windows),startdate,serviceName());
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(exportPath(RDReport::Linux),startdate);
|
QString filename=
|
||||||
|
RDDateDecode(exportPath(RDReport::Linux),startdate,serviceName());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
|
@ -491,6 +491,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -487,6 +487,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -487,6 +487,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -465,6 +465,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -487,6 +487,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -487,6 +487,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -487,6 +487,30 @@
|
|||||||
<source>cart</source>
|
<source>cart</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Host already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>host already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>service already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template service</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>does not exist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>template host</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RDAddCart</name>
|
<name>RDAddCart</name>
|
||||||
|
@ -249,6 +249,30 @@ void RDConfig::log(const QString &module,LogPriority prio,const QString &msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool RDConfig::provisioningCreateHost() const
|
||||||
|
{
|
||||||
|
return conf_provisioning_create_host;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString RDConfig::provisioningHostTemplate() const
|
||||||
|
{
|
||||||
|
return conf_provisioning_host_template;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool RDConfig::provisioningCreateService() const
|
||||||
|
{
|
||||||
|
return conf_provisioning_create_service;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString RDConfig::provisioningServiceTemplate() const
|
||||||
|
{
|
||||||
|
return conf_provisioning_service_template;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int RDConfig::alsaPeriodQuantity() const
|
int RDConfig::alsaPeriodQuantity() const
|
||||||
{
|
{
|
||||||
return conf_alsa_period_quantity;
|
return conf_alsa_period_quantity;
|
||||||
@ -461,6 +485,15 @@ void RDConfig::load()
|
|||||||
conf_audio_store_xport_hostname=
|
conf_audio_store_xport_hostname=
|
||||||
profile->stringValue("AudioStore","XportHostname","localhost");
|
profile->stringValue("AudioStore","XportHostname","localhost");
|
||||||
|
|
||||||
|
conf_provisioning_create_host=
|
||||||
|
profile->boolValue("Provisioning","CreateHost");
|
||||||
|
conf_provisioning_host_template=
|
||||||
|
profile->stringValue("Provisioning","NewHostTemplate");
|
||||||
|
conf_provisioning_create_service=
|
||||||
|
profile->boolValue("Provisioning","CreateService");
|
||||||
|
conf_provisioning_service_template=
|
||||||
|
profile->stringValue("Provisioning","NewServiceTemplate");
|
||||||
|
|
||||||
conf_audio_root=
|
conf_audio_root=
|
||||||
profile->stringValue("Cae","AudioRoot",RD_AUDIO_ROOT);
|
profile->stringValue("Cae","AudioRoot",RD_AUDIO_ROOT);
|
||||||
conf_audio_extension=
|
conf_audio_extension=
|
||||||
@ -560,6 +593,10 @@ void RDConfig::clear()
|
|||||||
conf_log_core_dump_directory=DEFAULT_LOG_CORE_DUMP_DIRECTORY;
|
conf_log_core_dump_directory=DEFAULT_LOG_CORE_DUMP_DIRECTORY;
|
||||||
conf_log_pattern=DEFAULT_LOG_PATTERN;
|
conf_log_pattern=DEFAULT_LOG_PATTERN;
|
||||||
conf_log_xload_debug_data=false;
|
conf_log_xload_debug_data=false;
|
||||||
|
conf_provisioning_create_host=false;
|
||||||
|
conf_provisioning_host_template="";
|
||||||
|
conf_provisioning_create_service=false;
|
||||||
|
conf_provisioning_service_template="";
|
||||||
conf_alsa_period_quantity=RD_ALSA_DEFAULT_PERIOD_QUANTITY;
|
conf_alsa_period_quantity=RD_ALSA_DEFAULT_PERIOD_QUANTITY;
|
||||||
conf_alsa_period_size=RD_ALSA_DEFAULT_PERIOD_SIZE;
|
conf_alsa_period_size=RD_ALSA_DEFAULT_PERIOD_SIZE;
|
||||||
conf_alsa_channels_per_pcm=-1;
|
conf_alsa_channels_per_pcm=-1;
|
||||||
|
@ -65,6 +65,10 @@ class RDConfig
|
|||||||
QString logPattern() const;
|
QString logPattern() const;
|
||||||
bool logXloadDebugData() const;
|
bool logXloadDebugData() const;
|
||||||
void log(const QString &module,LogPriority prio,const QString &msg);
|
void log(const QString &module,LogPriority prio,const QString &msg);
|
||||||
|
bool provisioningCreateHost() const;
|
||||||
|
QString provisioningHostTemplate() const;
|
||||||
|
bool provisioningCreateService() const;
|
||||||
|
QString provisioningServiceTemplate() const;
|
||||||
int alsaPeriodQuantity() const;
|
int alsaPeriodQuantity() const;
|
||||||
int alsaPeriodSize() const;
|
int alsaPeriodSize() const;
|
||||||
int alsaChannelsPerPcm() const;
|
int alsaChannelsPerPcm() const;
|
||||||
@ -121,6 +125,10 @@ class RDConfig
|
|||||||
QString conf_log_directory;
|
QString conf_log_directory;
|
||||||
QString conf_log_core_dump_directory;
|
QString conf_log_core_dump_directory;
|
||||||
QString conf_log_pattern;
|
QString conf_log_pattern;
|
||||||
|
bool conf_provisioning_create_host;
|
||||||
|
QString conf_provisioning_host_template;
|
||||||
|
bool conf_provisioning_create_service;
|
||||||
|
QString conf_provisioning_service_template;
|
||||||
bool conf_log_xload_debug_data;
|
bool conf_log_xload_debug_data;
|
||||||
int conf_alsa_period_quantity;
|
int conf_alsa_period_quantity;
|
||||||
int conf_alsa_period_size;
|
int conf_alsa_period_size;
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include <rddatedecode.h>
|
#include <rddatedecode.h>
|
||||||
|
|
||||||
QString RDDateDecode(QString str,QDate date)
|
QString RDDateDecode(QString str,const QDate &date,const QString &svcname)
|
||||||
{
|
{
|
||||||
QString string;
|
QString string;
|
||||||
int yearnum;
|
int yearnum;
|
||||||
@ -117,6 +117,12 @@ QString RDDateDecode(QString str,QDate date)
|
|||||||
field=QString().sprintf("%02d",date.month());
|
field=QString().sprintf("%02d",date.month());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's': // Service name
|
||||||
|
if(!svcname.isEmpty()) {
|
||||||
|
field=svcname;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
||||||
field=QString().sprintf("%d",date.dayOfWeek());
|
field=QString().sprintf("%d",date.dayOfWeek());
|
||||||
break;
|
break;
|
||||||
@ -164,7 +170,8 @@ QString RDDateDecode(QString str,QDate date)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString RDDateTimeDecode(QString str,QDateTime datetime)
|
QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
||||||
|
const QString &svcname)
|
||||||
{
|
{
|
||||||
QString string;
|
QString string;
|
||||||
int yearnum;
|
int yearnum;
|
||||||
@ -291,6 +298,12 @@ QString RDDateTimeDecode(QString str,QDateTime datetime)
|
|||||||
field=QString().sprintf("%02d",datetime.time().second());
|
field=QString().sprintf("%02d",datetime.time().second());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's': // Service name
|
||||||
|
if(!svcname.isEmpty()) {
|
||||||
|
field=svcname;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
case 'u': // Day of week (numeric, 1..7, 1=Monday)
|
||||||
field=QString().sprintf("%d",datetime.date().dayOfWeek());
|
field=QString().sprintf("%d",datetime.date().dayOfWeek());
|
||||||
break;
|
break;
|
||||||
|
@ -23,8 +23,9 @@
|
|||||||
|
|
||||||
#include <qdatetime.h>
|
#include <qdatetime.h>
|
||||||
|
|
||||||
QString RDDateDecode(QString str,QDate date);
|
QString RDDateDecode(QString str,const QDate &date,const QString &svcname="");
|
||||||
QString RDDateTimeDecode(QString str,QDateTime datetime);
|
QString RDDateTimeDecode(QString str,const QDateTime &datetime,
|
||||||
|
const QString &svcname="");
|
||||||
|
|
||||||
|
|
||||||
#endif // RDDATEDECODE
|
#endif // RDDATEDECODE
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#include <qobject.h>
|
||||||
|
|
||||||
|
#include <rdairplay_conf.h>
|
||||||
#include <rdconf.h>
|
#include <rdconf.h>
|
||||||
#include <rdstation.h>
|
#include <rdstation.h>
|
||||||
#include <rd.h>
|
#include <rd.h>
|
||||||
@ -660,6 +663,978 @@ void RDStation::setCardOutputs(int cardnum,int outputs) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool RDStation::create(const QString &name,QString *err_msg,
|
||||||
|
const QString &exemplar)
|
||||||
|
{
|
||||||
|
QString sql;
|
||||||
|
RDSqlQuery *q;
|
||||||
|
RDSqlQuery *q1;
|
||||||
|
|
||||||
|
if(exemplar.isEmpty()) { // Create Blank Host Config
|
||||||
|
sql=QString("insert into STATIONS set ")+
|
||||||
|
"NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
"DESCRIPTION=\"Workstation "+RDEscapeString(name)+"\","+
|
||||||
|
"USER_NAME=\"user\","+
|
||||||
|
"DEFAULT_NAME=\"user\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(!q->isActive()) {
|
||||||
|
*err_msg=QObject::tr("Host already exists!");
|
||||||
|
delete q;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Create Service Perms
|
||||||
|
//
|
||||||
|
sql=QString("select NAME from SERVICES");
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into SERVICE_PERMS set ")+
|
||||||
|
"SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// RDAirPlay/RDPanel Channel Data
|
||||||
|
//
|
||||||
|
for(unsigned i=0;i<10;i++) {
|
||||||
|
sql=QString("insert into RDAIRPLAY_CHANNELS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("INSTANCE=%u",i);
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString("insert into RDPANEL_CHANNELS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("INSTANCE=%u",i);
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
for(unsigned i=0;i<RD_CUT_EVENT_ID_QUAN;i++) {
|
||||||
|
for(unsigned j=0;j<MAX_DECKS;j++) {
|
||||||
|
sql=QString("insert into DECK_EVENTS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("CHANNEL=%u,",j+129)+
|
||||||
|
QString().sprintf("NUMBER=%u",i+1);
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// RDAirPlay Log Modes
|
||||||
|
//
|
||||||
|
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
|
||||||
|
sql=QString().sprintf("insert into LOG_MODES set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("MACHINE=%d",i);
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { // Use Template Host
|
||||||
|
sql=QString("select ")+
|
||||||
|
"DEFAULT_NAME,"+ // 00
|
||||||
|
"STARTUP_CART,"+ // 01
|
||||||
|
"TIME_OFFSET,"+ // 02
|
||||||
|
"BROADCAST_SECURITY,"+ // 03
|
||||||
|
"HEARTBEAT_CART,"+ // 04
|
||||||
|
"HEARTBEAT_INTERVAL,"+ // 05
|
||||||
|
"EDITOR_PATH,"+ // 06
|
||||||
|
"FILTER_MODE,"+ // 07
|
||||||
|
"SYSTEM_MAINT,"+ // 08
|
||||||
|
"HTTP_STATION,"+ // 09
|
||||||
|
"CAE_STATION "+ // 10
|
||||||
|
"from STATIONS where "+
|
||||||
|
"NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into STATIONS set ")+
|
||||||
|
"NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
"DESCRIPTION=\""+RDEscapeString("Workstation "+name)+"\","+
|
||||||
|
"USER_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
"DEFAULT_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
QString().sprintf("STARTUP_CART=%u,",q->value(1).toUInt())+
|
||||||
|
QString().sprintf("TIME_OFFSET=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("BROADCAST_SECURITY=%u,",q->value(3).toUInt())+
|
||||||
|
QString().sprintf("HEARTBEAT_CART=%u,",q->value(4).toUInt())+
|
||||||
|
QString().sprintf("HEARTBEAT_INTERVAL=%u,",q->value(5).toUInt())+
|
||||||
|
"EDITOR_PATH=\""+RDEscapeString(q->value(6).toString())+"\","+
|
||||||
|
QString().sprintf("FILTER_MODE=%d,",q->value(7).toInt())+
|
||||||
|
"SYSTEM_MAINT=\""+RDEscapeString(q->value(8).toString())+"\","+
|
||||||
|
"HTTP_STATION=\""+RDEscapeString(q->value(9).toString())+"\","+
|
||||||
|
"CAE_STATION=\""+RDEscapeString(q->value(10).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
if(!q1->isActive()) {
|
||||||
|
*err_msg=QObject::tr("host already exists");
|
||||||
|
delete q1;
|
||||||
|
delete q;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*err_msg=QObject::tr("template host")+" \""+exemplar+"\" "+
|
||||||
|
QObject::tr("does not exist");
|
||||||
|
delete q;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Service Perms
|
||||||
|
//
|
||||||
|
sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into SERVICE_PERMS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
"SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone RDLibrary Config
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"INPUT_CARD,"+ // 00
|
||||||
|
"INPUT_PORT,"+ // 01
|
||||||
|
"INPUT_TYPE,"+ // 02
|
||||||
|
"OUTPUT_CARD,"+ // 03
|
||||||
|
"OUTPUT_PORT,"+ // 04
|
||||||
|
"VOX_THRESHOLD,"+ // 05
|
||||||
|
"TRIM_THRESHOLD,"+ // 06
|
||||||
|
"DEFAULT_FORMAT,"+ // 07
|
||||||
|
"DEFAULT_CHANNELS,"+ // 08
|
||||||
|
"DEFAULT_SAMPRATE,"+ // 09
|
||||||
|
"DEFAULT_LAYER,"+ // 10
|
||||||
|
"DEFAULT_BITRATE,"+ // 11
|
||||||
|
"DEFAULT_RECORD_MODE,"+ // 12
|
||||||
|
"DEFAULT_TRIM_STATE,"+ // 13
|
||||||
|
"MAXLENGTH,"+ // 14
|
||||||
|
"TAIL_PREROLL,"+ // 15
|
||||||
|
"RIPPER_DEVICE,"+ // 16
|
||||||
|
"PARANOIA_LEVEL,"+ // 17
|
||||||
|
"RIPPER_LEVEL,"+ // 18
|
||||||
|
"CDDB_SERVER "+ // 19
|
||||||
|
"from RDLIBRARY where "+
|
||||||
|
"(STATION=\""+RDEscapeString(exemplar)+"\")&&"+
|
||||||
|
"(INSTANCE=0)";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into RDLIBRARY set ")+
|
||||||
|
QString().sprintf("INPUT_CARD=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("INPUT_PORT=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("INPUT_TYPE=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("OUTPUT_CARD=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("OUTPUT_PORT=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("VOX_THRESHOLD=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("TRIM_THRESHOLD=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_FORMAT=%u,",q->value(7).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(8).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_SAMPRATE=%u,",q->value(9).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_LAYER=%u,",q->value(10).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_BITRATE=%u,",q->value(11).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(12).toUInt())+
|
||||||
|
"DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(13).toString())+"\","+
|
||||||
|
QString().sprintf("MAXLENGTH=%d,",q->value(14).toInt())+
|
||||||
|
QString().sprintf("TAIL_PREROLL=%u,",q->value(15).toUInt())+
|
||||||
|
"RIPPER_DEVICE=\""+RDEscapeString(q->value(16).toString())+"\","+
|
||||||
|
QString().sprintf("PARANOIA_LEVEL=%d,",q->value(17).toInt())+
|
||||||
|
QString().sprintf("RIPPER_LEVEL=%d,",q->value(18).toInt())+
|
||||||
|
"CDDB_SERVER=\""+RDEscapeString(q->value(19).toString())+"\","+
|
||||||
|
"STATION=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone RDLogEdit Config
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"INPUT_CARD,"+ // 00
|
||||||
|
"INPUT_PORT,"+ // 01
|
||||||
|
"OUTPUT_CARD,"+ // 02
|
||||||
|
"OUTPUT_PORT,"+ // 03
|
||||||
|
"FORMAT,"+ // 04
|
||||||
|
"DEFAULT_CHANNELS,"+ // 05
|
||||||
|
"SAMPRATE,"+ // 06
|
||||||
|
"LAYER,"+ // 07
|
||||||
|
"BITRATE,"+ // 08
|
||||||
|
"MAXLENGTH,"+ // 09
|
||||||
|
"TAIL_PREROLL,"+ // 10
|
||||||
|
"START_CART,"+ // 11
|
||||||
|
"END_CART,"+ // 12
|
||||||
|
"REC_START_CART,"+ // 13
|
||||||
|
"REC_END_CART,"+ // 14
|
||||||
|
"TRIM_THRESHOLD,"+ // 15
|
||||||
|
"RIPPER_LEVEL,"+ // 16
|
||||||
|
"DEFAULT_TRANS_TYPE "+ // 17
|
||||||
|
"from RDLOGEDIT where "+
|
||||||
|
"STATION=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into RDLOGEDIT set ")+
|
||||||
|
QString().sprintf("INPUT_CARD=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("INPUT_PORT=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("OUTPUT_CARD=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("OUTPUT_PORT=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("FORMAT=%u,",q->value(4).toUInt())+
|
||||||
|
QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(5).toUInt())+
|
||||||
|
QString().sprintf("SAMPRATE=%u,",q->value(6).toUInt())+
|
||||||
|
QString().sprintf("LAYER=%u,",q->value(7).toUInt())+
|
||||||
|
QString().sprintf("BITRATE=%u,",q->value(8).toUInt())+
|
||||||
|
QString().sprintf("MAXLENGTH=%d,",q->value(9).toInt())+
|
||||||
|
QString().sprintf("TAIL_PREROLL=%u,",q->value(10).toUInt())+
|
||||||
|
"STATION=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("START_CART=%u,",q->value(11).toUInt())+
|
||||||
|
QString().sprintf("END_CART=%u,",q->value(12).toUInt())+
|
||||||
|
QString().sprintf("REC_START_CART=%u,",q->value(13).toUInt())+
|
||||||
|
QString().sprintf("REC_END_CART=%u,",q->value(14).toUInt())+
|
||||||
|
QString().sprintf("TRIM_THRESHOLD=%d,",q->value(15).toInt())+
|
||||||
|
QString().sprintf("RIPPER_LEVEL=%d,",q->value(16).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_TRANS_TYPE=%d",q->value(17).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone RDCatch Config
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"CHANNEL,"+ // 00
|
||||||
|
"CARD_NUMBER,"+ // 01
|
||||||
|
"PORT_NUMBER,"+ // 02
|
||||||
|
"MON_PORT_NUMBER,"+ // 03
|
||||||
|
"PORT_TYPE,"+ // 04
|
||||||
|
"DEFAULT_FORMAT,"+ // 05
|
||||||
|
"DEFAULT_CHANNELS,"+ // 06
|
||||||
|
"DEFAULT_SAMPRATE,"+ // 07
|
||||||
|
"DEFAULT_BITRATE,"+ // 08
|
||||||
|
"DEFAULT_THRESHOLD,"+ // 09
|
||||||
|
"DEFAULT_MONITOR_ON "+ // 10
|
||||||
|
"from DECKS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into DECKS set ")+
|
||||||
|
QString().sprintf("CHANNEL=%u,",q->value(0).toUInt())+
|
||||||
|
QString().sprintf("CARD_NUMBER=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("PORT_NUMBER=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("MON_PORT_NUMBER=%d,",q->value(3).toInt())+
|
||||||
|
"PORT_TYPE=\""+RDEscapeString(q->value(4).toString())+"\","+
|
||||||
|
QString().sprintf("DEFAULT_FORMAT=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_CHANNELS=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_SAMPRATE=%d,",q->value(7).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_BITRATE=%d,",q->value(8).toInt())+
|
||||||
|
QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(9).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
"DEFAULT_MONITOR_ON=\""+RDEscapeString(q->value(10).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Deck Events
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"CHANNEL,"+ // 00
|
||||||
|
"NUMBER,"+ // 01
|
||||||
|
"CART_NUMBER "+ // 02
|
||||||
|
"from DECK_EVENTS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into DECK_EVENTS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("CHANNEL=%u,",q->value(0).toUInt())+
|
||||||
|
QString().sprintf("NUMBER=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("CART_NUMBER=%u",q->value(2).toUInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone RDAirPlay Config
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"SEGUE_LENGTH,"+ // 00
|
||||||
|
"TRANS_LENGTH,"+ // 01
|
||||||
|
"OP_MODE,"+ // 02
|
||||||
|
"START_MODE,"+ // 03
|
||||||
|
"PIE_COUNT_LENGTH,"+ // 04
|
||||||
|
"PIE_COUNT_ENDPOINT,"+ // 05
|
||||||
|
"CHECK_TIMESYNC,"+ // 06
|
||||||
|
"STATION_PANELS,"+ // 07
|
||||||
|
"USER_PANELS," // 08
|
||||||
|
"SHOW_AUX_1,"+ // 09
|
||||||
|
"SHOW_AUX_2,"+ // 10
|
||||||
|
"CLEAR_FILTER,"+ // 11
|
||||||
|
"DEFAULT_TRANS_TYPE,"+ // 12
|
||||||
|
"BAR_ACTION,"+ // 13
|
||||||
|
"FLASH_PANEL,"+ // 14
|
||||||
|
"PAUSE_ENABLED,"+ // 15
|
||||||
|
"UDP_ADDR0,"+ // 16
|
||||||
|
"UDP_PORT0,"+ // 17
|
||||||
|
"UDP_STRING0,"+ // 18
|
||||||
|
"UDP_ADDR1,"+ // 19
|
||||||
|
"UDP_PORT1,"+ // 20
|
||||||
|
"UDP_STRING1,"+ // 21
|
||||||
|
"UDP_ADDR2,"+ // 22
|
||||||
|
"UDP_PORT2,"+ // 23
|
||||||
|
"UDP_STRING2,"+ // 24
|
||||||
|
"DEFAULT_SERVICE,"+ // 25
|
||||||
|
"LOG_RML0,"+ // 26
|
||||||
|
"LOG_RML1,"+ // 27
|
||||||
|
"LOG_RML2,"+ // 28
|
||||||
|
"BUTTON_LABEL_TEMPLATE,"+ // 29
|
||||||
|
"EXIT_PASSWORD "+ // 30
|
||||||
|
"from RDAIRPLAY where "+
|
||||||
|
"STATION=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into RDAIRPLAY set ")+
|
||||||
|
QString().sprintf("SEGUE_LENGTH=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("TRANS_LENGTH=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("OP_MODE=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("START_MODE=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("PIE_COUNT_LENGTH=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("PIE_COUNT_ENDPOINT=%d,",q->value(5).toInt())+
|
||||||
|
"CHECK_TIMESYNC=\""+RDEscapeString(q->value(6).toString())+"\","+
|
||||||
|
QString().sprintf("STATION_PANELS=%d,",q->value(7).toInt())+
|
||||||
|
QString().sprintf("USER_PANELS=%d,",q->value(8).toInt())+
|
||||||
|
"SHOW_AUX_1=\""+RDEscapeString(q->value(9).toString())+"\","+
|
||||||
|
"SHOW_AUX_2=\""+RDEscapeString(q->value(10).toString())+"\","+
|
||||||
|
"CLEAR_FILTER=\""+RDEscapeString(q->value(11).toString())+"\","+
|
||||||
|
QString().sprintf("DEFAULT_TRANS_TYPE=%u,",q->value(12).toUInt())+
|
||||||
|
QString().sprintf("BAR_ACTION=%u,",q->value(13).toUInt())+
|
||||||
|
"FLASH_PANEL=\""+RDEscapeString(q->value(14).toString())+"\","+
|
||||||
|
"PAUSE_ENABLED=\""+RDEscapeString(q->value(15).toString())+"\","+
|
||||||
|
"UDP_ADDR0=\""+RDEscapeString(q->value(16).toString())+"\","+
|
||||||
|
QString().sprintf("UDP_PORT0=%u,",q->value(17).toUInt())+
|
||||||
|
"UDP_STRING0=\""+RDEscapeString(q->value(18).toString())+"\","+
|
||||||
|
"UDP_ADDR1=\""+RDEscapeString(q->value(19).toString())+"\","+
|
||||||
|
QString().sprintf("UDP_PORT1=%u,",q->value(20).toUInt())+
|
||||||
|
"UDP_STRING1=\""+RDEscapeString(q->value(21).toString())+"\","+
|
||||||
|
"UDP_ADDR2=\""+RDEscapeString(q->value(22).toString())+"\","+
|
||||||
|
QString().sprintf("UDP_PORT2=%u,",q->value(23).toUInt())+
|
||||||
|
"UDP_STRING2=\""+RDEscapeString(q->value(24).toString())+"\","+
|
||||||
|
"STATION=\""+RDEscapeString(name)+"\","+
|
||||||
|
"DEFAULT_SERVICE=\""+RDEscapeString(q->value(25).toString())+"\","+
|
||||||
|
"LOG_RML0=\""+RDEscapeString(q->value(26).toString())+"\","+
|
||||||
|
"LOG_RML1=\""+RDEscapeString(q->value(27).toString())+"\","+
|
||||||
|
"LOG_RML2=\""+RDEscapeString(q->value(28).toString())+"\","+
|
||||||
|
"BUTTON_LABEL_TEMPLATE=\""+RDEscapeString(q->value(29).toString())+
|
||||||
|
"\","+
|
||||||
|
"EXIT_PASSWORD=\""+RDEscapeString(q->value(30).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString("select ")+
|
||||||
|
"INSTANCE,"+ // 00
|
||||||
|
"CARD,"+ // 01
|
||||||
|
"PORT,"+ // 02
|
||||||
|
"START_RML,"+ // 03
|
||||||
|
"STOP_RML,"+ // 04
|
||||||
|
"START_GPI_MATRIX,"+ // 05
|
||||||
|
"START_GPI_LINE,"+ // 06
|
||||||
|
"START_GPO_MATRIX,"+ // 07
|
||||||
|
"START_GPO_LINE,"+ // 08
|
||||||
|
"STOP_GPI_MATRIX,"+ // 09
|
||||||
|
"STOP_GPI_LINE,"+ // 10
|
||||||
|
"STOP_GPO_MATRIX,"+ // 11
|
||||||
|
"STOP_GPO_LINE "+ // 12
|
||||||
|
"from RDAIRPLAY_CHANNELS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into RDAIRPLAY_CHANNELS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+
|
||||||
|
QString().sprintf("CARD=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("PORT=%d,",q->value(2).toInt())+
|
||||||
|
"START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
"STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+
|
||||||
|
QString().sprintf("START_GPI_MATRIX=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("START_GPI_LINE=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("START_GPO_MATRIX=%d,",q->value(7).toInt())+
|
||||||
|
QString().sprintf("START_GPO_LINE=%d,",q->value(8).toInt())+
|
||||||
|
QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(9).toInt())+
|
||||||
|
QString().sprintf("STOP_GPI_LINE=%d,",q->value(10).toInt())+
|
||||||
|
QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(11).toInt())+
|
||||||
|
QString().sprintf("STOP_GPO_LINE=%d",q->value(12).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// RDAirPlay Log Modes
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MACHINE,"+ // 00
|
||||||
|
"START_MODE,"+ // 01
|
||||||
|
"OP_MODE from LOG_MODES where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString().sprintf("insert into LOG_MODES set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("MACHINE=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("START_MODE=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("OP_MODE=%d",q->value(2).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone RDPanel Config
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"STATION_PANELS,"+ // 00
|
||||||
|
"USER_PANELS,"+ // 01
|
||||||
|
"CLEAR_FILTER,"+ // 02
|
||||||
|
"FLASH_PANEL,"+ // 03
|
||||||
|
"DEFAULT_SERVICE,"+ // 04
|
||||||
|
"BUTTON_LABEL_TEMPLATE "+ // 05
|
||||||
|
"from RDPANEL where "+
|
||||||
|
"STATION=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
sql=QString("insert into RDPANEL set ")+
|
||||||
|
QString().sprintf("STATION_PANELS=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("USER_PANELS=%d,",q->value(1).toInt())+
|
||||||
|
"CLEAR_FILTER=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||||
|
"FLASH_PANEL=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
"STATION=\""+RDEscapeString(name)+"\","+
|
||||||
|
"DEFAULT_SERVICE=\""+RDEscapeString(q->value(4).toString())+"\","+
|
||||||
|
"BUTTON_LABEL_TEMPLATE=\""+RDEscapeString(q->value(5).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString("select ")+
|
||||||
|
"INSTANCE,"+
|
||||||
|
"CARD,"+
|
||||||
|
"PORT,"+
|
||||||
|
"START_RML,"+
|
||||||
|
"STOP_RML,"+
|
||||||
|
"START_GPI_MATRIX,"+
|
||||||
|
"START_GPI_LINE,"+
|
||||||
|
"START_GPO_MATRIX,"+
|
||||||
|
"START_GPO_LINE,"+
|
||||||
|
"STOP_GPI_MATRIX,"+
|
||||||
|
"STOP_GPI_LINE,"+
|
||||||
|
"STOP_GPO_MATRIX,"+
|
||||||
|
"STOP_GPO_LINE "+
|
||||||
|
"from RDPANEL_CHANNELS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into RDPANEL_CHANNELS set ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+
|
||||||
|
QString().sprintf("CARD=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("PORT=%d,",q->value(2).toInt())+
|
||||||
|
"START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
"STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+
|
||||||
|
QString().sprintf("START_GPI_MATRIX=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("START_GPI_LINE=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("START_GPO_MATRIX=%d,",q->value(7).toInt())+
|
||||||
|
QString().sprintf("START_GPO_LINE=%d,",q->value(8).toInt())+
|
||||||
|
QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(9).toInt())+
|
||||||
|
QString().sprintf("STOP_GPI_LINE=%d,",q->value(10).toInt())+
|
||||||
|
QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(11).toInt())+
|
||||||
|
QString().sprintf("STOP_GPO_LINE=%d",q->value(12).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Audio Port Settings
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"CARD_NUMBER," // 00
|
||||||
|
"CLOCK_SOURCE,"; // 01
|
||||||
|
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||||
|
sql+=QString().sprintf("INPUT_%d_LEVEL,",i)+
|
||||||
|
QString().sprintf("INPUT_%d_MODE,",i)+
|
||||||
|
QString().sprintf("INPUT_%d_TYPE,",i)+
|
||||||
|
QString().sprintf("OUTPUT_%d_LEVEL,",i);
|
||||||
|
}
|
||||||
|
sql=sql.left(sql.length()-1);
|
||||||
|
sql+=QString(" from AUDIO_PORTS where ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into AUDIO_PORTS set ")+
|
||||||
|
QString().sprintf("CARD_NUMBER=%u,",q->value(0).toUInt())+
|
||||||
|
QString().sprintf("CLOCK_SOURCE=%d,",q->value(1).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\",";
|
||||||
|
for(int i=0;i<RD_MAX_PORTS;i++) {
|
||||||
|
sql+=QString().sprintf("INPUT_%d_LEVEL=%d,INPUT_%d_MODE=%d,\
|
||||||
|
INPUT_%d_TYPE=%d,OUTPUT_%d_LEVEL=%d,",
|
||||||
|
i,q->value(2+3*i).toInt(),
|
||||||
|
i,q->value(3+3*i).toInt(),
|
||||||
|
i,q->value(4+3*i).toInt(),
|
||||||
|
i,q->value(5+3*i).toInt());
|
||||||
|
}
|
||||||
|
sql=sql.left(sql.length()-1);
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone the Serial Setups
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"PORT_ID,"+ // 00
|
||||||
|
"ACTIVE,"+ // 01
|
||||||
|
"PORT,"+ // 02
|
||||||
|
"BAUD_RATE,"+ // 03
|
||||||
|
"DATA_BITS,"+ // 04
|
||||||
|
"STOP_BITS,"+ // 05
|
||||||
|
"PARITY,"+ // 06
|
||||||
|
"TERMINATION "+ // 07
|
||||||
|
"from TTYS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into TTYS set ")+
|
||||||
|
QString().sprintf("PORT_ID=%u,",q->value(0).toUInt())+
|
||||||
|
"ACTIVE=\""+RDEscapeString(q->value(1).toString())+"\","+
|
||||||
|
"PORT=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||||
|
QString().sprintf("BAUD_RATE=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("DATA_BITS=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("STOP_BITS=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("PARITY=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("TERMINATION=%d,",q->value(7).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Matrices
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"NAME,"+ // 00
|
||||||
|
"MATRIX,"+ // 01
|
||||||
|
"TYPE,"+ // 02
|
||||||
|
"PORT_TYPE,"+ // 03
|
||||||
|
"CARD,PORT,"+ // 04
|
||||||
|
"IP_ADDRESS,"+ // 05
|
||||||
|
"IP_PORT,"+ // 06
|
||||||
|
"USERNAME,"+ // 07
|
||||||
|
"PASSWORD,"+ // 08
|
||||||
|
"GPIO_DEVICE,"+ // 09
|
||||||
|
"INPUTS,"+ // 10
|
||||||
|
"OUTPUTS,"+ // 11
|
||||||
|
"GPIS,"+ // 12
|
||||||
|
"GPOS,"+ // 13
|
||||||
|
"DISPLAYS,"+ // 14
|
||||||
|
"FADERS,"+ // 15
|
||||||
|
"PORT_TYPE_2,"+ // 16
|
||||||
|
"PORT_2,"+ // 17
|
||||||
|
"IP_ADDRESS_2,"+ // 18
|
||||||
|
"IP_PORT_2,"+ // 19
|
||||||
|
"USERNAME_2,"+ // 20
|
||||||
|
"PASSWORD_2 "+ // 21
|
||||||
|
"from MATRICES where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into MATRICES set ")+
|
||||||
|
"NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
QString().sprintf("MATRIX=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("TYPE=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("PORT_TYPE=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("CARD=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("PORT=%d,",q->value(5).toInt())+
|
||||||
|
"IP_ADDRESS=\""+RDEscapeString(q->value(6).toString())+"\","+
|
||||||
|
QString().sprintf("IP_PORT=%d,",q->value(7).toInt())+
|
||||||
|
"USERNAME=\""+RDEscapeString(q->value(8).toString())+"\","+
|
||||||
|
"PASSWORD=\""+RDEscapeString(q->value(9).toString())+"\","+
|
||||||
|
"GPIO_DEVICE=\""+RDEscapeString(q->value(10).toString())+"\","+
|
||||||
|
QString().sprintf("INPUTS=%d,",q->value(11).toInt())+
|
||||||
|
QString().sprintf("OUTPUTS=%d,",q->value(12).toInt())+
|
||||||
|
QString().sprintf("GPIS=%d,",q->value(13).toInt())+
|
||||||
|
QString().sprintf("GPOS=%d,",q->value(14).toInt())+
|
||||||
|
QString().sprintf("DISPLAYS=%d,",q->value(15).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
|
QString().sprintf("FADERS=%d,",q->value(16).toInt())+
|
||||||
|
QString().sprintf("PORT_TYPE_2=%d,",q->value(17).toInt())+
|
||||||
|
QString().sprintf("PORT_2=%d,",q->value(18).toInt())+
|
||||||
|
"IP_ADDRESS_2=\""+RDEscapeString(q->value(19).toString())+"\","+
|
||||||
|
QString().sprintf("IP_PORT_2=%d,",q->value(20).toInt())+
|
||||||
|
"USERNAME_2=\""+RDEscapeString(q->value(21).toString())+"\","+
|
||||||
|
"PASSWORD_2=\""+RDEscapeString(q->value(22).toString())+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Matrix Inputs
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MATRIX,"+ // 00
|
||||||
|
"NUMBER,"+ // 01
|
||||||
|
"NAME,"+ // 02
|
||||||
|
"FEED_NAME,"+ // 03
|
||||||
|
"CHANNEL_MODE,"+ // 04
|
||||||
|
"ENGINE_NUM,"+ // 05
|
||||||
|
"DEVICE_NUM "+ // 06
|
||||||
|
"from INPUTS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into INPUTS set ")+
|
||||||
|
QString().sprintf("MATRIX=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("NUMBER=%d,",q->value(1).toInt())+
|
||||||
|
"NAME=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||||
|
"FEED_NAME=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
QString().sprintf("CHANNEL_MODE=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("ENGINE_NUM=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("QDEVICE_NUM=%d,",q->value(6).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Matrix Outputs
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MATRIX,"+ // 00
|
||||||
|
"NUMBER,"+ // 01
|
||||||
|
"NAME,"+ // 02
|
||||||
|
"ENGINE_NUM,"+ // 03
|
||||||
|
"DEVICE_NUM "+ // 04
|
||||||
|
"from OUTPUTS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into OUTPUTS set ")+
|
||||||
|
QString().sprintf("MATRIX=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("NUMBER=%d,",q->value(1).toInt())+
|
||||||
|
"NAME=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||||
|
QString().sprintf("ENGINE_NUM=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("DEVICE_NUM=%d,",q->value(4).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone GPIs
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MATRIX,"+ // 00
|
||||||
|
"NUMBER,"+ // 01
|
||||||
|
"MACRO_CART "+ // 02
|
||||||
|
"from GPIS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into GPIS set ")+
|
||||||
|
QString().sprintf("MATRIX=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("NUMBER=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("MACRO_CART=%d,",q->value(2).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Close vGuest Settings
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MATRIX_NUM,"+
|
||||||
|
"VGUEST_TYPE,"+
|
||||||
|
"NUMBER,"+
|
||||||
|
"ENGINE_NUM,"+
|
||||||
|
"DEVICE_NUM,"+
|
||||||
|
"SURFACE_NUM,"+
|
||||||
|
"RELAY_NUM,"+
|
||||||
|
"BUSS_NUM "+
|
||||||
|
"from VGUEST_RESOURCES where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into VGUEST_RESOURCES set ")+
|
||||||
|
QString().sprintf("MATRIX_NUM=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("VGUEST_TYPE=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("NUMBER=%d,",q->value(2).toInt())+
|
||||||
|
QString().sprintf("ENGINE_NUM=%d,",q->value(3).toInt())+
|
||||||
|
QString().sprintf("DEVICE_NUM=%d,",q->value(4).toInt())+
|
||||||
|
QString().sprintf("SURFACE_NUM=%d,",q->value(5).toInt())+
|
||||||
|
QString().sprintf("RELAY_NUM=%d,",q->value(6).toInt())+
|
||||||
|
QString().sprintf("BUSS_NUM=%d,",q->value(7).toInt())+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Host Variables
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"NAME,"+
|
||||||
|
"VARVALUE,"+
|
||||||
|
"REMARK "+
|
||||||
|
"from HOSTVARS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into HOSTVARS set ")+
|
||||||
|
"NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
"VARVALUE=\""+RDEscapeString(q->value(1).toString())+"\","+
|
||||||
|
"REMARK=\""+RDEscapeString(q->value(2).toString())+"\","+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone System Panels
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"PANEL_NO,"+
|
||||||
|
"ROW_NO,"+
|
||||||
|
"COLUMN_NO,"+
|
||||||
|
"LABEL,"+
|
||||||
|
"CART,"+
|
||||||
|
"DEFAULT_COLOR "+
|
||||||
|
"from PANELS where "+
|
||||||
|
QString().sprintf("(TYPE=%d)&&",RDAirPlayConf::StationPanel)+
|
||||||
|
"(OWNER=\""+RDEscapeString(exemplar)+"\")";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into PANELS set ")+
|
||||||
|
QString().sprintf("PANEL_NO=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("ROW_NO=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("COLUMN_NO=%d,",q->value(2).toInt())+
|
||||||
|
"LABEL=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
QString().sprintf("CART=%u,",q->value(4).toUInt())+
|
||||||
|
"DEFAULT_COLOR=\""+RDEscapeString(q->value(5).toString())+"\","+
|
||||||
|
QString().sprintf("TYPE=%d,",RDAirPlayConf::StationPanel)+
|
||||||
|
"OWNER=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString("select ")+
|
||||||
|
"PANEL_NO,"+ // 00
|
||||||
|
"ROW_NO,"+ // 01
|
||||||
|
"COLUMN_NO,"+ // 02
|
||||||
|
"LABEL,"+ // 03
|
||||||
|
"CART,"+ // 04
|
||||||
|
"DEFAULT_COLOR "+ // 05
|
||||||
|
"from EXTENDED_PANELS where "+
|
||||||
|
QString().sprintf("(TYPE=%d)&&",RDAirPlayConf::StationPanel)+
|
||||||
|
"(OWNER=\""+RDEscapeString(exemplar)+"\")";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into EXTENDED_PANELS set ")+
|
||||||
|
QString().sprintf("PANEL_NO=%d,",q->value(0).toInt())+
|
||||||
|
QString().sprintf("ROW_NO=%d,",q->value(1).toInt())+
|
||||||
|
QString().sprintf("COLUMN_NO=%d,",q->value(2).toInt())+
|
||||||
|
"LABEL=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
QString().sprintf("CART=%u,",q->value(4).toUInt())+
|
||||||
|
"DEFAULT_COLOR=\""+RDEscapeString(q->value(5).toString())+"\","+
|
||||||
|
QString().sprintf("TYPE=%d,",RDAirPlayConf::StationPanel)+
|
||||||
|
"OWNER=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clone Hotkeys
|
||||||
|
//
|
||||||
|
sql=QString("select ")+
|
||||||
|
"MODULE_NAME,"+ // 00
|
||||||
|
"KEY_ID,"+ // 01
|
||||||
|
"KEY_VALUE,"+ // 02
|
||||||
|
"KEY_LABEL "+ // 03
|
||||||
|
"from RDHOTKEYS where "+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(exemplar)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString("insert into RDHOTKEYS set ")+
|
||||||
|
"MODULE_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||||
|
QString().sprintf("KEY_ID=%d,",q->value(1).toInt())+
|
||||||
|
"KEY_VALUE=\""+RDEscapeString(q->value(2).toString())+"\","+ \
|
||||||
|
"KEY_LABEL=\""+RDEscapeString(q->value(3).toString())+"\","+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RDStation::remove(const QString &name)
|
||||||
|
{
|
||||||
|
QString sql;
|
||||||
|
RDSqlQuery *q;
|
||||||
|
RDSqlQuery *q1;
|
||||||
|
|
||||||
|
sql=QString().sprintf("delete from DECKS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString("delete from DECK_EVENTS where ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from TTYS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from AUDIO_PORTS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RECORDINGS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=
|
||||||
|
QString().sprintf("delete from SERVICE_PERMS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDAIRPLAY where STATION=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDAIRPLAY_CHANNELS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDPANEL where STATION=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDPANEL_CHANNELS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDLOGEDIT where STATION=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from MATRICES where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from INPUTS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from OUTPUTS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from VGUEST_RESOURCES where\
|
||||||
|
STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDLIBRARY where STATION=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from GPIS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from HOSTVARS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from STATIONS where NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=
|
||||||
|
QString().sprintf("delete from REPORT_STATIONS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from PANELS where (TYPE=%d && OWNER=\"%s\")",
|
||||||
|
RDAirPlayConf::StationPanel,
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().
|
||||||
|
sprintf("delete from EXTENDED_PANELS where (TYPE=%d && OWNER=\"%s\")",
|
||||||
|
RDAirPlayConf::StationPanel,(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString().sprintf("select ID from ENCODERS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
while(q->next()) {
|
||||||
|
sql=QString().sprintf("delete from ENCODER_CHANNELS where ENCODER_ID=%d",
|
||||||
|
q->value(0).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
sql=QString().sprintf("delete from ENCODER_SAMPLERATES where ENCODER_ID=%d",
|
||||||
|
q->value(0).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
sql=QString().sprintf("delete from ENCODER_BITRATES where ENCODER_ID=%d",
|
||||||
|
q->value(0).toInt());
|
||||||
|
q1=new RDSqlQuery(sql);
|
||||||
|
delete q1;
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from ENCODERS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
sql=QString().sprintf("delete from RDHOTKEYS where STATION_NAME=\"%s\"",
|
||||||
|
(const char *)RDEscapeString(name));
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
|
||||||
|
sql=QString("delete from LOG_MODES where ")+
|
||||||
|
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
delete q;
|
||||||
|
}
|
||||||
|
|
||||||
void RDStation::SetRow(const QString ¶m,const QString &value) const
|
void RDStation::SetRow(const QString ¶m,const QString &value) const
|
||||||
{
|
{
|
||||||
RDSqlQuery *q;
|
RDSqlQuery *q;
|
||||||
|
@ -131,6 +131,9 @@ class RDStation
|
|||||||
void setCardInputs(int cardnum,int inputs) const;
|
void setCardInputs(int cardnum,int inputs) const;
|
||||||
int cardOutputs(int cardnum) const;
|
int cardOutputs(int cardnum) const;
|
||||||
void setCardOutputs(int cardnum,int outputs) const;
|
void setCardOutputs(int cardnum,int outputs) const;
|
||||||
|
static bool create(const QString &name,QString *err_msg,
|
||||||
|
const QString &exemplar="");
|
||||||
|
static void remove(const QString &name);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SetRow(const QString ¶m,const QString &value) const;
|
void SetRow(const QString ¶m,const QString &value) const;
|
||||||
|
129
lib/rdsvc.cpp
129
lib/rdsvc.cpp
@ -1036,16 +1036,61 @@ void RDSvc::clearLogLinks(RDSvc::ImportSource src,const QDate &date,
|
|||||||
|
|
||||||
|
|
||||||
void RDSvc::create(const QString exemplar) const
|
void RDSvc::create(const QString exemplar) const
|
||||||
|
{
|
||||||
|
QString err_msg;
|
||||||
|
RDSvc::create(svc_name,&err_msg,exemplar);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void RDSvc::remove() const
|
||||||
|
{
|
||||||
|
RDSvc::remove(svc_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString RDSvc::xml() const
|
||||||
|
{
|
||||||
|
QString sql;
|
||||||
|
RDSqlQuery *q;
|
||||||
|
QString ret;
|
||||||
|
#ifndef WIN32
|
||||||
|
sql="select DESCRIPTION from SERVICES where NAME=\""+
|
||||||
|
RDEscapeString(svc_name)+"\"";
|
||||||
|
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
ret+=" <service>\n";
|
||||||
|
ret+=" "+RDXmlField("name",svc_name);
|
||||||
|
ret+=" "+RDXmlField("description",q->value(0).toString());
|
||||||
|
ret+=" </service>\n";
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
#endif // WIN32
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool RDSvc::create(const QString &name,QString *err_msg,
|
||||||
|
const QString &exemplar)
|
||||||
{
|
{
|
||||||
QString sql;
|
QString sql;
|
||||||
RDSqlQuery *q;
|
RDSqlQuery *q;
|
||||||
RDSqlQuery *q1;
|
RDSqlQuery *q1;
|
||||||
|
|
||||||
|
sql=QString("select NAME from SERVICES where ")+
|
||||||
|
"NAME=\""+RDEscapeString(name)+"\"";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
if(q->first()) {
|
||||||
|
*err_msg=QObject::tr("service already exists");
|
||||||
|
delete q;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(exemplar.isEmpty()) { // Create Empty Service
|
if(exemplar.isEmpty()) { // Create Empty Service
|
||||||
sql=QString("insert into SERVICES set NAME=\"")+
|
sql=QString("insert into SERVICES set NAME=\"")+
|
||||||
RDEscapeString(svc_name)+"\","+
|
RDEscapeString(name)+"\","+
|
||||||
"NAME_TEMPLATE=\""+RDEscapeString(svc_name)+"-%m%d\","+
|
"NAME_TEMPLATE=\""+RDEscapeString(name)+"-%m%d\","+
|
||||||
"DESCRIPTION_TEMPLATE=\""+RDEscapeString(svc_name)+" log for %d/%m/%Y\"";
|
"DESCRIPTION_TEMPLATE=\""+RDEscapeString(name)+" log for %d/%m/%Y\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
@ -1059,7 +1104,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1075,7 +1120,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1083,7 +1128,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
|
|
||||||
for(int i=0;i<168;i++) {
|
for(int i=0;i<168;i++) {
|
||||||
sql=QString("insert into SERVICE_CLOCKS set ")+
|
sql=QString("insert into SERVICE_CLOCKS set ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\","+
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
QString().sprintf("HOUR=%d,",i)+
|
QString().sprintf("HOUR=%d,",i)+
|
||||||
"CLOCK_NAME=null";
|
"CLOCK_NAME=null";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
@ -1186,7 +1231,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(42).toInt())+
|
QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(42).toInt())+
|
||||||
QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(43).toInt())+
|
QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(43).toInt())+
|
||||||
QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(44).toInt())+
|
QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(44).toInt())+
|
||||||
"NAME=\""+RDEscapeString(svc_name)+"\"";
|
"NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
sql=QString("select HOUR,CLOCK_NAME from SERVICE_CLOCKS where ")+
|
sql=QString("select HOUR,CLOCK_NAME from SERVICE_CLOCKS where ")+
|
||||||
@ -1194,7 +1239,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
while(q->next()) {
|
while(q->next()) {
|
||||||
sql=QString("insert into SERVICE_CLOCKS set ")+
|
sql=QString("insert into SERVICE_CLOCKS set ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\","+
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\","+
|
||||||
QString().sprintf("HOUR=%d,",q->value(0).toInt());
|
QString().sprintf("HOUR=%d,",q->value(0).toInt());
|
||||||
|
|
||||||
if(q->value(1).isNull()) {
|
if(q->value(1).isNull()) {
|
||||||
@ -1208,6 +1253,12 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
}
|
}
|
||||||
delete q;
|
delete q;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
*err_msg=QObject::tr("template service")+" \""+exemplar+"\" "+
|
||||||
|
QObject::tr("does not exist");
|
||||||
|
delete q;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Clone Audio Perms
|
// Clone Audio Perms
|
||||||
@ -1221,7 +1272,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1239,7 +1290,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1256,7 +1307,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
sql=QString().sprintf("insert into AUTOFILLS set\
|
sql=QString().sprintf("insert into AUTOFILLS set\
|
||||||
CART_NUMBER=%u,SERVICE=\"%s\"",
|
CART_NUMBER=%u,SERVICE=\"%s\"",
|
||||||
q->value(0).toUInt(),
|
q->value(0).toUInt(),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1274,7 +1325,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
CLOCK_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
CLOCK_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1292,7 +1343,7 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
EVENT_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
EVENT_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
||||||
(const char *)
|
(const char *)
|
||||||
RDEscapeString(q->value(0).toString()),
|
RDEscapeString(q->value(0).toString()),
|
||||||
(const char *)RDEscapeString(svc_name));
|
(const char *)RDEscapeString(name));
|
||||||
q1=new RDSqlQuery(sql);
|
q1=new RDSqlQuery(sql);
|
||||||
delete q1;
|
delete q1;
|
||||||
}
|
}
|
||||||
@ -1302,13 +1353,15 @@ void RDSvc::create(const QString exemplar) const
|
|||||||
//
|
//
|
||||||
// Create Service Reconciliation Table
|
// Create Service Reconciliation Table
|
||||||
//
|
//
|
||||||
sql=RDCreateReconciliationTableSql(RDSvc::svcTableName(svc_name));
|
sql=RDCreateReconciliationTableSql(RDSvc::svcTableName(name));
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RDSvc::remove() const
|
void RDSvc::remove(const QString &name)
|
||||||
{
|
{
|
||||||
QString sql;
|
QString sql;
|
||||||
RDSqlQuery *q;
|
RDSqlQuery *q;
|
||||||
@ -1316,53 +1369,53 @@ void RDSvc::remove() const
|
|||||||
QString logname;
|
QString logname;
|
||||||
|
|
||||||
sql=QString("delete from AUDIO_PERMS where ")+
|
sql=QString("delete from AUDIO_PERMS where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from SERVICE_PERMS where ")+
|
sql=QString("delete from SERVICE_PERMS where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("update RDAIRPLAY set ")+
|
sql=QString("update RDAIRPLAY set ")+
|
||||||
"DEFAULT_SERVICE=\"\" where "+
|
"DEFAULT_SERVICE=\"\" where "+
|
||||||
"DEFAULT_SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
"DEFAULT_SERVICE=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from EVENT_PERMS where ")+
|
sql=QString("delete from EVENT_PERMS where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from CLOCK_PERMS where ")+
|
sql=QString("delete from CLOCK_PERMS where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from AUTOFILLS where ")+
|
sql=QString("delete from AUTOFILLS where ")+
|
||||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from REPORT_SERVICES where ")+
|
sql=QString("delete from REPORT_SERVICES where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from SERVICES where ")+
|
sql=QString("delete from SERVICES where ")+
|
||||||
"NAME=\""+RDEscapeString(svc_name)+"\"";
|
"NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from SERVICE_CLOCKS where ")+
|
sql=QString("delete from SERVICE_CLOCKS where ")+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("select NAME from LOGS where ")+
|
sql=QString("select NAME from LOGS where ")+
|
||||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
while(q->next()) {
|
while(q->next()) {
|
||||||
logname=q->value(0).toString();
|
logname=q->value(0).toString();
|
||||||
@ -1376,7 +1429,7 @@ void RDSvc::remove() const
|
|||||||
}
|
}
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
QString tablename=svc_name;
|
QString tablename=name;
|
||||||
tablename.replace(" ","_");
|
tablename.replace(" ","_");
|
||||||
sql=QString().sprintf("drop table `%s_SRT`",(const char *)tablename);
|
sql=QString().sprintf("drop table `%s_SRT`",(const char *)tablename);
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
@ -1387,34 +1440,12 @@ void RDSvc::remove() const
|
|||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
sql=QString("delete from LOGS where ")+
|
sql=QString("delete from LOGS where ")+
|
||||||
"SERVICE=\""+RDEscapeString(svc_name)+"\"";
|
"SERVICE=\""+RDEscapeString(name)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString RDSvc::xml() const
|
|
||||||
{
|
|
||||||
QString sql;
|
|
||||||
RDSqlQuery *q;
|
|
||||||
QString ret;
|
|
||||||
#ifndef WIN32
|
|
||||||
sql="select DESCRIPTION from SERVICES where NAME=\""+
|
|
||||||
RDEscapeString(svc_name)+"\"";
|
|
||||||
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
ret+=" <service>\n";
|
|
||||||
ret+=" "+RDXmlField("name",svc_name);
|
|
||||||
ret+=" "+RDXmlField("description",q->value(0).toString());
|
|
||||||
ret+=" </service>\n";
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
#endif // WIN32
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString RDSvc::svcTableName(const QString &svc_name)
|
QString RDSvc::svcTableName(const QString &svc_name)
|
||||||
{
|
{
|
||||||
QString ret=svc_name;
|
QString ret=svc_name;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Abstract a Rivendell Service
|
// Abstract a Rivendell Service
|
||||||
//
|
//
|
||||||
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com>
|
// (C) Copyright 2002-2004,2016-2017 Fred Gleason <fredg@paravelsystems.com>
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify
|
// This program is free software; you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License version 2 as
|
// it under the terms of the GNU General Public License version 2 as
|
||||||
@ -90,6 +90,9 @@ class RDSvc : public QObject
|
|||||||
void create(const QString exemplar) const;
|
void create(const QString exemplar) const;
|
||||||
void remove() const;
|
void remove() const;
|
||||||
QString xml() const;
|
QString xml() const;
|
||||||
|
static bool create(const QString &name,QString *err_msg,
|
||||||
|
const QString &exemplar);
|
||||||
|
static void remove(const QString &name);
|
||||||
static QString timeString(int hour,int secs);
|
static QString timeString(int hour,int secs);
|
||||||
static QString svcTableName(const QString &svc_name);
|
static QString svcTableName(const QString &svc_name);
|
||||||
|
|
||||||
|
@ -141,9 +141,8 @@ QSizePolicy AddStation::sizePolicy() const
|
|||||||
|
|
||||||
void AddStation::okData()
|
void AddStation::okData()
|
||||||
{
|
{
|
||||||
RDSqlQuery *q;
|
QString err_msg;
|
||||||
RDSqlQuery *q1;
|
bool ok=false;
|
||||||
QString sql;
|
|
||||||
|
|
||||||
if(add_name_edit->text().isEmpty()) {
|
if(add_name_edit->text().isEmpty()) {
|
||||||
QMessageBox::warning(this,tr("Invalid Name"),
|
QMessageBox::warning(this,tr("Invalid Name"),
|
||||||
@ -152,820 +151,17 @@ void AddStation::okData()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(add_exemplar_box->currentItem()==0) { // Create Blank Host Config
|
if(add_exemplar_box->currentItem()==0) { // Create Blank Host Config
|
||||||
sql=QString().sprintf("insert into STATIONS set NAME=\"%s\",\
|
ok=RDStation::create(add_name_edit->text(),&err_msg);
|
||||||
DESCRIPTION=\"Workstation %s\",USER_NAME=\"user\",\
|
}
|
||||||
DEFAULT_NAME=\"user\"",
|
else {
|
||||||
(const char *)add_name_edit->text(),
|
ok=RDStation::create(add_name_edit->text(),&err_msg,add_exemplar_box->currentText());
|
||||||
(const char *)add_name_edit->text());
|
}
|
||||||
q=new RDSqlQuery(sql);
|
if(!ok) {
|
||||||
if(!q->isActive()) {
|
QMessageBox::warning(this,"RDAdmin - "+tr("Error"),
|
||||||
QMessageBox::warning(this,tr("Host Exists"),tr("Host Already Exists!"),
|
tr("Unable to create host!")+"\n"+err_msg);
|
||||||
1,0,0);
|
|
||||||
delete q;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Create Service Perms
|
|
||||||
//
|
|
||||||
sql="select NAME from SERVICES";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into SERVICE_PERMS set\
|
|
||||||
SERVICE_NAME=\"%s\",STATION_NAME=\"%s\"",
|
|
||||||
(const char *)q->value(0).toString(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// RDAirPlay/RDPanel Channel Data
|
|
||||||
//
|
|
||||||
for(unsigned i=0;i<10;i++) {
|
|
||||||
sql=QString("insert into RDAIRPLAY_CHANNELS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("INSTANCE=%u",i);
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString("insert into RDPANEL_CHANNELS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("INSTANCE=%u",i);
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
for(unsigned i=0;i<RD_CUT_EVENT_ID_QUAN;i++) {
|
|
||||||
for(unsigned j=0;j<MAX_DECKS;j++) {
|
|
||||||
sql=QString("insert into DECK_EVENTS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("CHANNEL=%u,",j+129)+
|
|
||||||
QString().sprintf("NUMBER=%u",i+1);
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// RDAirPlay Log Modes
|
|
||||||
//
|
|
||||||
for(int i=0;i<RDAIRPLAY_LOG_QUANTITY;i++) {
|
|
||||||
sql=QString().sprintf("insert into LOG_MODES set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("MACHINE=%d",i);
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else { // Use Specified Config
|
|
||||||
|
|
||||||
sql=QString().sprintf("select DEFAULT_NAME,STARTUP_CART,TIME_OFFSET,\
|
|
||||||
BROADCAST_SECURITY,HEARTBEAT_CART,\
|
|
||||||
HEARTBEAT_INTERVAL,EDITOR_PATH,FILTER_MODE,\
|
|
||||||
SYSTEM_MAINT,HTTP_STATION,CAE_STATION from STATIONS\
|
|
||||||
where NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into STATIONS set NAME=\"%s\",\
|
|
||||||
DESCRIPTION=\"Workstation %s\",\
|
|
||||||
USER_NAME=\"%s\",\
|
|
||||||
DEFAULT_NAME=\"%s\",\
|
|
||||||
STARTUP_CART=%u,\
|
|
||||||
TIME_OFFSET=%d,\
|
|
||||||
BROADCAST_SECURITY=%u,\
|
|
||||||
HEARTBEAT_CART=%u,\
|
|
||||||
HEARTBEAT_INTERVAL=%u,\
|
|
||||||
EDITOR_PATH=\"%s\",\
|
|
||||||
FILTER_MODE=%d,\
|
|
||||||
SYSTEM_MAINT=\"%s\",\
|
|
||||||
HTTP_STATION=\"%s\",\
|
|
||||||
CAE_STATION=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(add_name_edit->text()),
|
|
||||||
(const char *)RDEscapeString(add_name_edit->text()),
|
|
||||||
(const char *)RDEscapeString(q->value(0).
|
|
||||||
toString()),
|
|
||||||
(const char *)RDEscapeString(q->value(0).
|
|
||||||
toString()),
|
|
||||||
q->value(1).toUInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toUInt(),
|
|
||||||
q->value(4).toUInt(),
|
|
||||||
q->value(5).toUInt(),
|
|
||||||
(const char *)RDEscapeString(q->value(6).
|
|
||||||
toString()),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
(const char *)q->value(8).toString(),
|
|
||||||
(const char *)RDEscapeString(q->value(9).
|
|
||||||
toString()),
|
|
||||||
(const char *)RDEscapeString(q->value(10).
|
|
||||||
toString()));
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
if(!q1->isActive()) {
|
|
||||||
QMessageBox::warning(this,tr("Host Exists"),tr("Host Already Exists!"),
|
|
||||||
1,0,0);
|
|
||||||
delete q1;
|
|
||||||
delete q;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Service Perms
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select SERVICE_NAME from SERVICE_PERMS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into SERVICE_PERMS set\
|
|
||||||
STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"",
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
(const char *)q->value(0).toString());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone RDLibrary Config
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select INPUT_CARD,INPUT_PORT,INPUT_TYPE,\
|
|
||||||
OUTPUT_CARD,OUTPUT_PORT,VOX_THRESHOLD,\
|
|
||||||
TRIM_THRESHOLD,DEFAULT_FORMAT,DEFAULT_CHANNELS,\
|
|
||||||
DEFAULT_SAMPRATE,DEFAULT_LAYER,DEFAULT_BITRATE,\
|
|
||||||
DEFAULT_RECORD_MODE,DEFAULT_TRIM_STATE,MAXLENGTH,\
|
|
||||||
TAIL_PREROLL,RIPPER_DEVICE,PARANOIA_LEVEL,\
|
|
||||||
RIPPER_LEVEL,CDDB_SERVER from RDLIBRARY\
|
|
||||||
where (STATION=\"%s\")&&(INSTANCE=0)",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into RDLIBRARY set\
|
|
||||||
INPUT_CARD=%d,INPUT_PORT=%d,INPUT_TYPE=%d,\
|
|
||||||
OUTPUT_CARD=%d,OUTPUT_PORT=%d,VOX_THRESHOLD=%d,\
|
|
||||||
TRIM_THRESHOLD=%d,DEFAULT_FORMAT=%u,\
|
|
||||||
DEFAULT_CHANNELS=%u,DEFAULT_SAMPRATE=%u,\
|
|
||||||
DEFAULT_LAYER=%u,DEFAULT_BITRATE=%u,\
|
|
||||||
DEFAULT_RECORD_MODE=%u,DEFAULT_TRIM_STATE=\"%s\",\
|
|
||||||
MAXLENGTH=%d,TAIL_PREROLL=%u,\
|
|
||||||
RIPPER_DEVICE=\"%s\",PARANOIA_LEVEL=%d,\
|
|
||||||
RIPPER_LEVEL=%d,CDDB_SERVER=\"%s\",\
|
|
||||||
STATION=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
q->value(6).toInt(),
|
|
||||||
q->value(7).toUInt(),
|
|
||||||
q->value(8).toUInt(),
|
|
||||||
q->value(9).toUInt(),
|
|
||||||
q->value(10).toUInt(),
|
|
||||||
q->value(11).toUInt(),
|
|
||||||
q->value(12).toUInt(),
|
|
||||||
(const char *)q->value(13).toString(),
|
|
||||||
q->value(14).toInt(),
|
|
||||||
q->value(15).toUInt(),
|
|
||||||
(const char *)q->value(16).toString(),
|
|
||||||
q->value(17).toInt(),
|
|
||||||
q->value(18).toInt(),
|
|
||||||
(const char *)q->value(19).toString(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone RDLogEdit Config
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select INPUT_CARD,INPUT_PORT,\
|
|
||||||
OUTPUT_CARD,OUTPUT_PORT,\
|
|
||||||
FORMAT,DEFAULT_CHANNELS,\
|
|
||||||
SAMPRATE,LAYER,BITRATE,MAXLENGTH,\
|
|
||||||
TAIL_PREROLL,START_CART,END_CART,\
|
|
||||||
REC_START_CART,REC_END_CART,TRIM_THRESHOLD,\
|
|
||||||
RIPPER_LEVEL,DEFAULT_TRANS_TYPE from RDLOGEDIT\
|
|
||||||
where (STATION=\"%s\")",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into RDLOGEDIT set\
|
|
||||||
INPUT_CARD=%d,INPUT_PORT=%d,\
|
|
||||||
OUTPUT_CARD=%d,OUTPUT_PORT=%d,\
|
|
||||||
FORMAT=%u,\
|
|
||||||
DEFAULT_CHANNELS=%u,SAMPRATE=%u,\
|
|
||||||
LAYER=%u,BITRATE=%u,\
|
|
||||||
MAXLENGTH=%d,TAIL_PREROLL=%u,\
|
|
||||||
STATION=\"%s\",\
|
|
||||||
START_CART=%u,\
|
|
||||||
END_CART=%d,\
|
|
||||||
REC_START_CART=%u,\
|
|
||||||
REC_END_CART=%u,\
|
|
||||||
TRIM_THRESHOLD=%d,\
|
|
||||||
RIPPER_LEVEL=%d,\
|
|
||||||
DEFAULT_TRANS_TYPE=%d",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toUInt(),
|
|
||||||
q->value(5).toUInt(),
|
|
||||||
q->value(6).toUInt(),
|
|
||||||
q->value(7).toUInt(),
|
|
||||||
q->value(8).toUInt(),
|
|
||||||
q->value(9).toInt(),
|
|
||||||
q->value(10).toUInt(),
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
q->value(11).toUInt(),
|
|
||||||
q->value(12).toUInt(),
|
|
||||||
q->value(13).toUInt(),
|
|
||||||
q->value(14).toUInt(),
|
|
||||||
q->value(15).toInt(),
|
|
||||||
q->value(16).toInt(),
|
|
||||||
q->value(17).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone RDCatch Config
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select CHANNEL,CARD_NUMBER,PORT_NUMBER,\
|
|
||||||
MON_PORT_NUMBER,PORT_TYPE,DEFAULT_FORMAT,\
|
|
||||||
DEFAULT_CHANNELS,DEFAULT_SAMPRATE,DEFAULT_BITRATE,\
|
|
||||||
DEFAULT_THRESHOLD,DEFAULT_MONITOR_ON from DECKS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into DECKS set\
|
|
||||||
CHANNEL=%u,CARD_NUMBER=%d,PORT_NUMBER=%d,\
|
|
||||||
MON_PORT_NUMBER=%d,PORT_TYPE=\"%s\",\
|
|
||||||
DEFAULT_FORMAT=%d,DEFAULT_CHANNELS=%d,\
|
|
||||||
DEFAULT_SAMPRATE=%d,DEFAULT_BITRATE=%d,\
|
|
||||||
DEFAULT_THRESHOLD=%d,STATION_NAME=\"%s\",\
|
|
||||||
DEFAULT_MONITOR_ON=\"%s\"",
|
|
||||||
q->value(0).toUInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
(const char *)q->value(4).toString(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
q->value(6).toInt(),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
q->value(8).toInt(),
|
|
||||||
q->value(9).toInt(),
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
(const char *)q->value(10).toString());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Deck Events
|
|
||||||
//
|
|
||||||
sql=QString("select CHANNEL,NUMBER,CART_NUMBER from DECK_EVENTS ")+
|
|
||||||
"where STATION_NAME=\""+RDEscapeString(add_exemplar_box->currentText())+
|
|
||||||
"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString("insert into DECK_EVENTS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("CHANNEL=%u,",q->value(0).toUInt())+
|
|
||||||
QString().sprintf("NUMBER=%d,",q->value(1).toInt())+
|
|
||||||
QString().sprintf("CART_NUMBER=%u",q->value(2).toUInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone RDAirPlay Config
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select SEGUE_LENGTH,\
|
|
||||||
TRANS_LENGTH,OP_MODE,START_MODE,PIE_COUNT_LENGTH,\
|
|
||||||
PIE_COUNT_ENDPOINT,CHECK_TIMESYNC,STATION_PANELS,\
|
|
||||||
USER_PANELS,SHOW_AUX_1,SHOW_AUX_2,CLEAR_FILTER,\
|
|
||||||
DEFAULT_TRANS_TYPE,BAR_ACTION,FLASH_PANEL,\
|
|
||||||
PAUSE_ENABLED,UDP_ADDR0,UDP_PORT0,UDP_STRING0,\
|
|
||||||
UDP_ADDR1,UDP_PORT1,UDP_STRING1,UDP_ADDR2,\
|
|
||||||
UDP_PORT2,UDP_STRING2,DEFAULT_SERVICE,\
|
|
||||||
LOG_RML0,LOG_RML1,LOG_RML2,\
|
|
||||||
BUTTON_LABEL_TEMPLATE,EXIT_PASSWORD from RDAIRPLAY \
|
|
||||||
where (STATION=\"%s\")",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into RDAIRPLAY set\
|
|
||||||
SEGUE_LENGTH=%d,TRANS_LENGTH=%d,OP_MODE=%d,\
|
|
||||||
START_MODE=%d,PIE_COUNT_LENGTH=%d,\
|
|
||||||
PIE_COUNT_ENDPOINT=%d,CHECK_TIMESYNC=\"%s\",\
|
|
||||||
STATION_PANELS=%d,USER_PANELS=%d,\
|
|
||||||
SHOW_AUX_1=\"%s\",SHOW_AUX_2=\"%s\",\
|
|
||||||
CLEAR_FILTER=\"%s\",DEFAULT_TRANS_TYPE=%u,\
|
|
||||||
BAR_ACTION=%u,FLASH_PANEL=\"%s\",\
|
|
||||||
PAUSE_ENABLED=\"%s\",\
|
|
||||||
UDP_ADDR0=\"%s\",UDP_PORT0=%u,UDP_STRING0=\"%s\",\
|
|
||||||
UDP_ADDR1=\"%s\",UDP_PORT1=%u,UDP_STRING1=\"%s\",\
|
|
||||||
UDP_ADDR2=\"%s\",UDP_PORT2=%u,UDP_STRING2=\"%s\",\
|
|
||||||
STATION=\"%s\",DEFAULT_SERVICE=\"%s\",\
|
|
||||||
LOG_RML0=\"%s\",\
|
|
||||||
LOG_RML1=\"%s\",\
|
|
||||||
LOG_RML2=\"%s\",\
|
|
||||||
BUTTON_LABEL_TEMPLATE=\"%s\",\
|
|
||||||
EXIT_PASSWORD=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
(const char *)q->value(6).toString(),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
q->value(8).toInt(),
|
|
||||||
(const char *)q->value(9).toString(),
|
|
||||||
(const char *)q->value(10).toString(),
|
|
||||||
(const char *)q->value(11).toString(),
|
|
||||||
q->value(12).toUInt(),
|
|
||||||
q->value(13).toUInt(),
|
|
||||||
(const char *)q->value(14).toString(),
|
|
||||||
(const char *)q->value(15).toString(),
|
|
||||||
(const char *)q->value(16).toString(),
|
|
||||||
q->value(17).toUInt(),
|
|
||||||
(const char *)q->value(18).toString(),
|
|
||||||
(const char *)q->value(19).toString(),
|
|
||||||
q->value(20).toUInt(),
|
|
||||||
(const char *)q->value(21).toString(),
|
|
||||||
(const char *)q->value(22).toString(),
|
|
||||||
q->value(23).toUInt(),
|
|
||||||
(const char *)q->value(24).toString(),
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
(const char *)q->value(25).toString(),
|
|
||||||
(const char *)q->value(26).toString(),
|
|
||||||
(const char *)q->value(27).toString(),
|
|
||||||
(const char *)q->value(28).toString(),
|
|
||||||
(const char *)q->value(29).toString(),
|
|
||||||
(const char *)q->value(30).toString());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString("select INSTANCE,CARD,PORT,START_RML,STOP_RML,")+
|
|
||||||
"START_GPI_MATRIX,"+
|
|
||||||
"START_GPI_LINE,START_GPO_MATRIX,START_GPO_LINE,STOP_GPI_MATRIX,"+
|
|
||||||
"STOP_GPI_LINE,STOP_GPO_MATRIX,STOP_GPO_LINE from RDAIRPLAY_CHANNELS "+
|
|
||||||
"where STATION_NAME=\""+RDEscapeString(add_exemplar_box->currentText())+
|
|
||||||
"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString("insert into RDAIRPLAY_CHANNELS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+
|
|
||||||
QString().sprintf("CARD=%d,",q->value(1).toInt())+
|
|
||||||
QString().sprintf("PORT=%d,",q->value(2).toInt())+
|
|
||||||
"START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+
|
|
||||||
"STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+
|
|
||||||
QString().sprintf("START_GPI_MATRIX=%d,",q->value(5).toInt())+
|
|
||||||
QString().sprintf("START_GPI_LINE=%d,",q->value(6).toInt())+
|
|
||||||
QString().sprintf("START_GPO_MATRIX=%d,",q->value(7).toInt())+
|
|
||||||
QString().sprintf("START_GPO_LINE=%d,",q->value(8).toInt())+
|
|
||||||
QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(9).toInt())+
|
|
||||||
QString().sprintf("STOP_GPI_LINE=%d,",q->value(10).toInt())+
|
|
||||||
QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(11).toInt())+
|
|
||||||
QString().sprintf("STOP_GPO_LINE=%d",q->value(12).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// RDAirPlay Log Modes
|
|
||||||
//
|
|
||||||
sql=QString("select ")+
|
|
||||||
"MACHINE,"+
|
|
||||||
"START_MODE,"+
|
|
||||||
"OP_MODE from LOG_MODES where "+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_exemplar_box->currentText())+"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into LOG_MODES set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("MACHINE=%d,",q->value(0).toInt())+
|
|
||||||
QString().sprintf("START_MODE=%d,",q->value(1).toInt())+
|
|
||||||
QString().sprintf("OP_MODE=%d",q->value(2).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone RDPanel Config
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select STATION_PANELS,\
|
|
||||||
USER_PANELS,CLEAR_FILTER,\
|
|
||||||
FLASH_PANEL,\
|
|
||||||
DEFAULT_SERVICE,\
|
|
||||||
BUTTON_LABEL_TEMPLATE from RDPANEL \
|
|
||||||
where (STATION=\"%s\")",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->first()) {
|
|
||||||
sql=QString().sprintf("insert into RDPANEL set\
|
|
||||||
STATION_PANELS=%d,\
|
|
||||||
USER_PANELS=%d,\
|
|
||||||
CLEAR_FILTER=\"%s\",\
|
|
||||||
FLASH_PANEL=\"%s\",\
|
|
||||||
STATION=\"%s\",\
|
|
||||||
DEFAULT_SERVICE=\"%s\",\
|
|
||||||
BUTTON_LABEL_TEMPLATE=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
(const char *)q->value(2).toString(),
|
|
||||||
(const char *)q->value(3).toString(),
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
(const char *)q->value(4).toString(),
|
|
||||||
(const char *)q->value(5).toString());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString("select INSTANCE,CARD,PORT,START_RML,STOP_RML,")+
|
|
||||||
"START_GPI_MATRIX,"+
|
|
||||||
"START_GPI_LINE,START_GPO_MATRIX,START_GPO_LINE,STOP_GPI_MATRIX,"+
|
|
||||||
"STOP_GPI_LINE,STOP_GPO_MATRIX,STOP_GPO_LINE from RDPANEL_CHANNELS "+
|
|
||||||
"where STATION_NAME=\""+RDEscapeString(add_exemplar_box->currentText())+
|
|
||||||
"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString("insert into RDPANEL_CHANNELS set ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(add_name_edit->text())+"\","+
|
|
||||||
QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+
|
|
||||||
QString().sprintf("CARD=%d,",q->value(1).toInt())+
|
|
||||||
QString().sprintf("PORT=%d,",q->value(2).toInt())+
|
|
||||||
"START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+
|
|
||||||
"STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+
|
|
||||||
QString().sprintf("START_GPI_MATRIX=%d,",q->value(5).toInt())+
|
|
||||||
QString().sprintf("START_GPI_LINE=%d,",q->value(6).toInt())+
|
|
||||||
QString().sprintf("START_GPO_MATRIX=%d,",q->value(7).toInt())+
|
|
||||||
QString().sprintf("START_GPO_LINE=%d,",q->value(8).toInt())+
|
|
||||||
QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(9).toInt())+
|
|
||||||
QString().sprintf("STOP_GPI_LINE=%d,",q->value(10).toInt())+
|
|
||||||
QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(11).toInt())+
|
|
||||||
QString().sprintf("STOP_GPO_LINE=%d",q->value(12).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Audio Port Settings
|
|
||||||
//
|
|
||||||
sql="select CARD_NUMBER,CLOCK_SOURCE,";
|
|
||||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
|
||||||
sql+=QString().sprintf("INPUT_%d_LEVEL,INPUT_%d_MODE,INPUT_%d_TYPE,\
|
|
||||||
OUTPUT_%d_LEVEL,",
|
|
||||||
i,i,i,i);
|
|
||||||
}
|
|
||||||
sql=sql.left(sql.length()-1);
|
|
||||||
sql+=QString().sprintf(" from AUDIO_PORTS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into AUDIO_PORTS set\
|
|
||||||
CARD_NUMBER=%u,CLOCK_SOURCE=%d,\
|
|
||||||
STATION_NAME=\"%s\",",
|
|
||||||
q->value(0).toUInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
for(int i=0;i<RD_MAX_PORTS;i++) {
|
|
||||||
sql+=QString().sprintf("INPUT_%d_LEVEL=%d,INPUT_%d_MODE=%d,\
|
|
||||||
INPUT_%d_TYPE=%d,OUTPUT_%d_LEVEL=%d,",
|
|
||||||
i,q->value(2+3*i).toInt(),
|
|
||||||
i,q->value(3+3*i).toInt(),
|
|
||||||
i,q->value(4+3*i).toInt(),
|
|
||||||
i,q->value(5+3*i).toInt());
|
|
||||||
}
|
|
||||||
sql=sql.left(sql.length()-1);
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone the Serial Setups
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select PORT_ID,ACTIVE,PORT,BAUD_RATE,DATA_BITS,\
|
|
||||||
STOP_BITS,PARITY,TERMINATION from TTYS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into TTYS set\
|
|
||||||
PORT_ID=%u,ACTIVE=\"%s\",PORT=\"%s\",\
|
|
||||||
BAUD_RATE=%d,DATA_BITS=%d,STOP_BITS=%d,\
|
|
||||||
PARITY=%d,TERMINATION=%d,STATION_NAME=\"%s\"",
|
|
||||||
q->value(0).toUInt(),
|
|
||||||
(const char *)q->value(1).toString(),
|
|
||||||
(const char *)q->value(2).toString(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
q->value(6).toInt(),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Matrices
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select NAME,MATRIX,TYPE,PORT_TYPE,CARD,PORT,\
|
|
||||||
IP_ADDRESS,IP_PORT,USERNAME,PASSWORD,GPIO_DEVICE,\
|
|
||||||
INPUTS,OUTPUTS,GPIS,GPOS,DISPLAYS,FADERS,\
|
|
||||||
PORT_TYPE_2,PORT_2,IP_ADDRESS_2,IP_PORT_2,\
|
|
||||||
USERNAME_2,PASSWORD_2 \
|
|
||||||
from MATRICES where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into MATRICES set\
|
|
||||||
NAME=\"%s\",MATRIX=%d,TYPE=%d,PORT_TYPE=%d,\
|
|
||||||
CARD=%d,PORT=%d,IP_ADDRESS=\"%s\",IP_PORT=%d,\
|
|
||||||
USERNAME=\"%s\",PASSWORD=\"%s\",\
|
|
||||||
GPIO_DEVICE=\"%s\",INPUTS=%d,OUTPUTS=%d,GPIS=%d,\
|
|
||||||
GPOS=%d,DISPLAYS=%d,STATION_NAME=\"%s\",\
|
|
||||||
FADERS=%d,PORT_TYPE_2=%d,PORT_2=%d,\
|
|
||||||
IP_ADDRESS_2=\"%s\",IP_PORT_2=%d,\
|
|
||||||
USERNAME_2=\"%s\",PASSWORD_2=\"%s\"",
|
|
||||||
(const char *)q->value(0).toString(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
(const char *)q->value(6).toString(),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
(const char *)q->value(8).toString(),
|
|
||||||
(const char *)q->value(9).toString(),
|
|
||||||
(const char *)q->value(10).toString(),
|
|
||||||
q->value(11).toInt(),
|
|
||||||
q->value(12).toInt(),
|
|
||||||
q->value(13).toInt(),
|
|
||||||
q->value(14).toInt(),
|
|
||||||
q->value(15).toInt(),
|
|
||||||
(const char *)add_name_edit->text(),
|
|
||||||
q->value(16).toInt(),
|
|
||||||
q->value(17).toInt(),
|
|
||||||
q->value(18).toInt(),
|
|
||||||
(const char *)q->value(19).toString(),
|
|
||||||
q->value(20).toInt(),
|
|
||||||
(const char *)q->value(21).toString(),
|
|
||||||
(const char *)q->value(22).toString());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Matrix Inputs
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select MATRIX,NUMBER,NAME,FEED_NAME,CHANNEL_MODE,\
|
|
||||||
ENGINE_NUM,DEVICE_NUM from INPUTS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into INPUTS set\
|
|
||||||
MATRIX=%d,NUMBER=%d,NAME=\"%s\",FEED_NAME=\"%s\",\
|
|
||||||
CHANNEL_MODE=%d,ENGINE_NUM=%d,DEVICE_NUM=%d,\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
(const char *)q->value(2).toString(),
|
|
||||||
(const char *)q->value(3).toString(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
q->value(6).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Matrix Outputs
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select MATRIX,NUMBER,NAME,\
|
|
||||||
ENGINE_NUM,DEVICE_NUM from OUTPUTS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into OUTPUTS set\
|
|
||||||
MATRIX=%d,NUMBER=%d,NAME=\"%s\",\
|
|
||||||
ENGINE_NUM=%d,DEVICE_NUM=%d,\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
(const char *)q->value(2).toString(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone GPIs
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select MATRIX,NUMBER,MACRO_CART from GPIS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into GPIS set\
|
|
||||||
MATRIX=%d,NUMBER=%d,MACRO_CART=%d,\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Close vGuest Settings
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select MATRIX_NUM,VGUEST_TYPE,NUMBER,ENGINE_NUM,\
|
|
||||||
DEVICE_NUM,SURFACE_NUM,RELAY_NUM,BUSS_NUM\
|
|
||||||
from VGUEST_RESOURCES where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into VGUEST_RESOURCES set\
|
|
||||||
MATRIX_NUM=%d,VGUEST_TYPE=%d,NUMBER=%d,\
|
|
||||||
ENGINE_NUM=%d,DEVICE_NUM=%d,SURFACE_NUM=%d,\
|
|
||||||
RELAY_NUM=%d,BUSS_NUM=%d,STATION_NAME=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
q->value(3).toInt(),
|
|
||||||
q->value(4).toInt(),
|
|
||||||
q->value(5).toInt(),
|
|
||||||
q->value(6).toInt(),
|
|
||||||
q->value(7).toInt(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Host Variables
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select NAME,VARVALUE,REMARK from HOSTVARS\
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into HOSTVARS set\
|
|
||||||
NAME=\"%s\",VARVALUE=\"%s\",REMARK=\"%s\",\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
(const char *)q->value(0).toString(),
|
|
||||||
(const char *)q->value(1).toString(),
|
|
||||||
(const char *)q->value(2).toString(),
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone System Panels
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select PANEL_NO,ROW_NO,COLUMN_NO,LABEL,CART,\
|
|
||||||
DEFAULT_COLOR from PANELS where \
|
|
||||||
(TYPE=%d && OWNER=\"%s\")",
|
|
||||||
RDAirPlayConf::StationPanel,
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into PANELS set PANEL_NO=%d,ROW_NO=%d,\
|
|
||||||
COLUMN_NO=%d,LABEL=\"%s\",CART=%u,\
|
|
||||||
DEFAULT_COLOR=\"%s\",TYPE=%d,OWNER=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
(const char *)q->value(3).toString(),
|
|
||||||
q->value(4).toUInt(),
|
|
||||||
(const char *)q->value(5).toString(),
|
|
||||||
RDAirPlayConf::StationPanel,
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString().sprintf("select PANEL_NO,ROW_NO,COLUMN_NO,LABEL,CART,\
|
|
||||||
DEFAULT_COLOR from EXTENDED_PANELS where \
|
|
||||||
(TYPE=%d && OWNER=\"%s\")",
|
|
||||||
RDAirPlayConf::StationPanel,
|
|
||||||
(const char *)add_exemplar_box->currentText());
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into EXTENDED_PANELS set PANEL_NO=%d,\
|
|
||||||
ROW_NO=%d,COLUMN_NO=%d,LABEL=\"%s\",CART=%u,\
|
|
||||||
DEFAULT_COLOR=\"%s\",TYPE=%d,OWNER=\"%s\"",
|
|
||||||
q->value(0).toInt(),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
q->value(2).toInt(),
|
|
||||||
(const char *)q->value(3).toString(),
|
|
||||||
q->value(4).toUInt(),
|
|
||||||
(const char *)q->value(5).toString(),
|
|
||||||
RDAirPlayConf::StationPanel,
|
|
||||||
(const char *)add_name_edit->text());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Encoders
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select ID,NAME,COMMAND_LINE from ENCODERS \
|
|
||||||
where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(add_exemplar_box->
|
|
||||||
currentText()));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().
|
|
||||||
sprintf("insert into ENCODERS set NAME=\"%s\",\
|
|
||||||
COMMAND_LINE=\"%s\",STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(q->value(1).toString()),
|
|
||||||
(const char *)RDEscapeString(q->value(2).toString()),
|
|
||||||
(const char *)RDEscapeString(add_name_edit->text()));
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
sql=QString().
|
|
||||||
sprintf("select ID from ENCODERS \
|
|
||||||
where (NAME=\"%s\")&&(STATION_NAME=\"%s\")",
|
|
||||||
(const char *)RDEscapeString(q->value(1).toString()),
|
|
||||||
(const char *)RDEscapeString(add_name_edit->text()));
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
if(q1->first()) {
|
|
||||||
CloneEncoderValues("CHANNELS",q->value(0).toInt(),q1->value(0).toInt());
|
|
||||||
CloneEncoderValues("SAMPLERATES",q->value(0).toInt(),
|
|
||||||
q1->value(0).toInt());
|
|
||||||
CloneEncoderValues("BITRATES",q->value(0).toInt(),q1->value(0).toInt());
|
|
||||||
}
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Clone Hotkeys
|
|
||||||
//
|
|
||||||
sql=QString().sprintf("select MODULE_NAME,KEY_ID,KEY_VALUE,KEY_LABEL\
|
|
||||||
from RDHOTKEYS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(add_exemplar_box->currentText()));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("insert into RDHOTKEYS set \
|
|
||||||
MODULE_NAME=\"%s\",\
|
|
||||||
KEY_ID=%d,\
|
|
||||||
KEY_VALUE=\"%s\",\
|
|
||||||
KEY_LABEL=\"%s\",\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(q->value(0).
|
|
||||||
toString()),
|
|
||||||
q->value(1).toInt(),
|
|
||||||
(const char *)RDEscapeString(q->value(2).
|
|
||||||
toString()),
|
|
||||||
(const char *)RDEscapeString(q->value(3).
|
|
||||||
toString()),
|
|
||||||
(const char *)RDEscapeString(add_name_edit->
|
|
||||||
text()));
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
*add_name=add_name_edit->text();
|
*add_name=add_name_edit->text();
|
||||||
|
|
||||||
EditStation *station=new EditStation(add_name_edit->text(),this);
|
EditStation *station=new EditStation(add_name_edit->text(),this);
|
||||||
|
@ -133,7 +133,7 @@ void ListStations::addData()
|
|||||||
|
|
||||||
AddStation *add_station=new AddStation(&stationname,this);
|
AddStation *add_station=new AddStation(&stationname,this);
|
||||||
if(add_station->exec()<0) {
|
if(add_station->exec()<0) {
|
||||||
DeleteStation(stationname);
|
RDStation::remove(stationname);
|
||||||
delete add_station;
|
delete add_station;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ void ListStations::deleteData()
|
|||||||
(const char *)list_box->currentText()),
|
(const char *)list_box->currentText()),
|
||||||
QMessageBox::Yes,QMessageBox::No)==
|
QMessageBox::Yes,QMessageBox::No)==
|
||||||
QMessageBox::Yes) {
|
QMessageBox::Yes) {
|
||||||
DeleteStation(list_box->currentText());
|
RDStation::remove(list_box->currentText());
|
||||||
list_box->removeItem(list_box->currentItem());
|
list_box->removeItem(list_box->currentItem());
|
||||||
if(list_box->currentItem()>=0) {
|
if(list_box->currentItem()>=0) {
|
||||||
list_box->setSelected(list_box->currentItem(),true);
|
list_box->setSelected(list_box->currentItem(),true);
|
||||||
@ -200,138 +200,3 @@ void ListStations::RefreshList(QString stationname)
|
|||||||
}
|
}
|
||||||
delete q;
|
delete q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ListStations::DeleteStation(QString name)
|
|
||||||
{
|
|
||||||
QString sql;
|
|
||||||
RDSqlQuery *q;
|
|
||||||
RDSqlQuery *q1;
|
|
||||||
|
|
||||||
sql=QString().sprintf("delete from DECKS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString("delete from DECK_EVENTS where ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from TTYS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from AUDIO_PORTS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RECORDINGS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=
|
|
||||||
QString().sprintf("delete from SERVICE_PERMS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDAIRPLAY where STATION=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDAIRPLAY_CHANNELS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDPANEL where STATION=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDPANEL_CHANNELS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDLOGEDIT where STATION=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from MATRICES where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from INPUTS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from OUTPUTS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from VGUEST_RESOURCES where\
|
|
||||||
STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDLIBRARY where STATION=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from GPIS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from HOSTVARS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from STATIONS where NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=
|
|
||||||
QString().sprintf("delete from REPORT_STATIONS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from PANELS where (TYPE=%d && OWNER=\"%s\")",
|
|
||||||
RDAirPlayConf::StationPanel,
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().
|
|
||||||
sprintf("delete from EXTENDED_PANELS where (TYPE=%d && OWNER=\"%s\")",
|
|
||||||
RDAirPlayConf::StationPanel,(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString().sprintf("select ID from ENCODERS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
while(q->next()) {
|
|
||||||
sql=QString().sprintf("delete from ENCODER_CHANNELS where ENCODER_ID=%d",
|
|
||||||
q->value(0).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
sql=QString().sprintf("delete from ENCODER_SAMPLERATES where ENCODER_ID=%d",
|
|
||||||
q->value(0).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
sql=QString().sprintf("delete from ENCODER_BITRATES where ENCODER_ID=%d",
|
|
||||||
q->value(0).toInt());
|
|
||||||
q1=new RDSqlQuery(sql);
|
|
||||||
delete q1;
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from ENCODERS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
sql=QString().sprintf("delete from RDHOTKEYS where STATION_NAME=\"%s\"",
|
|
||||||
(const char *)RDEscapeString(name));
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
sql=QString("delete from LOG_MODES where ")+
|
|
||||||
"STATION_NAME=\""+RDEscapeString(name)+"\"";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
delete q;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -46,7 +46,6 @@ class ListStations : public QDialog
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void RefreshList(QString stationname="");
|
void RefreshList(QString stationname="");
|
||||||
void DeleteStation(QString name);
|
|
||||||
QListBox *list_box;
|
QListBox *list_box;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -532,11 +532,19 @@ a záloha původní databáze uložena v </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>Server existuje</translation>
|
<translation type="obsolete">Server existuje</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>Server již existuje!</translation>
|
<translation type="obsolete">Server již existuje!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -498,11 +498,19 @@ worden. Aktuelle Version</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>Host existiert</translation>
|
<translation type="obsolete">Host existiert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>Host existiert bereits!</translation>
|
<translation type="obsolete">Host existiert bereits!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -532,11 +532,19 @@ y un respaldo de la base de datos se guardó en </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>El equipo ya existe</translation>
|
<translation type="obsolete">El equipo ya existe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>¡El equipo ya existe!</translation>
|
<translation type="obsolete">¡El equipo ya existe!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -314,11 +314,11 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Error</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Unable to create host!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -480,11 +480,19 @@ oppdatert til versjon </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>Verten eksisterer</translation>
|
<translation type="obsolete">Verten eksisterer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>Verten finst frå før!</translation>
|
<translation type="obsolete">Verten finst frå før!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -480,11 +480,19 @@ oppdatert til versjon </translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>Verten eksisterer</translation>
|
<translation type="obsolete">Verten eksisterer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>Verten finst frå før!</translation>
|
<translation type="obsolete">Verten finst frå før!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -481,11 +481,19 @@ atualizada para a Versão</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Exists</source>
|
<source>Host Exists</source>
|
||||||
<translation>Cliente existente</translation>
|
<translation type="obsolete">Cliente existente</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Host Already Exists!</source>
|
<source>Host Already Exists!</source>
|
||||||
<translation>Cliente já Existe!</translation>
|
<translation type="obsolete">Cliente já Existe!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unable to create host!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -253,7 +253,8 @@ void TestImport::importData()
|
|||||||
void TestImport::dateChangedData(const QDate &date)
|
void TestImport::dateChangedData(const QDate &date)
|
||||||
{
|
{
|
||||||
test_filename_edit->
|
test_filename_edit->
|
||||||
setText(RDDateDecode(test_svc->importPath(test_src,RDSvc::Linux),date));
|
setText(RDDateDecode(test_svc->importPath(test_src,RDSvc::Linux),date,
|
||||||
|
test_svc->name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ int RunLogOperation(int argc,char *argv[],const QString &svcname,
|
|||||||
return 256;
|
return 256;
|
||||||
}
|
}
|
||||||
QDate start_date=QDate::currentDate().addDays(1+start_offset);
|
QDate start_date=QDate::currentDate().addDays(1+start_offset);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),start_date);
|
QString logname=RDDateDecode(svc->nameTemplate(),start_date,svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -106,8 +106,10 @@ int RunLogOperation(int argc,char *argv[],const QString &svcname,
|
|||||||
}
|
}
|
||||||
delete q;
|
delete q;
|
||||||
if(!svc->generateLog(start_date,
|
if(!svc->generateLog(start_date,
|
||||||
RDDateDecode(svc->nameTemplate(),start_date),
|
RDDateDecode(svc->nameTemplate(),start_date,
|
||||||
RDDateDecode(svc->nameTemplate(),start_date.addDays(1)),
|
svc->name()),
|
||||||
|
RDDateDecode(svc->nameTemplate(),start_date.addDays(1),
|
||||||
|
svc->name()),
|
||||||
&unused_report)) {
|
&unused_report)) {
|
||||||
fprintf(stderr,"rdlogmanager: unable to generate log\n");
|
fprintf(stderr,"rdlogmanager: unable to generate log\n");
|
||||||
return 256;
|
return 256;
|
||||||
|
@ -307,7 +307,8 @@ void GenerateLog::createData()
|
|||||||
// Generate Log
|
// Generate Log
|
||||||
//
|
//
|
||||||
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date());
|
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
if(log->exists()) {
|
if(log->exists()) {
|
||||||
str1=QString(tr("The log for"));
|
str1=QString(tr("The log for"));
|
||||||
@ -361,9 +362,10 @@ void GenerateLog::createData()
|
|||||||
connect(svc,SIGNAL(generationProgress(int)),
|
connect(svc,SIGNAL(generationProgress(int)),
|
||||||
gen_progress_dialog,SLOT(setProgress(int)));
|
gen_progress_dialog,SLOT(setProgress(int)));
|
||||||
svc->generateLog(gen_date_edit->date(),
|
svc->generateLog(gen_date_edit->date(),
|
||||||
RDDateDecode(svc->nameTemplate(),gen_date_edit->date()),
|
RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name()),
|
||||||
RDDateDecode(svc->nameTemplate(),gen_date_edit->date().
|
RDDateDecode(svc->nameTemplate(),gen_date_edit->date().
|
||||||
addDays(1)),&unused_report);
|
addDays(1),svc->name()),&unused_report);
|
||||||
log->updateTracks();
|
log->updateTracks();
|
||||||
delete log;
|
delete log;
|
||||||
delete svc;
|
delete svc;
|
||||||
@ -392,7 +394,8 @@ void GenerateLog::musicData()
|
|||||||
unsigned tracks=0;
|
unsigned tracks=0;
|
||||||
|
|
||||||
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date());
|
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
if(((log->linkState(RDLog::SourceMusic)==RDLog::LinkDone)||
|
if(((log->linkState(RDLog::SourceMusic)==RDLog::LinkDone)||
|
||||||
(log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone))) {
|
(log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone))) {
|
||||||
@ -443,7 +446,8 @@ void GenerateLog::musicData()
|
|||||||
void GenerateLog::trafficData()
|
void GenerateLog::trafficData()
|
||||||
{
|
{
|
||||||
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date());
|
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
if((log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone)) {
|
if((log->linkState(RDLog::SourceTraffic)==RDLog::LinkDone)) {
|
||||||
QString str1=QString(tr("The log for"));
|
QString str1=QString(tr("The log for"));
|
||||||
@ -477,7 +481,8 @@ void GenerateLog::trafficData()
|
|||||||
void GenerateLog::fileScanData()
|
void GenerateLog::fileScanData()
|
||||||
{
|
{
|
||||||
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date());
|
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
if(gen_music_enabled) {
|
if(gen_music_enabled) {
|
||||||
if(QFile::exists(svc->
|
if(QFile::exists(svc->
|
||||||
@ -545,7 +550,8 @@ void GenerateLog::resizeEvent(QResizeEvent *e)
|
|||||||
void GenerateLog::UpdateControls()
|
void GenerateLog::UpdateControls()
|
||||||
{
|
{
|
||||||
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
RDSvc *svc=new RDSvc(gen_service_box->currentText(),this);
|
||||||
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date());
|
QString logname=RDDateDecode(svc->nameTemplate(),gen_date_edit->date(),
|
||||||
|
svc->name());
|
||||||
RDLog *log=new RDLog(logname);
|
RDLog *log=new RDLog(logname);
|
||||||
if(log->exists()) {
|
if(log->exists()) {
|
||||||
if(log->linkQuantity(RDLog::SourceMusic)>0) {
|
if(log->linkQuantity(RDLog::SourceMusic)>0) {
|
||||||
|
@ -195,10 +195,10 @@ void PickReportDates::generateData()
|
|||||||
}
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
QString filename=RDDateDecode(report->exportPath(RDReport::Windows),
|
QString filename=RDDateDecode(report->exportPath(RDReport::Windows),
|
||||||
edit_startdate_edit->date());
|
edit_startdate_edit->date(),edit_svcname);
|
||||||
#else
|
#else
|
||||||
QString filename=RDDateDecode(report->exportPath(RDReport::Linux),
|
QString filename=RDDateDecode(report->exportPath(RDReport::Linux),
|
||||||
edit_startdate_edit->date());
|
edit_startdate_edit->date(),edit_svcname);
|
||||||
#endif
|
#endif
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
if(file.exists()) {
|
if(file.exists()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user