Skip to content

Commit

Permalink
Merge branch 'develop' for release v3.51.0
Browse files Browse the repository at this point in the history
  • Loading branch information
epoupon committed Mar 15, 2024
2 parents b75daf2 + fef4a90 commit 14c4ac6
Show file tree
Hide file tree
Showing 509 changed files with 13,239 additions and 12,124 deletions.
13 changes: 13 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
Checks: '-*,bugprone-*,concurrency-*,cppcoreguidelines-*,misc-*,-misc-include-cleaner,-misc-no-recursion,performance*,portability-*,readability-*,-readability-braces-around-statements,-readability-identifier-length,-readability-implicit-bool-conversion'
WarningsAsErrors: ''
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
FormatStyle: none
User: ''
CheckOptions:
- key: readability-identifier-naming.IgnoreClassesWithAllMemberVariablesBeingPublic
value: '1'
- key: cppcoreguidelines-avoid-do-while.IgnoreMacros
value: '1'
...
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
CMakeCache.txt
CMakeFiles/
build/
.vscode/
9 changes: 7 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@ if (UNIX)
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined")
endif ()

include(CTest)
option(ENABLE_TESTS "Enable tests" ON)

if(ENABLE_TESTS)
include(CTest)
find_package(GTest REQUIRED)
endif()

find_package(PkgConfig REQUIRED)
find_package(Threads REQUIRED)
find_package(Filesystem REQUIRED)
find_package(GTest REQUIRED)
find_package(Boost REQUIRED COMPONENTS system program_options)
find_package(Wt REQUIRED COMPONENTS Wt Dbo DboSqlite3 HTTP)
pkg_check_modules(Taglib REQUIRED IMPORTED_TARGET taglib)
Expand Down
15 changes: 15 additions & 0 deletions approot/admin-tracing.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<messages xmlns:if="Wt.WTemplate.conditions">

<message id="Lms.Admin.Tracing.template">
<form>
<legend>${tr:Lms.Admin.Tracing.tracing}</legend>
<div class="row g-3">
<div class="col-12">
${export-btn class="btn btn-primary"}
</div>
</div>
</form>
</message>

</messages>
1 change: 1 addition & 0 deletions approot/main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
<li>${scan-settings class="dropdown-item"}</li>
<li>${scanner class="dropdown-item"}</li>
<li>${users class="dropdown-item"}</li>
<li>${tracing class="dropdown-item"}</li>
</ul>
</li>
${</if-is-admin>}
Expand Down
9 changes: 7 additions & 2 deletions approot/messages.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<message id="Lms.Admin.menu-media-libraries"><i class="fa fa-fw fa-database" aria-hidden="true"></i> Libraries</message>
<message id="Lms.Admin.menu-scan-settings"><i class="fa fa-fw fa-cogs" aria-hidden="true"></i> Scan settings</message>
<message id="Lms.Admin.menu-scanner"><i class="fa fa-fw fa-wrench" aria-hidden="true"></i> Scanner</message>
<message id="Lms.Admin.menu-tracing"><i class="fa fa-fw fa-bar-chart" aria-hidden="true"></i> Tracing</message>
<message id="Lms.Admin.menu-users"><i class="fa fa-fw fa-users" aria-hidden="true"></i> Users</message>

<!--MediaLibraries-->
Expand All @@ -64,9 +65,9 @@
<message id="Lms.Admin.MediaLibrary.root-path">Root directory</message>

<!--Scan settings-->
<message id="Lms.Admin.Database.artist-tag-delimiter">Delimiter to be used for splitting artist tags (only if the file does not contain any multi-valued tag)</message>
<message id="Lms.Admin.Database.artist-tag-delimiter">Delimiter to be used for splitting artist tags</message>
<message id="Lms.Admin.Database.daily">Daily</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Delimiter to be used for splitting other tags (only if the file does not contain any multi-valued tag)</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Delimiter to be used for splitting other tags</message>
<message id="Lms.Admin.Database.extra-tags-to-scan">Extra tags to scan (use <kbd>;</kbd> as separator)</message>
<message id="Lms.Admin.Database.hourly">Hourly</message>
<message id="Lms.Admin.Database.immediate-scan">Scan now!</message>
Expand Down Expand Up @@ -113,6 +114,10 @@
<message id="Lms.Admin.ScannerController.step-scanning-files">Scanning files: {1}/{2} files ({3}%)...</message>
<message id="Lms.Admin.ScannerController.step-status">Step status</message>

<!--Tracing-->
<message id="Lms.Admin.Tracing.export-current-buffer">Export traces</message>
<message id="Lms.Admin.Tracing.tracing">Tracing</message>

