///////////////////////////////////////////////////////////////////////////////
// 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
return false;
break;
default:
- throw "Bad RC mode specified!";
+ MUTILS_THROW("Bad RC mode specified!");
}
}
return 0;
break;
default:
- throw "Bad RC mode specified!";
+ MUTILS_THROW("Bad RC mode specified!");
}
}
return -1;
break;
default:
- throw "Bad RC mode specified!";
+ MUTILS_THROW("Bad RC mode specified!");
}
}
case SettingsModel::CBRMode:
return -1;
default:
- throw "Bad RC mode specified!";
+ MUTILS_THROW("Bad RC mode specified!");
}
}
static const char* s_description = "Free Lossless Audio Codec (FLAC)";
return s_description;
}
+
+ virtual const char *extension(void) const
+ {
+ static const char* s_extension = "flac";
+ return s_extension;
+ }
}
static const g_flacEncoderInfo;
FLACEncoder::FLACEncoder(void)
:
- m_binary(lamexp_lookup_tool("flac.exe"))
+ m_binary(lamexp_tools_lookup("flac.exe"))
{
if(m_binary.isEmpty())
{
- throw "Error initializing FLAC encoder. Tool 'flac.exe' is not registred!";
+ MUTILS_THROW("Error initializing FLAC encoder. Tool 'flac.exe' is not registred!");
}
}
{
}
-bool FLACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInfo, const QString &outputFile, volatile bool *abortFlag)
+bool FLACEncoder::encode(const QString &sourceFile, const AudioFileModel_MetaInfo &metaInfo, const unsigned int duration, const QString &outputFile, volatile bool *abortFlag)
{
QProcess process;
QStringList args;
args << QString("-%1").arg(QString::number(qBound(0, m_configBitrate, 8)));
args << "--channel-map=none";
- if(!metaInfo.fileName().isEmpty()) args << "-T" << QString("title=%1").arg(cleanTag(metaInfo.fileName()));
- if(!metaInfo.fileArtist().isEmpty()) args << "-T" << QString("artist=%1").arg(cleanTag(metaInfo.fileArtist()));
- if(!metaInfo.fileAlbum().isEmpty()) args << "-T" << QString("album=%1").arg(cleanTag(metaInfo.fileAlbum()));
- if(!metaInfo.fileGenre().isEmpty()) args << "-T" << QString("genre=%1").arg(cleanTag(metaInfo.fileGenre()));
- if(!metaInfo.fileComment().isEmpty()) args << "-T" << QString("comment=%1").arg(cleanTag(metaInfo.fileComment()));
- if(metaInfo.fileYear()) args << "-T" << QString("date=%1").arg(QString::number(metaInfo.fileYear()));
- if(metaInfo.filePosition()) args << "-T" << QString("track=%1").arg(QString::number(metaInfo.filePosition()));
- if(!metaInfo.fileCover().isEmpty()) args << QString("--picture=%1").arg(metaInfo.fileCover());
+ if(!metaInfo.title().isEmpty()) args << "-T" << QString("title=%1").arg(cleanTag(metaInfo.title()));
+ if(!metaInfo.artist().isEmpty()) args << "-T" << QString("artist=%1").arg(cleanTag(metaInfo.artist()));
+ if(!metaInfo.album().isEmpty()) args << "-T" << QString("album=%1").arg(cleanTag(metaInfo.album()));
+ if(!metaInfo.genre().isEmpty()) args << "-T" << QString("genre=%1").arg(cleanTag(metaInfo.genre()));
+ if(!metaInfo.comment().isEmpty()) args << "-T" << QString("comment=%1").arg(cleanTag(metaInfo.comment()));
+ if(metaInfo.year()) args << "-T" << QString("date=%1").arg(QString::number(metaInfo.year()));
+ if(metaInfo.position()) args << "-T" << QString("track=%1").arg(QString::number(metaInfo.position()));
+ if(!metaInfo.cover().isEmpty()) args << QString("--picture=%1").arg(metaInfo.cover());
//args << "--tv" << QString().sprintf("Encoder=LameXP v%d.%02d.%04d [%s]", lamexp_version_major(), lamexp_version_minor(), lamexp_version_build(), lamexp_version_release());
return true;
}
-QString FLACEncoder::extension(void)
-{
- return "flac";
-}
-
bool FLACEncoder::isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion)
{
if(containerType.compare("Wave", Qt::CaseInsensitive) == 0)