From 1f275d562ee0abb4e3a908324dc6c8bc2df094f7 Mon Sep 17 00:00:00 2001 From: Andreas Brandmaier Date: Sat, 21 Jan 2006 21:12:27 +0000 Subject: [PATCH] added smooth button git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@53 0778d3d1-df1d-0410-868b-ea421aaaa00d --- plugins/bit_invader/bit_invader.cpp | 48 ++++++++++++++++++++++++++-- plugins/bit_invader/bit_invader.h | 4 +++ plugins/bit_invader/smooth.png | Bin 0 -> 469 bytes 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 plugins/bit_invader/smooth.png diff --git a/plugins/bit_invader/bit_invader.cpp b/plugins/bit_invader/bit_invader.cpp index 471eedcc5..a3d82b718 100644 --- a/plugins/bit_invader/bit_invader.cpp +++ b/plugins/bit_invader/bit_invader.cpp @@ -95,7 +95,6 @@ bSynth::bSynth(float* shape, int length, float _pitch, bool _interpolation, floa interpolation = _interpolation; // init variables -// sample_length = static_cast(_val1); sample_length = length; sample_shape = new float[sample_length]; @@ -223,9 +222,9 @@ bitInvader::bitInvader( channelTrack * _channel_track ) : m_graph->move(55,120); m_graph->setSamplePointer( sample_shape, sample_length ); - QPixmap p = embed::getIconPixmap("wavegraph") ; + QPixmap p = PLUGIN_NAME::getIconPixmap("wavegraph") ; - m_graph->setBackground( &p ); + m_graph->setBackground( p ); connect( m_graph, SIGNAL ( sampleSizeChanged( float ) ), this, SLOT (sampleSizeChanged( float ) ) ); @@ -296,6 +295,22 @@ bitInvader::bitInvader( channelTrack * _channel_track ) : connect( whiteNoiseWaveBtn, SIGNAL ( clicked ( void ) ), this, SLOT ( noiseWaveClicked( void ) ) ); + + smoothBtn = new pixmapButton( this ); + smoothBtn->move( 55, 225 ); + smoothBtn->setActiveGraphic( PLUGIN_NAME::getIconPixmap( + "smooth" ) ); + smoothBtn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( + "smooth" ) ); + smoothBtn->setChecked( TRUE ); + toolTip::add( smoothBtn, + tr( "Click here to " + "smooth waveform." ) ); + + connect( smoothBtn, SIGNAL ( clicked ( void ) ), + this, SLOT ( smoothClicked( void ) ) ); + + #ifdef QT4 QPalette pal; pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( @@ -521,6 +536,33 @@ QString bitInvader::nodeName( void ) const } +void bitInvader::smoothClicked( void ) +{ + // store values in temporary array + float* temp = new float[sample_length]; + for (int i=0; i < sample_length; i++) + { + temp[i] = sample_shape[i]; + } + + + // Smoothing + sample_shape[0] = temp[0]+temp[sample_length-1] * 0.5f; + for ( int i=1; i < sample_length; i++) + { + sample_shape[i] = (temp[i-1] + temp[i]) * 0.5f; + } + + + // Clean up + delete[] temp; + + // paint + update(); + m_graph->update(); +} + + void bitInvader::playNote( notePlayHandle * _n ) diff --git a/plugins/bit_invader/bit_invader.h b/plugins/bit_invader/bit_invader.h index f23a114cb..7d3ed1160 100644 --- a/plugins/bit_invader/bit_invader.h +++ b/plugins/bit_invader/bit_invader.h @@ -90,8 +90,11 @@ public: public slots: void sampleSizeChanged( float _new_sample_length ); void sampleChanged( void ); + void interpolationToggle( bool value ); void normalizeToggle( bool value ); + void smoothClicked( void ); + void sinWaveClicked( void ); void triangleWaveClicked( void ); void sqrWaveClicked( void ); @@ -111,6 +114,7 @@ private: pixmapButton * sqrWaveBtn; pixmapButton * sawWaveBtn; pixmapButton * whiteNoiseWaveBtn; + pixmapButton * smoothBtn; static QPixmap * s_artwork; diff --git a/plugins/bit_invader/smooth.png b/plugins/bit_invader/smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..feff5b00ea1d3bbe26a82b50d63a01f8603a9851 GIT binary patch literal 469 zcmV;`0V@89P)_C zX>@2HRA^-&M@dak?_?!z0003@Nkl|DYAGY%E%Q2zm)Dm1uOY`T~iO~@h=mzYO8q@=ZW@VMc)``i!i4!Bq{0EWY1 z9LI{HWV6{Qiq0X&aV*P{05HZFV*m&t<#IWn&l5t9$72|Vj^hX+R8<8a0kCZw0Hw6m zYOUAn>2w-JQ7)G&7K^UyhGCf0mH@mhmjHBKmu2~RGC3R$N$l0Kevd%`Wbok1t#)2SNEEc2D<8HSDV4Bqv^t%zI zx~`W>rFOd=$D-fAPf+Q6H9`o^Ip=)4-3|s1sh^~lVHmyMU9DDElq&#*f_8IrJD