<!--Users-->
<message id="Lms.Admin.Users.add">New user</message>
<message id="Lms.Admin.Users.admin">Admin</message>
Expand Down
9 changes: 7 additions & 2 deletions approot/messages_fr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<message id="Lms.Admin.menu-media-libraries"><i class="fa fa-fw fa-database" aria-hidden="true"></i> Bibliothèques</message>
<message id="Lms.Admin.menu-scan-settings"><i class="fa fa-fw fa-cogs" aria-hidden="true"></i> Paramètres du scan</message>
<message id="Lms.Admin.menu-scanner"><i class="fa fa-fw fa-wrench" aria-hidden="true"></i> Scanner</message>
<message id="Lms.Admin.menu-tracing"><i class="fa fa-fw fa-bar-chart" aria-hidden="true"></i> Traces</message>
<message id="Lms.Admin.menu-users"><i class="fa fa-fw fa-users" aria-hidden="true"></i> Utilisateurs</message>

<!--MediaLibraries-->
Expand All @@ -64,9 +65,9 @@
<message id="Lms.Admin.MediaLibrary.root-path">Répertoire racine</message>

<!--Scan settings-->
<message id="Lms.Admin.Database.artist-tag-delimiter">Délimiteur à utiliser pour séparer les tags d'artistes (uniquement si le fichier ne contient pas de tag à valeurs multiples)</message>
<message id="Lms.Admin.Database.artist-tag-delimiter">Délimiteur à utiliser pour séparer les tags d'artistes</message>
<message id="Lms.Admin.Database.daily">Tous les jours</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Délimiteur à utiliser pour séparer les autres tags (uniquement si le fichier ne contient pas de tag à valeurs multiples)</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Délimiteur à utiliser pour séparer les autres tags</message>
<message id="Lms.Admin.Database.extra-tags-to-scan">Tags supplémentaires à scanner (utiliser <kbd>;</kbd> comme séparateur)</message>
<message id="Lms.Admin.Database.hourly">Toutes les heures</message>
<message id="Lms.Admin.Database.immediate-scan">Scanner maintenant !</message>
Expand Down Expand Up @@ -113,6 +114,10 @@
<message id="Lms.Admin.ScannerController.step-scanning-files">Scan des fichiers : {1}/{2} fichiers ({3}%)...</message>
<message id="Lms.Admin.ScannerController.step-status">Statut de l'étape</message>

<!--Tracing-->
<message id="Lms.Admin.Tracing.export-current-buffer">Exporter les traces</message>
<message id="Lms.Admin.Tracing.tracing">Traces</message>

<!--Users-->
<message id="Lms.Admin.Users.add">Ajouter</message>
<message id="Lms.Admin.Users.admin">Admin</message>
Expand Down
9 changes: 7 additions & 2 deletions approot/messages_it.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<message id="Lms.Admin.menu-media-libraries"><i class="fa fa-fw fa-database" aria-hidden="true"></i> Librerie</message>
<message id="Lms.Admin.menu-scan-settings"><i class="fa fa-fw fa-cogs" aria-hidden="true"></i> Impostazioni di scansione</message>
<message id="Lms.Admin.menu-scanner"><i class="fa fa-fw fa-wrench" aria-hidden="true"></i> Scanner</message>
<message id="Lms.Admin.menu-tracing"><i class="fa fa-fw fa-bar-chart" aria-hidden="true"></i> Tracing</message>
<message id="Lms.Admin.menu-users"><i class="fa fa-fw fa-users" aria-hidden="true"></i> Utenti</message>

<!--MediaLibraries-->
Expand All @@ -64,9 +65,9 @@
<message id="Lms.Admin.MediaLibrary.root-path">Cartella principale</message>

<!--Scan settings-->
<message id="Lms.Admin.Database.artist-tag-delimiter">Delimitatore da utilizzare per separare i tag degli artisti (solo se il file non contiene alcun tag con valori multipli)</message>
<message id="Lms.Admin.Database.artist-tag-delimiter">Delimitatore da utilizzare per separare i tag degli artisti</message>
<message id="Lms.Admin.Database.daily">Giornaliera</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Delimitatore da utilizzare per separare gli altri tag (solo se il file non contiene alcun tag con valori multipli)</message>
<message id="Lms.Admin.Database.default-tag-delimiter">Delimitatore da utilizzare per separare gli altri tag</message>
<message id="Lms.Admin.Database.extra-tags-to-scan">Tag aggiuntivi da scansionare (usa <kbd>;</kbd> come separatore)</message>
<message id="Lms.Admin.Database.hourly">Ogni ora</message>
<message id="Lms.Admin.Database.immediate-scan">Scansiona ora!</message>
Expand Down Expand Up @@ -113,6 +114,10 @@
<message id="Lms.Admin.ScannerController.step-scanning-files">Scansione files: {1}/{2} files ({3}%)...</message>
<message id="Lms.Admin.ScannerController.step-status">Stato passo</message>

