ExportProjectDialog: added option for exporting song as loop

This patch adds the option to remove the extra silence at the end,
so that the exported song can be seamlessly looped.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This commit is contained in:
Kristi
2011-06-13 23:14:19 +02:00
committed by Tobias Doerffel
parent 312872aed3
commit 8f1657164a
4 changed files with 28 additions and 2 deletions

View File

@@ -109,6 +109,11 @@ public:
return m_exporting;
}
inline void setExportLoop(bool export_loop)
{
m_export_loop = export_loop;
}
inline bool isRecording() const
{
return m_recording;
@@ -118,8 +123,16 @@ public:
inline bool isExportDone() const
{
return m_exporting == true &&
m_playPos[Mode_PlaySong].getTact() >= length() + 1;
if ( m_export_loop )
{
return m_exporting == true &&
m_playPos[Mode_PlaySong].getTact() >= length();
}
else
{
return m_exporting == true &&
m_playPos[Mode_PlaySong].getTact() >= length() + 1;
}
}
inline PlayModes playMode() const
@@ -284,6 +297,7 @@ private:
volatile bool m_recording;
volatile bool m_exporting;
volatile bool m_export_loop;
volatile bool m_playing;
volatile bool m_paused;

View File

@@ -82,6 +82,7 @@ song::song() :
m_modified( false ),
m_recording( false ),
m_exporting( false ),
m_export_loop( false ),
m_playing( false ),
m_paused( false ),
m_loadingProject( false ),
@@ -638,6 +639,7 @@ void song::stopExport()
{
stop();
m_exporting = false;
m_export_loop = false;
}

View File

@@ -27,6 +27,7 @@
#include "ExportProjectDialog.h"
#include "engine.h"
#include "song.h"
#include "MainWindow.h"
#include "ProjectRenderer.h"
#include "ui_ExportProjectDialog.h"
@@ -161,6 +162,8 @@ void ExportProjectDialog::startBtnClicked()
ui->bitrateCB->currentText().section( " ", 0, 0 ).toUInt(),
static_cast<ProjectRenderer::Depths>( ui->depthCB->currentIndex() ) );
engine::getSong()->setExportLoop( ui->exportLoopCB->isChecked() );
m_renderer = new ProjectRenderer( qs, es, ft, m_fileName );
if( m_renderer->isReady() )
{

View File

@@ -284,6 +284,13 @@
</item>
</widget>
</item>
<item>
<widget class="QCheckBox" name="exportLoopCB">
<property name="text">
<string>Export as loop (remove end silence)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="sampleExactControllersCB">
<property name="text">