// sas_torture.cpp // // A Qt-based application for playing Microsoft WAV files. // // (C) Copyright 2002,2016 Fred Gleason <fredg@paravelsystems.com> // // 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 // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // #include <stdlib.h> #include <unistd.h> #include <qapplication.h> #include <qpushbutton.h> #include <qmessagebox.h> #include <qdatetime.h> #include <rd.h> #include <rddb.h> #include <sas_torture.h> #include <rdescape_string.h> MainWidget::MainWidget(QWidget *parent) :QWidget(parent) { unsigned schema=0; // // Fix the Window Size // setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); // // Generate Fonts // QFont font("Helvetica",12,QFont::Normal); font.setPixelSize(12); // // Open Database // rd_config=new RDConfig(RD_CONF_FILE); rd_config->load(); QString err; test_db=RDInitDb(&schema,&err); if(!test_db) { QMessageBox::warning(this,"Can't Connect", err,0,1,1); exit(0); } // // Generate Button // QPushButton *button=new QPushButton(this,"generate_button"); button->setGeometry(10,10,sizeHint().width()-20,50); button->setText("Generate Test"); button->setFont(font); connect(button,SIGNAL(clicked()),this,SLOT(generateData())); // // Remove Button // button=new QPushButton(this,"remove_button"); button->setGeometry(10,70,sizeHint().width()-20,50); button->setText("Remove Test"); button->setFont(font); connect(button,SIGNAL(clicked()),this,SLOT(removeData())); // // Exit Button // button=new QPushButton(this,"cancel_button"); button->setGeometry(10,130,sizeHint().width()-20,50); button->setText("Exit"); button->setFont(font); connect(button,SIGNAL(clicked()),this,SLOT(cancelData())); } QSize MainWidget::sizeHint() const { return QSize(200,190); } QSizePolicy MainWidget::sizePolicy() const { return QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); } void MainWidget::generateData() { QString sql; RDSqlQuery *q; QString rml; QString desc; // // Create Carts // for(int i=0;i<SAS_OUTPUTS;i++) { rml=QString(); for(int j=0;j<SAS_INPUTS;j++) { rml+=QString().sprintf("ST %d %d %d!SP %d!", SAS_MATRIX,j+1,i+1,SAS_SLEEP); } sql=QString().sprintf("insert into CART set NUMBER=%d,TYPE=2,\ GROUP_NAME=\"TEMP\",TITLE=\"Walk SAS Output %d\",\ ARTIST=\"SAS_TORTURE\",MACROS=\"%s\"", i+CART_START,i+1,(const char *)rml); q=new RDSqlQuery(sql); delete q; } // // Create Schedule // QTime time; for(int i=0;i<86400000;i+=TIME_INTERVAL) { for(int j=0;j<SAS_OUTPUTS;j++) { desc=QString().sprintf("Walk SAS Output %d",j+1); sql=QString().sprintf("insert into RECORDINGS set STATION_NAME=\"%s\",\ SUN=\'Y\',MON=\'Y\',TUE=\'Y\',WED=\'Y\',THU=\'Y\',\ FRI=\'Y\',SAT=\'Y\',DESCRIPTION=\"%s\",\ CUT_NAME=\"SAS_TORTURE\",MACRO_CART=%d,\ START_TIME=%s,TYPE=1", SAS_STATION, (const char *)desc, CART_START+j, (const char *)RDCheckDateTime(time,"hh:mm:ss")); q=new RDSqlQuery(sql); delete q; } time=time.addMSecs(TIME_INTERVAL); } } void MainWidget::removeData() { QString sql; RDSqlQuery *q; // // Delete Carts // sql=QString("delete from CART where ARTIST=\"SAS_TORTURE\""); q=new RDSqlQuery(sql); delete q; // // Delete Schedule // sql=QString("delete from RECORDINGS where CUT_NAME=\"SAS_TORTURE\""); q=new RDSqlQuery(sql); delete q; } void MainWidget::cancelData() { qApp->quit(); } void MainWidget::closeEvent(QCloseEvent *e) { cancelData(); } int main(int argc,char *argv[]) { QApplication a(argc,argv); MainWidget *w=new MainWidget(); a.setMainWidget(w); w->setGeometry(QRect(QPoint(0,0),w->sizeHint())); w->show(); return a.exec(); }