<!--Tracing-->
<message id="Lms.Admin.Tracing.export-current-buffer">Esporta tracce</message>
<message id="Lms.Admin.Tracing.tracing">Tracing</message>

<!--Users-->
<message id="Lms.Admin.Users.add">Nuovo utente</message>
<message id="Lms.Admin.Users.admin">Amministratore</message>
Expand Down
6 changes: 6 additions & 0 deletions approot/messages_zh.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@




<!--MediaLibraries-->


Expand Down Expand Up @@ -83,6 +84,7 @@
<message id="Lms.Admin.Database.update-start-time">更新开始时间</message>
<message id="Lms.Admin.Database.weekly">每周</message>


<!--Scanner Controller-->
<message id="Lms.Admin.ScannerController.bad-duration">无法获得音轨时间</message>
<message id="Lms.Admin.ScannerController.cannot-parse-file">无法解析文件</message>
Expand Down Expand Up @@ -112,6 +114,10 @@
<message id="Lms.Admin.ScannerController.step-scanning-files">扫描文件中: {1}/{2} 个文件 ({3}%)...</message>
<message id="Lms.Admin.ScannerController.step-status">当前步骤状态</message>

<!--Tracing-->



<!--Users-->
<message id="Lms.Admin.Users.add">新建用户</message>
<message id="Lms.Admin.Users.admin">管理员</message>
Expand Down
7 changes: 7 additions & 0 deletions conf/lms.conf
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,13 @@ artist-image-file-names = ("artist");
# Playqueue max entry count
playqueue-max-entry-count = 1000;

# Internal tracing for profiling purposes. Enable only if necessary, as it incurs some runtime overhead!
# Possible values are "disabled", "overview" or "detailed".
# If enabled, data has to be dumped in the tracing view located in the admin menu
tracing-level = "disabled";
# The tracing buffer size, in MBytes (min is 16)
tracing-buffer-size = 16;

# Set to true if you want to hide duplicate tracks
scanner-skip-duplicate-mbid = false;

Expand Down
2 changes: 1 addition & 1 deletion src/libs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
add_subdirectory(av)
add_subdirectory(core)
add_subdirectory(database)
add_subdirectory(image)
add_subdirectory(metadata)
add_subdirectory(services)
add_subdirectory(som)
add_subdirectory(subsonic)
add_subdirectory(utils)
4 changes: 2 additions & 2 deletions src/libs/av/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ target_include_directories(lmsav PRIVATE
)

target_link_libraries(lmsav PUBLIC
lmsutils
lmscore
std::filesystem
)

target_link_libraries(lmsav PRIVATE
PkgConfig::LIBAV
)

install(TARGETS lmsav DESTINATION lib)
install(TARGETS lmsav DESTINATION ${CMAKE_INSTALL_LIBDIR})

16 changes: 8 additions & 8 deletions src/libs/av/impl/AudioFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ extern "C"
#include <map>
#include <unordered_map>

#include "utils/ILogger.hpp"
#include "utils/String.hpp"
#include "core/ILogger.hpp"
#include "core/String.hpp"

namespace Av
namespace lms::av
{
namespace
{
Expand All @@ -48,11 +48,11 @@ namespace Av
return "Unknown error";
}

class AudioFileException : public Av::Exception
class AudioFileException : public Exception
{
public:
AudioFileException(int avError)
: Av::Exception{ "AudioFileException: " + averror_to_string(avError) }
: Exception{ "AudioFileException: " + averror_to_string(avError) }
{}
};

Expand All @@ -64,7 +64,7 @@ namespace Av
AVDictionaryEntry* tag = NULL;
while ((tag = ::av_dict_get(dictionnary, "", tag, AV_DICT_IGNORE_SUFFIX)))
{
res[StringUtils::stringToUpper(tag->key)] = tag->value;
res[core::stringUtils::stringToUpper(tag->key)] = tag->value;
}
}

Expand Down Expand Up @@ -320,10 +320,10 @@ namespace Av
{".mka", "audio/x-matroska"},
};

auto it{ entries.find(StringUtils::stringToLower(fileExtension.string())) };
auto it{ entries.find(core::stringUtils::stringToLower(fileExtension.string())) };
if (it == std::cend(entries))
return "";

