diff --git a/docroot/js/mediaplayer.js b/docroot/js/mediaplayer.js
index 2a345e78..b5dfdeb1 100644
--- a/docroot/js/mediaplayer.js
+++ b/docroot/js/mediaplayer.js
@@ -2,15 +2,15 @@
var LMS = LMS || {};
-// Keep in sync with MediaPlayer::TranscodeMode cpp
-const TranscodeMode = {
+// Keep in sync with MediaPlayer::TranscodingMode cpp
+const TranscodingMode = {
Never: 0,
Always: 1,
IfFormatNotSupported: 2,
}
const Mode = {
- Transcode: 1,
+ Transcoding: 1,
File: 2,
}
Object.freeze(Mode);
@@ -22,7 +22,7 @@ LMS.mediaplayer = function () {
let _trackId = null;
let _duration = 0;
let _audioNativeSrc;
- let _audioTranscodeSrc;
+ let _audioTranscodingSrc;
let _settings = {};
let _playedDuration = 0;
let _lastStartPlaying = null;
@@ -236,10 +236,10 @@ LMS.mediaplayer = function () {
let selectedOffset = parseInt(_elems.seek.value, 10);
switch (mode) {
- case Mode.Transcode:
+ case Mode.Transcoding:
_offset = selectedOffset;
_removeAudioSources();
- _addAudioSource(_audioTranscodeSrc + "&offset=" + _offset);
+ _addAudioSource(_audioTranscodingSrc + "&offset=" + _offset);
_elems.audio.load();
_elems.audio.currentTime = 0;
_playTrack();
@@ -270,7 +270,7 @@ LMS.mediaplayer = function () {
});
_elems.audio.addEventListener("canplay", function() {
- if (_getAudioMode() == Mode.Transcode) {
+ if (_getAudioMode() == Mode.Transcoding) {
_elems.transcodingActive.style.display = "inline";
}
else {
@@ -337,7 +337,7 @@ LMS.mediaplayer = function () {
let _getAudioMode = function() {
if (_elems.audio.currentSrc) {
if (_elems.audio.currentSrc.includes("format"))
- return Mode.Transcode;
+ return Mode.Transcoding;
else
return Mode.File;
}
@@ -353,19 +353,19 @@ LMS.mediaplayer = function () {
_offset = 0;
_duration = params.duration;
_audioNativeSrc = params.nativeResource;
- _audioTranscodeSrc = params.transcodeResource + "&bitrate=" + _settings.transcode.bitrate + "&format=" + _settings.transcode.format;
+ _audioTranscodingSrc = params.transcodingResource + "&bitrate=" + _settings.transcoding.bitrate + "&format=" + _settings.transcoding.format;
_elems.seek.max = _duration;
_removeAudioSources();
// ! order is important
- if (_settings.transcode.mode == TranscodeMode.Never || _settings.transcode.mode == TranscodeMode.IfFormatNotSupported)
+ if (_settings.transcoding.mode == TranscodingMode.Never || _settings.transcoding.mode == TranscodingMode.IfFormatNotSupported)
{
_addAudioSource(_audioNativeSrc);
}
- if (_settings.transcode.mode == TranscodeMode.Always || _settings.transcode.mode == TranscodeMode.IfFormatNotSupported)
+ if (_settings.transcoding.mode == TranscodingMode.Always || _settings.transcoding.mode == TranscodingMode.IfFormatNotSupported)
{
- _addAudioSource(_audioTranscodeSrc);
+ _addAudioSource(_audioTranscodingSrc);
}
_elems.audio.load();
diff --git a/src/libs/av/impl/Transcoder.cpp b/src/libs/av/impl/Transcoder.cpp
index ff932e55..c4c76902 100644
--- a/src/libs/av/impl/Transcoder.cpp
+++ b/src/libs/av/impl/Transcoder.cpp
@@ -31,7 +31,7 @@
namespace Av::Transcoding
{
-#define LOG(sev) LMS_LOG(TRANSCODE, sev) << "[" << _debugId << "] - "
+#define LOG(sev) LMS_LOG(TRANSCODING, sev) << "[" << _debugId << "] - "
static std::atomic
globalId{};
static std::filesystem::path ffmpegPath;
diff --git a/src/libs/av/impl/TranscodingResourceHandler.cpp b/src/libs/av/impl/TranscodingResourceHandler.cpp
index e52552c3..f5d2ca0f 100644
--- a/src/libs/av/impl/TranscodingResourceHandler.cpp
+++ b/src/libs/av/impl/TranscodingResourceHandler.cpp
@@ -43,9 +43,9 @@ namespace Av::Transcoding
, _transcoder{ inputParameters, outputParameters }
{
if (_estimatedContentLength)
- LMS_LOG(TRANSCODE, DEBUG) << "Estimated content length = " << *_estimatedContentLength;
+ LMS_LOG(TRANSCODING, DEBUG) << "Estimated content length = " << *_estimatedContentLength;
else
- LMS_LOG(TRANSCODE, DEBUG) << "Not using estimated content length";
+ LMS_LOG(TRANSCODING, DEBUG) << "Not using estimated content length";
}
Wt::Http::ResponseContinuation* TranscodingResourceHandler::processRequest(const Wt::Http::Request& /*request*/, Wt::Http::Response& response)
@@ -53,11 +53,11 @@ namespace Av::Transcoding
if (_estimatedContentLength)
response.setContentLength(*_estimatedContentLength);
response.setMimeType(_transcoder.getOutputMimeType());
- LMS_LOG(TRANSCODE, DEBUG) << "Transcoder finished = " << _transcoder.finished() << ", total served bytes = " << _totalServedByteCount << ", mime type = " << _transcoder.getOutputMimeType();
+ LMS_LOG(TRANSCODING, DEBUG) << "Transcoder finished = " << _transcoder.finished() << ", total served bytes = " << _totalServedByteCount << ", mime type = " << _transcoder.getOutputMimeType();
if (_bytesReadyCount > 0)
{
- LMS_LOG(TRANSCODE, DEBUG) << "Writing " << _bytesReadyCount << " bytes back to client";
+ LMS_LOG(TRANSCODING, DEBUG) << "Writing " << _bytesReadyCount << " bytes back to client";
response.out().write(reinterpret_cast(&_buffer[0]), _bytesReadyCount);
_totalServedByteCount += _bytesReadyCount;
@@ -70,7 +70,7 @@ namespace Av::Transcoding
continuation->waitForMoreData();
_transcoder.asyncRead(_buffer.data(), _buffer.size(), [=](std::size_t nbBytesRead)
{
- LMS_LOG(TRANSCODE, DEBUG) << "Have " << nbBytesRead << " more bytes to send back";
+ LMS_LOG(TRANSCODING, DEBUG) << "Have " << nbBytesRead << " more bytes to send back";
assert(_bytesReadyCount == 0);
_bytesReadyCount = nbBytesRead;
@@ -86,7 +86,7 @@ namespace Av::Transcoding
{
const std::size_t padSize{ *_estimatedContentLength - _totalServedByteCount };
- LMS_LOG(TRANSCODE, DEBUG) << "Adding " << padSize << " padding bytes";
+ LMS_LOG(TRANSCODING, DEBUG) << "Adding " << padSize << " padding bytes";
for (std::size_t i{}; i < padSize; ++i)
response.out().put(0);
@@ -94,7 +94,7 @@ namespace Av::Transcoding
_totalServedByteCount += padSize;
}
- LMS_LOG(TRANSCODE, DEBUG) << "Transcoding finished. Total served byte count = " << _totalServedByteCount;
+ LMS_LOG(TRANSCODING, DEBUG) << "Transcoding finished. Total served byte count = " << _totalServedByteCount;
}
return {};
diff --git a/src/libs/utils/impl/Logger.cpp b/src/libs/utils/impl/Logger.cpp
index 604a2802..28176166 100644
--- a/src/libs/utils/impl/Logger.cpp
+++ b/src/libs/utils/impl/Logger.cpp
@@ -21,59 +21,59 @@
const char* getModuleName(Module mod)
{
- switch (mod)
- {
- case Module::API_SUBSONIC: return "API_SUBSONIC";
- case Module::AUTH: return "AUTH";
- case Module::AV: return "AV";
- case Module::CHILDPROCESS: return "CHILDPROC";
- case Module::COVER: return "COVER";
- case Module::DB: return "DB";
- case Module::DBUPDATER: return "DB UPDATER";
- case Module::FEATURE: return "FEATURE";
- case Module::FEEDBACK: return "FEEDBACK";
- case Module::HTTP: return "HTTP";
- case Module::MAIN: return "MAIN";
- case Module::METADATA: return "METADATA";
- case Module::REMOTE: return "REMOTE";
- case Module::SCROBBLING: return "SCROBBLING";
- case Module::SERVICE: return "SERVICE";
- case Module::RECOMMENDATION: return "RECOMMENDATION";
- case Module::TRANSCODE: return "TRANSCODE";
- case Module::UI: return "UI";
- case Module::UTILS: return "UTILS";
- }
- return "";
+ switch (mod)
+ {
+ case Module::API_SUBSONIC: return "API_SUBSONIC";
+ case Module::AUTH: return "AUTH";
+ case Module::AV: return "AV";
+ case Module::CHILDPROCESS: return "CHILDPROC";
+ case Module::COVER: return "COVER";
+ case Module::DB: return "DB";
+ case Module::DBUPDATER: return "DB UPDATER";
+ case Module::FEATURE: return "FEATURE";
+ case Module::FEEDBACK: return "FEEDBACK";
+ case Module::HTTP: return "HTTP";
+ case Module::MAIN: return "MAIN";
+ case Module::METADATA: return "METADATA";
+ case Module::REMOTE: return "REMOTE";
+ case Module::SCROBBLING: return "SCROBBLING";
+ case Module::SERVICE: return "SERVICE";
+ case Module::RECOMMENDATION: return "RECOMMENDATION";
+ case Module::TRANSCODING: return "TRANSCODING";
+ case Module::UI: return "UI";
+ case Module::UTILS: return "UTILS";
+ }
+ return "";
}
const char* getSeverityName(Severity sev)
{
- switch (sev)
- {
- case Severity::FATAL: return "fatal";
- case Severity::ERROR: return "error";
- case Severity::WARNING: return "warning";
- case Severity::INFO: return "info";
- case Severity::DEBUG: return "debug";
- }
- return "";
+ switch (sev)
+ {
+ case Severity::FATAL: return "fatal";
+ case Severity::ERROR: return "error";
+ case Severity::WARNING: return "warning";
+ case Severity::INFO: return "info";
+ case Severity::DEBUG: return "debug";
+ }
+ return "";
}
Log::Log(Logger* logger, Module module, Severity severity)
- : _module {module},
- _severity {severity},
- _logger {logger}
+ : _module{ module },
+ _severity{ severity },
+ _logger{ logger }
{}
Log::~Log()
{
- if (_logger)
- _logger->processLog(*this);
+ if (_logger)
+ _logger->processLog(*this);
}
std::string
Log::getMessage() const
{
- return _oss.str();
+ return _oss.str();
}
diff --git a/src/libs/utils/include/utils/Logger.hpp b/src/libs/utils/include/utils/Logger.hpp
index f7a48916..d14fe5ab 100644
--- a/src/libs/utils/include/utils/Logger.hpp
+++ b/src/libs/utils/include/utils/Logger.hpp
@@ -51,7 +51,7 @@ enum class Module
SCROBBLING,
SERVICE,
RECOMMENDATION,
- TRANSCODE,
+ TRANSCODING,
UI,
UTILS,
};
diff --git a/src/lms/CMakeLists.txt b/src/lms/CMakeLists.txt
index b42f9023..494d727e 100644
--- a/src/lms/CMakeLists.txt
+++ b/src/lms/CMakeLists.txt
@@ -44,7 +44,7 @@ add_executable(lms
ui/explore/TrackListsView.cpp
ui/explore/TracksView.cpp
ui/resource/AudioFileResource.cpp
- ui/resource/AudioTranscodeResource.cpp
+ ui/resource/AudioTranscodingResource.cpp
ui/resource/CoverResource.cpp
ui/resource/DownloadResource.cpp
)
diff --git a/src/lms/ui/LmsApplication.cpp b/src/lms/ui/LmsApplication.cpp
index 60de0f36..0b7463f0 100644
--- a/src/lms/ui/LmsApplication.cpp
+++ b/src/lms/ui/LmsApplication.cpp
@@ -49,7 +49,7 @@
#include "explore/Explore.hpp"
#include "explore/Filters.hpp"
#include "resource/AudioFileResource.hpp"
-#include "resource/AudioTranscodeResource.hpp"
+#include "resource/AudioTranscodingResource.hpp"
#include "resource/DownloadResource.hpp"
#include "resource/CoverResource.hpp"
#include "Auth.hpp"
diff --git a/src/lms/ui/MediaPlayer.cpp b/src/lms/ui/MediaPlayer.cpp
index dfd9db66..96e7413f 100644
--- a/src/lms/ui/MediaPlayer.cpp
+++ b/src/lms/ui/MediaPlayer.cpp
@@ -35,7 +35,7 @@
#include "services/database/User.hpp"
#include "resource/CoverResource.hpp"
-#include "resource/AudioTranscodeResource.hpp"
+#include "resource/AudioTranscodingResource.hpp"
#include "resource/AudioFileResource.hpp"
#include "utils/String.hpp"
@@ -44,304 +44,295 @@
#include "LmsApplication.hpp"
#include "Utils.hpp"
-namespace UserInterface {
-
-static std::string settingsToJSString(const MediaPlayer::Settings& settings)
+namespace UserInterface
{
- namespace Json = Wt::Json;
+ namespace
+ {
+ std::string settingsToJSString(const MediaPlayer::Settings& settings)
+ {
+ namespace Json = Wt::Json;
- Json::Object res;
+ Json::Object res;
- {
- Json::Object transcode;
- transcode["mode"] = static_cast(settings.transcode.mode);
- transcode["format"] = static_cast(settings.transcode.format);
- transcode["bitrate"] = static_cast(settings.transcode.bitrate);
- res["transcode"] = std::move(transcode);
- }
+ {
+ Json::Object transcoding;
+ transcoding["mode"] = static_cast(settings.transcoding.mode);
+ transcoding["format"] = static_cast(settings.transcoding.format);
+ transcoding["bitrate"] = static_cast(settings.transcoding.bitrate);
+ res["transcoding"] = std::move(transcoding);
+ }
- {
- Json::Object replayGain;
- replayGain["mode"] = static_cast(settings.replayGain.mode);
- replayGain["preAmpGain"] = settings.replayGain.preAmpGain;
- replayGain["preAmpGainIfNoInfo"] = settings.replayGain.preAmpGainIfNoInfo;
- res["replayGain"] = std::move(replayGain);
- }
+ {
+ Json::Object replayGain;
+ replayGain["mode"] = static_cast(settings.replayGain.mode);
+ replayGain["preAmpGain"] = settings.replayGain.preAmpGain;
+ replayGain["preAmpGainIfNoInfo"] = settings.replayGain.preAmpGainIfNoInfo;
+ res["replayGain"] = std::move(replayGain);
+ }
- return Json::serialize(res);
-}
+ return Json::serialize(res);
+ }
-static
-std::optional
-transcodeModeFromString(const std::string& str)
-{
- const auto value {StringUtils::readAs(str)};
- if (!value)
- return std::nullopt;
+ std::optional transcodingModeFromString(const std::string& str)
+ {
+ const auto value{ StringUtils::readAs(str) };
+ if (!value)
+ return std::nullopt;
- MediaPlayer::Settings::Transcode::Mode mode {static_cast(*value)};
- switch (mode)
- {
- case MediaPlayer::Settings::Transcode::Mode::Never:
- case MediaPlayer::Settings::Transcode::Mode::Always:
- case MediaPlayer::Settings::Transcode::Mode::IfFormatNotSupported:
- return mode;
- }
+ MediaPlayer::Settings::Transcoding::Mode mode{ static_cast(*value) };
+ switch (mode)
+ {
+ case MediaPlayer::Settings::Transcoding::Mode::Never:
+ case MediaPlayer::Settings::Transcoding::Mode::Always:
+ case MediaPlayer::Settings::Transcoding::Mode::IfFormatNotSupported:
+ return mode;
+ }
- return std::nullopt;
-}
+ return std::nullopt;
+ }
-static
-std::optional
-formatFromString(const std::string& str)
-{
- const auto value {StringUtils::readAs(str)};
- if (!value)
- return std::nullopt;
+ std::optional formatFromString(const std::string& str)
+ {
+ const auto value{ StringUtils::readAs(str) };
+ if (!value)
+ return std::nullopt;
- MediaPlayer::Format format {static_cast(*value)};
- switch (format)
- {
- case MediaPlayer::Format::MP3:
- case MediaPlayer::Format::OGG_OPUS:
- case MediaPlayer::Format::MATROSKA_OPUS:
- case MediaPlayer::Format::OGG_VORBIS:
- case MediaPlayer::Format::WEBM_VORBIS:
- return format;
- }
+ MediaPlayer::Format format{ static_cast(*value) };
+ switch (format)
+ {
+ case MediaPlayer::Format::MP3:
+ case MediaPlayer::Format::OGG_OPUS:
+ case MediaPlayer::Format::MATROSKA_OPUS:
+ case MediaPlayer::Format::OGG_VORBIS:
+ case MediaPlayer::Format::WEBM_VORBIS:
+ return format;
+ }
- return std::nullopt;
-}
+ return std::nullopt;
+ }
-static
-std::optional
-bitrateFromString(const std::string& str)
-{
- const auto value {StringUtils::readAs(str)};
- if (!value)
- return std::nullopt;
+ std::optional bitrateFromString(const std::string& str)
+ {
+ const auto value{ StringUtils::readAs(str) };
+ if (!value)
+ return std::nullopt;
- if (!Database::isAudioBitrateAllowed(*value))
- return std::nullopt;
+ if (!Database::isAudioBitrateAllowed(*value))
+ return std::nullopt;
- return *value;
-}
+ return *value;
+ }
-static
-std::optional
-replayGainModeFromString(const std::string& str)
-{
- const auto value {StringUtils::readAs(str)};
- if (!value)
- return std::nullopt;
+ std::optional replayGainModeFromString(const std::string& str)
+ {
+ const auto value{ StringUtils::readAs(str) };
+ if (!value)
+ return std::nullopt;
- MediaPlayer::Settings::ReplayGain::Mode mode {static_cast(*value)};
- switch (mode)
- {
- case MediaPlayer::Settings::ReplayGain::Mode::None:
- case MediaPlayer::Settings::ReplayGain::Mode::Auto:
- case MediaPlayer::Settings::ReplayGain::Mode::Track:
- case MediaPlayer::Settings::ReplayGain::Mode::Release:
- return mode;
- }
+ MediaPlayer::Settings::ReplayGain::Mode mode{ static_cast(*value) };
+ switch (mode)
+ {
+ case MediaPlayer::Settings::ReplayGain::Mode::None:
+ case MediaPlayer::Settings::ReplayGain::Mode::Auto:
+ case MediaPlayer::Settings::ReplayGain::Mode::Track:
+ case MediaPlayer::Settings::ReplayGain::Mode::Release:
+ return mode;
+ }
- return std::nullopt;
-}
+ return std::nullopt;
+ }
-static
-std::optional
-replayGainPreAmpGainFromString(const std::string& str)
-{
- const auto value {StringUtils::readAs(str)};
- if (!value)
- return std::nullopt;
+ std::optional replayGainPreAmpGainFromString(const std::string& str)
+ {
+ const auto value{ StringUtils::readAs(str) };
+ if (!value)
+ return std::nullopt;
- return ::Utils::clamp(*value, (double)MediaPlayer::Settings::ReplayGain::minPreAmpGain, (double)MediaPlayer::Settings::ReplayGain::maxPreAmpGain);
-}
+ return ::Utils::clamp(*value, (double)MediaPlayer::Settings::ReplayGain::minPreAmpGain, (double)MediaPlayer::Settings::ReplayGain::maxPreAmpGain);
+ }
-static MediaPlayer::Settings settingsfromJSString(const std::string& strSettings)
-{
- using Settings = MediaPlayer::Settings;
- namespace Json = Wt::Json;
- Json::Object parsedSettings;
+ MediaPlayer::Settings settingsfromJSString(const std::string& strSettings)
+ {
+ using Settings = MediaPlayer::Settings;
+ namespace Json = Wt::Json;
+ Json::Object parsedSettings;
- Json::parse(strSettings, parsedSettings);
+ Json::parse(strSettings, parsedSettings);
- MediaPlayer::Settings settings;
+ MediaPlayer::Settings settings;
- {
- const Json::Value transcodeValue {parsedSettings.get("transcode")};
- if (transcodeValue.type() == Json::Type::Object)
- {
- const Json::Object transcode {transcodeValue};
- settings.transcode.mode = transcodeModeFromString(transcode.get("mode").toString().orIfNull("")).value_or(Settings::Transcode::defaultMode);
- settings.transcode.format = formatFromString(transcode.get("format").toString().orIfNull("")).value_or(Settings::Transcode::defaultFormat);
- settings.transcode.bitrate = bitrateFromString(transcode.get("bitrate").toString().orIfNull("")).value_or(Settings::Transcode::defaultBitrate);
- }
- }
- {
- const Json::Value replayGainValue {parsedSettings.get("replayGain")};
- if (replayGainValue.type() == Json::Type::Object)
- {
- const Json::Object replayGain {replayGainValue};
- settings.replayGain.mode = replayGainModeFromString(replayGain.get("mode").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultMode);
- settings.replayGain.preAmpGain = replayGainPreAmpGainFromString(replayGain.get("preAmpGain").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultPreAmpGain);
- settings.replayGain.preAmpGainIfNoInfo = replayGainPreAmpGainFromString(replayGain.get("preAmpGainIfNoInfo").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultPreAmpGain);
- }
- }
+ {
+ const Json::Value transcodingValue{ parsedSettings.get("transcoding") };
+ if (transcodingValue.type() == Json::Type::Object)
+ {
+ const Json::Object transcoding{ transcodingValue };
+ settings.transcoding.mode = transcodingModeFromString(transcoding.get("mode").toString().orIfNull("")).value_or(Settings::Transcoding::defaultMode);
+ settings.transcoding.format = formatFromString(transcoding.get("format").toString().orIfNull("")).value_or(Settings::Transcoding::defaultFormat);
+ settings.transcoding.bitrate = bitrateFromString(transcoding.get("bitrate").toString().orIfNull("")).value_or(Settings::Transcoding::defaultBitrate);
+ }
+ }
+ {
+ const Json::Value replayGainValue{ parsedSettings.get("replayGain") };
+ if (replayGainValue.type() == Json::Type::Object)
+ {
+ const Json::Object replayGain{ replayGainValue };
+ settings.replayGain.mode = replayGainModeFromString(replayGain.get("mode").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultMode);
+ settings.replayGain.preAmpGain = replayGainPreAmpGainFromString(replayGain.get("preAmpGain").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultPreAmpGain);
+ settings.replayGain.preAmpGainIfNoInfo = replayGainPreAmpGainFromString(replayGain.get("preAmpGainIfNoInfo").toString().orIfNull("")).value_or(Settings::ReplayGain::defaultPreAmpGain);
+ }
+ }
- return settings;
-}
+ return settings;
+ }
+ }
-MediaPlayer::MediaPlayer()
-: Wt::WTemplate {Wt::WString::tr("Lms.MediaPlayer.template")}
-, playPrevious {this, "playPrevious"}
-, playNext {this, "playNext"}
-, scrobbleListenNow {this, "scrobbleListenNow"}
-, scrobbleListenFinished {this, "scrobbleListenFinished"}
-, playbackEnded {this, "playbackEnded"}
-, _settingsLoaded {this, "settingsLoaded"}
-{
- addFunction("tr", &Wt::WTemplate::Functions::tr);
+ MediaPlayer::MediaPlayer()
+ : Wt::WTemplate{ Wt::WString::tr("Lms.MediaPlayer.template") }
+ , playPrevious{ this, "playPrevious" }
+ , playNext{ this, "playNext" }
+ , scrobbleListenNow{ this, "scrobbleListenNow" }
+ , scrobbleListenFinished{ this, "scrobbleListenFinished" }
+ , playbackEnded{ this, "playbackEnded" }
+ , _settingsLoaded{ this, "settingsLoaded" }
+ {
+ addFunction("tr", &Wt::WTemplate::Functions::tr);
- _audioTranscodeResource = std::make_unique();
- _audioFileResource = std::make_unique();
+ _audioTranscodingResource = std::make_unique();
+ _audioFileResource = std::make_unique();
- _title = bindNew("title");
- _artist = bindNew("artist");
- _release = bindNew("release");
- _separator = bindNew("separator");
- _playQueue = bindNew("playqueue-btn", Wt::WString::tr("Lms.MediaPlayer.template.playqueue-btn").arg(0), Wt::TextFormat::XHTML);
- _playQueue->setLink(Wt::WLink {Wt::LinkType::InternalPath, "/playqueue"});
- _playQueue->setToolTip(tr("Lms.PlayQueue.playqueue"));
+ _title = bindNew("title");
+ _artist = bindNew("artist");
+ _release = bindNew("release");
+ _separator = bindNew("separator");
+ _playQueue = bindNew("playqueue-btn", Wt::WString::tr("Lms.MediaPlayer.template.playqueue-btn").arg(0), Wt::TextFormat::XHTML);
+ _playQueue->setLink(Wt::WLink{ Wt::LinkType::InternalPath, "/playqueue" });
+ _playQueue->setToolTip(tr("Lms.PlayQueue.playqueue"));
- _settingsLoaded.connect([this](const std::string& settings)
- {
- LMS_LOG(UI, DEBUG) << "Settings loaded! '" << settings << "'";
+ _settingsLoaded.connect([this](const std::string& settings)
+ {
+ LMS_LOG(UI, DEBUG) << "Settings loaded! '" << settings << "'";
- _settings = settingsfromJSString(settings);
+ _settings = settingsfromJSString(settings);
- settingsLoaded.emit();
- });
+ settingsLoaded.emit();
+ });
- {
- Settings defaultSettings;
+ {
+ Settings defaultSettings;
- std::ostringstream oss;
- oss << "LMS.mediaplayer.init("
- << jsRef()
- << ", defaultSettings = " << settingsToJSString(defaultSettings)
- << ")";
+ std::ostringstream oss;
+ oss << "LMS.mediaplayer.init("
+ << jsRef()
+ << ", defaultSettings = " << settingsToJSString(defaultSettings)
+ << ")";
- LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
- doJavaScript(oss.str());
- }
-}
+ LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
+ doJavaScript(oss.str());
+ }
+ }
-void
-MediaPlayer::loadTrack(Database::TrackId trackId, bool play, float replayGain)
-{
- LMS_LOG(UI, DEBUG) << "Playing track ID = " << trackId.toString();
+ void MediaPlayer::loadTrack(Database::TrackId trackId, bool play, float replayGain)
+ {
+ LMS_LOG(UI, DEBUG) << "Playing track ID = " << trackId.toString();
- std::ostringstream oss;
- {
- auto transaction {LmsApp->getDbSession().createSharedTransaction()};
+ std::ostringstream oss;
+ {
+ auto transaction{ LmsApp->getDbSession().createSharedTransaction() };
- const auto track {Database::Track::find(LmsApp->getDbSession(), trackId)};
- if (!track)
- return;
+ const auto track{ Database::Track::find(LmsApp->getDbSession(), trackId) };
+ if (!track)
+ return;
- const std::string transcodeResource {_audioTranscodeResource->getUrl(trackId)};
- const std::string nativeResource {_audioFileResource->getUrl(trackId)};
+ const std::string transcodingResource{ _audioTranscodingResource->getUrl(trackId) };
+ const std::string nativeResource{ _audioFileResource->getUrl(trackId) };
- const auto artists {track->getArtists({Database::TrackArtistLinkType::Artist})};
+ const auto artists{ track->getArtists({Database::TrackArtistLinkType::Artist}) };
- oss
- << "var params = {"
- << " trackId :\"" << trackId.toString() << "\","
- << " nativeResource: \"" << nativeResource << "\","
- << " transcodeResource: \"" << transcodeResource << "\","
- << " duration: " << std::chrono::duration_cast(track->getDuration()).count() << ","
- << " replayGain: " << replayGain << ","
- << " title: \"" << StringUtils::jsEscape(track->getName()) << "\","
- << " artist: \"" << (!artists.empty() ? StringUtils::jsEscape(artists.front()->getName()) : "") << "\","
- << " release: \"" << (track->getRelease() ? StringUtils::jsEscape(track->getRelease()->getName()) : "") << "\","
- << " artwork: ["
- << " { src: \"" << LmsApp->getCoverResource()->getTrackUrl(trackId, CoverResource::Size::Small) << "\", sizes: \"128x128\", type: \"image/jpeg\" },"
- << " { src: \"" << LmsApp->getCoverResource()->getTrackUrl(trackId, CoverResource::Size::Large) << "\", sizes: \"512x512\", type: \"image/jpeg\" },"
- << " ]"
- << "};";
- oss << "LMS.mediaplayer.loadTrack(params, " << (play ? "true" : "false") << ")"; // true to autoplay
+ oss
+ << "var params = {"
+ << " trackId :\"" << trackId.toString() << "\","
+ << " nativeResource: \"" << nativeResource << "\","
+ << " transcodingResource: \"" << transcodingResource << "\","
+ << " duration: " << std::chrono::duration_cast(track->getDuration()).count() << ","
+ << " replayGain: " << replayGain << ","
+ << " title: \"" << StringUtils::jsEscape(track->getName()) << "\","
+ << " artist: \"" << (!artists.empty() ? StringUtils::jsEscape(artists.front()->getName()) : "") << "\","
+ << " release: \"" << (track->getRelease() ? StringUtils::jsEscape(track->getRelease()->getName()) : "") << "\","
+ << " artwork: ["
+ << " { src: \"" << LmsApp->getCoverResource()->getTrackUrl(trackId, CoverResource::Size::Small) << "\", sizes: \"128x128\", type: \"image/jpeg\" },"
+ << " { src: \"" << LmsApp->getCoverResource()->getTrackUrl(trackId, CoverResource::Size::Large) << "\", sizes: \"512x512\", type: \"image/jpeg\" },"
+ << " ]"
+ << "};";
+ // Update 'sizes' above to match this:
+ static_assert(static_cast>(CoverResource::Size::Small) == 128);
+ static_assert(static_cast>(CoverResource::Size::Large) == 512);
+ oss << "LMS.mediaplayer.loadTrack(params, " << (play ? "true" : "false") << ")"; // true to autoplay
- _title->setTextFormat(Wt::TextFormat::Plain);
- _title->setText(Wt::WString::fromUTF8(track->getName()));
+ _title->setTextFormat(Wt::TextFormat::Plain);
+ _title->setText(Wt::WString::fromUTF8(track->getName()));
- bool needSeparator {true};
+ bool needSeparator{ true };
- if (!artists.empty())
- {
- _artist->setTextFormat(Wt::TextFormat::Plain);
- _artist->setText(Wt::WString::fromUTF8(artists.front()->getName()));
- _artist->setLink(Utils::createArtistLink(artists.front()));
- }
- else
- {
- _artist->setText("");
- _artist->setLink({});
- needSeparator = false;
- }
+ if (!artists.empty())
+ {
+ _artist->setTextFormat(Wt::TextFormat::Plain);
+ _artist->setText(Wt::WString::fromUTF8(artists.front()->getName()));
+ _artist->setLink(Utils::createArtistLink(artists.front()));
+ }
+ else
+ {
+ _artist->setText("");
+ _artist->setLink({});
+ needSeparator = false;
+ }
- if (track->getRelease())
- {
- _release->setTextFormat(Wt::TextFormat::Plain);
- _release->setText(Wt::WString::fromUTF8(track->getRelease()->getName()));
- _release->setLink(Utils::createReleaseLink(track->getRelease()));
- }
- else
- {
- _release->setText("");
- _release->setLink({});
- needSeparator = false;
- }
+ if (track->getRelease())
+ {
+ _release->setTextFormat(Wt::TextFormat::Plain);
+ _release->setText(Wt::WString::fromUTF8(track->getRelease()->getName()));
+ _release->setLink(Utils::createReleaseLink(track->getRelease()));
+ }
+ else
+ {
+ _release->setText("");
+ _release->setLink({});
+ needSeparator = false;
+ }
- if (needSeparator)
- _separator->setText(" — ");
- else
- _separator->setText("");
- }
+ if (needSeparator)
+ _separator->setText(" — ");
+ else
+ _separator->setText("");
+ }
- LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
- doJavaScript(oss.str());
+ LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
+ doJavaScript(oss.str());
- _trackIdLoaded = trackId;
- trackLoaded.emit(*_trackIdLoaded);
-}
+ _trackIdLoaded = trackId;
+ trackLoaded.emit(*_trackIdLoaded);
+ }
-void
-MediaPlayer::stop()
-{
- doJavaScript("LMS.mediaplayer.stop()");
-}
+ void MediaPlayer::stop()
+ {
+ doJavaScript("LMS.mediaplayer.stop()");
+ }
-void
-MediaPlayer::setSettings(const Settings& settings)
-{
- _settings = settings;
+ void MediaPlayer::setSettings(const Settings& settings)
+ {
+ _settings = settings;
- {
- std::ostringstream oss;
- oss << "LMS.mediaplayer.setSettings(settings = " << settingsToJSString(settings) << ")";
+ {
+ std::ostringstream oss;
+ oss << "LMS.mediaplayer.setSettings(settings = " << settingsToJSString(settings) << ")";
- LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
- doJavaScript(oss.str());
- }
-}
+ LMS_LOG(UI, DEBUG) << "Running js = '" << oss.str() << "'";
+ doJavaScript(oss.str());
+ }
+ }
-void
-MediaPlayer::onPlayQueueUpdated(std::size_t trackCount)
-{
- _playQueue->setText(Wt::WString::tr("Lms.MediaPlayer.template.playqueue-btn").arg(trackCount));
-}
+ void MediaPlayer::onPlayQueueUpdated(std::size_t trackCount)
+ {
+ _playQueue->setText(Wt::WString::tr("Lms.MediaPlayer.template.playqueue-btn").arg(trackCount));
+ }
} // namespace UserInterface
-
diff --git a/src/lms/ui/MediaPlayer.hpp b/src/lms/ui/MediaPlayer.hpp
index e83806a4..840398aa 100644
--- a/src/lms/ui/MediaPlayer.hpp
+++ b/src/lms/ui/MediaPlayer.hpp
@@ -33,7 +33,7 @@
namespace UserInterface
{
class AudioFileResource;
- class AudioTranscodeResource;
+ class AudioTranscodingResource;
class MediaPlayer : public Wt::WTemplate
{
@@ -47,7 +47,7 @@ namespace UserInterface
struct Settings
{
- struct Transcode
+ struct Transcoding
{
enum class Mode
{
@@ -84,16 +84,14 @@ namespace UserInterface
Gain preAmpGainIfNoInfo{ defaultPreAmpGain };
};
- Transcode transcode;
+ Transcoding transcoding;
ReplayGain replayGain;
};
MediaPlayer();
-
+ ~MediaPlayer() = default;
MediaPlayer(const MediaPlayer&) = delete;
- MediaPlayer(MediaPlayer&&) = delete;
MediaPlayer& operator=(const MediaPlayer&) = delete;
- MediaPlayer& operator=(MediaPlayer&&) = delete;
std::optional getTrackLoaded() const { return _trackIdLoaded; }
@@ -118,7 +116,7 @@ namespace UserInterface
private:
std::unique_ptr _audioFileResource;
- std::unique_ptr _audioTranscodeResource;
+ std::unique_ptr _audioTranscodingResource;
std::optional _trackIdLoaded;
std::optional _settings;
diff --git a/src/lms/ui/SettingsView.cpp b/src/lms/ui/SettingsView.cpp
index 713d827a..ef9a4f89 100644
--- a/src/lms/ui/SettingsView.cpp
+++ b/src/lms/ui/SettingsView.cpp
@@ -44,23 +44,23 @@
#include "LmsApplication.hpp"
#include "MediaPlayer.hpp"
-namespace UserInterface {
-
+namespace UserInterface
+{
using namespace Database;
class SettingsModel : public Wt::WFormModel
{
public:
// Associate each field with a unique string literal.
- static inline const Field TranscodeModeField{ "transcode-mode" };
- static inline const Field TranscodeFormatField{ "transcode-format" };
- static inline const Field TranscodeBitrateField{ "transcode-bitrate" };
+ static inline const Field TranscodingModeField{ "transcoding-mode" };
+ static inline const Field TranscodeFormatField{ "transcoding-output-format" };
+ static inline const Field TranscodeBitrateField{ "transcoding-output-bitrate" };
static inline const Field ReplayGainModeField{ "replaygain-mode" };
static inline const Field ReplayGainPreAmpGainField{ "replaygain-preamp" };
static inline const Field ReplayGainPreAmpGainIfNoInfoField{ "replaygain-preamp-no-rg-info" };
static inline const Field SubsonicArtistListModeField{ "subsonic-artist-list-mode" };
- static inline const Field SubsonicTranscodingOutputFormatField{ "subsonic-transcode-format" };
- static inline const Field SubsonicTranscodingOutputBitrateField{ "subsonic-transcode-bitrate" };
+ static inline const Field SubsonicTranscodingOutputFormatField{ "subsonic-transcoding-output-format" };
+ static inline const Field SubsonicTranscodingOutputBitrateField{ "subsonic-transcoding-output-bitrate" };
static inline const Field FeedbackBackendField{ "feedback-backend" };
static inline const Field ScrobblingBackendField{ "scrobbling-backend" };
static inline const Field ListenBrainzTokenField{ "listenbrainz-token" };
@@ -68,7 +68,7 @@ namespace UserInterface {
static inline const Field PasswordField{ "password" };
static inline const Field PasswordConfirmField{ "password-confirm" };
- using TranscodingModeModel = ValueStringModel;
+ using TranscodingModeModel = ValueStringModel;
using ReplayGainModeModel = ValueStringModel;
using FeedbackBackendModel = ValueStringModel;
using ScrobblingBackendModel = ValueStringModel;
@@ -79,7 +79,7 @@ namespace UserInterface {
{
initializeModels();
- addField(TranscodeModeField);
+ addField(TranscodingModeField);
addField(TranscodeBitrateField);
addField(TranscodeFormatField);
addField(ReplayGainModeField);
@@ -105,7 +105,7 @@ namespace UserInterface {
addField(PasswordConfirmField);
}
- setValidator(TranscodeModeField, createMandatoryValidator());
+ setValidator(TranscodingModeField, createMandatoryValidator());
setValidator(TranscodeBitrateField, createMandatoryValidator());
setValidator(TranscodeFormatField, createMandatoryValidator());
setValidator(ReplayGainModeField, createMandatoryValidator());
@@ -124,7 +124,7 @@ namespace UserInterface {
std::shared_ptr getTranscodingModeModel() { return _transcodingModeModeModel; }
std::shared_ptr getTranscodingOutputBitrateModel() { return _transcodingOutputBitrateModel; }
- std::shared_ptr getTranscodeFormatModel() { return _transcodingOutputFormatModel; }
+ std::shared_ptr getTranscodingOutputFormatModel() { return _transcodingOutputFormatModel; }
std::shared_ptr getReplayGainModeModel() { return _replayGainModeModel; }
std::shared_ptr getSubsonicArtistListModeModel() { return _subsonicArtistListModeModel; }
std::shared_ptr getFeedbackBackendModel() { return _feedbackBackendModel; }
@@ -139,17 +139,17 @@ namespace UserInterface {
{
MediaPlayer::Settings settings;
- auto transcodeModeRow{ _transcodingModeModeModel->getRowFromString(valueText(TranscodeModeField)) };
- if (transcodeModeRow)
- settings.transcode.mode = _transcodingModeModeModel->getValue(*transcodeModeRow);
+ auto transcodingModeRow{ _transcodingModeModeModel->getRowFromString(valueText(TranscodingModeField)) };
+ if (transcodingModeRow)
+ settings.transcoding.mode = _transcodingModeModeModel->getValue(*transcodingModeRow);
- auto transcodeFormatRow{ _transcodingOutputFormatModel->getRowFromString(valueText(TranscodeFormatField)) };
- if (transcodeFormatRow)
- settings.transcode.format = _transcodingOutputFormatModel->getValue(*transcodeFormatRow);
+ auto transcodingOutputFormatRow{ _transcodingOutputFormatModel->getRowFromString(valueText(TranscodeFormatField)) };
+ if (transcodingOutputFormatRow)
+ settings.transcoding.format = _transcodingOutputFormatModel->getValue(*transcodingOutputFormatRow);
- auto transcodeBitrateRow{ _transcodingOutputBitrateModel->getRowFromString(valueText(TranscodeBitrateField)) };
- if (transcodeBitrateRow)
- settings.transcode.bitrate = _transcodingOutputBitrateModel->getValue(*transcodeBitrateRow);
+ auto transcodingOutputBitrateRow{ _transcodingOutputBitrateModel->getRowFromString(valueText(TranscodeBitrateField)) };
+ if (transcodingOutputBitrateRow)
+ settings.transcoding.bitrate = _transcodingOutputBitrateModel->getValue(*transcodingOutputBitrateRow);
auto replayGainModeRow{ _replayGainModeModel->getRowFromString(valueText(ReplayGainModeField)) };
if (replayGainModeRow)
@@ -205,22 +205,22 @@ namespace UserInterface {
{
const auto settings{ *LmsApp->getMediaPlayer().getSettings() };
- auto transcodeModeRow{ _transcodingModeModeModel->getRowFromValue(settings.transcode.mode) };
- if (transcodeModeRow)
- setValue(TranscodeModeField, _transcodingModeModeModel->getString(*transcodeModeRow));
+ auto transcodingModeRow{ _transcodingModeModeModel->getRowFromValue(settings.transcoding.mode) };
+ if (transcodingModeRow)
+ setValue(TranscodingModeField, _transcodingModeModeModel->getString(*transcodingModeRow));
- auto transcodeFormatRow{ _transcodingOutputFormatModel->getRowFromValue(settings.transcode.format) };
- if (transcodeFormatRow)
- setValue(TranscodeFormatField, _transcodingOutputFormatModel->getString(*transcodeFormatRow));
+ auto transcodingOutputFormatRow{ _transcodingOutputFormatModel->getRowFromValue(settings.transcoding.format) };
+ if (transcodingOutputFormatRow)
+ setValue(TranscodeFormatField, _transcodingOutputFormatModel->getString(*transcodingOutputFormatRow));
- auto transcodeBitrateRow{ _transcodingOutputBitrateModel->getRowFromValue(settings.transcode.bitrate) };
- if (transcodeBitrateRow)
- setValue(TranscodeBitrateField, _transcodingOutputBitrateModel->getString(*transcodeBitrateRow));
+ auto transcodingOutputBitrateRow{ _transcodingOutputBitrateModel->getRowFromValue(settings.transcoding.bitrate) };
+ if (transcodingOutputBitrateRow)
+ setValue(TranscodeBitrateField, _transcodingOutputBitrateModel->getString(*transcodingOutputBitrateRow));
{
- const bool usesTranscode{ settings.transcode.mode != MediaPlayer::Settings::Transcode::Mode::Never };
- setReadOnly(SettingsModel::TranscodeFormatField, !usesTranscode);
- setReadOnly(SettingsModel::TranscodeBitrateField, !usesTranscode);
+ const bool useTranscoding{ settings.transcoding.mode != MediaPlayer::Settings::Transcoding::Mode::Never };
+ setReadOnly(SettingsModel::TranscodeFormatField, !useTranscoding);
+ setReadOnly(SettingsModel::TranscodeBitrateField, !useTranscoding);
}
auto replayGainModeRow{ _replayGainModeModel->getRowFromValue(settings.replayGain.mode) };
@@ -316,9 +316,9 @@ namespace UserInterface {
void initializeModels()
{
_transcodingModeModeModel = std::make_shared();
- _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcode-mode.always"), MediaPlayer::Settings::Transcode::Mode::Always);
- _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcode-mode.never"), MediaPlayer::Settings::Transcode::Mode::Never);
- _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcode-mode.if-format-not-supported"), MediaPlayer::Settings::Transcode::Mode::IfFormatNotSupported);
+ _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcoding-mode.always"), MediaPlayer::Settings::Transcoding::Mode::Always);
+ _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcoding-mode.never"), MediaPlayer::Settings::Transcoding::Mode::Never);
+ _transcodingModeModeModel->add(Wt::WString::tr("Lms.Settings.transcoding-mode.if-format-not-supported"), MediaPlayer::Settings::Transcoding::Mode::IfFormatNotSupported);
_transcodingOutputBitrateModel = std::make_shared>();
visitAllowedAudioBitrates([&](const Bitrate bitrate)
@@ -327,11 +327,11 @@ namespace UserInterface {
});
_transcodingOutputFormatModel = std::make_shared>();
- _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcode-format.mp3"), TranscodingOutputFormat::MP3);
- _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcode-format.ogg_opus"), TranscodingOutputFormat::OGG_OPUS);
- _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcode-format.matroska_opus"), TranscodingOutputFormat::MATROSKA_OPUS);
- _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcode-format.ogg_vorbis"), TranscodingOutputFormat::OGG_VORBIS);
- _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcode-format.webm_vorbis"), TranscodingOutputFormat::WEBM_VORBIS);
+ _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.mp3"), TranscodingOutputFormat::MP3);
+ _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_opus"), TranscodingOutputFormat::OGG_OPUS);
+ _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.matroska_opus"), TranscodingOutputFormat::MATROSKA_OPUS);
+ _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.ogg_vorbis"), TranscodingOutputFormat::OGG_VORBIS);
+ _transcodingOutputFormatModel->add(Wt::WString::tr("Lms.Settings.transcoding-output-format.webm_vorbis"), TranscodingOutputFormat::WEBM_VORBIS);
_replayGainModeModel = std::make_shared();
_replayGainModeModel->add(Wt::WString::tr("Lms.Settings.replaygain-mode.none"), MediaPlayer::Settings::ReplayGain::Mode::None);
@@ -431,24 +431,24 @@ namespace UserInterface {
// Audio
{
// Transcode
- auto transcodeMode{ std::make_unique() };
- auto* transcodeModeRaw{ transcodeMode.get() };
- transcodeMode->setModel(model->getTranscodingModeModel());
- t->setFormWidget(SettingsModel::TranscodeModeField, std::move(transcodeMode));
+ auto transcodingMode{ std::make_unique() };
+ auto* transcodingModeRaw{ transcodingMode.get() };
+ transcodingMode->setModel(model->getTranscodingModeModel());
+ t->setFormWidget(SettingsModel::TranscodingModeField, std::move(transcodingMode));
// Format
- auto transcodeFormat{ std::make_unique() };
- transcodeFormat->setModel(model->getTranscodeFormatModel());
- t->setFormWidget(SettingsModel::TranscodeFormatField, std::move(transcodeFormat));
+ auto transcodingOutputFormat{ std::make_unique() };
+ transcodingOutputFormat->setModel(model->getTranscodingOutputFormatModel());
+ t->setFormWidget(SettingsModel::TranscodeFormatField, std::move(transcodingOutputFormat));
// Bitrate
- auto transcodeBitrate{ std::make_unique() };
- transcodeBitrate->setModel(model->getTranscodingOutputBitrateModel());
- t->setFormWidget(SettingsModel::TranscodeBitrateField, std::move(transcodeBitrate));
+ auto transcodingOutputBitrate{ std::make_unique() };
+ transcodingOutputBitrate->setModel(model->getTranscodingOutputBitrateModel());
+ t->setFormWidget(SettingsModel::TranscodeBitrateField, std::move(transcodingOutputBitrate));
- transcodeModeRaw->activated().connect([=](int row)
+ transcodingModeRaw->activated().connect([=](int row)
{
- const bool enable{ model->getTranscodingModeModel()->getValue(row) != MediaPlayer::Settings::Transcode::Mode::Never };
+ const bool enable{ model->getTranscodingModeModel()->getValue(row) != MediaPlayer::Settings::Transcoding::Mode::Never };
model->setReadOnly(SettingsModel::TranscodeFormatField, !enable);
model->setReadOnly(SettingsModel::TranscodeBitrateField, !enable);
t->updateModel(model.get());
@@ -491,14 +491,14 @@ namespace UserInterface {
t->setCondition("if-has-subsonic-api", Service::get()->getBool("api-subsonic", true));
// Format
- auto transcodeFormat{ std::make_unique() };
- transcodeFormat->setModel(model->getTranscodeFormatModel());
- t->setFormWidget(SettingsModel::SubsonicTranscodingOutputFormatField, std::move(transcodeFormat));
+ auto transcodingOutputFormat{ std::make_unique() };
+ transcodingOutputFormat->setModel(model->getTranscodingOutputFormatModel());
+ t->setFormWidget(SettingsModel::SubsonicTranscodingOutputFormatField, std::move(transcodingOutputFormat));
// Bitrate
- auto transcodeBitrate{ std::make_unique() };
- transcodeBitrate->setModel(model->getTranscodingOutputBitrateModel());
- t->setFormWidget(SettingsModel::SubsonicTranscodingOutputBitrateField, std::move(transcodeBitrate));
+ auto transcodingOutputBitrate{ std::make_unique() };
+ transcodingOutputBitrate->setModel(model->getTranscodingOutputBitrateModel());
+ t->setFormWidget(SettingsModel::SubsonicTranscodingOutputBitrateField, std::move(transcodingOutputBitrate));
// Artist list mode
auto artistListMode{ std::make_unique() };
diff --git a/src/lms/ui/resource/AudioTranscodeResource.cpp b/src/lms/ui/resource/AudioTranscodingResource.cpp
similarity index 95%
rename from src/lms/ui/resource/AudioTranscodeResource.cpp
rename to src/lms/ui/resource/AudioTranscodingResource.cpp
index b8dfa6cb..8c4799b3 100644
--- a/src/lms/ui/resource/AudioTranscodeResource.cpp
+++ b/src/lms/ui/resource/AudioTranscodingResource.cpp
@@ -17,7 +17,7 @@
* along with LMS. If not, see .
*/
-#include "AudioTranscodeResource.hpp"
+#include "AudioTranscodingResource.hpp"
#include
#include
@@ -159,17 +159,17 @@ namespace UserInterface
}
}
- AudioTranscodeResource:: ~AudioTranscodeResource()
+ AudioTranscodingResource:: ~AudioTranscodingResource()
{
beingDeleted();
}
- std::string AudioTranscodeResource::getUrl(Database::TrackId trackId) const
+ std::string AudioTranscodingResource::getUrl(Database::TrackId trackId) const
{
return url() + "&trackid=" + trackId.toString();
}
- void AudioTranscodeResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response)
+ void AudioTranscodingResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response)
{
std::shared_ptr resourceHandler;
diff --git a/src/lms/ui/resource/AudioTranscodeResource.hpp b/src/lms/ui/resource/AudioTranscodingResource.hpp
similarity index 93%
rename from src/lms/ui/resource/AudioTranscodeResource.hpp
rename to src/lms/ui/resource/AudioTranscodingResource.hpp
index a4240b15..4b620352 100644
--- a/src/lms/ui/resource/AudioTranscodeResource.hpp
+++ b/src/lms/ui/resource/AudioTranscodingResource.hpp
@@ -31,10 +31,10 @@ namespace Database
namespace UserInterface
{
- class AudioTranscodeResource : public Wt::WResource
+ class AudioTranscodingResource : public Wt::WResource
{
public:
- ~AudioTranscodeResource();
+ ~AudioTranscodingResource();
// Url depends on the user since settings are used in parameters
std::string getUrl(Database::TrackId trackId) const;