///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2015 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
+// (at your option) any later version, but always including the *additional*
+// restrictions defined in the "License.txt" file.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include "Thread_CueSplitter.h"
+//Internal
#include "Global.h"
#include "LockedFile.h"
#include "Model_AudioFile.h"
#include "Registry_Decoder.h"
#include "Decoder_Abstract.h"
+//MUtils
+#include <MUtils/Global.h>
+#include <MUtils/OSSupport.h>
+
+//Qt
#include <QDir>
#include <QFileInfo>
#include <QProcess>
#include <QTime>
#include <QDebug>
+//CRT
#include <math.h>
#include <float.h>
#include <limits>
m_model(model),
m_outputDir(outputDir),
m_baseName(baseName),
- m_soxBin(lamexp_lookup_tool("sox.exe"))
+ m_soxBin(lamexp_tools_lookup("sox.exe"))
{
if(m_soxBin.isEmpty())
{
for(int i = 0; i < nInputFiles; i++)
{
m_inputFilesInfo.insert(inputFilesInfo[i].filePath(), inputFilesInfo[i]);
- qDebug("File %02d: <%s>", i, inputFilesInfo[i].filePath().toUtf8().constData());
+ qDebug("File %02d: <%s>", i, MUTILS_UTF8(inputFilesInfo[i].filePath()));
}
qDebug("All input files added.");
{
while(!m_tempFiles.isEmpty())
{
- lamexp_remove_file(m_tempFiles.takeFirst());
+ MUtils::remove_file(m_tempFiles.takeFirst());
}
}
if(!QDir(m_outputDir).exists())
{
- qWarning("Output directory \"%s\" does not exist!", m_outputDir.toUtf8().constData());
+ qWarning("Output directory \"%s\" does not exist!", MUTILS_UTF8(m_outputDir));
return;
}
emit fileSelected(m_activeFile);
emit progressValChanged(i+1);
- QString tempFile = QString("%1/~%2.wav").arg(m_outputDir, lamexp_rand_str());
+ QString tempFile = QString("%1/~%2.wav").arg(m_outputDir, MUtils::rand_str());
connect(decoder, SIGNAL(statusUpdated(int)), this, SLOT(handleUpdate(int)), Qt::DirectConnection);
if(decoder->decode(inputFileList.at(i), tempFile, &m_abortFlag))
else
{
qWarning("Failed to decompress file: <%s>", inputFileList.at(i).toLatin1().constData());
- lamexp_remove_file(tempFile);
+ MUtils::remove_file(tempFile);
}
m_activeFile.clear();
- LAMEXP_DELETE(decoder);
+ MUTILS_DELETE(decoder);
}
else
{
//Generate output file name
QString trackTitle = trackMetaInfo.title().isEmpty() ? QString().sprintf("Track %02d", trackNo) : trackMetaInfo.title();
- QString outputFile = QString("%1/[%2] %3 - %4.wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), lamexp_clean_filename(m_baseName), lamexp_clean_filename(trackTitle));
+ QString outputFile = QString("%1/[%2] %3 - %4.wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), MUtils::clean_file_name(m_baseName), MUtils::clean_file_name(trackTitle));
for(int n = 2; QFileInfo(outputFile).exists(); n++)
{
- outputFile = QString("%1/[%2] %3 - %4 (%5).wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), lamexp_clean_filename(m_baseName), lamexp_clean_filename(trackTitle), QString::number(n));
+ outputFile = QString("%1/[%2] %3 - %4 (%5).wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), MUtils::clean_file_name(m_baseName), MUtils::clean_file_name(trackTitle), QString::number(n));
}
//Call split function
}
emit progressValChanged(10 * nTracksTotal);
- lamexp_sleep(333);
+ MUtils::OS::sleep_ms(333);
qDebug("All files were split.\n");
m_bSuccess = true;
void CueSplitter::splitFile(const QString &output, const int trackNo, const QString &file, const double offset, const double length, const AudioFileModel_MetaInfo &metaInfo, const int baseProgress)
{
qDebug("[Track %02d]", trackNo);
- qDebug("File: <%s>", file.toUtf8().constData());
+ qDebug("File: <%s>", MUTILS_UTF8(file));
qDebug("Offset: <%f> <%s>", offset, indexToString(offset).toLatin1().constData());
qDebug("Length: <%f> <%s>", length, indexToString(length).toLatin1().constData());
- qDebug("Artist: <%s>", metaInfo.artist().toUtf8().constData());
- qDebug("Title: <%s>", metaInfo.title().toUtf8().constData());
- qDebug("Album: <%s>", metaInfo.album().toUtf8().constData());
+ qDebug("Artist: <%s>", MUTILS_UTF8(metaInfo.artist()));
+ qDebug("Title: <%s>", MUTILS_UTF8(metaInfo.title()));
+ qDebug("Album: <%s>", MUTILS_UTF8(metaInfo.album()));
int prevProgress = baseProgress;
QString baseName = shortName(QFileInfo(output).fileName());
QString decompressedInput = m_decompressedFiles[file];
- qDebug("Input: <%s>", decompressedInput.toUtf8().constData());
+ qDebug("Input: <%s>", MUTILS_UTF8(decompressedInput));
AudioFileModel outFileInfo(output);
outFileInfo.setMetaInfo(metaInfo);
QRegExp rxDuration("Duration\\s*:\\s*(\\d\\d):(\\d\\d):(\\d\\d).(\\d\\d)", Qt::CaseInsensitive);
QProcess process;
- process.setProcessChannelMode(QProcess::MergedChannels);
- process.setReadChannel(QProcess::StandardOutput);
- process.setWorkingDirectory(m_outputDir);
+ MUtils::init_process(process, m_outputDir);
+
process.start(m_soxBin, args);
if(!process.waitForStarted())