ExportProjectDialog: coding style fixes

This commit is contained in:
Tobias Doerffel
2012-11-25 11:45:54 +01:00
parent 3be675ac7b
commit 4a962c58d9
2 changed files with 69 additions and 55 deletions

View File

@@ -2,7 +2,7 @@
* export_project_dialog.h - declaration of class exportProjectDialog which is
* responsible for exporting project
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2012 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -51,10 +51,10 @@ private slots:
void startBtnClicked( void );
void updateTitleBar( int );
void render(ProjectRenderer* renderer);
void multi_render();
ProjectRenderer* prep_render();
void pop_render();
void accept();
void multiRender();
ProjectRenderer* prepRender();
void popRender();
void accept();
private:
QString m_fileName;

View File

@@ -1,7 +1,7 @@
/*
* export_project_dialog.cpp - implementation of dialog for exporting project
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2012 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -87,7 +87,7 @@ exportProjectDialog::exportProjectDialog( const QString & _file_name,
exportProjectDialog::~exportProjectDialog()
{
for( RenderVector::const_iterator it = m_renderers.begin();
for( RenderVector::ConstIterator it = m_renderers.begin();
it != m_renderers.end(); ++it )
{
delete (*it);
@@ -99,27 +99,29 @@ exportProjectDialog::~exportProjectDialog()
void exportProjectDialog::reject()
{
for( RenderVector::const_iterator it = m_renderers.begin();
it != m_renderers.end(); ++it )
for( RenderVector::ConstIterator it = m_renderers.begin(); it != m_renderers.end(); ++it )
{
(*it)->abortProcessing();
}
}
void exportProjectDialog::accept()
{
// If more to render, kick off next render job
if (m_renderers.size() > 0)
if( m_renderers.isEmpty() == false )
{
pop_render( );
popRender();
}
else
{
// If done, then reset mute states
while(!m_unmuted.empty())
while( m_unmuted.isEmpty() == false )
{
track* restore_track = m_unmuted.back();
track* restoreTrack = m_unmuted.back();
m_unmuted.pop_back();
restore_track->setMuted(false);
restoreTrack->setMuted( false );
}
QDialog::accept();
@@ -132,8 +134,7 @@ void exportProjectDialog::accept()
void exportProjectDialog::closeEvent( QCloseEvent * _ce )
{
for( RenderVector::const_iterator it = m_renderers.begin();
it != m_renderers.end(); ++it )
for( RenderVector::ConstIterator it = m_renderers.begin(); it != m_renderers.end(); ++it )
{
if( (*it)->isRunning() )
{
@@ -143,20 +144,23 @@ void exportProjectDialog::closeEvent( QCloseEvent * _ce )
QDialog::closeEvent( _ce );
}
void exportProjectDialog::pop_render() {
void exportProjectDialog::popRender() {
track* render_track = m_tracksToRender.back();
m_tracksToRender.pop_back();
// Set must states for song tracks
for (TrackVector::const_iterator it = m_unmuted.begin();
it != m_unmuted.end(); ++it) {
if ((*it) == render_track)
for( TrackVector::ConstIterator it = m_unmuted.begin(); it != m_unmuted.end(); ++it )
{
if( (*it) == render_track )
{
(*it)->setMuted(false);
} else
(*it)->setMuted( false );
}
else
{
(*it)->setMuted(true);
(*it)->setMuted( true );
}
}
@@ -164,10 +168,10 @@ void exportProjectDialog::pop_render() {
// Pop next render job and start
ProjectRenderer* r = m_renderers.back();
m_renderers.pop_back();
render(r);
render( r );
}
void exportProjectDialog::multi_render()
void exportProjectDialog::multiRender()
{
m_dirName = m_fileName;
QString path = QDir(m_fileName).filePath("text.txt");
@@ -176,24 +180,24 @@ void exportProjectDialog::multi_render()
const trackContainer::trackList & tl = engine::getSong()->tracks();
// Check for all unmuted tracks. Remember list.
for( trackContainer::trackList::const_iterator it = tl.begin();
// Check for all unmuted tracks. Remember list.
for( trackContainer::trackList::ConstIterator it = tl.begin();
it != tl.end(); ++it )
{
track* tk = (*it);
track::TrackTypes type = tk->type();
// Don't mute automation tracks
if (! tk->isMuted() && (
type == track::InstrumentTrack ||
type == track::SampleTrack ))
if ( tk->isMuted() == false &&
( type == track::InstrumentTrack || type == track::SampleTrack ) )
{
m_unmuted.push_back(tk);
QString nextName = tk->name();
nextName = nextName.remove(QRegExp("[^a-zA-Z]"));
QString name = QString("%1_%2.wav").arg(x++).arg(nextName);
m_fileName = QDir(m_dirName).filePath(name);
prep_render();
} else if (! tk->isMuted() && type == track::BBTrack)
prepRender();
}
else if (! tk->isMuted() && type == track::BBTrack )
{
m_unmutedBB.push_back(tk);
}
@@ -202,62 +206,72 @@ void exportProjectDialog::multi_render()
}
const trackContainer::trackList t2 = engine::getBBTrackContainer()->tracks();
for( trackContainer::trackList::const_iterator it = t2.begin();
it != t2.end(); ++it )
for( trackContainer::trackList::ConstIterator it = t2.begin(); it != t2.end(); ++it )
{
track* tk = (*it);
if (! tk->isMuted())
if ( tk->isMuted() == false )
{
m_unmuted.push_back(tk);
QString nextName = tk->name();
nextName = nextName.remove(QRegExp("[^a-zA-Z]"));
QString name = QString("%1_%2.wav").arg(x++).arg(nextName);
m_fileName = QDir(m_dirName).filePath(name);
prep_render();
prepRender();
}
}
m_tracksToRender = m_unmuted;
pop_render( );
popRender();
}
ProjectRenderer* exportProjectDialog::prep_render(
) {
ProjectRenderer* exportProjectDialog::prepRender()
{
mixer::qualitySettings qs =
mixer::qualitySettings(
static_cast<mixer::qualitySettings::Interpolation>(interpolationCB->currentIndex()),
static_cast<mixer::qualitySettings::Oversampling>(oversamplingCB->currentIndex()),
sampleExactControllersCB->isChecked(),
aliasFreeOscillatorsCB->isChecked());
aliasFreeOscillatorsCB->isChecked() );
ProjectRenderer::OutputSettings os = ProjectRenderer::OutputSettings(
samplerateCB->currentText().section(" ", 0, 0).toUInt(), false,
samplerateCB->currentText().section(" ", 0, 0).toUInt(),
false,
bitrateCB->currentText().section(" ", 0, 0).toUInt(),
static_cast<ProjectRenderer::Depths>(depthCB->currentIndex()));
ProjectRenderer* renderer = new ProjectRenderer(qs, os, m_ft, m_fileName);
static_cast<ProjectRenderer::Depths>( depthCB->currentIndex() ) );
ProjectRenderer* renderer = new ProjectRenderer( qs, os, m_ft, m_fileName );
m_renderers.push_back(renderer);
return renderer;
}
void exportProjectDialog::render(ProjectRenderer* renderer)
void exportProjectDialog::render( ProjectRenderer* renderer )
{
if (renderer->isReady()) {
connect(renderer, SIGNAL( progressChanged( int ) ), progressBar,
SLOT( setValue( int ) ));
connect(renderer, SIGNAL( progressChanged( int ) ), this,
SLOT( updateTitleBar( int ) ));
connect(renderer, SIGNAL( finished() ), this, SLOT( accept() ));
connect(renderer, SIGNAL( finished() ), engine::mainWindow(),
SLOT( resetWindowTitle() ));
if( renderer->isReady() )
{
connect( renderer, SIGNAL( progressChanged( int ) ), progressBar, SLOT( setValue( int ) ) );
connect( renderer, SIGNAL( progressChanged( int ) ), this, SLOT( updateTitleBar( int ) )) ;
connect( renderer, SIGNAL( finished() ), this, SLOT( accept() ) );
connect( renderer, SIGNAL( finished() ), engine::mainWindow(), SLOT( resetWindowTitle() ) );
renderer->startProcessing();
} else {
}
else
{
accept();
}
}
void exportProjectDialog::startBtnClicked()
{
m_ft = ProjectRenderer::NumFileFormats;
@@ -290,11 +304,11 @@ void exportProjectDialog::startBtnClicked()
if (m_multiExport==true)
{
multi_render();
multiRender();
}
else
{
render(prep_render());
render(prepRender());
}
}