void MusPlayer_WinAPI::on_recordWav_clicked(bool checked) { if(checked) { PGE_MusicPlayer::MUS_stopMusic(); SetWindowTextW(m_buttonPlay, L"Play"); PGE_MusicPlayer::stopWavRecording(); PGE_MusicPlayer::startWavRecording(currentMusic + ".wav"); on_play_clicked(); EnableWindow(m_buttonOpen, FALSE); EnableWindow(m_buttonPlay, FALSE); EnableWindow(m_gme.m_trackNum, FALSE); EnableWindow(m_gme.m_trackNumUpDown, FALSE); EnableWindow(m_midi.m_midiDevice, FALSE); EnableWindow(m_adlmidi.m_bankID, FALSE); EnableWindow(m_adlmidi.m_tremolo, FALSE); EnableWindow(m_adlmidi.m_vibrato, FALSE); EnableWindow(m_adlmidi.m_scalableMod, FALSE); EnableWindow(m_adlmidi.m_adlibDrums, FALSE); } else { on_stop_clicked(); PGE_MusicPlayer::stopWavRecording(); SetWindowTextW(m_buttonPlay, L"Play"); EnableWindow(m_buttonOpen, TRUE); EnableWindow(m_buttonPlay, TRUE); EnableWindow(m_gme.m_trackNum, TRUE); EnableWindow(m_gme.m_trackNumUpDown, TRUE); EnableWindow(m_midi.m_midiDevice, TRUE); EnableWindow(m_adlmidi.m_bankID, TRUE); EnableWindow(m_adlmidi.m_tremolo, TRUE); EnableWindow(m_adlmidi.m_vibrato, TRUE); EnableWindow(m_adlmidi.m_scalableMod, TRUE); EnableWindow(m_adlmidi.m_adlibDrums, TRUE); } }
void playerWindow::on_open_media_activate_from_menubar ( void ) { // instanciate a new filechooser genericFilechooserWindow * FC = new genericFilechooserWindow ( *this, "Select a media file", Gtk::FILE_CHOOSER_ACTION_OPEN, Glib::get_home_dir(), false, PLAYERMIMETYPE ); if (FC->getResponse() == Gtk::RESPONSE_OK) { //timer is still alive, kill it if (timeout_timecode.connected()) { // stop previous playing file in any case on_stop_clicked(); gst->setTimecodePosition(0.0); refresh_timecode(); timeout_timecode.disconnect(); } // set the media file gst->setFile ( FC->getURIToFile(), Glib::filename_display_basename(FC->getPathToFile()) ); // activate buttons play->set_sensitive(true); play->set_visible(true); pause->set_sensitive(true); pause->set_visible(false); progress_scale->set_sensitive(true); // connect the timer to refresh timecode if required if (!timeout_timecode.connected()) { timeout_timecode = Glib::signal_timeout().connect ( sigc::mem_fun ( *this, &playerWindow::refresh_timecode ), 100 ); // set the file title set_title(gst->getTitle()); } } delete FC; }
void playerWindow::on_next_clicked_eos ( void ) { // stop the current playback on_stop_clicked(); // set the track state if (playlistIsLoaded.get_active()) { // loop/shuffle enable or disable if (playlist->isShuffling()) { // shuffle bypass the loop mode // set randomly the next track playlist->randomTrack(); // set the new track to play gst->setFile ( playlist->getURIToPlay(), playlist->getNameToPlay() ); // start playback on_play_clicked(); } else if ( playlist->isLooping() || (!playlist->isShuffling() && !playlist->isLastTrack()) ) { // set the next track playlist->nextTrack(); // set the new track to play gst->setFile ( playlist->getURIToPlay(), playlist->getNameToPlay() ); // start playback on_play_clicked(); } else { // set the next track, in this case the first track but // don't play it playlist->nextTrack(); // set the new track to play gst->setFile ( playlist->getURIToPlay(), playlist->getNameToPlay() ); // reset the timecode refresh_timecode(); // disconnect the timecode's timer timeout_timecode.disconnect(); } } }
void playerWindow::on_set_new_track_clicked ( void ) { // stop the current playback on_stop_clicked(); // set the new track to play gst->setFile ( playlist->getURIToPlay(), playlist->getNameToPlay() ); // start playback on_play_clicked(); }
void nn_connectometry::on_run_clicked() { if(ui->foi->currentIndex() < 0) return; on_stop_clicked(); nna.t.learning_rate = ui->learning_rate->value()*0.01f; nna.t.momentum = ui->momentum->value(); nna.t.batch_size = 64; nna.t.epoch = ui->epoch->value(); nna.foi_index = ui->foi->currentIndex(); nna.is_regression = ui->nn_regression->isChecked(); nna.seed_search = 0; nna.otsu = ui->otsu->value(); nna.cv_fold = ui->cv->value(); nna.normalize_value = ui->norm_output->isEnabled() && ui->norm_output->isChecked(); //nna.t.error_table.resize(nna.nn.get_output_size()*nna.nn.get_output_size()); if(!nna.run(ui->network_text->text().toStdString())) { QMessageBox::information(this,"Error",nna.error_msg.c_str(),0); return; } ui->test_subjects->setRowCount(0); cur_fold = 0; s2 = s3 = s4 = 0; chart1->removeAllSeries(); chart2->removeAllSeries(); chart3->removeAllSeries(); chart4->removeAllSeries(); if(timer) delete timer; timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update_network())); timer->setInterval(1000); timer->start(); }
MusPlayer_WinAPI::~MusPlayer_WinAPI() { on_stop_clicked(); Mix_CloseAudio(); MusPlayer_WinAPI::m_self = nullptr; }
nn_connectometry::~nn_connectometry() { on_stop_clicked(); delete ui; }
void nn_connectometry::on_reset_clicked() { on_stop_clicked(); nna.nn.reset(); }
void nn_connectometry::on_view_tab_currentChanged(int) { if(nna.terminated && timer) on_stop_clicked(); if(!nna.nn.initialized) return; log_text = nna.handle->report.c_str(); log_text += nna.report.c_str(); log_text += nna.all_result.c_str(); ui->log->setText(log_text); ui->progressBar->setValue(nna.cur_progress); if(ui->view_tab->currentIndex() == 0 && nna.has_results()) //report view { { QScatterSeries *series = new QScatterSeries(); series->setMarkerSize(3.0); series->setMarkerShape(QScatterSeries::MarkerShapeRectangle); series->setPen(Qt::NoPen); series->setBrush(Qt::black); for(int row = 0;row < nna.test_result.size();++row) { float x,y; series->append(x = nna.test_result[row]/nna.sl_scale+nna.sl_mean, y = nna.fp_data.data_label[nna.test_seq[row]]/nna.sl_scale+nna.sl_mean); } chart1->removeAllSeries(); chart1->addSeries(series); chart1->createDefaultAxes(); chart1->setDropShadowEnabled(false); chart1->axes(Qt::Horizontal).back()->setTitleText("Predicted Value"); chart1->axes(Qt::Vertical).back()->setTitleText("Value"); chart1->axes(Qt::Horizontal).back()->setRange( ((QValueAxis*)chart1->axes(Qt::Vertical).back())->min(), ((QValueAxis*)chart1->axes(Qt::Vertical).back())->max()); chart1->axes(Qt::Horizontal).back()->setGridLineVisible(false); chart1->axes(Qt::Vertical).back()->setGridLineVisible(false); chart1->setTitle("Predicted versus True Vlues"); } if(cur_fold == nna.cur_fold && s2 && s3 && s4) { chart2->removeSeries(s2); chart3->removeSeries(s3); chart4->removeSeries(s4); cur_fold = nna.cur_fold; } s2 = new QLineSeries(); s3 = new QLineSeries(); s4 = new QLineSeries(); { nna.get_results([&](size_t epoch,float r,float mae,float error){ s2->append(epoch,static_cast<qreal>(r)); s3->append(epoch,static_cast<qreal>(mae)); s4->append(epoch,static_cast<qreal>(error)); }); chart2->addSeries(s2); chart2->createDefaultAxes(); chart2->setTitle(nna.is_regression ? "correlation coefficient (cross-validated)":"missed count"); chart2->axes(Qt::Horizontal).back()->setTitleText("epoch"); chart2->axes(Qt::Vertical).back()->setMin(0); ((QValueAxis*)chart2->axes(Qt::Horizontal).back())->setTickType(QValueAxis::TicksDynamic); ((QValueAxis*)chart2->axes(Qt::Horizontal).back())->setTickInterval(20); chart3->addSeries(s3); chart3->createDefaultAxes(); chart3->setTitle(nna.is_regression ? "mean absolute error (cross-validated)" : "accuracy"); chart3->axes(Qt::Horizontal).back()->setTitleText("epoch"); if(!nna.is_regression) chart3->axes(Qt::Vertical).back()->setMax(1.0f); chart3->axes(Qt::Vertical).back()->setMin(0); ((QValueAxis*)chart3->axes(Qt::Horizontal).back())->setTickType(QValueAxis::TicksDynamic); ((QValueAxis*)chart3->axes(Qt::Horizontal).back())->setTickInterval(20); chart4->addSeries(s4); chart4->createDefaultAxes(); chart4->setTitle("training error"); chart4->axes(Qt::Horizontal).back()->setTitleText("epoch"); chart4->axes(Qt::Vertical).back()->setMin(0); ((QValueAxis*)chart4->axes(Qt::Horizontal).back())->setTickType(QValueAxis::TicksDynamic); ((QValueAxis*)chart4->axes(Qt::Horizontal).back())->setTickInterval(20); QPen p2(s2->pen()); p2.setWidth(1); s2->setPen(p2); QPen p3(s3->pen()); p3.setWidth(1); s3->setPen(p3); QPen p4(s4->pen()); p4.setWidth(1); s4->setPen(p4); } } if(ui->view_tab->currentIndex() == 1) //network view { tipl::color_image I; nna.get_salient_map(I); if(!I.empty()) { network_I = QImage((unsigned char*)&*I.begin(),I.width(),I.height(),QImage::Format_RGB32).scaledToHeight(1600); show_view(network_scene,network_I); } } if(ui->view_tab->currentIndex() == 2) // layer_view { tipl::color_image I; nna.get_layer_map(I); layer_I = QImage((unsigned char*)&*I.begin(), I.width(),I.height(),QImage::Format_RGB32).scaledToWidth(ui->view_tab->width()-50); show_view(layer_scene,layer_I); } if(ui->view_tab->currentIndex() == 3) // predict view { if(!nna.all_test_result.empty()) { if(ui->test_subjects->rowCount() != nna.all_test_result.size()) { ui->test_subjects->setRowCount(0); ui->test_subjects->setColumnCount(3); ui->test_subjects->setHorizontalHeaderLabels(QStringList() << "Subject" << "Label" << "Predicted"); ui->test_subjects->setRowCount(nna.all_test_result.size()); for(int row = 0;row < nna.all_test_result.size();++row) { int id = nna.subject_index[nna.all_test_seq[row]]; ui->test_subjects->setItem(row,0, new QTableWidgetItem(QString(nna.handle->db.subject_names[id].c_str()))); ui->test_subjects->setItem(row,1,new QTableWidgetItem(QString())); ui->test_subjects->setItem(row,2,new QTableWidgetItem(QString())); } std::vector<float> allx,ally; for(int row = 0;row < nna.all_test_result.size();++row) { float x = nna.all_test_result[row]/nna.sl_scale+nna.sl_mean; float y = nna.fp_data.data_label[nna.all_test_seq[row]]/nna.sl_scale+nna.sl_mean; ui->test_subjects->item(row,1)->setText(QString::number(y)); ui->test_subjects->item(row,2)->setText(QString::number(x)); allx.push_back(x); ally.push_back(y); } } } } }