diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8853a8c7..49f688ab 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,6 @@ add_compile_options(-Wall -Wextra -pedantic -Werror) -SUBDIRS(liblms lms) +add_subdirectory(libs) +add_subdirectory(lms) + diff --git a/src/liblms/CMakeLists.txt b/src/liblms/CMakeLists.txt deleted file mode 100644 index 2c1644ff..00000000 --- a/src/liblms/CMakeLists.txt +++ /dev/null @@ -1,77 +0,0 @@ - -add_library(liblms SHARED - impl/api/subsonic/SubsonicId.cpp - impl/api/subsonic/SubsonicResource.cpp - impl/api/subsonic/SubsonicResponse.cpp - impl/auth/AuthTokenService.cpp - impl/auth/PasswordService.cpp - impl/auth/LoginThrottler.cpp - impl/av/AvInfo.cpp - impl/av/AvTranscoder.cpp - impl/av/AvTypes.cpp - impl/cover/CoverArtGrabber.cpp - impl/cover/Image.cpp - impl/database/Artist.cpp - impl/database/Cluster.cpp - impl/database/Db.cpp - impl/database/TrackArtistLink.cpp - impl/database/TrackFeatures.cpp - impl/database/TrackList.cpp - impl/database/Release.cpp - impl/database/ScanSettings.cpp - impl/database/Session.cpp - impl/database/SessionPool.cpp - impl/database/SqlQuery.cpp - impl/database/Track.cpp - impl/database/TrackBookmark.cpp - impl/database/User.cpp - impl/metadata/AvFormat.cpp - impl/metadata/TagLibParser.cpp - impl/scanner/MediaScanner.cpp - impl/scanner/MediaScannerStats.cpp - impl/recommendation/Engine.cpp - impl/recommendation/ProviderCreator.cpp - impl/recommendation/features/som/DataNormalizer.cpp - impl/recommendation/features/som/Network.cpp - impl/utils/Config.cpp - impl/utils/Logger.cpp - impl/utils/NetAddress.cpp - impl/utils/Path.cpp - impl/utils/Random.cpp - impl/utils/StreamLogger.cpp - impl/utils/String.cpp - impl/utils/UUID.cpp - impl/utils/WtLogger.cpp - ) - -target_include_directories(liblms INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}/include - ) - -target_include_directories(liblms PRIVATE - include/ - ${IMAGEMAGICKXX_INCLUDE_DIRS} - ) - -target_compile_options(liblms PRIVATE - ${IMAGEMAGICKXX_CFLAGS_OTHER} - ) - -target_link_libraries(liblms PRIVATE - ${IMAGEMAGICKXX_LIBRARIES} - avformat - avutil - config++ - tag - stdc++fs - wtdbosqlite3 - ) - -target_link_libraries(liblms PUBLIC - pthread - boost_system - wtdbo - ) - -install(TARGETS liblms DESTINATION lib) - diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt new file mode 100644 index 00000000..97b099a9 --- /dev/null +++ b/src/libs/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_subdirectory(auth) +add_subdirectory(av) +add_subdirectory(cover) +add_subdirectory(database) +add_subdirectory(recommendation) +add_subdirectory(scanner) +add_subdirectory(subsonic) +add_subdirectory(utils) + + diff --git a/src/libs/auth/CMakeLists.txt b/src/libs/auth/CMakeLists.txt new file mode 100644 index 00000000..9be20d0c --- /dev/null +++ b/src/libs/auth/CMakeLists.txt @@ -0,0 +1,28 @@ + +add_library(lmsauth SHARED + impl/AuthTokenService.cpp + impl/PasswordService.cpp + impl/LoginThrottler.cpp + ) + +target_include_directories(lmsauth INTERFACE + include + ) + +target_include_directories(lmsauth PRIVATE + include/ + ) + +target_link_libraries(lmsauth PRIVATE + lmsutils + lmsdatabase + ) + +target_link_libraries(lmsauth PUBLIC + pthread + boost_system + wt + ) + +install(TARGETS lmsauth DESTINATION lib) + diff --git a/src/liblms/impl/auth/AuthTokenService.cpp b/src/libs/auth/impl/AuthTokenService.cpp similarity index 100% rename from src/liblms/impl/auth/AuthTokenService.cpp rename to src/libs/auth/impl/AuthTokenService.cpp diff --git a/src/liblms/impl/auth/AuthTokenService.hpp b/src/libs/auth/impl/AuthTokenService.hpp similarity index 100% rename from src/liblms/impl/auth/AuthTokenService.hpp rename to src/libs/auth/impl/AuthTokenService.hpp diff --git a/src/liblms/impl/auth/LoginThrottler.cpp b/src/libs/auth/impl/LoginThrottler.cpp similarity index 100% rename from src/liblms/impl/auth/LoginThrottler.cpp rename to src/libs/auth/impl/LoginThrottler.cpp diff --git a/src/liblms/impl/auth/LoginThrottler.hpp b/src/libs/auth/impl/LoginThrottler.hpp similarity index 100% rename from src/liblms/impl/auth/LoginThrottler.hpp rename to src/libs/auth/impl/LoginThrottler.hpp diff --git a/src/liblms/impl/auth/PasswordService.cpp b/src/libs/auth/impl/PasswordService.cpp similarity index 100% rename from src/liblms/impl/auth/PasswordService.cpp rename to src/libs/auth/impl/PasswordService.cpp diff --git a/src/liblms/impl/auth/PasswordService.hpp b/src/libs/auth/impl/PasswordService.hpp similarity index 100% rename from src/liblms/impl/auth/PasswordService.hpp rename to src/libs/auth/impl/PasswordService.hpp diff --git a/src/liblms/include/auth/IAuthTokenService.hpp b/src/libs/auth/include/auth/IAuthTokenService.hpp similarity index 100% rename from src/liblms/include/auth/IAuthTokenService.hpp rename to src/libs/auth/include/auth/IAuthTokenService.hpp diff --git a/src/liblms/include/auth/IPasswordService.hpp b/src/libs/auth/include/auth/IPasswordService.hpp similarity index 100% rename from src/liblms/include/auth/IPasswordService.hpp rename to src/libs/auth/include/auth/IPasswordService.hpp diff --git a/src/libs/av/CMakeLists.txt b/src/libs/av/CMakeLists.txt new file mode 100644 index 00000000..c2d03eb6 --- /dev/null +++ b/src/libs/av/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_library(lmsav SHARED + impl/AvInfo.cpp + impl/AvTranscoder.cpp + impl/AvTypes.cpp + ) + +target_include_directories(lmsav INTERFACE + include + ) + +target_include_directories(lmsav PRIVATE + include/ + ) + +# TODO make these private +target_link_libraries(lmsav PUBLIC + lmsutils + avformat + avutil + ) + +install(TARGETS lmsav DESTINATION lib) + diff --git a/src/liblms/impl/av/AvInfo.cpp b/src/libs/av/impl/AvInfo.cpp similarity index 100% rename from src/liblms/impl/av/AvInfo.cpp rename to src/libs/av/impl/AvInfo.cpp diff --git a/src/liblms/impl/av/AvTranscoder.cpp b/src/libs/av/impl/AvTranscoder.cpp similarity index 100% rename from src/liblms/impl/av/AvTranscoder.cpp rename to src/libs/av/impl/AvTranscoder.cpp diff --git a/src/liblms/impl/av/AvTypes.cpp b/src/libs/av/impl/AvTypes.cpp similarity index 100% rename from src/liblms/impl/av/AvTypes.cpp rename to src/libs/av/impl/AvTypes.cpp diff --git a/src/liblms/include/av/AvInfo.hpp b/src/libs/av/include/av/AvInfo.hpp similarity index 100% rename from src/liblms/include/av/AvInfo.hpp rename to src/libs/av/include/av/AvInfo.hpp diff --git a/src/liblms/include/av/AvTranscoder.hpp b/src/libs/av/include/av/AvTranscoder.hpp similarity index 100% rename from src/liblms/include/av/AvTranscoder.hpp rename to src/libs/av/include/av/AvTranscoder.hpp diff --git a/src/liblms/include/av/AvTypes.hpp b/src/libs/av/include/av/AvTypes.hpp similarity index 100% rename from src/liblms/include/av/AvTypes.hpp rename to src/libs/av/include/av/AvTypes.hpp diff --git a/src/libs/cover/CMakeLists.txt b/src/libs/cover/CMakeLists.txt new file mode 100644 index 00000000..62eb5d43 --- /dev/null +++ b/src/libs/cover/CMakeLists.txt @@ -0,0 +1,27 @@ + +add_library(lmscover SHARED + impl/CoverArtGrabber.cpp + impl/Image.cpp + ) + +target_include_directories(lmscover INTERFACE + include + ) + +target_include_directories(lmscover PRIVATE + include + ${IMAGEMAGICKXX_INCLUDE_DIRS} + ) + +target_compile_options(lmscover PRIVATE + ${IMAGEMAGICKXX_CFLAGS_OTHER} + ) + +target_link_libraries(lmscover PRIVATE + lmsav + lmsdatabase + ${IMAGEMAGICKXX_LIBRARIES} + ) + +install(TARGETS lmscover DESTINATION lib) + diff --git a/src/liblms/impl/cover/CoverArtGrabber.cpp b/src/libs/cover/impl/CoverArtGrabber.cpp similarity index 100% rename from src/liblms/impl/cover/CoverArtGrabber.cpp rename to src/libs/cover/impl/CoverArtGrabber.cpp diff --git a/src/liblms/impl/cover/CoverArtGrabber.hpp b/src/libs/cover/impl/CoverArtGrabber.hpp similarity index 100% rename from src/liblms/impl/cover/CoverArtGrabber.hpp rename to src/libs/cover/impl/CoverArtGrabber.hpp diff --git a/src/liblms/impl/cover/Image.cpp b/src/libs/cover/impl/Image.cpp similarity index 100% rename from src/liblms/impl/cover/Image.cpp rename to src/libs/cover/impl/Image.cpp diff --git a/src/liblms/impl/cover/Image.hpp b/src/libs/cover/impl/Image.hpp similarity index 100% rename from src/liblms/impl/cover/Image.hpp rename to src/libs/cover/impl/Image.hpp diff --git a/src/liblms/include/cover/CoverArt.hpp b/src/libs/cover/include/cover/CoverArt.hpp similarity index 100% rename from src/liblms/include/cover/CoverArt.hpp rename to src/libs/cover/include/cover/CoverArt.hpp diff --git a/src/liblms/include/cover/ICoverArtGrabber.hpp b/src/libs/cover/include/cover/ICoverArtGrabber.hpp similarity index 100% rename from src/liblms/include/cover/ICoverArtGrabber.hpp rename to src/libs/cover/include/cover/ICoverArtGrabber.hpp diff --git a/src/libs/database/CMakeLists.txt b/src/libs/database/CMakeLists.txt new file mode 100644 index 00000000..638fb2e2 --- /dev/null +++ b/src/libs/database/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_library(lmsdatabase SHARED + impl/Artist.cpp + impl/Cluster.cpp + impl/Db.cpp + impl/TrackArtistLink.cpp + impl/TrackFeatures.cpp + impl/TrackList.cpp + impl/Release.cpp + impl/ScanSettings.cpp + impl/Session.cpp + impl/SessionPool.cpp + impl/SqlQuery.cpp + impl/Track.cpp + impl/TrackBookmark.cpp + impl/User.cpp + ) + +target_include_directories(lmsdatabase INTERFACE + include + ) + +target_include_directories(lmsdatabase PRIVATE + include + ) + +target_link_libraries(lmsdatabase PRIVATE + wtdbosqlite3 + ) + +target_link_libraries(lmsdatabase PUBLIC + lmsutils + wtdbo + ) + +install(TARGETS lmsdatabase DESTINATION lib) + diff --git a/src/liblms/impl/database/Artist.cpp b/src/libs/database/impl/Artist.cpp similarity index 100% rename from src/liblms/impl/database/Artist.cpp rename to src/libs/database/impl/Artist.cpp diff --git a/src/liblms/impl/database/Cluster.cpp b/src/libs/database/impl/Cluster.cpp similarity index 100% rename from src/liblms/impl/database/Cluster.cpp rename to src/libs/database/impl/Cluster.cpp diff --git a/src/liblms/impl/database/Db.cpp b/src/libs/database/impl/Db.cpp similarity index 100% rename from src/liblms/impl/database/Db.cpp rename to src/libs/database/impl/Db.cpp diff --git a/src/liblms/impl/database/Release.cpp b/src/libs/database/impl/Release.cpp similarity index 100% rename from src/liblms/impl/database/Release.cpp rename to src/libs/database/impl/Release.cpp diff --git a/src/liblms/impl/database/ScanSettings.cpp b/src/libs/database/impl/ScanSettings.cpp similarity index 100% rename from src/liblms/impl/database/ScanSettings.cpp rename to src/libs/database/impl/ScanSettings.cpp diff --git a/src/liblms/impl/database/Session.cpp b/src/libs/database/impl/Session.cpp similarity index 100% rename from src/liblms/impl/database/Session.cpp rename to src/libs/database/impl/Session.cpp diff --git a/src/liblms/impl/database/SessionPool.cpp b/src/libs/database/impl/SessionPool.cpp similarity index 100% rename from src/liblms/impl/database/SessionPool.cpp rename to src/libs/database/impl/SessionPool.cpp diff --git a/src/liblms/impl/database/SqlQuery.cpp b/src/libs/database/impl/SqlQuery.cpp similarity index 100% rename from src/liblms/impl/database/SqlQuery.cpp rename to src/libs/database/impl/SqlQuery.cpp diff --git a/src/liblms/impl/database/SqlQuery.hpp b/src/libs/database/impl/SqlQuery.hpp similarity index 100% rename from src/liblms/impl/database/SqlQuery.hpp rename to src/libs/database/impl/SqlQuery.hpp diff --git a/src/liblms/impl/database/Track.cpp b/src/libs/database/impl/Track.cpp similarity index 100% rename from src/liblms/impl/database/Track.cpp rename to src/libs/database/impl/Track.cpp diff --git a/src/liblms/impl/database/TrackArtistLink.cpp b/src/libs/database/impl/TrackArtistLink.cpp similarity index 100% rename from src/liblms/impl/database/TrackArtistLink.cpp rename to src/libs/database/impl/TrackArtistLink.cpp diff --git a/src/liblms/impl/database/TrackBookmark.cpp b/src/libs/database/impl/TrackBookmark.cpp similarity index 100% rename from src/liblms/impl/database/TrackBookmark.cpp rename to src/libs/database/impl/TrackBookmark.cpp diff --git a/src/liblms/impl/database/TrackFeatures.cpp b/src/libs/database/impl/TrackFeatures.cpp similarity index 100% rename from src/liblms/impl/database/TrackFeatures.cpp rename to src/libs/database/impl/TrackFeatures.cpp diff --git a/src/liblms/impl/database/TrackList.cpp b/src/libs/database/impl/TrackList.cpp similarity index 100% rename from src/liblms/impl/database/TrackList.cpp rename to src/libs/database/impl/TrackList.cpp diff --git a/src/liblms/impl/database/User.cpp b/src/libs/database/impl/User.cpp similarity index 100% rename from src/liblms/impl/database/User.cpp rename to src/libs/database/impl/User.cpp diff --git a/src/liblms/include/database/Artist.hpp b/src/libs/database/include/database/Artist.hpp similarity index 100% rename from src/liblms/include/database/Artist.hpp rename to src/libs/database/include/database/Artist.hpp diff --git a/src/liblms/include/database/Cluster.hpp b/src/libs/database/include/database/Cluster.hpp similarity index 100% rename from src/liblms/include/database/Cluster.hpp rename to src/libs/database/include/database/Cluster.hpp diff --git a/src/liblms/include/database/Db.hpp b/src/libs/database/include/database/Db.hpp similarity index 100% rename from src/liblms/include/database/Db.hpp rename to src/libs/database/include/database/Db.hpp diff --git a/src/liblms/include/database/Release.hpp b/src/libs/database/include/database/Release.hpp similarity index 100% rename from src/liblms/include/database/Release.hpp rename to src/libs/database/include/database/Release.hpp diff --git a/src/liblms/include/database/ScanSettings.hpp b/src/libs/database/include/database/ScanSettings.hpp similarity index 100% rename from src/liblms/include/database/ScanSettings.hpp rename to src/libs/database/include/database/ScanSettings.hpp diff --git a/src/liblms/include/database/Session.hpp b/src/libs/database/include/database/Session.hpp similarity index 100% rename from src/liblms/include/database/Session.hpp rename to src/libs/database/include/database/Session.hpp diff --git a/src/liblms/include/database/SessionPool.hpp b/src/libs/database/include/database/SessionPool.hpp similarity index 100% rename from src/liblms/include/database/SessionPool.hpp rename to src/libs/database/include/database/SessionPool.hpp diff --git a/src/liblms/include/database/Track.hpp b/src/libs/database/include/database/Track.hpp similarity index 100% rename from src/liblms/include/database/Track.hpp rename to src/libs/database/include/database/Track.hpp diff --git a/src/liblms/include/database/TrackArtistLink.hpp b/src/libs/database/include/database/TrackArtistLink.hpp similarity index 100% rename from src/liblms/include/database/TrackArtistLink.hpp rename to src/libs/database/include/database/TrackArtistLink.hpp diff --git a/src/liblms/include/database/TrackBookmark.hpp b/src/libs/database/include/database/TrackBookmark.hpp similarity index 100% rename from src/liblms/include/database/TrackBookmark.hpp rename to src/libs/database/include/database/TrackBookmark.hpp diff --git a/src/liblms/include/database/TrackFeatures.hpp b/src/libs/database/include/database/TrackFeatures.hpp similarity index 100% rename from src/liblms/include/database/TrackFeatures.hpp rename to src/libs/database/include/database/TrackFeatures.hpp diff --git a/src/liblms/include/database/TrackList.hpp b/src/libs/database/include/database/TrackList.hpp similarity index 100% rename from src/liblms/include/database/TrackList.hpp rename to src/libs/database/include/database/TrackList.hpp diff --git a/src/liblms/include/database/Types.hpp b/src/libs/database/include/database/Types.hpp similarity index 100% rename from src/liblms/include/database/Types.hpp rename to src/libs/database/include/database/Types.hpp diff --git a/src/liblms/include/database/User.hpp b/src/libs/database/include/database/User.hpp similarity index 100% rename from src/liblms/include/database/User.hpp rename to src/libs/database/include/database/User.hpp diff --git a/src/libs/recommendation/CMakeLists.txt b/src/libs/recommendation/CMakeLists.txt new file mode 100644 index 00000000..c83ee6aa --- /dev/null +++ b/src/libs/recommendation/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_library(lmsrecommendation SHARED + impl/Engine.cpp + impl/ProviderCreator.cpp + impl/features/som/DataNormalizer.cpp + impl/features/som/Network.cpp + ) + +target_include_directories(lmsrecommendation INTERFACE + include + ) + +target_include_directories(lmsrecommendation PRIVATE + include + ) + +target_link_libraries(lmsrecommendation PRIVATE + lmsdatabase + ) + +target_link_libraries(lmsrecommendation PUBLIC + ) + +install(TARGETS lmsrecommendation DESTINATION lib) + diff --git a/src/liblms/impl/recommendation/Engine.cpp b/src/libs/recommendation/impl/Engine.cpp similarity index 100% rename from src/liblms/impl/recommendation/Engine.cpp rename to src/libs/recommendation/impl/Engine.cpp diff --git a/src/liblms/impl/recommendation/Engine.hpp b/src/libs/recommendation/impl/Engine.hpp similarity index 100% rename from src/liblms/impl/recommendation/Engine.hpp rename to src/libs/recommendation/impl/Engine.hpp diff --git a/src/liblms/impl/recommendation/ProviderCreator.cpp b/src/libs/recommendation/impl/ProviderCreator.cpp similarity index 97% rename from src/liblms/impl/recommendation/ProviderCreator.cpp rename to src/libs/recommendation/impl/ProviderCreator.cpp index b451e480..00d0b0e9 100644 --- a/src/liblms/impl/recommendation/ProviderCreator.cpp +++ b/src/libs/recommendation/impl/ProviderCreator.cpp @@ -29,7 +29,7 @@ namespace Recommendation return {}; } - std::unique_ptr createFeaturesRecommendationProvider(Scanner::MediaScanner&) + std::unique_ptr createFeaturesRecommendationProvider(Scanner::IMediaScanner&) { return {}; } diff --git a/src/liblms/impl/recommendation/cluster/SimilarityClusterSearcher.cpp b/src/libs/recommendation/impl/cluster/SimilarityClusterSearcher.cpp similarity index 100% rename from src/liblms/impl/recommendation/cluster/SimilarityClusterSearcher.cpp rename to src/libs/recommendation/impl/cluster/SimilarityClusterSearcher.cpp diff --git a/src/liblms/impl/recommendation/cluster/SimilarityClusterSearcher.hpp b/src/libs/recommendation/impl/cluster/SimilarityClusterSearcher.hpp similarity index 100% rename from src/liblms/impl/recommendation/cluster/SimilarityClusterSearcher.hpp rename to src/libs/recommendation/impl/cluster/SimilarityClusterSearcher.hpp diff --git a/src/liblms/impl/recommendation/features/AcousticBrainzUtils.cpp b/src/libs/recommendation/impl/features/AcousticBrainzUtils.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/AcousticBrainzUtils.cpp rename to src/libs/recommendation/impl/features/AcousticBrainzUtils.cpp diff --git a/src/liblms/impl/recommendation/features/AcousticBrainzUtils.hpp b/src/libs/recommendation/impl/features/AcousticBrainzUtils.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/AcousticBrainzUtils.hpp rename to src/libs/recommendation/impl/features/AcousticBrainzUtils.hpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesCache.cpp b/src/libs/recommendation/impl/features/SimilarityFeaturesCache.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesCache.cpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesCache.cpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesCache.hpp b/src/libs/recommendation/impl/features/SimilarityFeaturesCache.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesCache.hpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesCache.hpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesDefs.cpp b/src/libs/recommendation/impl/features/SimilarityFeaturesDefs.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesDefs.cpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesDefs.cpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesDefs.hpp b/src/libs/recommendation/impl/features/SimilarityFeaturesDefs.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesDefs.hpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesDefs.hpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesScannerAddon.cpp b/src/libs/recommendation/impl/features/SimilarityFeaturesScannerAddon.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesScannerAddon.cpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesScannerAddon.cpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesSearcher.cpp b/src/libs/recommendation/impl/features/SimilarityFeaturesSearcher.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesSearcher.cpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesSearcher.cpp diff --git a/src/liblms/impl/recommendation/features/SimilarityFeaturesSearcher.hpp b/src/libs/recommendation/impl/features/SimilarityFeaturesSearcher.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/SimilarityFeaturesSearcher.hpp rename to src/libs/recommendation/impl/features/SimilarityFeaturesSearcher.hpp diff --git a/src/liblms/impl/recommendation/features/som/DataNormalizer.cpp b/src/libs/recommendation/impl/features/som/DataNormalizer.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/DataNormalizer.cpp rename to src/libs/recommendation/impl/features/som/DataNormalizer.cpp diff --git a/src/liblms/impl/recommendation/features/som/DataNormalizer.hpp b/src/libs/recommendation/impl/features/som/DataNormalizer.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/DataNormalizer.hpp rename to src/libs/recommendation/impl/features/som/DataNormalizer.hpp diff --git a/src/liblms/impl/recommendation/features/som/InputVector.hpp b/src/libs/recommendation/impl/features/som/InputVector.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/InputVector.hpp rename to src/libs/recommendation/impl/features/som/InputVector.hpp diff --git a/src/liblms/impl/recommendation/features/som/Matrix.hpp b/src/libs/recommendation/impl/features/som/Matrix.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/Matrix.hpp rename to src/libs/recommendation/impl/features/som/Matrix.hpp diff --git a/src/liblms/impl/recommendation/features/som/Network.cpp b/src/libs/recommendation/impl/features/som/Network.cpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/Network.cpp rename to src/libs/recommendation/impl/features/som/Network.cpp diff --git a/src/liblms/impl/recommendation/features/som/Network.hpp b/src/libs/recommendation/impl/features/som/Network.hpp similarity index 100% rename from src/liblms/impl/recommendation/features/som/Network.hpp rename to src/libs/recommendation/impl/features/som/Network.hpp diff --git a/src/liblms/include/recommendation/ClustersRecommendationProviderCreator.hpp b/src/libs/recommendation/include/recommendation/ClustersRecommendationProviderCreator.hpp similarity index 100% rename from src/liblms/include/recommendation/ClustersRecommendationProviderCreator.hpp rename to src/libs/recommendation/include/recommendation/ClustersRecommendationProviderCreator.hpp diff --git a/src/liblms/include/recommendation/FeaturesRecommendationProviderCreator.hpp b/src/libs/recommendation/include/recommendation/FeaturesRecommendationProviderCreator.hpp similarity index 94% rename from src/liblms/include/recommendation/FeaturesRecommendationProviderCreator.hpp rename to src/libs/recommendation/include/recommendation/FeaturesRecommendationProviderCreator.hpp index 01c07787..756bf605 100644 --- a/src/liblms/include/recommendation/FeaturesRecommendationProviderCreator.hpp +++ b/src/libs/recommendation/include/recommendation/FeaturesRecommendationProviderCreator.hpp @@ -28,13 +28,13 @@ namespace Database namespace Scanner { - class MediaScanner; + class IMediaScanner; } namespace Recommendation { class Provider; - std::unique_ptr createFeaturesRecommendationProvider(Scanner::MediaScanner& scanner); + std::unique_ptr createFeaturesRecommendationProvider(Scanner::IMediaScanner& scanner); } diff --git a/src/liblms/include/recommendation/IEngine.hpp b/src/libs/recommendation/include/recommendation/IEngine.hpp similarity index 100% rename from src/liblms/include/recommendation/IEngine.hpp rename to src/libs/recommendation/include/recommendation/IEngine.hpp diff --git a/src/liblms/include/recommendation/Provider.hpp b/src/libs/recommendation/include/recommendation/Provider.hpp similarity index 100% rename from src/liblms/include/recommendation/Provider.hpp rename to src/libs/recommendation/include/recommendation/Provider.hpp diff --git a/src/libs/scanner/CMakeLists.txt b/src/libs/scanner/CMakeLists.txt new file mode 100644 index 00000000..ff0df591 --- /dev/null +++ b/src/libs/scanner/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_library(lmsscanner SHARED + impl/metadata/AvFormat.cpp + impl/metadata/TagLibParser.cpp + impl/MediaScanner.cpp + impl/MediaScannerStats.cpp + ) + +target_include_directories(lmsscanner INTERFACE + include + ) + +target_include_directories(lmsscanner PRIVATE + include + ) + +target_link_libraries(lmsscanner PRIVATE + lmsav + lmsdatabase + lmsutils + tag + ) + +target_link_libraries(lmsscanner PUBLIC + wt + ) + +install(TARGETS lmsscanner DESTINATION lib) + diff --git a/src/liblms/impl/scanner/MediaScanner.cpp b/src/libs/scanner/impl/MediaScanner.cpp similarity index 99% rename from src/liblms/impl/scanner/MediaScanner.cpp rename to src/libs/scanner/impl/MediaScanner.cpp index a88893e3..a1a88753 100644 --- a/src/liblms/impl/scanner/MediaScanner.cpp +++ b/src/libs/scanner/impl/MediaScanner.cpp @@ -17,7 +17,7 @@ * along with LMS. If not, see . */ -#include "scanner/MediaScanner.hpp" +#include "MediaScanner.hpp" #include @@ -191,6 +191,12 @@ getOrCreateClusters(Session& session, const MetaData::Clusters& clustersNames) namespace Scanner { +std::unique_ptr +createMediaScanner(Database::Db& db) +{ + return std::make_unique(db); +} + MediaScanner::MediaScanner(Database::Db& db) : _dbSession {db} { diff --git a/src/liblms/include/scanner/MediaScanner.hpp b/src/libs/scanner/impl/MediaScanner.hpp similarity index 76% rename from src/liblms/include/scanner/MediaScanner.hpp rename to src/libs/scanner/impl/MediaScanner.hpp index 0ad1586a..f7b13d3a 100644 --- a/src/liblms/include/scanner/MediaScanner.hpp +++ b/src/libs/scanner/impl/MediaScanner.hpp @@ -29,56 +29,33 @@ #include +#include "scanner/IMediaScanner.hpp" #include "database/ScanSettings.hpp" #include "database/Session.hpp" #include "metadata/TagLibParser.hpp" -#include "MediaScannerAddon.hpp" -#include "MediaScannerStats.hpp" namespace Scanner { -class MediaScanner +class MediaScanner : public IMediaScanner { public: MediaScanner(Database::Db& db); - void setAddon(MediaScannerAddon& addon); + void setAddon(MediaScannerAddon& addon) override; - void start(); - void stop(); - void restart(); + void start() override; + void stop() override; + void restart() override; - // Async requests - void requestImmediateScan(); - void requestReschedule(); + void requestImmediateScan() override; + void requestReschedule() override ; + Status getStatus() override; - enum class State - { - NotScheduled, - Scheduled, - InProgress, - }; - - struct Status - { - State currentState {State::NotScheduled}; - Wt::WDateTime nextScheduledScan; - std::optional lastCompleteScanStats; - std::optional inProgressScanStats; - }; - - Status getStatus(); - - // Called just after scan complete - Wt::Signal<>& scanComplete() { return _sigScanComplete; } - - // Called during scan in progress - Wt::Signal& scanInProgress() { return _sigScanInProgress; } - - // Called after a schedule - Wt::Signal& scheduled() { return _sigScheduled; } + Wt::Signal<>& scanComplete() override { return _sigScanComplete; } + Wt::Signal& scanInProgress() override { return _sigScanInProgress; } + Wt::Signal& scheduled() override { return _sigScheduled; } private: diff --git a/src/liblms/impl/scanner/MediaScannerStats.cpp b/src/libs/scanner/impl/MediaScannerStats.cpp similarity index 100% rename from src/liblms/impl/scanner/MediaScannerStats.cpp rename to src/libs/scanner/impl/MediaScannerStats.cpp diff --git a/src/liblms/impl/metadata/AvFormat.cpp b/src/libs/scanner/impl/metadata/AvFormat.cpp similarity index 99% rename from src/liblms/impl/metadata/AvFormat.cpp rename to src/libs/scanner/impl/metadata/AvFormat.cpp index 85311c7a..37af1554 100644 --- a/src/liblms/impl/metadata/AvFormat.cpp +++ b/src/libs/scanner/impl/metadata/AvFormat.cpp @@ -17,7 +17,7 @@ * along with LMS. If not, see . */ -#include "metadata/AvFormat.hpp" +#include "AvFormat.hpp" #include #include diff --git a/src/liblms/include/metadata/AvFormat.hpp b/src/libs/scanner/impl/metadata/AvFormat.hpp similarity index 100% rename from src/liblms/include/metadata/AvFormat.hpp rename to src/libs/scanner/impl/metadata/AvFormat.hpp diff --git a/src/liblms/include/metadata/MetaData.hpp b/src/libs/scanner/impl/metadata/MetaData.hpp similarity index 100% rename from src/liblms/include/metadata/MetaData.hpp rename to src/libs/scanner/impl/metadata/MetaData.hpp diff --git a/src/liblms/impl/metadata/TagLibParser.cpp b/src/libs/scanner/impl/metadata/TagLibParser.cpp similarity index 99% rename from src/liblms/impl/metadata/TagLibParser.cpp rename to src/libs/scanner/impl/metadata/TagLibParser.cpp index 78949ce8..75104d53 100644 --- a/src/liblms/impl/metadata/TagLibParser.cpp +++ b/src/libs/scanner/impl/metadata/TagLibParser.cpp @@ -17,7 +17,7 @@ * along with LMS. If not, see . */ -#include "metadata/TagLibParser.hpp" +#include "TagLibParser.hpp" #include #include diff --git a/src/liblms/include/metadata/TagLibParser.hpp b/src/libs/scanner/impl/metadata/TagLibParser.hpp similarity index 100% rename from src/liblms/include/metadata/TagLibParser.hpp rename to src/libs/scanner/impl/metadata/TagLibParser.hpp diff --git a/src/libs/scanner/include/scanner/IMediaScanner.hpp b/src/libs/scanner/include/scanner/IMediaScanner.hpp new file mode 100644 index 00000000..49b68048 --- /dev/null +++ b/src/libs/scanner/include/scanner/IMediaScanner.hpp @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2013 Emeric Poupon + * + * This file is part of LMS. + * + * LMS 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 3 of the License, or + * (at your option) any later version. + * + * LMS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with LMS. If not, see . + */ + +#pragma once + +#include + +#include +#include + +#include "MediaScannerAddon.hpp" +#include "MediaScannerStats.hpp" + +namespace Database +{ + class Db; +} + +namespace Scanner { + +class IMediaScanner +{ + public: + virtual ~IMediaScanner() = default; + + virtual void setAddon(MediaScannerAddon& addon) = 0; + + virtual void start() = 0; + virtual void stop() = 0; + virtual void restart() = 0; + + // Async requests + virtual void requestImmediateScan() = 0; + virtual void requestReschedule() = 0; + + + enum class State + { + NotScheduled, + Scheduled, + InProgress, + }; + + struct Status + { + State currentState {State::NotScheduled}; + Wt::WDateTime nextScheduledScan; + std::optional lastCompleteScanStats; + std::optional inProgressScanStats; + }; + + virtual Status getStatus() = 0; + + // Called just after scan complete + virtual Wt::Signal<>& scanComplete() = 0; + + // Called during scan in progress + virtual Wt::Signal& scanInProgress() = 0; + + // Called after a schedule + virtual Wt::Signal& scheduled() = 0; + +}; + +std::unique_ptr createMediaScanner(Database::Db& db); + + +} // Scanner + diff --git a/src/liblms/include/scanner/MediaScannerAddon.hpp b/src/libs/scanner/include/scanner/MediaScannerAddon.hpp similarity index 100% rename from src/liblms/include/scanner/MediaScannerAddon.hpp rename to src/libs/scanner/include/scanner/MediaScannerAddon.hpp diff --git a/src/liblms/include/scanner/MediaScannerStats.hpp b/src/libs/scanner/include/scanner/MediaScannerStats.hpp similarity index 100% rename from src/liblms/include/scanner/MediaScannerStats.hpp rename to src/libs/scanner/include/scanner/MediaScannerStats.hpp diff --git a/src/libs/subsonic/CMakeLists.txt b/src/libs/subsonic/CMakeLists.txt new file mode 100644 index 00000000..0531b7bf --- /dev/null +++ b/src/libs/subsonic/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_library(lmssubsonic SHARED + impl/SubsonicId.cpp + impl/SubsonicResource.cpp + impl/SubsonicResponse.cpp + ) + +target_include_directories(lmssubsonic INTERFACE + include + ) + +target_include_directories(lmssubsonic PRIVATE + include + ) + +target_link_libraries(lmssubsonic PRIVATE + lmsauth + lmsav + lmscover + lmsrecommendation + lmsutils + ) + +target_link_libraries(lmssubsonic PUBLIC + lmsdatabase + wt + ) + +install(TARGETS lmssubsonic DESTINATION lib) + diff --git a/src/liblms/impl/api/subsonic/SubsonicId.cpp b/src/libs/subsonic/impl/SubsonicId.cpp similarity index 100% rename from src/liblms/impl/api/subsonic/SubsonicId.cpp rename to src/libs/subsonic/impl/SubsonicId.cpp diff --git a/src/liblms/impl/api/subsonic/SubsonicId.hpp b/src/libs/subsonic/impl/SubsonicId.hpp similarity index 100% rename from src/liblms/impl/api/subsonic/SubsonicId.hpp rename to src/libs/subsonic/impl/SubsonicId.hpp diff --git a/src/liblms/impl/api/subsonic/SubsonicResource.cpp b/src/libs/subsonic/impl/SubsonicResource.cpp similarity index 99% rename from src/liblms/impl/api/subsonic/SubsonicResource.cpp rename to src/libs/subsonic/impl/SubsonicResource.cpp index 3a4db863..056005c5 100644 --- a/src/liblms/impl/api/subsonic/SubsonicResource.cpp +++ b/src/libs/subsonic/impl/SubsonicResource.cpp @@ -16,7 +16,7 @@ * You should have received a copy of the GNU General Public License * along with LMS. If not, see . */ -#include "api/subsonic/SubsonicResource.hpp" +#include "subsonic/SubsonicResource.hpp" #include #include diff --git a/src/liblms/impl/api/subsonic/SubsonicResponse.cpp b/src/libs/subsonic/impl/SubsonicResponse.cpp similarity index 100% rename from src/liblms/impl/api/subsonic/SubsonicResponse.cpp rename to src/libs/subsonic/impl/SubsonicResponse.cpp diff --git a/src/liblms/impl/api/subsonic/SubsonicResponse.hpp b/src/libs/subsonic/impl/SubsonicResponse.hpp similarity index 100% rename from src/liblms/impl/api/subsonic/SubsonicResponse.hpp rename to src/libs/subsonic/impl/SubsonicResponse.hpp diff --git a/src/liblms/include/api/subsonic/SubsonicResource.hpp b/src/libs/subsonic/include/subsonic/SubsonicResource.hpp similarity index 100% rename from src/liblms/include/api/subsonic/SubsonicResource.hpp rename to src/libs/subsonic/include/subsonic/SubsonicResource.hpp diff --git a/src/libs/utils/CMakeLists.txt b/src/libs/utils/CMakeLists.txt new file mode 100644 index 00000000..ba5c5f01 --- /dev/null +++ b/src/libs/utils/CMakeLists.txt @@ -0,0 +1,31 @@ + +add_library(lmsutils SHARED + impl/Config.cpp + impl/Logger.cpp + impl/NetAddress.cpp + impl/Path.cpp + impl/Random.cpp + impl/StreamLogger.cpp + impl/String.cpp + impl/UUID.cpp + impl/WtLogger.cpp + ) + +target_include_directories(lmsutils INTERFACE + include + ) + +target_include_directories(lmsutils PRIVATE + include + ) + +target_link_libraries(lmsutils PRIVATE + config++ + ) + +target_link_libraries(lmsutils PUBLIC + stdc++fs + ) + +install(TARGETS lmsutils DESTINATION lib) + diff --git a/src/liblms/impl/utils/Config.cpp b/src/libs/utils/impl/Config.cpp similarity index 100% rename from src/liblms/impl/utils/Config.cpp rename to src/libs/utils/impl/Config.cpp diff --git a/src/liblms/impl/utils/Config.hpp b/src/libs/utils/impl/Config.hpp similarity index 100% rename from src/liblms/impl/utils/Config.hpp rename to src/libs/utils/impl/Config.hpp diff --git a/src/liblms/impl/utils/Logger.cpp b/src/libs/utils/impl/Logger.cpp similarity index 100% rename from src/liblms/impl/utils/Logger.cpp rename to src/libs/utils/impl/Logger.cpp diff --git a/src/liblms/impl/utils/NetAddress.cpp b/src/libs/utils/impl/NetAddress.cpp similarity index 100% rename from src/liblms/impl/utils/NetAddress.cpp rename to src/libs/utils/impl/NetAddress.cpp diff --git a/src/liblms/impl/utils/Path.cpp b/src/libs/utils/impl/Path.cpp similarity index 100% rename from src/liblms/impl/utils/Path.cpp rename to src/libs/utils/impl/Path.cpp diff --git a/src/liblms/impl/utils/Random.cpp b/src/libs/utils/impl/Random.cpp similarity index 100% rename from src/liblms/impl/utils/Random.cpp rename to src/libs/utils/impl/Random.cpp diff --git a/src/liblms/impl/utils/StreamLogger.cpp b/src/libs/utils/impl/StreamLogger.cpp similarity index 100% rename from src/liblms/impl/utils/StreamLogger.cpp rename to src/libs/utils/impl/StreamLogger.cpp diff --git a/src/liblms/impl/utils/String.cpp b/src/libs/utils/impl/String.cpp similarity index 100% rename from src/liblms/impl/utils/String.cpp rename to src/libs/utils/impl/String.cpp diff --git a/src/liblms/impl/utils/UUID.cpp b/src/libs/utils/impl/UUID.cpp similarity index 100% rename from src/liblms/impl/utils/UUID.cpp rename to src/libs/utils/impl/UUID.cpp diff --git a/src/liblms/impl/utils/WtLogger.cpp b/src/libs/utils/impl/WtLogger.cpp similarity index 100% rename from src/liblms/impl/utils/WtLogger.cpp rename to src/libs/utils/impl/WtLogger.cpp diff --git a/src/liblms/include/utils/Exception.hpp b/src/libs/utils/include/utils/Exception.hpp similarity index 100% rename from src/liblms/include/utils/Exception.hpp rename to src/libs/utils/include/utils/Exception.hpp diff --git a/src/liblms/include/utils/IConfig.hpp b/src/libs/utils/include/utils/IConfig.hpp similarity index 100% rename from src/liblms/include/utils/IConfig.hpp rename to src/libs/utils/include/utils/IConfig.hpp diff --git a/src/liblms/include/utils/Logger.hpp b/src/libs/utils/include/utils/Logger.hpp similarity index 100% rename from src/liblms/include/utils/Logger.hpp rename to src/libs/utils/include/utils/Logger.hpp diff --git a/src/liblms/include/utils/NetAddress.hpp b/src/libs/utils/include/utils/NetAddress.hpp similarity index 100% rename from src/liblms/include/utils/NetAddress.hpp rename to src/libs/utils/include/utils/NetAddress.hpp diff --git a/src/liblms/include/utils/Path.hpp b/src/libs/utils/include/utils/Path.hpp similarity index 100% rename from src/liblms/include/utils/Path.hpp rename to src/libs/utils/include/utils/Path.hpp diff --git a/src/liblms/include/utils/Random.hpp b/src/libs/utils/include/utils/Random.hpp similarity index 100% rename from src/liblms/include/utils/Random.hpp rename to src/libs/utils/include/utils/Random.hpp diff --git a/src/liblms/include/utils/Service.hpp b/src/libs/utils/include/utils/Service.hpp similarity index 100% rename from src/liblms/include/utils/Service.hpp rename to src/libs/utils/include/utils/Service.hpp diff --git a/src/liblms/include/utils/StreamLogger.hpp b/src/libs/utils/include/utils/StreamLogger.hpp similarity index 100% rename from src/liblms/include/utils/StreamLogger.hpp rename to src/libs/utils/include/utils/StreamLogger.hpp diff --git a/src/liblms/include/utils/String.hpp b/src/libs/utils/include/utils/String.hpp similarity index 100% rename from src/liblms/include/utils/String.hpp rename to src/libs/utils/include/utils/String.hpp diff --git a/src/liblms/include/utils/UUID.hpp b/src/libs/utils/include/utils/UUID.hpp similarity index 100% rename from src/liblms/include/utils/UUID.hpp rename to src/libs/utils/include/utils/UUID.hpp diff --git a/src/liblms/include/utils/Utils.hpp b/src/libs/utils/include/utils/Utils.hpp similarity index 100% rename from src/liblms/include/utils/Utils.hpp rename to src/libs/utils/include/utils/Utils.hpp diff --git a/src/liblms/include/utils/WtLogger.hpp b/src/libs/utils/include/utils/WtLogger.hpp similarity index 100% rename from src/liblms/include/utils/WtLogger.hpp rename to src/libs/utils/include/utils/WtLogger.hpp diff --git a/src/lms/CMakeLists.txt b/src/lms/CMakeLists.txt index 94526da9..d422a93b 100644 --- a/src/lms/CMakeLists.txt +++ b/src/lms/CMakeLists.txt @@ -38,7 +38,14 @@ target_include_directories(lms PRIVATE ) target_link_libraries(lms PRIVATE - liblms + lmsav + lmsauth + lmscover + lmsdatabase + lmsrecommendation + lmsscanner + lmssubsonic + lmsutils wt wthttp ) diff --git a/src/lms/main.cpp b/src/lms/main.cpp index 5f5bf313..126c7402 100644 --- a/src/lms/main.cpp +++ b/src/lms/main.cpp @@ -22,17 +22,17 @@ #include #include -#include "api/subsonic/SubsonicResource.hpp" -#include "av/AvInfo.hpp" -#include "av/AvTranscoder.hpp" #include "auth/IAuthTokenService.hpp" #include "auth/IPasswordService.hpp" +#include "av/AvInfo.hpp" +#include "av/AvTranscoder.hpp" #include "cover/ICoverArtGrabber.hpp" #include "database/Db.hpp" -#include "scanner/MediaScanner.hpp" +#include "scanner/IMediaScanner.hpp" #include "recommendation/FeaturesRecommendationProviderCreator.hpp" #include "recommendation/IEngine.hpp" #include "recommendation/ClustersRecommendationProviderCreator.hpp" +#include "subsonic/SubsonicResource.hpp" #include "ui/LmsApplication.hpp" #include "utils/IConfig.hpp" #include "utils/Service.hpp" @@ -143,7 +143,7 @@ int main(int argc, char* argv[]) // Service initialization order is important ServiceProvider::assign(Auth::createAuthTokenService(ServiceProvider::get()->getULong("login-throttler-max-entriees", 10000))); ServiceProvider::assign(Auth::createPasswordService(ServiceProvider::get()->getULong("login-throttler-max-entriees", 10000))); - Scanner::MediaScanner& mediaScanner {ServiceProvider::create(database)}; + Scanner::IMediaScanner& mediaScanner {ServiceProvider::assign(Scanner::createMediaScanner(database))}; Recommendation::IEngine& recommendationEngine {ServiceProvider::assign(Recommendation::createEngine())}; recommendationEngine.addProvider(Recommendation::createFeaturesRecommendationProvider(mediaScanner), 0); diff --git a/src/lms/ui/LmsApplication.cpp b/src/lms/ui/LmsApplication.cpp index 56480d94..8a6dbcc2 100644 --- a/src/lms/ui/LmsApplication.cpp +++ b/src/lms/ui/LmsApplication.cpp @@ -528,7 +528,7 @@ LmsApplication::createHome() // Events from MediaScanner { const std::string sessionId {LmsApp->sessionId()}; - ServiceProvider::get()->scanComplete().connect(this, [=] () + ServiceProvider::get()->scanComplete().connect(this, [=] () { Wt::WServer::instance()->post(sessionId, [=] { @@ -537,7 +537,7 @@ LmsApplication::createHome() }); }); - ServiceProvider::get()->scanInProgress().connect(this, [=] (Scanner::ScanProgressStats stats) + ServiceProvider::get()->scanInProgress().connect(this, [=] (Scanner::ScanProgressStats stats) { Wt::WServer::instance()->post(sessionId, [=] { @@ -546,7 +546,7 @@ LmsApplication::createHome() }); }); - ServiceProvider::get()->scheduled().connect(this, [=] (Wt::WDateTime dateTime) + ServiceProvider::get()->scheduled().connect(this, [=] (Wt::WDateTime dateTime) { Wt::WServer::instance()->post(sessionId, [=] { @@ -561,7 +561,7 @@ LmsApplication::createHome() { if (isUserAdmin()) { - const auto& stats {*ServiceProvider::get()->getStatus().lastCompleteScanStats}; + const auto& stats {*ServiceProvider::get()->getStatus().lastCompleteScanStats}; notifyMsg(MsgType::Info, Wt::WString::tr("Lms.Admin.Database.scan-complete") .arg(static_cast(stats.nbFiles())) diff --git a/src/lms/ui/LmsApplication.hpp b/src/lms/ui/LmsApplication.hpp index 9e6eb57d..cd0f04ca 100644 --- a/src/lms/ui/LmsApplication.hpp +++ b/src/lms/ui/LmsApplication.hpp @@ -25,7 +25,7 @@ #include "database/Db.hpp" #include "database/Session.hpp" -#include "scanner/MediaScanner.hpp" +#include "scanner/IMediaScanner.hpp" #include "LmsApplicationGroup.hpp" diff --git a/src/lms/ui/admin/DatabaseSettingsView.cpp b/src/lms/ui/admin/DatabaseSettingsView.cpp index d4ac7200..3c4423e1 100644 --- a/src/lms/ui/admin/DatabaseSettingsView.cpp +++ b/src/lms/ui/admin/DatabaseSettingsView.cpp @@ -27,6 +27,7 @@ #include #include "database/Cluster.hpp" +#include "database/ScanSettings.hpp" #include "utils/Logger.hpp" #include "utils/Service.hpp" #include "utils/String.hpp" @@ -229,7 +230,7 @@ DatabaseSettingsView::refreshView() { model->saveData(); - ServiceProvider::get()->requestReschedule(); + ServiceProvider::get()->requestReschedule(); LmsApp->notifyMsg(MsgType::Success, Wt::WString::tr("Lms.Admin.Database.settings-saved")); } @@ -246,7 +247,7 @@ DatabaseSettingsView::refreshView() immScanBtn->clicked().connect([=] () { - ServiceProvider::get()->requestImmediateScan(); + ServiceProvider::get()->requestImmediateScan(); LmsApp->notifyMsg(MsgType::Info, Wt::WString::tr("Lms.Admin.Database.scan-launched")); }); diff --git a/src/lms/ui/admin/DatabaseStatus.cpp b/src/lms/ui/admin/DatabaseStatus.cpp index 23577bfa..34133e01 100644 --- a/src/lms/ui/admin/DatabaseStatus.cpp +++ b/src/lms/ui/admin/DatabaseStatus.cpp @@ -27,7 +27,6 @@ #include #include "utils/Service.hpp" -#include "scanner/MediaScanner.hpp" #include "LmsApplication.hpp" namespace UserInterface { @@ -136,7 +135,7 @@ DatabaseStatus::refreshContents() Wt::WPushButton* reportBtn {bindNew("btn-report", Wt::WString::tr("Lms.Admin.Database.Status.get-report"))}; - const MediaScanner::Status status {ServiceProvider::get()->getStatus()}; + const IMediaScanner::Status status {ServiceProvider::get()->getStatus()}; if (status.lastCompleteScanStats) { bindString("last-scan", Wt::WString::tr("Lms.Admin.Database.Status.last-scan-status") @@ -160,14 +159,14 @@ DatabaseStatus::refreshContents() switch (status.currentState) { - case MediaScanner::State::NotScheduled: + case IMediaScanner::State::NotScheduled: bindString("status", Wt::WString::tr("Lms.Admin.Database.Status.status-not-scheduled")); break; - case MediaScanner::State::Scheduled: + case IMediaScanner::State::Scheduled: bindString("status", Wt::WString::tr("Lms.Admin.Database.Status.status-scheduled") .arg(status.nextScheduledScan.toString())); break; - case MediaScanner::State::InProgress: + case IMediaScanner::State::InProgress: { std::ostringstream oss; bindString("status", Wt::WString::tr("Lms.Admin.Database.Status.status-in-progress") diff --git a/src/lms/ui/explore/ArtistView.cpp b/src/lms/ui/explore/ArtistView.cpp index 7b40bd85..089f8714 100644 --- a/src/lms/ui/explore/ArtistView.cpp +++ b/src/lms/ui/explore/ArtistView.cpp @@ -26,6 +26,7 @@ #include "database/Artist.hpp" #include "database/Release.hpp" +#include "database/ScanSettings.hpp" #include "utils/Logger.hpp" #include "utils/String.hpp" diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp index 8cb45f8d..11238e9a 100644 --- a/src/lms/ui/explore/ReleaseView.cpp +++ b/src/lms/ui/explore/ReleaseView.cpp @@ -26,6 +26,7 @@ #include #include "database/Release.hpp" +#include "database/ScanSettings.hpp" #include "database/Track.hpp" #include "utils/Logger.hpp"