void MidiTable::updateTable() { if( __row_count > 0 ) { QComboBox * eventCombo = dynamic_cast <QComboBox *> ( cellWidget( __row_count - 1, 1 ) ); QComboBox * actionCombo = dynamic_cast <QComboBox *> ( cellWidget( __row_count - 1, 3 ) ); if( eventCombo == NULL || actionCombo == NULL) return; if( actionCombo->currentText() != "" && eventCombo->currentText() != "" ) { insertNewRow("", "", 0, 0); } } }
void MidiTable::setupMidiTable() { MidiMap *mM = MidiMap::get_instance(); QStringList items; items << "" << trUtf8("Event") << trUtf8("Param.") << trUtf8("Action") << trUtf8("Param.") ; setRowCount( 0 ); setColumnCount( 5 ); verticalHeader()->hide(); setHorizontalHeaderLabels( items ); horizontalHeader()->setStretchLastSection(true); setColumnWidth( 0 , 25 ); setColumnWidth( 1 , 155 ); setColumnWidth( 2, 73 ); setColumnWidth( 3, 175 ); setColumnWidth( 4 , 73 ); bool ok; std::map< QString , MidiAction* > mmcMap = mM->getMMCMap(); std::map< QString , MidiAction* >::iterator dIter( mmcMap.begin() ); for( dIter = mmcMap.begin(); dIter != mmcMap.end(); dIter++ ) { MidiAction * pAction = dIter->second; QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); insertNewRow(pAction->getType() , dIter->first , 0 , actionParameterInteger ); } for( int note = 0; note < 128; note++ ) { MidiAction * pAction = mM->getNoteAction( note ); QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); if ( pAction->getType() == "NOTHING" ) continue; insertNewRow(pAction->getType() , "NOTE" , note , actionParameterInteger ); } for( int parameter = 0; parameter < 128; parameter++ ){ MidiAction * pAction = mM->getCCAction( parameter ); QString actionParameter; int actionParameterInteger = 0; actionParameter = pAction->getParameter1(); actionParameterInteger = actionParameter.toInt(&ok,10); if ( pAction->getType() == "NOTHING" ) continue; insertNewRow(pAction->getType() , "CC" , parameter , actionParameterInteger ); } { MidiAction * pAction = mM->getPCAction(); if ( pAction->getType() != "NOTHING" ) { QString actionParameter = pAction->getParameter1(); int actionParameterInteger = actionParameter.toInt(&ok,10); insertNewRow( pAction->getType() , "PROGRAM_CHANGE" , 0 , actionParameterInteger ); } } insertNewRow( "", "", 0, 0 ); }
void MainWindow::on_inflatePushButton_clicked() { QSqlQuery delQuery; delQuery.exec("delete from NormBehaviourLog"); QString seqQuery; if (lv == "BATCHNORM" || lv == "BATCH") { seqQuery = "select timestamp,sensorId,status,trainingNumber from BehaviourLog where sensorID < 61 ORDER BY trainingNumber, timestamp"; } else { seqQuery = "select timestamp,sensorId,status,trainingNumber from BehaviourLog where sensorID < 61 and timestamp between '"; seqQuery += ui->dateFrom->dateTime().toString("yyyy-MM-dd hh:mm:ss"); seqQuery += "' and '"; seqQuery += ui->dateTo->dateTime().toString("yyyy-MM-dd hh:mm:ss") + "' ORDER BY timestamp"; } qDebug() << seqQuery; query.clear(); if (!query.exec(seqQuery)) { qDebug() << seqQuery; QMessageBox msgBox; msgBox.setIcon(QMessageBox::Warning); msgBox.setText("Cannot select from BehaviourLog table!"); msgBox.exec(); return; } numRowsRead = query.numRowsAffected(); numRowsProcessed = 0; numRowsInserted = 0; bool first = true; processed = false; currentDate = QDateTime(QDate(2000,01,01),QTime(0,0,1)); readRow(); while (!processed) { if (first) { first = false; insertNewRow(currentDate,currentSensorId,currentSensorValue,currentTrainingNumber); } else { if ((currentDate > prevDate.addSecs(1)) && (currentTrainingNumber == prevTrainingNumber)) // write n copies of current row 1 sec apart { int n = prevDate.time().msecsTo(currentDate.time()) / 1000; n--; QDateTime insDate = prevDate; for (int i=0;i<n;i++) { insDate = insDate.addSecs(1); insertNewRow(insDate,prevSensorId,prevSensorValue,prevTrainingNumber); } insertNewRow(currentDate,currentSensorId,currentSensorValue, currentTrainingNumber); } else // same dates for two events { insertNewRow(currentDate,currentSensorId,currentSensorValue, currentTrainingNumber); } } readRow(); } qDebug()<< "Rows read : " << numRowsRead; qDebug()<< "Rows processed : " << numRowsProcessed; qDebug()<< "Rows written: " << numRowsInserted; }