return it->second;
}
} // namespace Av
} // namespace lms::av
4 changes: 2 additions & 2 deletions src/libs/av/impl/AudioFile.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

struct AVFormatContext;

namespace Av
namespace lms::av
{

class AudioFile final : public IAudioFile
Expand Down Expand Up @@ -53,5 +53,5 @@ namespace Av
AVFormatContext* _context{};
};

} // namespace Av
} // namespace lms::av

6 changes: 3 additions & 3 deletions src/libs/av/impl/RawResourceHandlerCreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
#include "av/RawResourceHandlerCreator.hpp"

#include "av/IAudioFile.hpp"
#include "utils/FileResourceHandlerCreator.hpp"
#include "core/FileResourceHandlerCreator.hpp"

namespace Av
namespace lms::av
{
std::unique_ptr<IResourceHandler> createRawResourceHandler(const std::filesystem::path& path)
{
std::string_view mimeType{ Av::getMimeType(path.extension()) };
std::string_view mimeType{ getMimeType(path.extension()) };
return createFileResourceHandler(path, mimeType.empty() ? "application/octet-stream" : mimeType);
}
}
22 changes: 11 additions & 11 deletions src/libs/av/impl/Transcoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@
#include <atomic>
#include <iomanip>

#include "utils/IChildProcessManager.hpp"
#include "utils/IConfig.hpp"
#include "utils/Path.hpp"
#include "utils/ILogger.hpp"
#include "utils/Service.hpp"
#include "core/IChildProcessManager.hpp"
#include "core/IConfig.hpp"
#include "core/Path.hpp"
#include "core/ILogger.hpp"
#include "core/Service.hpp"

namespace Av::Transcoding
namespace lms::av::transcoding
{

#define LOG(severity, message) LMS_LOG(TRANSCODING, severity, "[" << _debugId << "] - " << message)
Expand All @@ -52,7 +52,7 @@ namespace Av::Transcoding

void Transcoder::init()
{
ffmpegPath = Service<IConfig>::get()->getPath("ffmpeg-file", "/usr/bin/ffmpeg");
ffmpegPath = core::Service<core::IConfig>::get()->getPath("ffmpeg-file", "/usr/bin/ffmpeg");
if (!std::filesystem::exists(ffmpegPath))
throw Exception{ "File '" + ffmpegPath.string() + "' does not exist!" };
}
Expand Down Expand Up @@ -183,9 +183,9 @@ namespace Av::Transcoding
// Caution: stdin must have been closed before
try
{
_childProcess = Service<IChildProcessManager>::get()->spawnChildProcess(ffmpegPath, args);
_childProcess = core::Service<core::IChildProcessManager>::get()->spawnChildProcess(ffmpegPath, args);
}
catch (ChildProcessException& exception)
catch (core::ChildProcessException& exception)
{
throw Exception{ "Cannot execute '" + ffmpegPath.string() + "': " + exception.what() };
}
Expand All @@ -195,7 +195,7 @@ namespace Av::Transcoding
{
assert(_childProcess);

return _childProcess->asyncRead(buffer, bufferSize, [readCallback{ std::move(readCallback) }](IChildProcess::ReadResult /*res*/, std::size_t nbBytesRead)
return _childProcess->asyncRead(buffer, bufferSize, [readCallback{ std::move(readCallback) }](core::IChildProcess::ReadResult /*res*/, std::size_t nbBytesRead)
{
readCallback(nbBytesRead);
});
Expand All @@ -215,4 +215,4 @@ namespace Av::Transcoding
return _childProcess->finished();
}

} // namespace Av::Transcoding
} // namespace lms::av::Transcoding
12 changes: 7 additions & 5 deletions src/libs/av/impl/Transcoder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@
#include "av/TranscodingParameters.hpp"
#include "av/Types.hpp"

class IChildProcess;
namespace lms::core
{
class IChildProcess;
}

namespace Av::Transcoding
namespace lms::av::transcoding
{
class Transcoder
{
Expand Down Expand Up @@ -60,7 +63,6 @@ namespace Av::Transcoding
const OutputParameters _outputParameters;
std::string _outputMimeType;

std::unique_ptr<IChildProcess> _childProcess;
std::unique_ptr<core::IChildProcess> _childProcess;
};

} // namespace Av::Transcoding
}
4 changes: 2 additions & 2 deletions src/libs/av/impl/TranscodingResourceHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
*/

#include "TranscodingResourceHandler.hpp"
#include "utils/ILogger.hpp"
#include "core/ILogger.hpp"

namespace Av::Transcoding
namespace lms::av::transcoding
{
namespace
{
Expand Down
Loading

0 comments on commit 14c4ac6

Please sign in to comment.