コード例 #1
0
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);
    }
}
コード例 #2
0
ファイル: playerWindow.cpp プロジェクト: Byvirven/MXFTools
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;
}
コード例 #3
0
ファイル: playerWindow.cpp プロジェクト: Byvirven/MXFTools
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();
		 }
	}
}
コード例 #4
0
ファイル: playerWindow.cpp プロジェクト: Byvirven/MXFTools
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();
}
コード例 #5
0
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();
}
コード例 #6
0
MusPlayer_WinAPI::~MusPlayer_WinAPI()
{
    on_stop_clicked();
    Mix_CloseAudio();
    MusPlayer_WinAPI::m_self = nullptr;
}
コード例 #7
0
nn_connectometry::~nn_connectometry()
{
    on_stop_clicked();
    delete ui;
}
コード例 #8
0
void nn_connectometry::on_reset_clicked()
{
    on_stop_clicked();
    nna.nn.reset();
}
コード例 #9
0
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);
                }

            }
        }
    }

}