replaced surroundArea with panning-knob

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@873 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-04-03 20:25:41 +00:00
parent 98c2a2a3de
commit f1a2d8bce7
2 changed files with 33 additions and 21 deletions

View File

@@ -39,7 +39,6 @@
#include "mixer.h"
#include "piano.h"
#include "effect_chain.h"
#include "surround_area.h"
#include "tab_widget.h"
#include "track.h"
@@ -177,7 +176,7 @@ private:
floatModel m_volumeModel;
surroundAreaModel m_surroundAreaModel;
floatModel m_panningModel;
lcdSpinBoxModel m_effectChannelModel;
@@ -321,7 +320,7 @@ private:
tabWidget * m_generalSettingsWidget;
QLineEdit * m_instrumentNameLE;
volumeKnob * m_volumeKnob;
surroundArea * m_surroundArea;
knob * m_panningKnob;
lcdSpinBox * m_effectChannelNumber;
QPushButton * m_saveSettingsBtn;

View File

@@ -72,6 +72,7 @@
#include "sample_play_handle.h"
#include "song.h"
#include "string_pair_drag.h"
#include "surround_area.h"
#include "tab_widget.h"
#include "tooltip.h"
#include "volume_knob.h"
@@ -108,7 +109,7 @@ instrumentTrack::instrumentTrack( trackContainer * _tc ) :
m_notes(),
m_baseNoteModel( 0, 0, KeysPerOctave * NumOctaves - 1, 1, this ),
m_volumeModel( DefaultVolume, MinVolume, MaxVolume, 1.0f, this ),
m_surroundAreaModel( this, this ),
m_panningModel( DefaultPanning, PanningLeft, PanningRight, 1.0f, this ),
m_effectChannelModel( 0, 0, NumFxChannels, 1, this ),
m_instrument( NULL ),
m_soundShaping( this ),
@@ -177,7 +178,7 @@ void instrumentTrack::processAudioBuffer( sampleFrame * _buf,
return;
}
float v_scale = (float) getVolume() / DefaultVolume;
m_audioPort.getEffects()->startRunning();
// instruments using instrument-play-handles will call this method
@@ -188,14 +189,16 @@ void instrumentTrack::processAudioBuffer( sampleFrame * _buf,
m_soundShaping.processAudioBuffer( _buf, _frames, _n );
v_scale *= ( (float) _n->getVolume() / DefaultVolume );
}
volumeVector v = m_surroundAreaModel.getVolumeVector( v_scale );
m_audioPort.setNextFxChannel( m_effectChannelModel.value() );
engine::getMixer()->bufferToPort( _buf,
( _n != NULL ) ? tMin<f_cnt_t>(
_n->framesLeftForCurrentPeriod(), _frames ) :
_frames,
( _n != NULL ) ? _n->offset() : 0, v, &m_audioPort );
( _n != NULL ) ? _n->offset() : 0,
panningToVolumeVector( m_panningModel.value(),
v_scale ),
&m_audioPort );
}
@@ -661,8 +664,7 @@ void instrumentTrack::saveTrackSpecificSettings( QDomDocument & _doc,
{
_this.setAttribute( "name", name() );
m_volumeModel.saveSettings( _doc, _this, "vol" );
m_surroundAreaModel.saveSettings( _doc, _this, "surpos" );
m_panningModel.saveSettings( _doc, _this, "pan" );
m_effectChannelModel.saveSettings( _doc, _this, "fxch" );
m_baseNoteModel.saveSettings( _doc, _this, "basenote" );
@@ -693,7 +695,17 @@ void instrumentTrack::loadTrackSpecificSettings( const QDomElement & _this )
setName( _this.attribute( "name" ) );
m_volumeModel.loadSettings( _this, "vol" );
m_surroundAreaModel.loadSettings( _this, "surpos" );
// compat-hacks - move to mmp::upgrade
if( _this.hasAttribute( "surpos" ) )
{
surroundAreaModel m( this, this );
m.loadSettings( _this, "surpos" );
m_panningModel.setValue( m.x() * 100 / SURROUND_AREA_SIZE );
}
else
{
m_panningModel.loadSettings( _this, "pan" );
}
m_effectChannelModel.loadSettings( _this, "fxch" );
@@ -1053,35 +1065,36 @@ instrumentTrackWindow::instrumentTrackWindow( instrumentTrackView * _itv ) :
// setup volume-knob
m_volumeKnob = new volumeKnob( knobBright_26, m_generalSettingsWidget,
tr( "Channel volume" ) );
tr( "Instrument volume" ) );
m_volumeKnob->move( 10, 44 );
m_volumeKnob->setHintText( tr( "Channel volume:" ) + " ", "%" );
m_volumeKnob->setHintText( tr( "Volume:" ) + " ", "%" );
m_volumeKnob->setLabel( tr( "VOL" ) );
m_volumeKnob->setWhatsThis( tr( volume_help ) );
// setup surround-area
m_surroundArea = new surroundArea( m_generalSettingsWidget,
tr( "Surround area" ) );
m_surroundArea->move( 20 + m_volumeKnob->width(), 38 );
m_surroundArea->show();
m_surroundArea->setWhatsThis( tr( surroundarea_help ) );
m_panningKnob = new knob( knobBright_26, m_generalSettingsWidget,
tr( "Panning" ) );
m_panningKnob->move( 20 + m_volumeKnob->width(), 44 );
m_panningKnob->setHintText( tr( "Panning:" ) + " ", "" );
m_panningKnob->setLabel( tr( "PAN" ) );
//// m_surroundArea->setWhatsThis( tr( surroundarea_help ) );
// setup spinbox for selecting FX-channel
m_effectChannelNumber = new lcdSpinBox( 2, m_generalSettingsWidget,
tr( "FX channel" ) );
m_effectChannelNumber->setLabel( tr( "FX CHNL" ) );
m_effectChannelNumber->move( m_surroundArea->x() +
m_surroundArea->width() + 16, 40 );
m_effectChannelNumber->move( m_panningKnob->x() +
m_panningKnob->width() + 16, 44 );
m_saveSettingsBtn = new QPushButton( embed::getIconPixmap(
"project_save" ), "",
m_generalSettingsWidget );
m_saveSettingsBtn->setGeometry( m_effectChannelNumber->x() +
m_effectChannelNumber->width() + 20, 40,
m_effectChannelNumber->width() + 20, 44,
32, 32 );
connect( m_saveSettingsBtn, SIGNAL( clicked() ), this,
SLOT( saveSettingsBtnClicked() ) );
@@ -1208,7 +1221,7 @@ void instrumentTrackWindow::modelChanged( void )
Qt::QueuedConnection );
m_volumeKnob->setModel( &m_track->m_volumeModel );
m_surroundArea->setModel( &m_track->m_surroundAreaModel );
m_panningKnob->setModel( &m_track->m_panningModel );
m_effectChannelNumber->setModel( &m_track->m_effectChannelModel );
m_pianoView->setModel( &m_track->m_piano );