/* process delayed message */ static gboolean delayed_idle_spectrum_update (gpointer user_data) { draw_spectrum ((gfloat *) user_data); g_free (user_data); return (FALSE); }
/** Get the image. */ static int filter_get_image( mlt_frame frame, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable ) { int error = 0; mlt_filter filter = (mlt_filter)mlt_frame_pop_service( frame ); private_data* pdata = (private_data*)filter->child; mlt_properties frame_properties = MLT_FRAME_PROPERTIES( frame ); if( mlt_properties_get_data( frame_properties, pdata->fft_prop_name, NULL ) ) { // Get the current image *format = mlt_image_rgb24a; error = mlt_frame_get_image( frame, image, format, width, height, 1 ); // Draw the spectrum if( !error ) { QImage qimg( *width, *height, QImage::Format_ARGB32 ); copy_mlt_to_qimage_rgba( *image, &qimg ); draw_spectrum( filter, frame, &qimg ); copy_qimage_to_mlt_rgba( &qimg, *image ); } } else { if ( pdata->preprocess_warned++ == 2 ) { // This filter depends on the consumer processing the audio before // the video. mlt_log_warning( MLT_FILTER_SERVICE(filter), "Audio not preprocessed.\n" ); } mlt_frame_get_image( frame, image, format, width, height, writable ); } return error; }
int AthScan::open_scan_file() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("")); if (!fileName.isEmpty()) { if (parse_scan_file(fileName) < 0) { QMessageBox::information(0,"error","error parsing fft data"); return -1; } draw_spectrum(_min_freq, _max_freq); } return 0; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , plot_(0) , zoomer_( 0 ) , picker_( 0 ) , panner_( 0 ) , pMethod_( 0 ) , pModel_( 0 ) { plot_ = new Plot(this); setCentralWidget(plot_); zoomer_ = new QwtPlotZoomer( QwtPlot::xBottom, QwtPlot::yLeft, plot_->canvas() ); zoomer_->setMousePattern( QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlModifier ); zoomer_->setMousePattern( QwtEventPattern::MouseSelect3, Qt::RightButton ); zoomer_->setRubberBand( QwtPicker::RectRubberBand ); pMethod_ = new adcontrols::CentroidMethod; pModel_ = new CentroidMethodModel; int res = qmlRegisterType< CentroidMethodModel >( "com.scienceliaison.qml", 1, 0, "CentroidModel" ); QDeclarativeView * view = new QDeclarativeView; view->setResizeMode(QDeclarativeView::SizeRootObjectToView); QDeclarativeContext * ctxt = view->rootContext(); ctxt->setContextProperty( "centroidModel", pModel_ ); //view->setSource( QUrl::fromLocalFile( "qml/ProcessMethodEditor.qml" ) ); view->setSource( QUrl( "qrc:/files/qml/ProcessMethodEditor.qml") ); QList< QDeclarativeError> errors = view->errors(); for ( QList<QDeclarativeError>::const_iterator it = errors.begin(); it != errors.end(); ++it ) QMessageBox::warning( parent, "QDeclarativeError", it->description() ); view->setMinimumSize( 200, 250 ); view->resize( QSize( 200, 350 ) ); QDockWidget * dock = new QDockWidget; dock->setWidget( view ); addDockWidget ( Qt::BottomDockWidgetArea, dock ); draw_spectrum(); }
/* receive spectral data from element message */ gboolean message_handler (GstBus * bus, GstMessage * message, gpointer data) { if (message->type == GST_MESSAGE_ELEMENT) { const GstStructure *s = gst_message_get_structure (message); const gchar *name = gst_structure_get_name (s); if (strcmp (name, "spectrum") == 0) { gfloat *spect = g_new (gfloat, spect_bands); const GValue *list; const GValue *value; guint i; list = gst_structure_get_value (s, "magnitude"); for (i = 0; i < spect_bands; ++i) { value = gst_value_list_get_value (list, i); spect[i] = height_scale * g_value_get_float (value); } draw_spectrum (spect); g_free (spect); } } return TRUE; }
void draw_scene(void) { if (point_general->changement) { recalc_perspective(); if (point_general->effect > EFFECT_NUMBER - 1) { point_general->effect = 0; if (gen_gl_texture(knotbg)) upload_gl_texture(background_image); use_gl_texture(knotbg); } if (point_general->effect == 4) { if (gen_gl_texture(tunnel)) upload_gl_texture(tunnel_image); use_gl_texture(tunnel); } if (point_general->effect == 5) { if (gen_gl_texture(tentacle)) upload_gl_texture(tentacle_image); use_gl_texture(tentacle); } if (point_general->effect == 6) { if (gen_gl_texture(twist)) upload_gl_texture(twist_image); if (gen_gl_texture(twistbg)) upload_gl_texture(background_image); use_gl_texture(twist); } if (point_general->effect == 7) { if (gen_gl_texture(texchild)) upload_gl_texture(child_image); if (gen_gl_texture(childbg)) upload_gl_texture(energy_image); use_gl_texture(texchild); } if (point_general->effect == 8) { if (gen_gl_texture(energy)) upload_gl_texture(energy_image); use_gl_texture(energy); } point_general->changement = FALSE; } switch (point_general->effect) { case 0: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_knot(); break; case 1: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_spectrum(); break; case 2: if (!point_general->init) init_effect(); glEnable(GL_LIGHTING); draw_face(); break; case 3: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_glthreads(); break; case 4: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_tunnel(); break; case 5: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_tentacles(); break; case 6: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_twist(); break; case 7: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_child(); break; case 8: if (!point_general->init) init_effect(); glDisable(GL_LIGHTING); draw_energy(); break; default: break; } }