From 2639a0b290633471a5e7276a10e411dcb70bbe56 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 14 Jun 2008 20:16:56 +0000 Subject: [PATCH] improved appearence of Spectrum Analzyer git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1127 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 7 ++ plugins/spectrum_analyzer/background.png | Bin 0 -> 25366 bytes plugins/spectrum_analyzer/spectrum_analyzer.h | 2 +- .../spectrum_analyzer/spectrum_background.png | Bin 0 -> 13385 bytes .../spectrum_background_plain.png | Bin 0 -> 9740 bytes .../spectrumanalyzer_control_dialog.cpp | 79 +++++++++++++++--- 6 files changed, 77 insertions(+), 11 deletions(-) create mode 100644 plugins/spectrum_analyzer/background.png create mode 100644 plugins/spectrum_analyzer/spectrum_background.png create mode 100644 plugins/spectrum_analyzer/spectrum_background_plain.png diff --git a/ChangeLog b/ChangeLog index 843728a73..a6dc55873 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2008-06-14 Tobias Doerffel + * plugins/spectrum_analyzer/background.png: + * plugins/spectrum_analyzer/spectrum_background.png: + * plugins/spectrum_analyzer/spectrum_background_plain.png: + * plugins/spectrum_analyzer/spectrumanalyzer_control_dialog.cpp: + * plugins/spectrum_analyzer/spectrum_analyzer.h: + improved appearence of Spectrum Analzyer + * configure.in: * plugins/Makefile.am: * plugins/spectrum_analyzer/Makefile.am: diff --git a/plugins/spectrum_analyzer/background.png b/plugins/spectrum_analyzer/background.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d5d5da6813e7f5a50e51def6690fef006735d7 GIT binary patch literal 25366 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

uk;zW`PusojZRjaTn)7I;n&U;T75 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 literal 0 HcmV?d00001 diff --git a/plugins/spectrum_analyzer/spectrum_analyzer.h b/plugins/spectrum_analyzer/spectrum_analyzer.h index b37521534..b6a89a006 100644 --- a/plugins/spectrum_analyzer/spectrum_analyzer.h +++ b/plugins/spectrum_analyzer/spectrum_analyzer.h @@ -32,7 +32,7 @@ #include "spectrumanalyzer_controls.h" -const int MAX_BANDS = 400; +const int MAX_BANDS = 249; const int BUFFER_SIZE = 2048; diff --git a/plugins/spectrum_analyzer/spectrum_background.png b/plugins/spectrum_analyzer/spectrum_background.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f1ea65b2ae1124c4cc313e4f0af52b9d4df445 GIT binary patch literal 13385 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 literal 0 HcmV?d00001 diff --git a/plugins/spectrum_analyzer/spectrumanalyzer_control_dialog.cpp b/plugins/spectrum_analyzer/spectrumanalyzer_control_dialog.cpp index 3d28325d5..7cd6e557e 100644 --- a/plugins/spectrum_analyzer/spectrumanalyzer_control_dialog.cpp +++ b/plugins/spectrum_analyzer/spectrumanalyzer_control_dialog.cpp @@ -29,6 +29,26 @@ #include "spectrum_analyzer.h" #include "song_editor.h" #include "led_checkbox.h" +#include "embed.h" + + +inline void darken( QImage & _i, int _x, int _y, int _w, int _h ) +{ + uchar * d = _i.scanLine( _y ) + _x * sizeof( QRgb ); + const int add = ( _i.width() - _w ) * sizeof( QRgb ); + for( int y = 0; y < _h; ++y ) + { + for( int x = 0; x < _w; ++x ) + { + *d = *d >> 1; ++d; + *d = *d >> 1; ++d; + *d = *d >> 1; ++d; + ++d; + } + d += add; + } +} + class spectrumView : public QWidget @@ -36,11 +56,14 @@ class spectrumView : public QWidget public: spectrumView( spectrumAnalyzer * _s, QWidget * _parent ) : QWidget( _parent ), - m_sa( _s ) + m_sa( _s ), + m_backgroundPlain( PLUGIN_NAME::getIconPixmap( "spectrum_background_plain" ).toImage() ), + m_background( PLUGIN_NAME::getIconPixmap( "spectrum_background" ).toImage() ) { - setFixedSize( 400, 200 ); + setFixedSize( 249, 151 ); connect( engine::getSongEditor(), SIGNAL( periodicUpdate() ), this, SLOT( update() ) ); + setAttribute( Qt::WA_OpaquePaintEvent, TRUE ); } virtual ~spectrumView() @@ -50,10 +73,13 @@ public: virtual void paintEvent( QPaintEvent * _pe ) { QPainter p( this ); - p.fillRect( rect(), Qt::black ); + QImage i = m_sa->m_saControls.m_linearSpec.value() ? + m_backgroundPlain : m_background; const double e = m_sa->m_energy; if( e <= 0 ) { + darken( i, 0, 0, i.width(), i.height() ); + p.drawImage( 0, 0, i ); return; } @@ -63,7 +89,6 @@ public: int h; if( m_sa->m_saControls.m_linearSpec.value() ) { - p.setPen( QColor( 0, 255, 0 ) ); for( int x = 0; x < MAX_BANDS; ++x, ++b ) { if( lin_y ) @@ -74,7 +99,15 @@ public: { h = (int)( height() * (20*(log10( *b / e ) ) - LOWER_Y ) / (-LOWER_Y ) ); } - p.drawLine( x, height(), x, height()-h ); + if( h < 0 ) + { + h = 0; + } + else if( h > height() ) + { + h = height(); + } + darken( i, x, 0, 1, height()-h ); } } else @@ -89,13 +122,29 @@ public: { h = (int)( height() * (20*(log10( *b / e ) ) - LOWER_Y ) / (-LOWER_Y ) ); } - p.fillRect( x*13, height()-h, 11, h, QColor( 0, 255, 0 ) ); + if( h < 0 ) + { + h = 0; + } + else if( h > height() ) + { + h = height(); + } + else + { + h = ( h / 3 ) * 3; + } + darken( i, x*8, 0, 8, height()-h ); } + darken( i, 31*8, 0, 1, height() ); } + p.drawImage( 0, 0, i ); } private: spectrumAnalyzer * m_sa; + QImage m_backgroundPlain; + QImage m_background; } ; @@ -104,16 +153,26 @@ spectrumAnalyzerControlDialog::spectrumAnalyzerControlDialog( spectrumAnalyzerControls * _controls ) : effectControlDialog( _controls ) { - QVBoxLayout * l = new QVBoxLayout( this ); + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), + PLUGIN_NAME::getIconPixmap( "background" ) ); + setFixedSize( 280, 243 ); + setPalette( pal ); +/* QVBoxLayout * l = new QVBoxLayout( this );*/ spectrumView * v = new spectrumView( _controls->m_effect, this ); + v->move( 24, 30 ); ledCheckBox * lin_spec = new ledCheckBox( tr( "Linear spectrum" ), this ); - ledCheckBox * lin_y = new ledCheckBox( tr( "Linear Y axis" ), this ); + lin_spec->move( 24, 204 ); lin_spec->setModel( &_controls->m_linearSpec ); + + ledCheckBox * lin_y = new ledCheckBox( tr( "Linear Y axis" ), this ); + lin_y->move( 24, 220 ); lin_y->setModel( &_controls->m_linearYAxis ); - l->addWidget( v ); +/* l->addWidget( v ); l->addWidget( lin_spec ); - l->addWidget( lin_y ); + l->addWidget( lin_y );*/ }