From 4f47ad5596e78a990b834db7465f8b1038b248ce Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 1 Oct 2024 01:51:40 +0200 Subject: [PATCH] Refactor CMake files --- CMakeLists.txt | 349 +- cmake/FindFFTW3.cmake | 132 - src/CMakeLists.txt | 1305 +---- src/analyzer/CMakeLists.txt | 11 + src/collection/CMakeLists.txt | 19 + src/config.h.in | 23 +- src/context/CMakeLists.txt | 1 + src/core/CMakeLists.txt | 51 + .../metatypes.h => core/dbus_metatypes.h} | 2 +- src/core/metatypes.cpp | 22 +- src/core/song.cpp | 10 +- src/core/song.h | 6 +- src/covermanager/CMakeLists.txt | 35 + src/device/CMakeLists.txt | 36 + src/device/devicemanager.cpp | 14 +- src/device/deviceproperties.cpp | 2 +- src/device/deviceviewcontainer.cpp | 2 +- .../org.freedesktop.DBus.ObjectManager.xml | 0 .../org.freedesktop.UDisks2.Block.xml | 0 .../org.freedesktop.UDisks2.Drive.xml | 0 .../org.freedesktop.UDisks2.Filesystem.xml | 0 .../org.freedesktop.UDisks2.Job.xml | 0 src/device/udisks2lister.h | 2 +- src/dialogs/CMakeLists.txt | 14 + src/engine/CMakeLists.txt | 43 + src/engine/devicefinders.cpp | 4 +- src/equalizer/CMakeLists.txt | 4 + src/filterparser/CMakeLists.txt | 4 + src/globalshortcuts/CMakeLists.txt | 29 + .../globalshortcutsmanager.cpp | 42 +- src/globalshortcuts/keymapper_x11.h | 15 +- .../org.gnome.SettingsDaemon.MediaKeys.xml | 0 .../org.kde.KGlobalAccel.Component.xml | 0 .../org.kde.KGlobalAccel.xml | 0 .../org.mate.SettingsDaemon.MediaKeys.xml | 0 src/lyrics/CMakeLists.txt | 20 + src/main.cpp | 8 +- src/moodbar/CMakeLists.txt | 11 + src/mpris2/CMakeLists.txt | 1 + src/{core => mpris2}/mpris2.cpp | 6 +- src/{core => mpris2}/mpris2.h | 0 src/{core => mpris2}/mpris_common.h | 0 .../org.mpris.MediaPlayer2.Player.xml | 0 .../org.mpris.MediaPlayer2.Playlists.xml | 0 .../org.mpris.MediaPlayer2.TrackList.xml | 0 .../org.mpris.MediaPlayer2.xml | 0 src/musicbrainz/CMakeLists.txt | 8 + src/organize/CMakeLists.txt | 8 + src/osd/CMakeLists.txt | 9 + .../org.freedesktop.Notifications.xml | 0 src/playlist/CMakeLists.txt | 25 + src/playlistparsers/CMakeLists.txt | 12 + src/providers/CMakeLists.txt | 1 + src/qobuz/CMakeLists.txt | 8 + src/queue/CMakeLists.txt | 4 + src/radios/CMakeLists.txt | 13 + src/scrobbler/CMakeLists.txt | 17 + src/settings/CMakeLists.txt | 41 + src/settings/globalshortcutssettingspage.cpp | 58 +- src/smartplaylists/CMakeLists.txt | 21 + src/spotify/CMakeLists.txt | 6 + src/streaming/CMakeLists.txt | 15 + src/subsonic/CMakeLists.txt | 7 + src/tagreader/CMakeLists.txt | 27 + src/tidal/CMakeLists.txt | 8 + src/transcoder/CMakeLists.txt | 14 + src/translations/CMakeLists.txt | 1 + src/translations/translations.pot | 4476 ----------------- src/utilities/CMakeLists.txt | 28 + src/widgets/CMakeLists.txt | 38 + 70 files changed, 1022 insertions(+), 6046 deletions(-) delete mode 100644 cmake/FindFFTW3.cmake create mode 100644 src/analyzer/CMakeLists.txt create mode 100644 src/collection/CMakeLists.txt create mode 100644 src/context/CMakeLists.txt create mode 100644 src/core/CMakeLists.txt rename src/{dbus/metatypes.h => core/dbus_metatypes.h} (93%) create mode 100644 src/covermanager/CMakeLists.txt create mode 100644 src/device/CMakeLists.txt rename src/{dbus => device}/org.freedesktop.DBus.ObjectManager.xml (100%) rename src/{dbus => device}/org.freedesktop.UDisks2.Block.xml (100%) rename src/{dbus => device}/org.freedesktop.UDisks2.Drive.xml (100%) rename src/{dbus => device}/org.freedesktop.UDisks2.Filesystem.xml (100%) rename src/{dbus => device}/org.freedesktop.UDisks2.Job.xml (100%) create mode 100644 src/dialogs/CMakeLists.txt create mode 100644 src/engine/CMakeLists.txt create mode 100644 src/equalizer/CMakeLists.txt create mode 100644 src/filterparser/CMakeLists.txt create mode 100644 src/globalshortcuts/CMakeLists.txt rename src/{dbus => globalshortcuts}/org.gnome.SettingsDaemon.MediaKeys.xml (100%) rename src/{dbus => globalshortcuts}/org.kde.KGlobalAccel.Component.xml (100%) rename src/{dbus => globalshortcuts}/org.kde.KGlobalAccel.xml (100%) rename src/{dbus => globalshortcuts}/org.mate.SettingsDaemon.MediaKeys.xml (100%) create mode 100644 src/lyrics/CMakeLists.txt create mode 100644 src/moodbar/CMakeLists.txt create mode 100644 src/mpris2/CMakeLists.txt rename src/{core => mpris2}/mpris2.cpp (99%) rename src/{core => mpris2}/mpris2.h (100%) rename src/{core => mpris2}/mpris_common.h (100%) rename src/{dbus => mpris2}/org.mpris.MediaPlayer2.Player.xml (100%) rename src/{dbus => mpris2}/org.mpris.MediaPlayer2.Playlists.xml (100%) rename src/{dbus => mpris2}/org.mpris.MediaPlayer2.TrackList.xml (100%) rename src/{dbus => mpris2}/org.mpris.MediaPlayer2.xml (100%) create mode 100644 src/musicbrainz/CMakeLists.txt create mode 100644 src/organize/CMakeLists.txt create mode 100644 src/osd/CMakeLists.txt rename src/{dbus => osd}/org.freedesktop.Notifications.xml (100%) create mode 100644 src/playlist/CMakeLists.txt create mode 100644 src/playlistparsers/CMakeLists.txt create mode 100644 src/providers/CMakeLists.txt create mode 100644 src/qobuz/CMakeLists.txt create mode 100644 src/queue/CMakeLists.txt create mode 100644 src/radios/CMakeLists.txt create mode 100644 src/scrobbler/CMakeLists.txt create mode 100644 src/settings/CMakeLists.txt create mode 100644 src/smartplaylists/CMakeLists.txt create mode 100644 src/spotify/CMakeLists.txt create mode 100644 src/streaming/CMakeLists.txt create mode 100644 src/subsonic/CMakeLists.txt create mode 100644 src/tagreader/CMakeLists.txt create mode 100644 src/tidal/CMakeLists.txt create mode 100644 src/transcoder/CMakeLists.txt create mode 100644 src/translations/CMakeLists.txt delete mode 100644 src/translations/translations.pot create mode 100644 src/utilities/CMakeLists.txt create mode 100644 src/widgets/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e6b284311..c58af15eca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,11 @@ endif() add_compile_options(${COMPILE_OPTIONS}) option(BUILD_WERROR "Build with -Werror" OFF) +option(ENABLE_DEBUG_OUTPUT "Enable debug output" ${ENABLE_DEBUG_OUTPUT_DEFAULT}) +option(USE_RPATH "Use RPATH" APPLE) +option(INSTALL_TRANSLATIONS "Install translations" OFF) +option(USE_INSTALL_PREFIX "Look for data in CMAKE_INSTALL_PREFIX" ON) + if(BUILD_WERROR) set(CMAKE_COMPILE_WARNING_AS_ERROR ON) endif() @@ -90,12 +95,10 @@ else() set(ENABLE_DEBUG_OUTPUT_DEFAULT ON) endif() -option(ENABLE_DEBUG_OUTPUT "Enable debug output" ${ENABLE_DEBUG_OUTPUT_DEFAULT}) if(NOT ENABLE_DEBUG_OUTPUT) add_definitions(-DQT_NO_DEBUG_OUTPUT) endif() -option(USE_RPATH "Use RPATH" APPLE) if(USE_RPATH) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) endif() @@ -122,39 +125,45 @@ endif() find_package(ICU COMPONENTS uc i18n REQUIRED) if(LINUX) find_package(ALSA REQUIRED) - pkg_check_modules(DBUS REQUIRED dbus-1) else() find_package(ALSA) - pkg_check_modules(DBUS dbus-1) endif() if(UNIX AND NOT APPLE) - find_package(X11) - pkg_check_modules(XCB xcb) + find_package(X11 COMPONENTS xcb xcb_keysyms) +endif() +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GOBJECT REQUIRED IMPORTED_TARGET gobject-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) +if(GIO_FOUND AND UNIX) + pkg_check_modules(GIO_UNIX IMPORTED_TARGET gio-unix-2.0) +endif() +pkg_check_modules(LIBCDIO IMPORTED_TARGET libcdio) +pkg_check_modules(GSTREAMER REQUIRED IMPORTED_TARGET gstreamer-1.0) +pkg_check_modules(GSTREAMER_BASE REQUIRED IMPORTED_TARGET gstreamer-base-1.0) +pkg_check_modules(GSTREAMER_AUDIO REQUIRED IMPORTED_TARGET gstreamer-audio-1.0) +pkg_check_modules(GSTREAMER_APP REQUIRED IMPORTED_TARGET gstreamer-app-1.0) +pkg_check_modules(GSTREAMER_TAG REQUIRED IMPORTED_TARGET gstreamer-tag-1.0) +pkg_check_modules(GSTREAMER_PBUTILS REQUIRED IMPORTED_TARGET gstreamer-pbutils-1.0) +pkg_check_modules(SQLITE REQUIRED IMPORTED_TARGET sqlite3>=3.9) +pkg_check_modules(LIBPULSE IMPORTED_TARGET libpulse) +pkg_check_modules(CHROMAPRINT IMPORTED_TARGET libchromaprint>=1.4) +pkg_check_modules(FFTW3 IMPORTED_TARGET fftw3) +pkg_check_modules(LIBEBUR128 IMPORTED_TARGET libebur128) +pkg_check_modules(LIBGPOD IMPORTED_TARGET libgpod-1.0>=0.7.92) +pkg_check_modules(LIBMTP IMPORTED_TARGET libmtp>=1.0) +pkg_check_modules(GDK_PIXBUF IMPORTED_TARGET gdk-pixbuf-2.0) + +find_package(TagLib 2.0) +if(TARGET TagLib::TagLib) + set(TAGLIB_FOUND ON) + set(TAGLIB_LIBRARIES TagLib::TagLib) + set(HAVE_TAGLIB_DSFFILE ON) + set(HAVE_TAGLIB_DSDIFFFILE ON) +else() + pkg_check_modules(TAGLIB REQUIRED IMPORTED_TARGET taglib>=1.12) endif() -if(X11_FOUND) - set(HAVE_X11 ON) -endif() -pkg_check_modules(GLIB REQUIRED glib-2.0) -pkg_check_modules(GOBJECT REQUIRED gobject-2.0) -pkg_check_modules(GIO REQUIRED gio-2.0) -if(UNIX) - pkg_check_modules(GIO_UNIX gio-unix-2.0) -endif() -pkg_check_modules(LIBCDIO libcdio) -pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0) -pkg_check_modules(GSTREAMER_BASE REQUIRED gstreamer-base-1.0) -pkg_check_modules(GSTREAMER_AUDIO REQUIRED gstreamer-audio-1.0) -pkg_check_modules(GSTREAMER_APP REQUIRED gstreamer-app-1.0) -pkg_check_modules(GSTREAMER_TAG REQUIRED gstreamer-tag-1.0) -pkg_check_modules(GSTREAMER_PBUTILS REQUIRED gstreamer-pbutils-1.0) -pkg_check_modules(SQLITE REQUIRED sqlite3>=3.9) -pkg_check_modules(LIBPULSE libpulse) -pkg_check_modules(CHROMAPRINT libchromaprint>=1.4) -pkg_check_modules(LIBGPOD libgpod-1.0>=0.7.92) -pkg_check_modules(LIBMTP libmtp>=1.0) -pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0) + find_package(Gettext) -find_package(FFTW3) find_package(GTest) find_library(GMOCK_LIBRARY gmock) @@ -163,32 +172,23 @@ set(QT_MIN_VERSION 6.4.0) set(QT_DEFAULT_MAJOR_VERSION ${QT_VERSION_MAJOR}) set(QT_COMPONENTS Core Concurrent Gui Widgets Network Sql) set(QT_OPTIONAL_COMPONENTS LinguistTools Test) -if(DBUS_FOUND AND NOT WIN32) - list(APPEND QT_COMPONENTS DBus) +if(NOT WIN32) + list(APPEND QT_OPTIONAL_COMPONENTS DBus) endif() find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED OPTIONAL_COMPONENTS ${QT_OPTIONAL_COMPONENTS}) if(Qt${QT_VERSION_MAJOR}DBus_FOUND) + set(DBUS_FOUND ON) + set(HAVE_DBUS ON) get_target_property(QT_DBUSXML2CPP_EXECUTABLE Qt${QT_VERSION_MAJOR}::qdbusxml2cpp LOCATION) endif() + if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND) get_target_property(QT_LCONVERT_EXECUTABLE Qt${QT_VERSION_MAJOR}::lconvert LOCATION) endif() if(X11_FOUND) - find_path(KEYSYMDEF_H NAMES "keysymdef.h" PATHS "${X11_INCLUDE_DIR}" PATH_SUFFIXES "X11") - find_path(XF86KEYSYM_H NAMES "XF86keysym.h" PATHS "${XCB_INCLUDEDIR}" PATH_SUFFIXES "X11") - if(KEYSYMDEF_H) - set(HAVE_KEYSYMDEF_H ON) - else() - message(WARNING, "Missing X11/keysymdef.h") - endif() - if(XF86KEYSYM_H) - set(HAVE_XF86KEYSYM_H ON) - else() - message(WARNING, "Missing X11/XF86keysym.h") - endif() find_path(QPA_QPLATFORMNATIVEINTERFACE_H qpa/qplatformnativeinterface.h PATHS ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}) if(QPA_QPLATFORMNATIVEINTERFACE_H) @@ -213,21 +213,8 @@ if(X11_FOUND) unset(CMAKE_REQUIRED_FLAGS) unset(CMAKE_REQUIRED_LIBRARIES) -endif(X11_FOUND) - -# TagLib -find_package(TagLib 2.0) -if(TARGET TagLib::TagLib) - set(TAGLIB_FOUND ON) - set(TAGLIB_LIBRARIES TagLib::TagLib) - set(HAVE_TAGLIB_DSFFILE ON) - set(HAVE_TAGLIB_DSDIFFFILE ON) -else() - pkg_check_modules(TAGLIB REQUIRED taglib>=1.12) endif() -pkg_check_modules(LIBEBUR128 IMPORTED_TARGET libebur128) - # SingleApplication set(KDSINGLEAPPLICATION_NAME "KDSingleApplication-qt${QT_VERSION_MAJOR}") find_package(${KDSINGLEAPPLICATION_NAME} 1.1.0) @@ -250,14 +237,13 @@ endif() if(WIN32) find_package(getopt-win REQUIRED) - pkg_check_modules(QTSPARKLE qtsparkle-qt${QT_VERSION_MAJOR}) + pkg_check_modules(QTSPARKLE REQUIRED IMPORTED_TARGET qtsparkle-qt${QT_VERSION_MAJOR}) if(QTSPARKLE_FOUND) set(HAVE_QTSPARKLE ON) endif() endif() if(WIN32 AND NOT MSVC) - # RC compiler string(REPLACE "gcc" "windres" CMAKE_RC_COMPILER_INIT ${CMAKE_C_COMPILER}) enable_language(RC) SET(CMAKE_RC_COMPILE_OBJECT " -O coff -o -I ${CMAKE_SOURCE_DIR}/dist/windows") @@ -271,13 +257,12 @@ optional_component(ALSA ON "ALSA integration" DEPENDS "alsa" ALSA_FOUND ) -optional_component(LIBPULSE ON "PulseAudio integration" +optional_component(PULSE ON "PulseAudio integration" DEPENDS "libpulse" LIBPULSE_FOUND ) -optional_component(DBUS ON "D-Bus support" - DEPENDS "D-Bus" DBUS_FOUND - DEPENDS "Qt D-Bus" Qt${QT_VERSION_MAJOR}DBus_FOUND +optional_component(MPRIS2 ON "MPRIS D-Bus Interface" + DEPENDS "Qt D-Bus" DBUS_FOUND ) optional_component(SONGFINGERPRINTING ON "Song fingerprinting and tracking" @@ -288,26 +273,25 @@ optional_component(MUSICBRAINZ ON "MusicBrainz integration" DEPENDS "chromaprint" CHROMAPRINT_FOUND ) -if(X11_FOUND OR (HAVE_DBUS AND Qt${QT_VERSION_MAJOR}DBus_FOUND) OR APPLE OR WIN32) - set(HAVE_GLOBALSHORTCUTS_SUPPORT ON) -endif() +optional_component(X11_GLOBALSHORTCUTS ON "X11 global shortcuts" + DEPENDS "XCB" X11_FOUND + DEPENDS "QX11Application" HAVE_QX11APPLICATION +) -optional_component(GLOBALSHORTCUTS ON "Global shortcuts" - DEPENDS "D-Bus, X11, Windows or macOS" HAVE_GLOBALSHORTCUTS_SUPPORT +optional_component(KDE_GLOBALSHORTCUTS ON "KDE global shortcuts" + DEPENDS "Qt D-Bus" DBUS_FOUND ) -optional_component(X11_GLOBALSHORTCUTS ON "X11 global shortcuts" - DEPENDS "X11" X11_FOUND - DEPENDS "QX11Application" HAVE_QX11APPLICATION +optional_component(GNOME_GLOBALSHORTCUTS ON "Gnome global shortcuts" + DEPENDS "Qt D-Bus" DBUS_FOUND ) -optional_component(AUDIOCD ON "Devices: Audio CD support" - DEPENDS "libcdio" LIBCDIO_FOUND +optional_component(MATE_GLOBALSHORTCUTS ON "Mate global shortcuts" + DEPENDS "Qt D-Bus" DBUS_FOUND ) optional_component(UDISKS2 ON "Devices: UDisks2 backend" - DEPENDS "D-Bus" DBUS_FOUND - DEPENDS "Qt D-Bus" Qt${QT_VERSION_MAJOR}DBus_FOUND + DEPENDS "Qt D-Bus" DBUS_FOUND ) optional_component(GIO ON "Devices: GIO device backend" @@ -320,25 +304,27 @@ optional_component(GIO_UNIX ON "Devices: GIO device backend (Unix support)" DEPENDS "Unix or Windows" "NOT APPLE" ) -optional_component(LIBGPOD ON "Devices: iPod classic support" - DEPENDS "libgpod" LIBGPOD_FOUND - DEPENDS "gdk-pixbuf" GDK_PIXBUF_FOUND +optional_component(AUDIOCD ON "Devices: Audio CD support" + DEPENDS "libcdio" LIBCDIO_FOUND ) -optional_component(LIBMTP ON "Devices: MTP support" +optional_component(MTP ON "Devices: MTP support" DEPENDS "libmtp" LIBMTP_FOUND ) +optional_component(GPOD ON "Devices: iPod classic support" + DEPENDS "libgpod" LIBGPOD_FOUND + DEPENDS "gdk-pixbuf" GDK_PIXBUF_FOUND +) + optional_component(TRANSLATIONS ON "Translations" DEPENDS "gettext" GETTEXT_FOUND DEPENDS "Qt LinguistTools" Qt${QT_VERSION_MAJOR}LinguistTools_FOUND ) -option(INSTALL_TRANSLATIONS "Install translations" OFF) - optional_component(SUBSONIC ON "Streaming: Subsonic") optional_component(TIDAL ON "Streaming: Tidal") -optional_component(SPOTIFY ON "Streaming: Spotify" DEPENDS "gstreamer" GSTREAMER_FOUND) +optional_component(SPOTIFY ON "Streaming: Spotify") optional_component(QOBUZ ON "Streaming: Qobuz") optional_component(MOODBAR ON "Moodbar" @@ -349,6 +335,10 @@ optional_component(EBUR128 ON "EBU R 128 loudness normalization" DEPENDS "libebur128" LIBEBUR128_FOUND ) +if(HAVE_X11_GLOBALSHORTCUTS OR HAVE_KDE_GLOBALSHORTCUTS OR HAVE_GNOME_GLOBALSHORTCUTS OR HAVE_MATE_GLOBALSHORTCUTS OR APPLE OR WIN32) + set(HAVE_GLOBALSHORTCUTS) +endif() + if(APPLE OR WIN32) set(USE_BUNDLE_DEFAULT ON) else() @@ -378,8 +368,6 @@ if(NOT CMAKE_CROSSCOMPILING) ) endif() -# Set up definitions - add_definitions( -DBOOST_BIND_NO_PLACEHOLDERS -DQT_STRICT_ITERATORS @@ -399,7 +387,58 @@ if(WIN32) add_definitions(-DUNICODE) endif() -# Subdirectories +#set(AUTOMOC ON) +#set(AUTOUIC ON) +#set(AUTORCC ON) + +add_executable(strawberry MACOSX_BUNDLE) + +set_property(TARGET strawberry PROPERTY AUTOMOC ON) +set_property(TARGET strawberry PROPERTY AUTOUIC ON) +set_property(TARGET strawberry PROPERTY AUTORCC ON) + +qt_add_resources(QRC data/data.qrc data/icons.qrc) +target_sources(strawberry PRIVATE ${QRC}) + +qt_wrap_cpp(WIDGETS_SEARCHFIELD_UI src/widgets/searchfield.h) + +if(HAVE_DBUS) + qt_add_dbus_interface(OSD_DBUS_SOURCES src/osd/org.freedesktop.Notifications.xml notification) +endif() + +if(HAVE_MPRIS2) + qt_add_dbus_adaptor(MPRIS2_DBUS_SOURCES src/mpris2/org.mpris.MediaPlayer2.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_root Mpris2Root) + qt_add_dbus_adaptor(MPRIS2_DBUS_SOURCES src/mpris2/org.mpris.MediaPlayer2.Player.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_player Mpris2Player) + qt_add_dbus_adaptor(MPRIS2_DBUS_SOURCES src/mpris2/org.mpris.MediaPlayer2.TrackList.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_tracklist Mpris2TrackList) + qt_add_dbus_adaptor(MPRIS2_DBUS_SOURCES src/mpris2/org.mpris.MediaPlayer2.Playlists.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_playlists Mpris2Playlists) +endif() + +if(HAVE_KDE_GLOBALSHORTCUTS) + qt_add_dbus_interface(KDE_GLOBALSHORTCUTS_DBUS_SOURCES src/globalshortcuts/org.kde.KGlobalAccel.xml kglobalaccel) + qt_add_dbus_interface(KDE_GLOBALSHORTCUTS_DUS_SOURCES src/globalshortcuts/org.kde.KGlobalAccel.Component.xml kglobalaccelcomponent) +endif() + +if(HAVE_GNOME_GLOBALSHORTCUTS) + qt_add_dbus_interface(GNOME_GLOBALSHORTCUTS_DBUS_SOURCES src/globalshortcuts/org.gnome.SettingsDaemon.MediaKeys.xml gnomesettingsdaemon) +endif() + +if(HAVE_MATE_GLOBALSHORTCUTS) + qt_add_dbus_interface(MATE_GLOBALSHORTCUTS_DBUS_SOURCES src/globalshortcuts/org.mate.SettingsDaemon.MediaKeys.xml matesettingsdaemon) +endif() + +if(HAVE_UDISKS2) + set_source_files_properties(src/device/org.freedesktop.DBus.ObjectManager.xml PROPERTIES NO_NAMESPACE objectmanager INCLUDE core/dbus_metatypes.h) + set_source_files_properties(src/device/org.freedesktop.UDisks2.Filesystem.xml PROPERTIES NO_NAMESPACE udisks2filesystem INCLUDE core/dbus_metatypes.h) + set_source_files_properties(src/device/org.freedesktop.UDisks2.Block.xml PROPERTIES NO_NAMESPACE udisks2block INCLUDE core/dbus_metatypes.h) + set_source_files_properties(src/device/org.freedesktop.UDisks2.Drive.xml PROPERTIES NO_NAMESPACE udisks2drive INCLUDE core/dbus_metatypes.h) + set_source_files_properties(src/device/org.freedesktop.UDisks2.Job.xml PROPERTIES NO_NAMESPACE udisks2job INCLUDE core/dbus_metatypes.h) + qt_add_dbus_interface(UDISKS2_DBUS_SOURCES src/device/org.freedesktop.DBus.ObjectManager.xml objectmanager) + qt_add_dbus_interface(UDISKS2_DBUS_SOURCES src/device/org.freedesktop.UDisks2.Filesystem.xml udisks2filesystem) + qt_add_dbus_interface(UDISKS2_DBUS_SOURCES src/device/org.freedesktop.UDisks2.Block.xml udisks2block) + qt_add_dbus_interface(UDISKS2_DBUS_SOURCES src/device/org.freedesktop.UDisks2.Drive.xml udisks2drive) + qt_add_dbus_interface(UDISKS2_DBUS_SOURCES src/device/org.freedesktop.UDisks2.Job.xml udisks2job) +endif() + add_subdirectory(src) add_subdirectory(dist) @@ -411,12 +450,148 @@ if(LINUX AND LSB_RELEASE_EXEC AND DPKG_BUILDPACKAGE) add_subdirectory(debian) endif() -# Uninstall support -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) +target_include_directories(strawberry PRIVATE + ${CMAKE_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} +) + +target_include_directories(strawberry SYSTEM PRIVATE ${SINGLEAPPLICATION_INCLUDE_DIRS}) + +if(HAVE_QPA_QPLATFORMNATIVEINTERFACE_H) + target_include_directories(strawberry SYSTEM PRIVATE ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}) +endif() + +target_link_libraries(strawberry PRIVATE + ${CMAKE_THREAD_LIBS_INIT} + PkgConfig::GLIB + PkgConfig::GOBJECT + PkgConfig::SQLITE + PkgConfig::GSTREAMER + PkgConfig::GSTREAMER_BASE + PkgConfig::GSTREAMER_AUDIO + PkgConfig::GSTREAMER_APP + PkgConfig::GSTREAMER_TAG + PkgConfig::GSTREAMER_PBUTILS + ${TAGLIB_LIBRARIES} + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Concurrent + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Network + Qt${QT_VERSION_MAJOR}::Sql + ICU::uc + ICU::i18n + ${SINGLEAPPLICATION_LIBRARIES} +) + +if(HAVE_DBUS) + target_link_libraries(strawberry PRIVATE Qt${QT_VERSION_MAJOR}::DBus) +endif() + +if(HAVE_ALSA) + target_link_libraries(strawberry PRIVATE ALSA::ALSA) +endif() + +if(HAVE_PULSE) + target_link_libraries(strawberry PRIVATE PkgConfig::LIBPULSE) +endif() + +if(HAVE_MOODBAR) + target_link_libraries(strawberry PRIVATE PkgConfig::FFTW3) +endif() + +if(HAVE_SONGFINGERPRINTING OR HAVE_MUSICBRAINZ) + target_link_libraries(strawberry PRIVATE PkgConfig::CHROMAPRINT) +endif() + +if(HAVE_EBUR128) + target_link_libraries(strawberry PRIVATE PkgConfig::LIBEBUR128) +endif() + +if(HAVE_X11_GLOBALSHORTCUTS) + target_link_libraries(strawberry PRIVATE X11::xcb X11::xcb_keysyms) +endif() + +if(HAVE_GIO) + target_link_libraries(strawberry PRIVATE PkgConfig::GIO) + if(HAVE_GIO_UNIX) + target_link_libraries(strawberry PRIVATE PkgConfig::GIO_UNIX) + endif() +endif() + +if(HAVE_AUDIOCD) + target_link_libraries(strawberry PRIVATE PkgConfig::LIBCDIO) +endif() +if(HAVE_MTP) + target_link_libraries(strawberry PRIVATE PkgConfig::LIBMTP) +endif() + +if(HAVE_GPOD) + target_link_libraries(strawberry PRIVATE PkgConfig::LIBGPOD PkgConfig::GDK_PIXBUF) +endif() + +if(APPLE) + target_link_libraries(strawberry PRIVATE + "-framework AppKit" + "-framework Carbon" + "-framework CoreAudio" + "-framework DiskArbitration" + "-framework Foundation" + "-framework IOKit" + "-framework ScriptingBridge" + ) + target_link_libraries(strawberry PRIVATE SPMediaKeyTap) +endif() + +if(WIN32) + target_link_libraries(strawberry PRIVATE dsound dwmapi) + if(MSVC) + target_link_libraries(strawberry PRIVATE WindowsApp) + endif() + target_link_libraries(strawberry PRIVATE getopt-win::getopt) +endif() + +if(HAVE_QTSPARKLE) + target_link_libraries(strawberry PRIVATE PkgConfig::QtSparkle) +endif() + +# Show the console window in debug mode on Windows +if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) + set(STRAWBERRY-WIN32-FLAG WIN32) +endif() + +# Resource file for windows +if(WIN32) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/dist/windows/windres.rc.in ${CMAKE_CURRENT_BINARY_DIR}/windres.rc) + set(STRAWBERRY-WIN32-RESOURCES windres.rc) + target_sources(strawberry PRIVATE + ${STRAWBERRY-WIN32-FLAG} + ${STRAWBERRY-WIN32-RESOURCES} + ) +endif() + +if(FREEBSD) + target_link_libraries(strawberry PRIVATE execinfo) +endif() + +if(NOT APPLE) + install(TARGETS strawberry RUNTIME DESTINATION bin) +endif() + +if(HAVE_TRANSLATIONS AND INSTALL_TRANSLATIONS AND INSTALL_TRANSLATIONS_FILES) + install(FILES ${INSTALL_TRANSLATIONS_FILES} DESTINATION share/strawberry/translations) +endif() + +if(APPLE) + set_target_properties(strawberry PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/dist/macos/Info.plist") +endif() + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") -# Show a summary of what we have enabled summary_show() if(NOT CMAKE_CROSSCOMPILING) diff --git a/cmake/FindFFTW3.cmake b/cmake/FindFFTW3.cmake deleted file mode 100644 index ec67f2a245..0000000000 --- a/cmake/FindFFTW3.cmake +++ /dev/null @@ -1,132 +0,0 @@ -# -# Try to find FFTW3 library -# (see www.fftw.org) -# Once run this will define: -# -# FFTW3_FOUND -# FFTW3_INCLUDE_DIR -# FFTW3_LIBRARIES -# FFTW3_LINK_DIRECTORIES -# -# You may set one of these options before including this file: -# FFTW3_USE_SSE2 -# -# TODO: _F_ versions. -# -# Jan Woetzel 05/2004 -# www.mip.informatik.uni-kiel.de -# -------------------------------- - - FIND_PATH(FFTW3_INCLUDE_DIR fftw3.h - ${FFTW3_DIR}/include - ${FFTW3_HOME}/include - ${FFTW3_DIR} - ${FFTW3_HOME} - $ENV{FFTW3_DIR}/include - $ENV{FFTW3_HOME}/include - $ENV{FFTW3_DIR} - $ENV{FFTW3_HOME} - /usr/include - /usr/local/include - $ENV{SOURCE_DIR}/fftw3 - $ENV{SOURCE_DIR}/fftw3/include - $ENV{SOURCE_DIR}/fftw - $ENV{SOURCE_DIR}/fftw/include - ) -#MESSAGE("DBG FFTW3_INCLUDE_DIR=${FFTW3_INCLUDE_DIR}") - - -SET(FFTW3_POSSIBLE_LIBRARY_PATH - ${FFTW3_DIR}/lib - ${FFTW3_HOME}/lib - ${FFTW3_DIR} - ${FFTW3_HOME} - $ENV{FFTW3_DIR}/lib - $ENV{FFTW3_HOME}/lib - $ENV{FFTW3_DIR} - $ENV{FFTW3_HOME} - /usr/lib - /usr/local/lib - $ENV{SOURCE_DIR}/fftw3 - $ENV{SOURCE_DIR}/fftw3/lib - $ENV{SOURCE_DIR}/fftw - $ENV{SOURCE_DIR}/fftw/lib -) - - -# The lib prefix is contained in filename of W32, unfortunately. In the "general" lib: -FIND_LIBRARY(FFTW3_FFTW_LIBRARY - NAMES fftw3 libfftw libfftw3 libfftw3-3 - PATHS - ${FFTW3_POSSIBLE_LIBRARY_PATH} - ) -#MESSAGE("DBG FFTW3_FFTW_LIBRARY=${FFTW3_FFTW_LIBRARY}") - -FIND_LIBRARY(FFTW3_FFTWF_LIBRARY - NAMES fftwf3 fftw3f fftwf libfftwf libfftwf3 libfftw3f-3 - PATHS - ${FFTW3_POSSIBLE_LIBRARY_PATH} - ) -#MESSAGE("DBG FFTW3_FFTWF_LIBRARY=${FFTW3_FFTWF_LIBRARY}") - -FIND_LIBRARY(FFTW3_FFTWL_LIBRARY - NAMES fftwl3 fftw3l fftwl libfftwl libfftwl3 libfftw3l-3 - PATHS - ${FFTW3_POSSIBLE_LIBRARY_PATH} - ) -#MESSAGE("DBG FFTW3_FFTWF_LIBRARY=${FFTW3_FFTWL_LIBRARY}") - - -FIND_LIBRARY(FFTW3_FFTW_SSE2_LIBRARY - NAMES fftw_sse2 fftw3_sse2 libfftw_sse2 libfftw3_sse2 - PATHS - ${FFTW3_POSSIBLE_LIBRARY_PATH} - ) -#MESSAGE("DBG FFTW3_FFTW_SSE2_LIBRARY=${FFTW3_FFTW_SSE2_LIBRARY}") - -FIND_LIBRARY(FFTW3_FFTWF_SSE_LIBRARY - NAMES fftwf_sse fftwf3_sse libfftwf_sse libfftwf3_sse - PATHS - ${FFTW3_POSSIBLE_LIBRARY_PATH} - ) -#MESSAGE("DBG FFTW3_FFTWF_SSE_LIBRARY=${FFTW3_FFTWF_SSE_LIBRARY}") - - -# -------------------------------- -# select one of the above -# default: -IF (FFTW3_FFTW_LIBRARY) - SET(FFTW3_LIBRARIES ${FFTW3_FFTW_LIBRARY}) -ENDIF (FFTW3_FFTW_LIBRARY) -# specialized: -IF (FFTW3_USE_SSE2 AND FFTW3_FFTW_SSE2_LIBRARY) - SET(FFTW3_LIBRARIES ${FFTW3_FFTW_SSE2_LIBRARY}) -ENDIF (FFTW3_USE_SSE2 AND FFTW3_FFTW_SSE2_LIBRARY) - -# -------------------------------- - -IF(FFTW3_LIBRARIES) - IF (FFTW3_INCLUDE_DIR) - - # OK, found all we need - SET(FFTW3_FOUND TRUE) - GET_FILENAME_COMPONENT(FFTW3_LINK_DIRECTORIES ${FFTW3_LIBRARIES} PATH) - - ELSE (FFTW3_INCLUDE_DIR) - MESSAGE("FFTW3 include dir not found. Set FFTW3_DIR to find it.") - ENDIF(FFTW3_INCLUDE_DIR) -ELSE(FFTW3_LIBRARIES) - MESSAGE("FFTW3 lib not found. Set FFTW3_DIR to find it.") -ENDIF(FFTW3_LIBRARIES) - - -MARK_AS_ADVANCED( - FFTW3_INCLUDE_DIR - FFTW3_LIBRARIES - FFTW3_FFTW_LIBRARY - FFTW3_FFTW_SSE2_LIBRARY - FFTW3_FFTWF_LIBRARY - FFTW3_FFTWF_SSE_LIBRARY - FFTW3_FFTWL_LIBRARY - FFTW3_LINK_DIRECTORIES -) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 63352a7aaf..bcacc117af 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,1278 +1,59 @@ cmake_minimum_required(VERSION 3.13) -if(HAVE_TRANSLATIONS) - include(../cmake/Translations.cmake) -endif() - -set(SOURCES - core/logging.cpp - core/mainwindow.cpp - core/application.cpp - core/player.cpp - core/commandlineoptions.cpp - core/database.cpp - core/sqlquery.cpp - core/sqlrow.cpp - core/metatypes.cpp - core/deletefiles.cpp - core/filesystemmusicstorage.cpp - core/filesystemwatcherinterface.cpp - core/mergedproxymodel.cpp - core/multisortfilterproxy.cpp - core/musicstorage.cpp - core/networkaccessmanager.cpp - core/threadsafenetworkdiskcache.cpp - core/networktimeouts.cpp - core/networkproxyfactory.cpp - core/qtfslistener.cpp - core/settings.cpp - core/settingsprovider.cpp - core/signalchecker.cpp - core/song.cpp - core/songloader.cpp - core/stylehelper.cpp - core/stylesheetloader.cpp - core/taskmanager.cpp - core/thread.cpp - core/urlhandler.cpp - core/iconloader.cpp - core/standarditemiconloader.cpp - core/scopedtransaction.cpp - core/translations.cpp - core/systemtrayicon.cpp - core/localredirectserver.cpp - core/mimedata.cpp - core/potranslator.cpp - core/temporaryfile.cpp - utilities/strutils.cpp - utilities/envutils.cpp - utilities/colorutils.cpp - utilities/cryptutils.cpp - utilities/fileutils.cpp - utilities/diskutils.cpp - utilities/imageutils.cpp - utilities/macaddrutils.cpp - utilities/mimeutils.cpp - utilities/randutils.cpp - utilities/threadutils.cpp - utilities/timeutils.cpp - utilities/transliterate.cpp - utilities/xmlutils.cpp - utilities/filemanagerutils.cpp - utilities/coverutils.cpp - utilities/screenutils.cpp - utilities/textencodingutils.cpp - - tagreader/tagreaderclient.cpp - tagreader/tagreaderresult.cpp - tagreader/tagreaderbase.cpp - tagreader/tagreadertaglib.cpp - tagreader/tagreadergme.cpp - tagreader/tagreaderrequest.cpp - tagreader/tagreaderismediafilerequest.cpp - tagreader/tagreaderreadfilerequest.cpp - tagreader/tagreaderwritefilerequest.cpp - tagreader/tagreaderloadcoverdatarequest.cpp - tagreader/tagreaderloadcoverimagerequest.cpp - tagreader/tagreadersavecoverrequest.cpp - tagreader/tagreadersaveplaycountrequest.cpp - tagreader/tagreadersaveratingrequest.cpp - tagreader/albumcovertagdata.cpp - tagreader/savetagcoverdata.cpp - tagreader/tagreaderreply.cpp - tagreader/tagreaderreadfilereply.cpp - tagreader/tagreaderloadcoverdatareply.cpp - tagreader/tagreaderloadcoverimagereply.cpp - - filterparser/filterparser.cpp - filterparser/filtertree.cpp - - engine/enginebase.cpp - engine/enginedevice.cpp - engine/devicefinders.cpp - engine/devicefinder.cpp - engine/enginemetadata.cpp - engine/gststartup.cpp - engine/gstengine.cpp - engine/gstenginepipeline.cpp - - analyzer/fht.cpp - analyzer/analyzerbase.cpp - analyzer/analyzercontainer.cpp - analyzer/blockanalyzer.cpp - analyzer/boomanalyzer.cpp - analyzer/turbineanalyzer.cpp - analyzer/sonogramanalyzer.cpp - analyzer/waverubberanalyzer.cpp - analyzer/rainbowanalyzer.cpp - - equalizer/equalizer.cpp - equalizer/equalizerslider.cpp - - context/contextview.cpp - context/contextalbum.cpp - - collection/collection.cpp - collection/collectionmodel.cpp - collection/collectionbackend.cpp - collection/collectionwatcher.cpp - collection/collectionview.cpp - collection/collectionitemdelegate.cpp - collection/collectionviewcontainer.cpp - collection/collectiondirectorymodel.cpp - collection/collectionfilteroptions.cpp - collection/collectionfilterwidget.cpp - collection/collectionfilter.cpp - collection/collectionplaylistitem.cpp - collection/collectionquery.cpp - collection/savedgroupingmanager.cpp - collection/groupbydialog.cpp - collection/collectiontask.cpp - collection/collectionmodelupdate.cpp - - playlist/playlist.cpp - playlist/playlistbackend.cpp - playlist/playlistcontainer.cpp - playlist/playlistdelegates.cpp - playlist/playlistfilter.cpp - playlist/playlistheader.cpp - playlist/playlistitem.cpp - playlist/playlistitemmimedata.cpp - playlist/playlistlistcontainer.cpp - playlist/playlistlistmodel.cpp - playlist/playlistlistsortfiltermodel.cpp - playlist/playlistlistview.cpp - playlist/playlistmanager.cpp - playlist/playlistsaveoptionsdialog.cpp - playlist/playlistsequence.cpp - playlist/playlisttabbar.cpp - playlist/playlistundocommands.cpp - playlist/playlistview.cpp - playlist/playlistproxystyle.cpp - playlist/songmimedata.cpp - playlist/songloaderinserter.cpp - playlist/songplaylistitem.cpp - playlist/dynamicplaylistcontrols.cpp - - queue/queue.cpp - queue/queueview.cpp - - playlistparsers/asxiniparser.cpp - playlistparsers/asxparser.cpp - playlistparsers/cueparser.cpp - playlistparsers/m3uparser.cpp - playlistparsers/parserbase.cpp - playlistparsers/playlistparser.cpp - playlistparsers/plsparser.cpp - playlistparsers/wplparser.cpp - playlistparsers/xmlparser.cpp - playlistparsers/xspfparser.cpp - - smartplaylists/playlistgenerator.cpp - smartplaylists/playlistgeneratorinserter.cpp - smartplaylists/playlistgeneratormimedata.cpp - smartplaylists/playlistquerygenerator.cpp - smartplaylists/smartplaylistquerywizardplugin.cpp - smartplaylists/smartplaylistquerywizardpluginsortpage.cpp - smartplaylists/smartplaylistquerywizardpluginsearchpage.cpp - smartplaylists/smartplaylistsearch.cpp - smartplaylists/smartplaylistsearchpreview.cpp - smartplaylists/smartplaylistsearchterm.cpp - smartplaylists/smartplaylistsearchtermwidget.cpp - smartplaylists/smartplaylistsearchtermwidgetoverlay.cpp - smartplaylists/smartplaylistsmodel.cpp - smartplaylists/smartplaylistsviewcontainer.cpp - smartplaylists/smartplaylistsview.cpp - smartplaylists/smartplaylistwizard.cpp - smartplaylists/smartplaylistwizardplugin.cpp - smartplaylists/smartplaylistwizardtypepage.cpp - smartplaylists/smartplaylistwizardfinishpage.cpp - - covermanager/albumcovermanager.cpp - covermanager/albumcovermanagerlist.cpp - covermanager/albumcoverloader.cpp - covermanager/albumcoverloaderoptions.cpp - covermanager/albumcoverfetcher.cpp - covermanager/albumcoverfetchersearch.cpp - covermanager/albumcoversearcher.cpp - covermanager/albumcoverexport.cpp - covermanager/albumcoverexporter.cpp - covermanager/albumcoverchoicecontroller.cpp - covermanager/coverprovider.cpp - covermanager/coverproviders.cpp - covermanager/coversearchstatistics.cpp - covermanager/coversearchstatisticsdialog.cpp - covermanager/coverexportrunnable.cpp - covermanager/currentalbumcoverloader.cpp - covermanager/coverfromurldialog.cpp - covermanager/jsoncoverprovider.cpp - covermanager/lastfmcoverprovider.cpp - covermanager/musicbrainzcoverprovider.cpp - covermanager/discogscoverprovider.cpp - covermanager/deezercoverprovider.cpp - covermanager/qobuzcoverprovider.cpp - covermanager/musixmatchcoverprovider.cpp - covermanager/opentidalcoverprovider.cpp - - lyrics/lyricsproviders.cpp - lyrics/lyricsprovider.cpp - lyrics/lyricssearchrequest.h - lyrics/lyricssearchresult.h - lyrics/lyricsfetcher.cpp - lyrics/lyricsfetchersearch.cpp - lyrics/jsonlyricsprovider.cpp - lyrics/htmllyricsprovider.cpp - lyrics/ovhlyricsprovider.cpp - lyrics/lololyricsprovider.cpp - lyrics/geniuslyricsprovider.cpp - lyrics/musixmatchlyricsprovider.cpp - lyrics/chartlyricsprovider.cpp - lyrics/songlyricscomlyricsprovider.cpp - lyrics/azlyricscomlyricsprovider.cpp - lyrics/elyricsnetlyricsprovider.cpp - lyrics/letraslyricsprovider.cpp - lyrics/lyricfindlyricsprovider.cpp - - providers/musixmatchprovider.cpp - - settings/settingsdialog.cpp - settings/settingspage.cpp - settings/behavioursettingspage.cpp - settings/collectionsettingspage.cpp - settings/collectionsettingsdirectorymodel.cpp - settings/backendsettingspage.cpp - settings/playlistsettingspage.cpp - settings/scrobblersettingspage.cpp - settings/coverssettingspage.cpp - settings/lyricssettingspage.cpp - settings/networkproxysettingspage.cpp - settings/appearancesettingspage.cpp - settings/contextsettingspage.cpp - settings/notificationssettingspage.cpp - settings/transcodersettingspage.cpp - - dialogs/about.cpp - dialogs/console.cpp - dialogs/errordialog.cpp - dialogs/edittagdialog.cpp - dialogs/trackselectiondialog.cpp - dialogs/addstreamdialog.cpp - dialogs/userpassdialog.cpp - dialogs/deleteconfirmationdialog.cpp - dialogs/lastfmimportdialog.cpp - dialogs/messagedialog.cpp - dialogs/snapdialog.cpp - dialogs/saveplaylistsdialog.cpp - - widgets/autoexpandingtreeview.cpp - widgets/busyindicator.cpp - widgets/clickablelabel.cpp - widgets/fancytabwidget.cpp - widgets/fancytabbar.cpp - widgets/fancytabdata.cpp - widgets/favoritewidget.cpp - widgets/fileview.cpp - widgets/fileviewlist.cpp - widgets/forcescrollperpixel.cpp - widgets/freespacebar.cpp - widgets/groupediconview.cpp - widgets/lineedit.cpp - widgets/linetextedit.cpp - widgets/multiloadingindicator.cpp - widgets/playingwidget.cpp - widgets/renametablineedit.cpp - widgets/sliderslider.cpp - widgets/prettyslider.cpp - widgets/volumeslider.cpp - widgets/stickyslider.cpp - widgets/stretchheaderview.cpp - widgets/trackslider.cpp - widgets/tracksliderpopup.cpp - widgets/tracksliderslider.cpp - widgets/loginstatewidget.cpp - widgets/ratingwidget.cpp - widgets/resizabletextedit.cpp - - osd/osdbase.cpp - osd/osdpretty.cpp - - streaming/streamingservices.cpp - streaming/streamingservice.cpp - streaming/streamplaylistitem.cpp - streaming/streamingsearchview.cpp - streaming/streamingsearchmodel.cpp - streaming/streamingsearchsortmodel.cpp - streaming/streamingsearchitemdelegate.cpp - streaming/streamingsongsview.cpp - streaming/streamingtabsview.cpp - streaming/streamingcollectionview.cpp - streaming/streamingcollectionviewcontainer.cpp - streaming/streamingsearchview.cpp - streaming/streamsongmimedata.cpp - - radios/radioservices.cpp - radios/radiobackend.cpp - radios/radiomodel.cpp - radios/radioview.cpp - radios/radioviewcontainer.cpp - radios/radioservice.cpp - radios/radioplaylistitem.cpp - radios/radiochannel.cpp - radios/somafmservice.cpp - radios/radioparadiseservice.cpp - radios/radiomimedata.cpp - - scrobbler/audioscrobbler.cpp - scrobbler/scrobblersettings.cpp - scrobbler/scrobblerservice.cpp - scrobbler/scrobblercache.cpp - scrobbler/scrobblercacheitem.cpp - scrobbler/scrobblemetadata.cpp - scrobbler/scrobblingapi20.cpp - scrobbler/lastfmscrobbler.cpp - scrobbler/librefmscrobbler.cpp - scrobbler/listenbrainzscrobbler.cpp - scrobbler/lastfmimport.cpp - - organize/organize.cpp - organize/organizeformat.cpp - organize/organizeformatvalidator.cpp - organize/organizesyntaxhighlighter.cpp - organize/organizedialog.cpp - organize/organizeerrordialog.cpp - - transcoder/transcoder.cpp - transcoder/transcoderoptionsinterface.cpp - transcoder/transcodedialog.cpp - transcoder/transcoderoptionsdialog.cpp - transcoder/transcoderoptionsflac.cpp - transcoder/transcoderoptionswavpack.cpp - transcoder/transcoderoptionsvorbis.cpp - transcoder/transcoderoptionsopus.cpp - transcoder/transcoderoptionsspeex.cpp - transcoder/transcoderoptionsaac.cpp - transcoder/transcoderoptionsasf.cpp - transcoder/transcoderoptionsmp3.cpp -) - -set(HEADERS - core/logging.h - core/mainwindow.h - core/application.h - core/player.h - core/database.h - core/deletefiles.h - core/filesystemwatcherinterface.h - core/mergedproxymodel.h - core/multisortfilterproxy.h - core/networkaccessmanager.h - core/threadsafenetworkdiskcache.h - core/networktimeouts.h - core/qtfslistener.h - core/settings.h - core/songloader.h - core/taskmanager.h - core/thread.h - core/urlhandler.h - core/standarditemiconloader.h - core/translations.h - core/potranslator.h - core/mimedata.h - core/stylesheetloader.h - core/localredirectserver.h - - tagreader/tagreaderclient.h - tagreader/tagreaderreply.h - tagreader/tagreaderreadfilereply.h - tagreader/tagreaderloadcoverdatareply.h - tagreader/tagreaderloadcoverimagereply.h - - engine/enginebase.h - engine/devicefinders.h - engine/gststartup.h - engine/gstengine.h - engine/gstenginepipeline.h - - analyzer/analyzerbase.h - analyzer/analyzercontainer.h - analyzer/blockanalyzer.h - analyzer/boomanalyzer.h - analyzer/turbineanalyzer.h - analyzer/sonogramanalyzer.h - analyzer/waverubberanalyzer.h - analyzer/rainbowanalyzer.h - - equalizer/equalizer.h - equalizer/equalizerslider.h - - context/contextview.h - context/contextalbum.h - - collection/collection.h - collection/collectionmodel.h - collection/collectionbackend.h - collection/collectionwatcher.h - collection/collectionview.h - collection/collectionitemdelegate.h - collection/collectionviewcontainer.h - collection/collectiondirectorymodel.h - collection/collectionfilterwidget.h - collection/collectionfilter.h - collection/savedgroupingmanager.h - collection/groupbydialog.h - - playlist/playlist.h - playlist/playlistbackend.h - playlist/playlistcontainer.h - playlist/playlistdelegates.h - playlist/playlistfilter.h - playlist/playlistheader.h - playlist/playlistlistcontainer.h - playlist/playlistlistmodel.h - playlist/playlistlistview.h - playlist/playlistlistsortfiltermodel.h - playlist/playlistmanager.h - playlist/playlistsaveoptionsdialog.h - playlist/playlistsequence.h - playlist/playlisttabbar.h - playlist/playlistview.h - playlist/playlistproxystyle.h - playlist/playlistitemmimedata.h - playlist/songloaderinserter.h - playlist/songmimedata.h - playlist/dynamicplaylistcontrols.h - - queue/queue.h - queue/queueview.h - - playlistparsers/asxiniparser.h - playlistparsers/asxparser.h - playlistparsers/cueparser.h - playlistparsers/m3uparser.h - playlistparsers/parserbase.h - playlistparsers/playlistparser.h - playlistparsers/plsparser.h - playlistparsers/wplparser.h - playlistparsers/xmlparser.h - playlistparsers/xspfparser.h - - smartplaylists/playlistgenerator.h - smartplaylists/playlistgeneratorinserter.h - smartplaylists/playlistquerygenerator.h - smartplaylists/playlistgeneratormimedata.h - smartplaylists/smartplaylistquerywizardplugin.h - smartplaylists/smartplaylistquerywizardpluginsortpage.h - smartplaylists/smartplaylistquerywizardpluginsearchpage.h - smartplaylists/smartplaylistsearchpreview.h - smartplaylists/smartplaylistsearchtermwidget.h - smartplaylists/smartplaylistsearchtermwidgetoverlay.h - smartplaylists/smartplaylistsmodel.h - smartplaylists/smartplaylistsviewcontainer.h - smartplaylists/smartplaylistsview.h - smartplaylists/smartplaylistwizard.h - smartplaylists/smartplaylistwizardplugin.h - smartplaylists/smartplaylistwizardtypepage.h - smartplaylists/smartplaylistwizardfinishpage.h - - covermanager/albumcovermanager.h - covermanager/albumcovermanagerlist.h - covermanager/albumcoverloader.h - covermanager/albumcoverfetcher.h - covermanager/albumcoverfetchersearch.h - covermanager/albumcoversearcher.h - covermanager/albumcoverexport.h - covermanager/albumcoverexporter.h - covermanager/albumcoverchoicecontroller.h - covermanager/coverprovider.h - covermanager/coverproviders.h - covermanager/coversearchstatisticsdialog.h - covermanager/coverexportrunnable.h - covermanager/currentalbumcoverloader.h - covermanager/coverfromurldialog.h - covermanager/jsoncoverprovider.h - covermanager/lastfmcoverprovider.h - covermanager/musicbrainzcoverprovider.h - covermanager/discogscoverprovider.h - covermanager/deezercoverprovider.h - covermanager/qobuzcoverprovider.h - covermanager/musixmatchcoverprovider.h - covermanager/opentidalcoverprovider.h - - lyrics/lyricsproviders.h - lyrics/lyricsprovider.h - lyrics/lyricsfetcher.h - lyrics/lyricsfetchersearch.h - lyrics/jsonlyricsprovider.h - lyrics/htmllyricsprovider.h - lyrics/ovhlyricsprovider.h - lyrics/lololyricsprovider.h - lyrics/geniuslyricsprovider.h - lyrics/musixmatchlyricsprovider.h - lyrics/chartlyricsprovider.h - lyrics/songlyricscomlyricsprovider.h - lyrics/azlyricscomlyricsprovider.h - lyrics/elyricsnetlyricsprovider.h - lyrics/letraslyricsprovider.h - lyrics/lyricfindlyricsprovider.h - - settings/settingsdialog.h - settings/settingspage.h - settings/behavioursettingspage.h - settings/collectionsettingspage.h - settings/collectionsettingsdirectorymodel.h - settings/backendsettingspage.h - settings/playlistsettingspage.h - settings/scrobblersettingspage.h - settings/coverssettingspage.h - settings/lyricssettingspage.h - settings/networkproxysettingspage.h - settings/appearancesettingspage.h - settings/contextsettingspage.h - settings/notificationssettingspage.h - settings/transcodersettingspage.h - - dialogs/about.h - dialogs/errordialog.h - dialogs/console.h - dialogs/edittagdialog.h - dialogs/trackselectiondialog.h - dialogs/addstreamdialog.h - dialogs/userpassdialog.h - dialogs/deleteconfirmationdialog.h - dialogs/lastfmimportdialog.h - dialogs/messagedialog.h - dialogs/snapdialog.h - dialogs/saveplaylistsdialog.h - - widgets/autoexpandingtreeview.h - widgets/busyindicator.h - widgets/clickablelabel.h - widgets/fancytabwidget.h - widgets/fancytabbar.h - widgets/fancytabdata.h - widgets/favoritewidget.h - widgets/fileview.h - widgets/fileviewlist.h - widgets/freespacebar.h - widgets/groupediconview.h - widgets/lineedit.h - widgets/linetextedit.h - widgets/multiloadingindicator.h - widgets/playingwidget.h - widgets/renametablineedit.h - widgets/sliderslider.h - widgets/prettyslider.h - widgets/volumeslider.h - widgets/stickyslider.h - widgets/stretchheaderview.h - widgets/trackslider.h - widgets/tracksliderpopup.h - widgets/tracksliderslider.h - widgets/loginstatewidget.h - widgets/searchfield.h - widgets/ratingwidget.h - widgets/forcescrollperpixel.h - widgets/resizabletextedit.h - - osd/osdbase.h - osd/osdpretty.h - - streaming/streamingservices.h - streaming/streamingservice.h - streaming/streamsongmimedata.h - streaming/streamingsearchmodel.h - streaming/streamingsearchsortmodel.h - streaming/streamingsearchitemdelegate.h - streaming/streamingsearchview.h - streaming/streamingsongsview.h - streaming/streamingtabsview.h - streaming/streamingcollectionview.h - streaming/streamingcollectionviewcontainer.h - - radios/radioservices.h - radios/radiobackend.h - radios/radiomodel.h - radios/radioview.h - radios/radioviewcontainer.h - radios/radioservice.h - radios/radiomimedata.h - radios/somafmservice.h - radios/radioparadiseservice.h - - scrobbler/audioscrobbler.h - scrobbler/scrobblersettings.h - scrobbler/scrobblerservice.h - scrobbler/scrobblercache.h - scrobbler/scrobblingapi20.h - scrobbler/lastfmscrobbler.h - scrobbler/librefmscrobbler.h - scrobbler/listenbrainzscrobbler.h - scrobbler/lastfmimport.h - - organize/organize.h - organize/organizeformatvalidator.h - organize/organizesyntaxhighlighter.h - organize/organizedialog.h - organize/organizeerrordialog.h - - transcoder/transcoder.h - transcoder/transcodedialog.h - transcoder/transcoderoptionsdialog.h - transcoder/transcoderoptionsinterface.h - transcoder/transcoderoptionsflac.h - transcoder/transcoderoptionswavpack.h - transcoder/transcoderoptionsvorbis.h - transcoder/transcoderoptionsopus.h - transcoder/transcoderoptionsspeex.h - transcoder/transcoderoptionsaac.h - transcoder/transcoderoptionsasf.h - transcoder/transcoderoptionsmp3.h -) - -set(UI - - core/mainwindow.ui - - collection/groupbydialog.ui - collection/collectionfilterwidget.ui - collection/collectionviewcontainer.ui - collection/savedgroupingmanager.ui - - playlist/playlistcontainer.ui - playlist/playlistlistcontainer.ui - playlist/playlistsaveoptionsdialog.ui - playlist/playlistsequence.ui - playlist/dynamicplaylistcontrols.ui - - queue/queueview.ui - - smartplaylists/smartplaylistquerysearchpage.ui - smartplaylists/smartplaylistquerysortpage.ui - smartplaylists/smartplaylistsearchpreview.ui - smartplaylists/smartplaylistsearchtermwidget.ui - smartplaylists/smartplaylistsviewcontainer.ui - smartplaylists/smartplaylistwizardfinishpage.ui - - covermanager/albumcoverexport.ui - covermanager/albumcovermanager.ui - covermanager/albumcoversearcher.ui - covermanager/coversearchstatisticsdialog.ui - covermanager/coverfromurldialog.ui - - settings/settingsdialog.ui - settings/behavioursettingspage.ui - settings/collectionsettingspage.ui - settings/backendsettingspage.ui - settings/contextsettingspage.ui - settings/playlistsettingspage.ui - settings/scrobblersettingspage.ui - settings/coverssettingspage.ui - settings/lyricssettingspage.ui - settings/networkproxysettingspage.ui - settings/appearancesettingspage.ui - settings/notificationssettingspage.ui - settings/transcodersettingspage.ui - - equalizer/equalizer.ui - equalizer/equalizerslider.ui - - dialogs/about.ui - dialogs/errordialog.ui - dialogs/console.ui - dialogs/edittagdialog.ui - dialogs/trackselectiondialog.ui - dialogs/addstreamdialog.ui - dialogs/userpassdialog.ui - dialogs/lastfmimportdialog.ui - dialogs/messagedialog.ui - dialogs/saveplaylistsdialog.ui - - widgets/trackslider.ui - widgets/fileview.ui - widgets/loginstatewidget.ui - - osd/osdpretty.ui - - streaming/streamingtabsview.ui - streaming/streamingcollectionviewcontainer.ui - streaming/streamingsearchview.ui - - radios/radioviewcontainer.ui - - organize/organizedialog.ui - organize/organizeerrordialog.ui - - transcoder/transcodedialog.ui - transcoder/transcodelogdialog.ui - transcoder/transcoderoptionsaac.ui - transcoder/transcoderoptionsdialog.ui - transcoder/transcoderoptionsflac.ui - transcoder/transcoderoptionswavpack.ui - transcoder/transcoderoptionsvorbis.ui - transcoder/transcoderoptionsopus.ui - transcoder/transcoderoptionsspeex.ui - transcoder/transcoderoptionsasf.ui - transcoder/transcoderoptionsmp3.ui -) - -set(RESOURCES ../data/data.qrc ../data/icons.qrc) - -option(USE_INSTALL_PREFIX "Look for data in CMAKE_INSTALL_PREFIX" ON) - -if(NOT APPLE) - set(NOT_APPLE ON) - optional_source(NOT_APPLE SOURCES widgets/searchfield_qt.cpp widgets/searchfield_qt_private.cpp core/qtsystemtrayicon.cpp HEADERS core/qtsystemtrayicon.h widgets/searchfield_qt_private.h) -endif() - -if(HAVE_GLOBALSHORTCUTS) - optional_source(HAVE_GLOBALSHORTCUTS - SOURCES globalshortcuts/globalshortcutsmanager.cpp globalshortcuts/globalshortcutsbackend.cpp globalshortcuts/globalshortcutgrabber.cpp settings/globalshortcutssettingspage.cpp - HEADERS globalshortcuts/globalshortcutsmanager.h globalshortcuts/globalshortcutsbackend.h globalshortcuts/globalshortcutgrabber.h settings/globalshortcutssettingspage.h - UI globalshortcuts/globalshortcutgrabber.ui settings/globalshortcutssettingspage.ui - ) - optional_source(HAVE_DBUS - SOURCES globalshortcuts/globalshortcutsbackend-kde.cpp globalshortcuts/globalshortcutsbackend-gnome.cpp globalshortcuts/globalshortcutsbackend-mate.cpp - HEADERS globalshortcuts/globalshortcutsbackend-kde.h globalshortcuts/globalshortcutsbackend-gnome.h globalshortcuts/globalshortcutsbackend-mate.h - ) - optional_source(HAVE_X11_GLOBALSHORTCUTS - SOURCES globalshortcuts/globalshortcutsbackend-x11.cpp globalshortcuts/globalshortcut.cpp globalshortcuts/globalshortcut-x11.cpp - HEADERS globalshortcuts/globalshortcutsbackend-x11.h globalshortcuts/globalshortcut.h - ) - optional_source(WIN32 - SOURCES globalshortcuts/globalshortcutsbackend-win.cpp globalshortcuts/globalshortcut.cpp globalshortcuts/globalshortcut-win.cpp - HEADERS globalshortcuts/globalshortcutsbackend-win.h globalshortcuts/globalshortcut.h - ) -endif(HAVE_GLOBALSHORTCUTS) - -# ALSA -optional_source(HAVE_ALSA SOURCES engine/alsadevicefinder.cpp engine/alsapcmdevicefinder.cpp) - -# DBUS -optional_source(HAVE_DBUS SOURCES osd/osddbus.cpp HEADERS osd/osddbus.h) - -# DBUS and MPRIS - Unix specific -if(UNIX AND HAVE_DBUS) - - optional_source(HAVE_DBUS SOURCES core/mpris2.cpp HEADERS core/mpris2.h) - optional_source(HAVE_UDISKS2 SOURCES device/udisks2lister.cpp HEADERS device/udisks2lister.h) - - # MPRIS 2.0 DBUS interfaces - qt_add_dbus_adaptor(SOURCES dbus/org.mpris.MediaPlayer2.Player.xml core/mpris2.h mpris::Mpris2 mpris2_player Mpris2Player) - qt_add_dbus_adaptor(SOURCES dbus/org.mpris.MediaPlayer2.xml core/mpris2.h mpris::Mpris2 mpris2_root Mpris2Root) - qt_add_dbus_adaptor(SOURCES dbus/org.mpris.MediaPlayer2.TrackList.xml core/mpris2.h mpris::Mpris2 mpris2_tracklist Mpris2TrackList) - - # MPRIS 2.1 DBUS interfaces - qt_add_dbus_adaptor(SOURCES dbus/org.mpris.MediaPlayer2.Playlists.xml core/mpris2.h mpris::Mpris2 mpris2_playlists Mpris2Playlists) - - # org.freedesktop.Notifications DBUS interface - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.Notifications.xml notification) - - # org.gnome.SettingsDaemon interface - qt_add_dbus_interface(SOURCES dbus/org.gnome.SettingsDaemon.MediaKeys.xml gnomesettingsdaemon) - - # org.mate.SettingsDaemon interface - qt_add_dbus_interface(SOURCES dbus/org.mate.SettingsDaemon.MediaKeys.xml matesettingsdaemon) - - # org.kde.KGlobalAccel interface - qt_add_dbus_interface(SOURCES dbus/org.kde.KGlobalAccel.xml kglobalaccel) - qt_add_dbus_interface(SOURCES dbus/org.kde.KGlobalAccel.Component.xml kglobalaccelcomponent) - - if(HAVE_UDISKS2) - set_source_files_properties(dbus/org.freedesktop.DBus.ObjectManager.xml PROPERTIES NO_NAMESPACE objectmanager INCLUDE dbus/metatypes.h) - set_source_files_properties(dbus/org.freedesktop.UDisks2.Filesystem.xml PROPERTIES NO_NAMESPACE udisks2filesystem INCLUDE dbus/metatypes.h) - set_source_files_properties(dbus/org.freedesktop.UDisks2.Block.xml PROPERTIES NO_NAMESPACE udisks2block INCLUDE dbus/metatypes.h) - set_source_files_properties(dbus/org.freedesktop.UDisks2.Drive.xml PROPERTIES NO_NAMESPACE udisks2drive INCLUDE dbus/metatypes.h) - set_source_files_properties(dbus/org.freedesktop.UDisks2.Job.xml PROPERTIES NO_NAMESPACE udisks2job INCLUDE dbus/metatypes.h) - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.DBus.ObjectManager.xml objectmanager) - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.UDisks2.Filesystem.xml udisks2filesystem) - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.UDisks2.Block.xml udisks2block) - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.UDisks2.Drive.xml udisks2drive) - qt_add_dbus_interface(SOURCES dbus/org.freedesktop.UDisks2.Job.xml udisks2job) - endif(HAVE_UDISKS2) - -endif(UNIX AND HAVE_DBUS) - -optional_source(UNIX - SOURCES - device/connecteddevice.cpp - device/devicedatabasebackend.cpp - device/devicelister.cpp - device/devicemanager.cpp - device/devicestatefiltermodel.cpp - device/filesystemdevice.cpp - device/deviceviewcontainer.cpp - device/deviceview.cpp - device/deviceproperties.cpp - device/deviceinfo.cpp - HEADERS - device/connecteddevice.h - device/devicedatabasebackend.h - device/devicelister.h - device/devicemanager.h - device/devicestatefiltermodel.h - device/filesystemdevice.h - device/deviceviewcontainer.h - device/deviceview.h - device/deviceproperties.h - UI - device/deviceproperties.ui - device/deviceviewcontainer.ui -) - -# Libgpod device backend -optional_source(HAVE_LIBGPOD - SOURCES - device/gpoddevice.cpp - device/gpodloader.cpp - HEADERS - device/gpoddevice.h - device/gpodloader.h -) - -# GIO device backend -optional_source(HAVE_GIO SOURCES device/giolister.cpp HEADERS device/giolister.h) - -# MTP device -optional_source(HAVE_LIBMTP - SOURCES - device/mtpconnection.cpp - device/mtpdevice.cpp - device/mtploader.cpp - HEADERS - device/mtpconnection.h - device/mtpdevice.h - device/mtploader.h -) - -# Pulse audio integration -optional_source(HAVE_LIBPULSE SOURCES engine/pulsedevicefinder.cpp) - -# CHROMAPRINT -if(HAVE_SONGFINGERPRINTING OR HAVE_MUSICBRAINZ) - optional_source(CHROMAPRINT_FOUND SOURCES engine/chromaprinter.cpp) -endif() - -# MusicBrainz -optional_source(HAVE_MUSICBRAINZ - SOURCES - musicbrainz/acoustidclient.cpp - musicbrainz/musicbrainzclient.cpp - musicbrainz/tagfetcher.cpp - HEADERS - musicbrainz/acoustidclient.h - musicbrainz/musicbrainzclient.h - musicbrainz/tagfetcher.h -) - -# CDIO backend and device -optional_source(HAVE_AUDIOCD - SOURCES - device/cddadevice.cpp - device/cddalister.cpp - device/cddasongloader.cpp - HEADERS - device/cddadevice.h - device/cddalister.h - device/cddasongloader.h -) - -# Platform specific - macOS -optional_source(APPLE - SOURCES - utilities/macosutils.mm - core/scoped_nsautorelease_pool.mm - core/mac_startup.mm - core/macsystemtrayicon.mm - osd/osdmac.mm - widgets/searchfield_mac.mm - engine/macosdevicefinder.cpp - globalshortcuts/globalshortcutsbackend-macos.mm - globalshortcuts/globalshortcutgrabber.mm - device/macosdevicelister.mm - HEADERS - core/macsystemtrayicon.h - osd/osdmac.h - globalshortcuts/globalshortcutsbackend-macos.h - device/macosdevicelister.h -) - -# Platform specific - Windows -optional_source(WIN32 - SOURCES - utilities/winutils.cpp - engine/directsounddevicefinder.cpp - engine/mmdevicefinder.cpp - core/scopedwchararray.cpp - core/windows7thumbbar.cpp - HEADERS - core/windows7thumbbar.h -) -optional_source(MSVC SOURCES engine/uwpdevicefinder.cpp engine/asiodevicefinder.cpp) - -optional_source(HAVE_SUBSONIC - SOURCES - subsonic/subsonicservice.cpp - subsonic/subsonicurlhandler.cpp - subsonic/subsonicbaserequest.cpp - subsonic/subsonicrequest.cpp - subsonic/subsonicscrobblerequest.cpp - settings/subsonicsettingspage.cpp - scrobbler/subsonicscrobbler.cpp - HEADERS - subsonic/subsonicservice.h - subsonic/subsonicurlhandler.h - subsonic/subsonicbaserequest.h - subsonic/subsonicrequest.h - subsonic/subsonicscrobblerequest.h - settings/subsonicsettingspage.h - scrobbler/subsonicscrobbler.h - UI - settings/subsonicsettingspage.ui -) - -optional_source(HAVE_TIDAL - SOURCES - tidal/tidalservice.cpp - tidal/tidalurlhandler.cpp - tidal/tidalbaserequest.cpp - tidal/tidalrequest.cpp - tidal/tidalstreamurlrequest.cpp - tidal/tidalfavoriterequest.cpp - settings/tidalsettingspage.cpp - covermanager/tidalcoverprovider.cpp - HEADERS - tidal/tidalservice.h - tidal/tidalurlhandler.h - tidal/tidalbaserequest.h - tidal/tidalrequest.h - tidal/tidalstreamurlrequest.h - tidal/tidalfavoriterequest.h - settings/tidalsettingspage.h - covermanager/tidalcoverprovider.h - UI - settings/tidalsettingspage.ui -) - -optional_source(HAVE_SPOTIFY - SOURCES - spotify/spotifyservice.cpp - spotify/spotifybaserequest.cpp - spotify/spotifyrequest.cpp - spotify/spotifyfavoriterequest.cpp - settings/spotifysettingspage.cpp - covermanager/spotifycoverprovider.cpp - HEADERS - spotify/spotifyservice.h - spotify/spotifybaserequest.h - spotify/spotifyrequest.h - spotify/spotifyfavoriterequest.h - settings/spotifysettingspage.h - covermanager/spotifycoverprovider.h - UI - settings/spotifysettingspage.ui -) - -optional_source(HAVE_QOBUZ - SOURCES - qobuz/qobuzservice.cpp - qobuz/qobuzurlhandler.cpp - qobuz/qobuzbaserequest.cpp - qobuz/qobuzrequest.cpp - qobuz/qobuzstreamurlrequest.cpp - qobuz/qobuzfavoriterequest.cpp - settings/qobuzsettingspage.cpp - HEADERS - qobuz/qobuzservice.h - qobuz/qobuzurlhandler.h - qobuz/qobuzbaserequest.h - qobuz/qobuzrequest.h - qobuz/qobuzstreamurlrequest.h - qobuz/qobuzfavoriterequest.h - settings/qobuzsettingspage.h - UI - settings/qobuzsettingspage.ui -) - -# Moodbar -optional_source(HAVE_MOODBAR - SOURCES - moodbar/moodbarbuilder.cpp - moodbar/moodbarcontroller.cpp - moodbar/moodbaritemdelegate.cpp - moodbar/moodbarloader.cpp - moodbar/moodbarpipeline.cpp - moodbar/moodbarproxystyle.cpp - moodbar/moodbarrenderer.cpp - moodbar/gstfastspectrumplugin.cpp - moodbar/gstfastspectrum.cpp - settings/moodbarsettingspage.cpp - HEADERS - moodbar/moodbarcontroller.h - moodbar/moodbaritemdelegate.h - moodbar/moodbarloader.h - moodbar/moodbarpipeline.h - moodbar/moodbarproxystyle.h - settings/moodbarsettingspage.h - UI - settings/moodbarsettingspage.ui -) - -# EBU R 128 -optional_source(HAVE_EBUR128 - SOURCES engine/ebur128analysis.cpp -) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) -qt_wrap_cpp(MOC ${HEADERS}) -qt_wrap_ui(UIC ${UI}) -qt_add_resources(QRC ${RESOURCES}) - -if(HAVE_TRANSLATIONS) - - set(LINGUAS "All" CACHE STRING "A space-seperated list of translations to compile in to Strawberry, or \"None\".") - if(LINGUAS STREQUAL "All") - # build LANGUAGES from all existing .po files - file(GLOB pofiles translations/*.po) - foreach(pofile ${pofiles}) - get_filename_component(lang ${pofile} NAME_WE) - list(APPEND LANGUAGES ${lang}) - endforeach(pofile) - else(LINGUAS STREQUAL "All") - if(NOT LINGUAS OR LINGUAS STREQUAL "None") - set(LANGUAGES "") - else(NOT LINGUAS OR LINGUAS STREQUAL "None") - string(REGEX MATCHALL [a-zA-Z_@]+ LANGUAGES ${LINGUAS}) - endif(NOT LINGUAS OR LINGUAS STREQUAL "None") - endif(LINGUAS STREQUAL "All") - - if(NOT MSVC) - add_pot(POT - ${CMAKE_CURRENT_SOURCE_DIR}/translations/header - ${CMAKE_CURRENT_SOURCE_DIR}/translations/translations.pot - ${SOURCES} - ${MOC} - ${UIC} - ${CMAKE_SOURCE_DIR}/data/html/oauthsuccess.html - ) - endif() - add_po(PO strawberry_ LANGUAGES ${LANGUAGES} DIRECTORY translations) - -endif(HAVE_TRANSLATIONS) - -add_library(strawberry_lib STATIC - ${SOURCES} - ${MOC} - ${UIC} - ${QRC} - ${POT} - ${PO} - ${OTHER_UIC_SOURCES} -) - -target_include_directories(strawberry_lib PUBLIC - ${CMAKE_SOURCE_DIR} - ${CMAKE_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR} +target_include_directories(strawberry PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} ) -target_include_directories(strawberry_lib SYSTEM PUBLIC - ${Boost_INCLUDE_DIRS} - ${GLIB_INCLUDE_DIRS} - ${GOBJECT_INCLUDE_DIRS} - ${SQLITE_INCLUDE_DIRS} - ${ICU_INCLUDE_DIRS} - ${TAGLIB_INCLUDE_DIRS} - ${GSTREAMER_INCLUDE_DIRS} - ${GSTREAMER_BASE_INCLUDE_DIRS} - ${GSTREAMER_APP_INCLUDE_DIRS} - ${GSTREAMER_AUDIO_INCLUDE_DIRS} - ${GSTREAMER_TAG_INCLUDE_DIRS} - ${GSTREAMER_PBUTILS_INCLUDE_DIRS} - ${SINGLEAPPLICATION_INCLUDE_DIRS} -) - -if(HAVE_QPA_QPLATFORMNATIVEINTERFACE_H) - target_include_directories(strawberry_lib SYSTEM PUBLIC ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}) -endif() - -target_link_directories(strawberry_lib PUBLIC - ${Boost_LIBRARY_DIRS} - ${GLIB_LIBRARY_DIRS} - ${GOBJECT_LIBRARY_DIRS} - ${SQLITE_LIBRARY_DIRS} - ${SINGLEAPPLICATION_LIBRARY_DIRS} - ${ICU_LIBRARY_DIRS} - ${TAGLIB_LIBRARY_DIRS} - ${GSTREAMER_LIBRARY_DIRS} - ${GSTREAMER_BASE_LIBRARY_DIRS} - ${GSTREAMER_APP_LIBRARY_DIRS} - ${GSTREAMER_AUDIO_LIBRARY_DIRS} - ${GSTREAMER_TAG_LIBRARY_DIRS} - ${GSTREAMER_PBUTILS_LIBRARY_DIRS} -) - -target_link_libraries(strawberry_lib PUBLIC - ${CMAKE_THREAD_LIBS_INIT} - ${GLIB_LIBRARIES} - ${GOBJECT_LIBRARIES} - ${SQLITE_LIBRARIES} - ${ICU_LIBRARIES} - ${TAGLIB_LIBRARIES} - ${GSTREAMER_LIBRARIES} - ${GSTREAMER_BASE_LIBRARIES} - ${GSTREAMER_AUDIO_LIBRARIES} - ${GSTREAMER_APP_LIBRARIES} - ${GSTREAMER_TAG_LIBRARIES} - ${GSTREAMER_PBUTILS_LIBRARIES} - Qt${QT_VERSION_MAJOR}::Core - Qt${QT_VERSION_MAJOR}::Concurrent - Qt${QT_VERSION_MAJOR}::Gui - Qt${QT_VERSION_MAJOR}::Widgets - Qt${QT_VERSION_MAJOR}::Network - Qt${QT_VERSION_MAJOR}::Sql - ${SINGLEAPPLICATION_LIBRARIES} -) - -if(HAVE_DBUS) - target_link_libraries(strawberry_lib PUBLIC Qt${QT_VERSION_MAJOR}::DBus) -endif() - -if(HAVE_ALSA) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${ALSA_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${ALSA_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${ALSA_LIBRARIES}) -endif() - -if(HAVE_LIBPULSE) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${LIBPULSE_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${LIBPULSE_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${LIBPULSE_LIBRARIES}) +target_sources(strawberry PRIVATE main.cpp) + +add_subdirectory(core) +add_subdirectory(utilities) +add_subdirectory(engine) +add_subdirectory(analyzer) +add_subdirectory(equalizer) +add_subdirectory(widgets) +add_subdirectory(dialogs) +add_subdirectory(settings) +add_subdirectory(osd) +add_subdirectory(covermanager) +add_subdirectory(lyrics) +add_subdirectory(context) +add_subdirectory(collection) +add_subdirectory(playlist) +add_subdirectory(playlistparsers) +add_subdirectory(queue) +add_subdirectory(smartplaylists) +add_subdirectory(filterparser) +add_subdirectory(radios) +add_subdirectory(scrobbler) +add_subdirectory(musicbrainz) +add_subdirectory(providers) +add_subdirectory(streaming) +add_subdirectory(subsonic) +add_subdirectory(spotify) +add_subdirectory(tidal) +add_subdirectory(qobuz) +add_subdirectory(tagreader) +add_subdirectory(translations) +add_subdirectory(organize) +add_subdirectory(transcoder) + +if(HAVE_MPRIS2) + add_subdirectory(mpris2) endif() if(HAVE_MOODBAR) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${FFTW3_INCLUDE_DIR}) - target_link_directories(strawberry_lib PRIVATE ${FFTW3_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${FFTW3_FFTW_LIBRARY}) -endif() - -if(HAVE_SONGFINGERPRINTING OR HAVE_MUSICBRAINZ) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${CHROMAPRINT_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${CHROMAPRINT_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${CHROMAPRINT_LIBRARIES}) -endif() - -if(HAVE_EBUR128) - target_link_libraries(strawberry_lib PRIVATE PkgConfig::LIBEBUR128) -endif() - -if(X11_FOUND) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${X11_INCLUDE_DIR}) - target_link_directories(strawberry_lib PRIVATE ${X11_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${X11_LIBRARIES}) + add_subdirectory(moodbar) endif() -if(XCB_FOUND) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${XCB_INCLUDE_DIR}) - target_link_directories(strawberry_lib PRIVATE ${XCB_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${XCB_LIBRARIES}) -endif() - -if(HAVE_GIO) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${GIO_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${GIO_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${GIO_LIBRARIES}) -endif() - -if(HAVE_GIO_UNIX) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${GIO_UNIX_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${GIO_UNIX_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${GIO_UNIX_LIBRARIES}) -endif() - -if(HAVE_AUDIOCD) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${LIBCDIO_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${LIBCDIO_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${LIBCDIO_LIBRARIES}) -endif() - -if(HAVE_LIBGPOD) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${LIBGPOD_INCLUDE_DIRS} ${GDK_PIXBUF_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${LIBGPOD_LIBRARY_DIRS} ${GDK_PIXBUF_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${LIBGPOD_LIBRARIES} ${GDK_PIXBUF_LIBRARIES}) -endif() - -if(HAVE_LIBMTP) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${LIBMTP_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${LIBMTP_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${LIBMTP_LIBRARIES}) -endif() - -if(APPLE) - target_link_libraries(strawberry_lib PRIVATE - "-framework AppKit" - "-framework Carbon" - "-framework CoreAudio" - "-framework DiskArbitration" - "-framework Foundation" - "-framework IOKit" - "-framework ScriptingBridge" - ) - target_link_libraries(strawberry_lib PRIVATE SPMediaKeyTap) -endif() - -if(WIN32) - target_link_libraries(strawberry_lib PRIVATE dsound dwmapi) - if(MSVC) - target_link_libraries(strawberry_lib PRIVATE WindowsApp) - endif() - target_link_libraries(strawberry_lib PRIVATE getopt-win::getopt) -endif() - -if(HAVE_QTSPARKLE) - target_include_directories(strawberry_lib SYSTEM PRIVATE ${QTSPARKLE_INCLUDE_DIRS}) - target_link_directories(strawberry_lib PRIVATE ${QTSPARKLE_LIBRARY_DIRS}) - target_link_libraries(strawberry_lib PRIVATE ${QTSPARKLE_LIBRARIES}) -endif() - -############################################################################### - -set(EXECUTABLE_OUTPUT_PATH ..) - -# Show the console window in debug mode on Windows -if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) - set(STRAWBERRY-WIN32-FLAG WIN32) -endif() - -# Resource file for windows -if(WIN32) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../dist/windows/windres.rc.in ${CMAKE_CURRENT_BINARY_DIR}/windres.rc) - set(STRAWBERRY-WIN32-RESOURCES windres.rc) -endif() - -add_executable(strawberry - MACOSX_BUNDLE - ${STRAWBERRY-WIN32-FLAG} - ${STRAWBERRY-WIN32-RESOURCES} - main.cpp -) - -if(FREEBSD) - target_link_libraries(strawberry PRIVATE execinfo) -endif() - -target_link_libraries(strawberry PRIVATE strawberry_lib) - -if(NOT APPLE) - install(TARGETS strawberry RUNTIME DESTINATION bin) -endif() - -if(HAVE_TRANSLATIONS AND INSTALL_TRANSLATIONS AND INSTALL_TRANSLATIONS_FILES) - install(FILES ${INSTALL_TRANSLATIONS_FILES} DESTINATION share/strawberry/translations) +if(HAVE_GLOBALSHORTCUTS) + add_subdirectory(globalshortcuts) endif() -if(APPLE) - set_target_properties(strawberry PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/../dist/macos/Info.plist") +if(UNIX) + add_subdirectory(device) endif() diff --git a/src/analyzer/CMakeLists.txt b/src/analyzer/CMakeLists.txt new file mode 100644 index 0000000000..7be9617590 --- /dev/null +++ b/src/analyzer/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(strawberry PRIVATE + fht.cpp + analyzerbase.cpp + analyzercontainer.cpp + blockanalyzer.cpp + boomanalyzer.cpp + turbineanalyzer.cpp + sonogramanalyzer.cpp + waverubberanalyzer.cpp + rainbowanalyzer.cpp +) diff --git a/src/collection/CMakeLists.txt b/src/collection/CMakeLists.txt new file mode 100644 index 0000000000..ca7a0d3603 --- /dev/null +++ b/src/collection/CMakeLists.txt @@ -0,0 +1,19 @@ +target_sources(strawberry PRIVATE + collection.cpp + collectionmodel.cpp + collectionbackend.cpp + collectionwatcher.cpp + collectionview.cpp + collectionitemdelegate.cpp + collectionviewcontainer.cpp + collectiondirectorymodel.cpp + collectionfilteroptions.cpp + collectionfilterwidget.cpp + collectionfilter.cpp + collectionplaylistitem.cpp + collectionquery.cpp + savedgroupingmanager.cpp + groupbydialog.cpp + collectiontask.cpp + collectionmodelupdate.cpp +) diff --git a/src/config.h.in b/src/config.h.in index 3e7f50b7cd..e96c53622c 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -6,21 +6,25 @@ #define CMAKE_EXECUTABLE_SUFFIX "${CMAKE_EXECUTABLE_SUFFIX}" #cmakedefine HAVE_BACKTRACE +#cmakedefine HAVE_ALSA +#cmakedefine HAVE_PULSE #cmakedefine HAVE_GIO #cmakedefine HAVE_GIO_UNIX #cmakedefine HAVE_DBUS -#cmakedefine HAVE_X11 +#cmakedefine HAVE_MPRIS2 #cmakedefine HAVE_UDISKS2 -#cmakedefine HAVE_ALSA #cmakedefine HAVE_AUDIOCD -#cmakedefine HAVE_LIBGPOD -#cmakedefine HAVE_LIBMTP -#cmakedefine HAVE_LIBPULSE +#cmakedefine HAVE_MTP +#cmakedefine HAVE_GPOD #cmakedefine HAVE_QTSPARKLE #cmakedefine HAVE_SONGFINGERPRINTING #cmakedefine HAVE_MUSICBRAINZ +#cmakedefine HAVE_MOODBAR #cmakedefine HAVE_GLOBALSHORTCUTS #cmakedefine HAVE_X11_GLOBALSHORTCUTS +#cmakedefine HAVE_KDE_GLOBALSHORTCUTS +#cmakedefine HAVE_GNOME_GLOBALSHORTCUTS +#cmakedefine HAVE_MATE_GLOBALSHORTCUTS #cmakedefine USE_INSTALL_PREFIX @@ -29,11 +33,6 @@ #cmakedefine HAVE_SPOTIFY #cmakedefine HAVE_QOBUZ -#cmakedefine HAVE_MOODBAR - -#cmakedefine HAVE_KEYSYMDEF_H -#cmakedefine HAVE_XF86KEYSYM_H - #cmakedefine HAVE_TAGLIB_DSFFILE #cmakedefine HAVE_TAGLIB_DSDIFFFILE @@ -50,4 +49,8 @@ #cmakedefine HAVE_EBUR128 +#define HAVE_LIBPULSE HAVE_PULSE +#define HAVE_LIBMTP HAVE_MTP +#define HAVE_LIBGPOD HAVE_GPOD + #endif // CONFIG_H_IN diff --git a/src/context/CMakeLists.txt b/src/context/CMakeLists.txt new file mode 100644 index 0000000000..72f7f85896 --- /dev/null +++ b/src/context/CMakeLists.txt @@ -0,0 +1 @@ +target_sources(strawberry PRIVATE contextview.cpp contextalbum.cpp) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt new file mode 100644 index 0000000000..21c27e5031 --- /dev/null +++ b/src/core/CMakeLists.txt @@ -0,0 +1,51 @@ +target_sources(strawberry PRIVATE + logging.cpp + mainwindow.cpp + application.cpp + player.cpp + commandlineoptions.cpp + database.cpp + sqlquery.cpp + sqlrow.cpp + metatypes.cpp + deletefiles.cpp + filesystemmusicstorage.cpp + filesystemwatcherinterface.cpp + mergedproxymodel.cpp + multisortfilterproxy.cpp + musicstorage.cpp + networkaccessmanager.cpp + threadsafenetworkdiskcache.cpp + networktimeouts.cpp + networkproxyfactory.cpp + qtfslistener.cpp + settings.cpp + settingsprovider.cpp + signalchecker.cpp + song.cpp + songloader.cpp + stylehelper.cpp + stylesheetloader.cpp + taskmanager.cpp + thread.cpp + urlhandler.cpp + iconloader.cpp + standarditemiconloader.cpp + scopedtransaction.cpp + translations.cpp + systemtrayicon.cpp + localredirectserver.cpp + mimedata.cpp + potranslator.cpp + temporaryfile.cpp +) + +if(APPLE) + target_sources(strawberry PRIVATE scoped_nsautorelease_pool.mm mac_startup.mm macsystemtrayicon.mm) +else() + target_sources(strawberry PRIVATE qtsystemtrayicon.cpp) +endif() + +if(WIN32) + target_sources(strawberry PRIVATE scopedwchararray.cpp windows7thumbbar.cpp) +endif() diff --git a/src/dbus/metatypes.h b/src/core/dbus_metatypes.h similarity index 93% rename from src/dbus/metatypes.h rename to src/core/dbus_metatypes.h index f3e8d1db1f..99dc3eef35 100644 --- a/src/dbus/metatypes.h +++ b/src/core/dbus_metatypes.h @@ -16,4 +16,4 @@ using ManagedObjectList = QMap; Q_DECLARE_METATYPE(InterfacesAndProperties) Q_DECLARE_METATYPE(ManagedObjectList) -#endif // DBUS_METATYPES_H_ +#endif // DBUS_METATYPES_H diff --git a/src/core/metatypes.cpp b/src/core/metatypes.cpp index 232b7590bb..8126e44c44 100644 --- a/src/core/metatypes.cpp +++ b/src/core/metatypes.cpp @@ -33,9 +33,11 @@ #include #include #include +#include #include #include #include + #ifdef HAVE_DBUS # include # include @@ -55,9 +57,11 @@ #include "equalizer/equalizer.h" #ifdef HAVE_DBUS -# include "mpris2.h" -# include "osd/osddbus.h" -# include "dbus/metatypes.h" +# include "dbus_metatypes.h" +#endif + +#ifdef HAVE_MPRIS2 +# include "mpris2/mpris2.h" #endif #include "streaming/streamingsearchview.h" @@ -66,7 +70,7 @@ #include "radios/radiochannel.h" -#ifdef HAVE_LIBMTP +#ifdef HAVE_MTP # include "device/mtpconnection.h" #endif @@ -122,14 +126,16 @@ void RegisterMetaTypes() { #ifdef HAVE_DBUS qDBusRegisterMetaType(); - qDBusRegisterMetaType(); + //qDBusRegisterMetaType(); + qDBusRegisterMetaType(); + qDBusRegisterMetaType(); +# ifdef HAVE_MPRIS2 qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); +# endif #endif qRegisterMetaType("StreamingSearchView::Result"); @@ -138,7 +144,7 @@ void RegisterMetaTypes() { qRegisterMetaType("RadioChannel"); qRegisterMetaType("RadioChannelList"); -#ifdef HAVE_LIBMTP +#ifdef HAVE_MTP qRegisterMetaType("MtpConnection*"); #endif diff --git a/src/core/song.cpp b/src/core/song.cpp index ade5867109..f48c5c97f6 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -23,12 +23,12 @@ #include -#ifdef HAVE_LIBGPOD +#ifdef HAVE_GPOD # include # include #endif -#ifdef HAVE_LIBMTP +#ifdef HAVE_MTP # include #endif @@ -61,8 +61,8 @@ #include "song.h" #include "sqlquery.h" #include "sqlrow.h" -#ifdef HAVE_DBUS -# include "mpris_common.h" +#ifdef HAVE_MPRIS2 +# include "mpris2/mpris_common.h" #endif using namespace Qt::StringLiterals; @@ -1795,7 +1795,7 @@ void Song::BindToQuery(SqlQuery *query) const { } -#ifdef HAVE_DBUS +#ifdef HAVE_MPRIS2 void Song::ToXesam(QVariantMap *map) const { using mpris::AddMetadata; diff --git a/src/core/song.h b/src/core/song.h index 70588057cc..30c1e48899 100644 --- a/src/core/song.h +++ b/src/core/song.h @@ -475,19 +475,19 @@ class Song { void InitArtManual(); void InitArtAutomatic(); -#ifdef HAVE_LIBGPOD +#ifdef HAVE_GPOD void InitFromItdb(_Itdb_Track *track, const QString &prefix); void ToItdb(_Itdb_Track *track) const; #endif -#ifdef HAVE_LIBMTP +#ifdef HAVE_MTP void InitFromMTP(const LIBMTP_track_struct *track, const QString &host); void ToMTP(LIBMTP_track_struct *track) const; #endif // Save void BindToQuery(SqlQuery *query) const; -#ifdef HAVE_DBUS +#ifdef HAVE_MPRIS2 void ToXesam(QVariantMap *map) const; #endif diff --git a/src/covermanager/CMakeLists.txt b/src/covermanager/CMakeLists.txt new file mode 100644 index 0000000000..515946540e --- /dev/null +++ b/src/covermanager/CMakeLists.txt @@ -0,0 +1,35 @@ +target_sources(strawberry PRIVATE + albumcovermanager.cpp + albumcovermanagerlist.cpp + albumcoverloader.cpp + albumcoverloaderoptions.cpp + albumcoverfetcher.cpp + albumcoverfetchersearch.cpp + albumcoversearcher.cpp + albumcoverexport.cpp + albumcoverexporter.cpp + albumcoverchoicecontroller.cpp + coverprovider.cpp + coverproviders.cpp + coversearchstatistics.cpp + coversearchstatisticsdialog.cpp + coverexportrunnable.cpp + currentalbumcoverloader.cpp + coverfromurldialog.cpp + jsoncoverprovider.cpp + lastfmcoverprovider.cpp + musicbrainzcoverprovider.cpp + discogscoverprovider.cpp + deezercoverprovider.cpp + qobuzcoverprovider.cpp + musixmatchcoverprovider.cpp + opentidalcoverprovider.cpp +) + +if(HAVE_SPOTIFY) + target_sources(strawberry PRIVATE spotifycoverprovider.cpp) +endif() + +if(HAVE_TIDAL) + target_sources(strawberry PRIVATE tidalcoverprovider.cpp) +endif() diff --git a/src/device/CMakeLists.txt b/src/device/CMakeLists.txt new file mode 100644 index 0000000000..60c9737862 --- /dev/null +++ b/src/device/CMakeLists.txt @@ -0,0 +1,36 @@ +target_sources(strawberry PRIVATE + connecteddevice.cpp + devicedatabasebackend.cpp + devicelister.cpp + devicemanager.cpp + devicestatefiltermodel.cpp + filesystemdevice.cpp + deviceviewcontainer.cpp + deviceview.cpp + deviceproperties.cpp + deviceinfo.cpp +) + +if(HAVE_GIO) + target_sources(strawberry PRIVATE giolister.cpp) +endif() + +if(HAVE_UDISKS2) + target_sources(strawberry PRIVATE udisks2lister.cpp ${UDISKS2_DBUS_SOURCES}) +endif() + +if(HAVE_AUDIOCD) + target_sources(strawberry PRIVATE cddadevice.cpp cddalister.cpp cddasongloader.cpp) +endif() + +if(HAVE_MTP) + target_sources(strawberry PRIVATE mtpconnection.cpp mtpdevice.cpp mtploader.cpp) +endif() + +if(HAVE_GPOD) + target_sources(strawberry PRIVATE gpodloader.cpp gpoddevice.cpp) +endif() + +if(APPLE) + target_sources(strawberry PRIVATE macosdevicelister.mm) +endif() diff --git a/src/device/devicemanager.cpp b/src/device/devicemanager.cpp index 3aeafcea1f..eed85a6792 100644 --- a/src/device/devicemanager.cpp +++ b/src/device/devicemanager.cpp @@ -69,18 +69,16 @@ # include "cddalister.h" # include "cddadevice.h" #endif -#ifdef HAVE_DBUS -# ifdef HAVE_UDISKS2 -# include "udisks2lister.h" -# endif +#ifdef HAVE_UDISKS2 +# include "udisks2lister.h" #endif -#ifdef HAVE_LIBMTP +#ifdef HAVE_MTP # include "mtpdevice.h" #endif -#if defined(Q_OS_MACOS) and defined(HAVE_LIBMTP) +#if defined(Q_OS_MACOS) and defined(HAVE_MTP) # include "macosdevicelister.h" #endif -#ifdef HAVE_LIBGPOD +#ifdef HAVE_GPOD # include "gpoddevice.h" #endif @@ -118,7 +116,7 @@ DeviceManager::DeviceManager(Application *app, QObject *parent) #if defined(HAVE_AUDIOCD) && !defined(Q_OS_MACOS) AddLister(new CddaLister); #endif -#if defined(HAVE_DBUS) && defined(HAVE_UDISKS2) +#ifdef HAVE_UDISKS2 AddLister(new Udisks2Lister); #endif #ifdef HAVE_GIO diff --git a/src/device/deviceproperties.cpp b/src/device/deviceproperties.cpp index 71cb757f63..ced7d16759 100644 --- a/src/device/deviceproperties.cpp +++ b/src/device/deviceproperties.cpp @@ -55,7 +55,7 @@ #include "devicemanager.h" #include "deviceproperties.h" #include "transcoder/transcoder.h" -#include "ui_deviceproperties.h" +#include "strawberry_device_autogen/include/ui_deviceproperties.h" DeviceProperties::DeviceProperties(QWidget *parent) : QDialog(parent), diff --git a/src/device/deviceviewcontainer.cpp b/src/device/deviceviewcontainer.cpp index 775f90ddff..bf447531ba 100644 --- a/src/device/deviceviewcontainer.cpp +++ b/src/device/deviceviewcontainer.cpp @@ -24,7 +24,7 @@ #include #include "deviceviewcontainer.h" -#include "ui_deviceviewcontainer.h" +#include "strawberry_device_autogen/include/ui_deviceviewcontainer.h" DeviceViewContainer::DeviceViewContainer(QWidget *parent) : QWidget(parent), ui_(new Ui_DeviceViewContainer) { ui_->setupUi(this); diff --git a/src/dbus/org.freedesktop.DBus.ObjectManager.xml b/src/device/org.freedesktop.DBus.ObjectManager.xml similarity index 100% rename from src/dbus/org.freedesktop.DBus.ObjectManager.xml rename to src/device/org.freedesktop.DBus.ObjectManager.xml diff --git a/src/dbus/org.freedesktop.UDisks2.Block.xml b/src/device/org.freedesktop.UDisks2.Block.xml similarity index 100% rename from src/dbus/org.freedesktop.UDisks2.Block.xml rename to src/device/org.freedesktop.UDisks2.Block.xml diff --git a/src/dbus/org.freedesktop.UDisks2.Drive.xml b/src/device/org.freedesktop.UDisks2.Drive.xml similarity index 100% rename from src/dbus/org.freedesktop.UDisks2.Drive.xml rename to src/device/org.freedesktop.UDisks2.Drive.xml diff --git a/src/dbus/org.freedesktop.UDisks2.Filesystem.xml b/src/device/org.freedesktop.UDisks2.Filesystem.xml similarity index 100% rename from src/dbus/org.freedesktop.UDisks2.Filesystem.xml rename to src/device/org.freedesktop.UDisks2.Filesystem.xml diff --git a/src/dbus/org.freedesktop.UDisks2.Job.xml b/src/device/org.freedesktop.UDisks2.Job.xml similarity index 100% rename from src/dbus/org.freedesktop.UDisks2.Job.xml rename to src/device/org.freedesktop.UDisks2.Job.xml diff --git a/src/device/udisks2lister.h b/src/device/udisks2lister.h index f36230c959..ee5c40bf63 100644 --- a/src/device/udisks2lister.h +++ b/src/device/udisks2lister.h @@ -40,8 +40,8 @@ #include "core/scoped_ptr.h" #include "core/shared_ptr.h" +#include "core/dbus_metatypes.h" -#include "dbus/metatypes.h" #include "devicelister.h" class OrgFreedesktopDBusObjectManagerInterface; diff --git a/src/dialogs/CMakeLists.txt b/src/dialogs/CMakeLists.txt new file mode 100644 index 0000000000..6961232ce3 --- /dev/null +++ b/src/dialogs/CMakeLists.txt @@ -0,0 +1,14 @@ +target_sources(strawberry PRIVATE + about.cpp + console.cpp + errordialog.cpp + edittagdialog.cpp + trackselectiondialog.cpp + addstreamdialog.cpp + userpassdialog.cpp + deleteconfirmationdialog.cpp + lastfmimportdialog.cpp + messagedialog.cpp + snapdialog.cpp + saveplaylistsdialog.cpp +) diff --git a/src/engine/CMakeLists.txt b/src/engine/CMakeLists.txt new file mode 100644 index 0000000000..fbc00266d1 --- /dev/null +++ b/src/engine/CMakeLists.txt @@ -0,0 +1,43 @@ +target_sources(strawberry PRIVATE + enginebase.cpp + enginedevice.cpp + devicefinders.cpp + devicefinder.cpp + enginemetadata.cpp + gststartup.cpp + gstengine.cpp + gstenginepipeline.cpp +) + +if(HAVE_ALSA) + target_sources(strawberry PRIVATE + alsadevicefinder.cpp + alsapcmdevicefinder.cpp + ) +endif() + +if(HAVE_PULSE) + target_sources(strawberry PRIVATE + pulsedevicefinder.cpp + ) +endif() + +if(HAVE_SONGFINGERPRINTING OR HAVE_MUSICBRAINZ) + target_sources(strawberry PRIVATE chromaprinter.cpp) +endif() + +if(HAVE_EBUR128) + target_sources(strawberry PRIVATE ebur128analysis.cpp) +endif() + +if(APPLE) + target_sources(strawberry PRIVATE macosdevicefinder.cpp) +endif() + +if(WIN32) + target_sources(strawberry PRIVATE directsounddevicefinder.cpp mmdevicefinder.cpp) +endif() + +if(MSVC) + target_sources(strawberry PRIVATE uwpdevicefinder.cpp engine/asiodevicefinder.cpp) +endif() diff --git a/src/engine/devicefinders.cpp b/src/engine/devicefinders.cpp index 0de6183c1d..b41687320c 100644 --- a/src/engine/devicefinders.cpp +++ b/src/engine/devicefinders.cpp @@ -32,7 +32,7 @@ # include "alsapcmdevicefinder.h" #endif -#ifdef HAVE_LIBPULSE +#ifdef HAVE_PULSE # include "pulsedevicefinder.h" #endif @@ -69,7 +69,7 @@ void DeviceFinders::Init() { device_finders.append(new AlsaDeviceFinder); device_finders.append(new AlsaPCMDeviceFinder); #endif -#ifdef HAVE_LIBPULSE +#ifdef HAVE_PULSE device_finders.append(new PulseDeviceFinder); #endif #ifdef Q_OS_MACOS diff --git a/src/equalizer/CMakeLists.txt b/src/equalizer/CMakeLists.txt new file mode 100644 index 0000000000..5a72f8ac0c --- /dev/null +++ b/src/equalizer/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(strawberry PRIVATE + equalizer.cpp + equalizerslider.cpp +) diff --git a/src/filterparser/CMakeLists.txt b/src/filterparser/CMakeLists.txt new file mode 100644 index 0000000000..c9ff17c1e8 --- /dev/null +++ b/src/filterparser/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(strawberry PRIVATE + filterparser.cpp + filtertree.cpp +) diff --git a/src/globalshortcuts/CMakeLists.txt b/src/globalshortcuts/CMakeLists.txt new file mode 100644 index 0000000000..7110aad1d7 --- /dev/null +++ b/src/globalshortcuts/CMakeLists.txt @@ -0,0 +1,29 @@ +target_sources(strawberry PRIVATE + globalshortcutsmanager.cpp + globalshortcutsbackend.cpp + globalshortcutgrabber.cpp +) + +if(HAVE_X11_GLOBALSHORTCUTS) + target_sources(strawberry PRIVATE globalshortcutsbackend-x11.cpp globalshortcut.cpp globalshortcut-x11.cpp) +endif() + +if(HAVE_KDE_GLOBALSHORTCUTS) + target_sources(strawberry PRIVATE globalshortcutsbackend-kde.cpp ${KDE_GLOBALSHORTCUTS_DBUS_SOURCES}) +endif() + +if(HAVE_GNOME_GLOBALSHORTCUTS) + target_sources(strawberry PRIVATE globalshortcutsbackend-gnome.cpp ${GNOME_GLOBALSHORTCUTS_DBUS_SOURCES}) +endif() + +if(HAVE_MATE_GLOBALSHORTCUTS) + target_sources(strawberry PRIVATE globalshortcutsbackend-mate.cpp ${MATE_GLOBALSHORTCUTS_DBUS_SOURCES}) +endif() + +if(APPLE) + target_sources(strawberry PRIVATE globalshortcutsbackend-macos.mm globalshortcutgrabber.mm) +endif() + +if(WIN32) + target_sources(strawberry PRIVATE globalshortcutsbackend-win.cpp globalshortcut.cpp globalshortcut-win.cpp) +endif() diff --git a/src/globalshortcuts/globalshortcutsmanager.cpp b/src/globalshortcuts/globalshortcutsmanager.cpp index de581e3930..d994053da3 100644 --- a/src/globalshortcuts/globalshortcutsmanager.cpp +++ b/src/globalshortcuts/globalshortcutsmanager.cpp @@ -34,10 +34,16 @@ #include "globalshortcutsmanager.h" #include "globalshortcutsbackend.h" -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) -# include "globalshortcutsbackend-kde.h" -# include "globalshortcutsbackend-gnome.h" -# include "globalshortcutsbackend-mate.h" +#ifdef HAVE_KDE_GLOBALSHORTCUTS +#include "globalshortcutsbackend-kde.h" +#endif + +#ifdef HAVE_GNOME_GLOBALSHORTCUTS +#include "globalshortcutsbackend-gnome.h" +#endif + +#ifdef HAVE_MATE_GLOBALSHORTCUTS +#include "globalshortcutsbackend-mate.h" #endif #ifdef HAVE_X11_GLOBALSHORTCUTS @@ -82,9 +88,15 @@ GlobalShortcutsManager::GlobalShortcutsManager(QWidget *parent) : QWidget(parent // Create backends - these do the actual shortcut registration -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#ifdef HAVE_KDE_GLOBALSHORTCUTS backends_ << new GlobalShortcutsBackendKDE(this, this); +#endif + +#ifdef HAVE_GNOME_GLOBALSHORTCUTS backends_ << new GlobalShortcutsBackendGnome(this, this); +#endif + +#ifdef HAVE_MATE_GLOBALSHORTCUTS backends_ << new GlobalShortcutsBackendMate(this, this); #endif @@ -116,13 +128,19 @@ void GlobalShortcutsManager::ReloadSettings() { backends_enabled_ << GlobalShortcutsBackend::Type::Win; #endif -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#ifdef HAVE_KDE_GLOBALSHORTCUTS if (settings_.value("use_kde", true).toBool()) { backends_enabled_ << GlobalShortcutsBackend::Type::KDE; } +#endif + +#ifdef HAVE_GNOME_GLOBALSHORTCUTS if (settings_.value("use_gnome", true).toBool()) { backends_enabled_ << GlobalShortcutsBackend::Type::Gnome; } +#endif + +#ifdef HAVE_MATE_GLOBALSHORTCUTS if (settings_.value("use_mate", true).toBool()) { backends_enabled_ << GlobalShortcutsBackend::Type::Mate; } @@ -165,7 +183,7 @@ GlobalShortcutsManager::Shortcut GlobalShortcutsManager::AddShortcut(const QStri } -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#ifdef HAVE_KDE_GLOBALSHORTCUTS bool GlobalShortcutsManager::IsKdeAvailable() { @@ -173,19 +191,27 @@ bool GlobalShortcutsManager::IsKdeAvailable() { } +#endif + +#ifdef HAVE_KDE_GLOBALSHORTCUTS + bool GlobalShortcutsManager::IsGnomeAvailable() { return GlobalShortcutsBackendGnome::IsGnomeAvailable(); } +#endif + +#ifdef HAVE_KDE_GLOBALSHORTCUTS + bool GlobalShortcutsManager::IsMateAvailable() { return GlobalShortcutsBackendMate::IsMateAvailable(); } -#endif // defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#endif #ifdef HAVE_X11_GLOBALSHORTCUTS diff --git a/src/globalshortcuts/keymapper_x11.h b/src/globalshortcuts/keymapper_x11.h index 0e9fbbacee..b96c014327 100644 --- a/src/globalshortcuts/keymapper_x11.h +++ b/src/globalshortcuts/keymapper_x11.h @@ -29,20 +29,12 @@ #define XK_XKB_KEYS #define XK_LATIN1 -#ifdef HAVE_KEYSYMDEF_H -# include -#else -# warning "Missing X11/keysymdef.h" -#endif -#ifdef HAVE_XF86KEYSYM_H -# include -#endif +#include +#include namespace KeyMapperX11 { static const QMap keymapper_x11_ = { // clazy:exclude=non-pod-global-static -#ifdef HAVE_KEYSYMDEF_H - { Qt::Key_0, XK_0 }, { Qt::Key_1, XK_1 }, { Qt::Key_2, XK_2 }, @@ -208,9 +200,7 @@ static const QMap keymapper_x11_ = { // clazy:exclude=non-pod { Qt::Key_MultipleCandidate, XK_MultipleCandidate }, { Qt::Key_PreviousCandidate, XK_PreviousCandidate }, { Qt::Key_Mode_switch, XK_Mode_switch }, -#endif -#ifdef HAVE_XF86KEYSYM_H { Qt::Key_Back, XF86XK_Back }, { Qt::Key_Forward, XF86XK_Forward }, { Qt::Key_Stop, XF86XK_Stop }, @@ -249,7 +239,6 @@ static const QMap keymapper_x11_ = { // clazy:exclude=non-pod { Qt::Key_LaunchF, XF86XK_LaunchD }, { Qt::Key_LaunchG, XF86XK_LaunchE }, { Qt::Key_LaunchH, XF86XK_LaunchF }, -#endif {Qt::Key(0), 0} diff --git a/src/dbus/org.gnome.SettingsDaemon.MediaKeys.xml b/src/globalshortcuts/org.gnome.SettingsDaemon.MediaKeys.xml similarity index 100% rename from src/dbus/org.gnome.SettingsDaemon.MediaKeys.xml rename to src/globalshortcuts/org.gnome.SettingsDaemon.MediaKeys.xml diff --git a/src/dbus/org.kde.KGlobalAccel.Component.xml b/src/globalshortcuts/org.kde.KGlobalAccel.Component.xml similarity index 100% rename from src/dbus/org.kde.KGlobalAccel.Component.xml rename to src/globalshortcuts/org.kde.KGlobalAccel.Component.xml diff --git a/src/dbus/org.kde.KGlobalAccel.xml b/src/globalshortcuts/org.kde.KGlobalAccel.xml similarity index 100% rename from src/dbus/org.kde.KGlobalAccel.xml rename to src/globalshortcuts/org.kde.KGlobalAccel.xml diff --git a/src/dbus/org.mate.SettingsDaemon.MediaKeys.xml b/src/globalshortcuts/org.mate.SettingsDaemon.MediaKeys.xml similarity index 100% rename from src/dbus/org.mate.SettingsDaemon.MediaKeys.xml rename to src/globalshortcuts/org.mate.SettingsDaemon.MediaKeys.xml diff --git a/src/lyrics/CMakeLists.txt b/src/lyrics/CMakeLists.txt new file mode 100644 index 0000000000..840b014a0c --- /dev/null +++ b/src/lyrics/CMakeLists.txt @@ -0,0 +1,20 @@ +target_sources(strawberry PRIVATE + lyricsproviders.cpp + lyricsprovider.cpp + lyricssearchrequest.h + lyricssearchresult.h + lyricsfetcher.cpp + lyricsfetchersearch.cpp + jsonlyricsprovider.cpp + htmllyricsprovider.cpp + ovhlyricsprovider.cpp + lololyricsprovider.cpp + geniuslyricsprovider.cpp + musixmatchlyricsprovider.cpp + chartlyricsprovider.cpp + songlyricscomlyricsprovider.cpp + azlyricscomlyricsprovider.cpp + elyricsnetlyricsprovider.cpp + letraslyricsprovider.cpp + lyricfindlyricsprovider.cpp +) diff --git a/src/main.cpp b/src/main.cpp index 076f7a9918..0dcd974821 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,8 +84,8 @@ # include "core/mac_startup.h" #endif -#ifdef HAVE_DBUS -# include "core/mpris2.h" +#ifdef HAVE_MPRIS2 +# include "mpris2/mpris2.h" #endif #include "core/metatypes.h" #include "core/iconloader.h" @@ -293,7 +293,7 @@ int main(int argc, char *argv[]) { OSDBase osd(tray_icon, &app); #endif -#ifdef HAVE_DBUS +#ifdef HAVE_MPRIS2 mpris::Mpris2 mpris2(&app); #endif @@ -304,7 +304,7 @@ int main(int argc, char *argv[]) { mac::EnableFullScreen(w); #endif // Q_OS_MACOS -#ifdef HAVE_DBUS +#ifdef HAVE_MPRIS2 QObject::connect(&mpris2, &mpris::Mpris2::RaiseMainWindow, &w, &MainWindow::Raise); #endif QObject::connect(&single_app, &KDSingleApplication::messageReceived, &w, QOverload::of(&MainWindow::CommandlineOptionsReceived)); diff --git a/src/moodbar/CMakeLists.txt b/src/moodbar/CMakeLists.txt new file mode 100644 index 0000000000..3b02cac305 --- /dev/null +++ b/src/moodbar/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(strawberry PRIVATE + moodbarbuilder.cpp + moodbarcontroller.cpp + moodbaritemdelegate.cpp + moodbarloader.cpp + moodbarpipeline.cpp + moodbarproxystyle.cpp + moodbarrenderer.cpp + gstfastspectrumplugin.cpp + gstfastspectrum.cpp +) diff --git a/src/mpris2/CMakeLists.txt b/src/mpris2/CMakeLists.txt new file mode 100644 index 0000000000..5b944cb880 --- /dev/null +++ b/src/mpris2/CMakeLists.txt @@ -0,0 +1 @@ +target_sources(strawberry PRIVATE mpris2.cpp mpris2.h ${MPRIS2_DBUS_SOURCES}) diff --git a/src/core/mpris2.cpp b/src/mpris2/mpris2.cpp similarity index 99% rename from src/core/mpris2.cpp rename to src/mpris2/mpris2.cpp index 6a5a8deeb4..133ae00f1b 100644 --- a/src/core/mpris2.cpp +++ b/src/mpris2/mpris2.cpp @@ -46,9 +46,9 @@ #include "mpris_common.h" #include "mpris2.h" -#include "song.h" -#include "application.h" -#include "player.h" +#include "core/song.h" +#include "core/application.h" +#include "core/player.h" #include "utilities/timeconstants.h" #include "engine/enginebase.h" #include "playlist/playlist.h" diff --git a/src/core/mpris2.h b/src/mpris2/mpris2.h similarity index 100% rename from src/core/mpris2.h rename to src/mpris2/mpris2.h diff --git a/src/core/mpris_common.h b/src/mpris2/mpris_common.h similarity index 100% rename from src/core/mpris_common.h rename to src/mpris2/mpris_common.h diff --git a/src/dbus/org.mpris.MediaPlayer2.Player.xml b/src/mpris2/org.mpris.MediaPlayer2.Player.xml similarity index 100% rename from src/dbus/org.mpris.MediaPlayer2.Player.xml rename to src/mpris2/org.mpris.MediaPlayer2.Player.xml diff --git a/src/dbus/org.mpris.MediaPlayer2.Playlists.xml b/src/mpris2/org.mpris.MediaPlayer2.Playlists.xml similarity index 100% rename from src/dbus/org.mpris.MediaPlayer2.Playlists.xml rename to src/mpris2/org.mpris.MediaPlayer2.Playlists.xml diff --git a/src/dbus/org.mpris.MediaPlayer2.TrackList.xml b/src/mpris2/org.mpris.MediaPlayer2.TrackList.xml similarity index 100% rename from src/dbus/org.mpris.MediaPlayer2.TrackList.xml rename to src/mpris2/org.mpris.MediaPlayer2.TrackList.xml diff --git a/src/dbus/org.mpris.MediaPlayer2.xml b/src/mpris2/org.mpris.MediaPlayer2.xml similarity index 100% rename from src/dbus/org.mpris.MediaPlayer2.xml rename to src/mpris2/org.mpris.MediaPlayer2.xml diff --git a/src/musicbrainz/CMakeLists.txt b/src/musicbrainz/CMakeLists.txt new file mode 100644 index 0000000000..3348a591be --- /dev/null +++ b/src/musicbrainz/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(strawberry PRIVATE + acoustidclient.cpp + musicbrainzclient.cpp + tagfetcher.cpp + acoustidclient.h + musicbrainzclient.h + tagfetcher.h +) diff --git a/src/organize/CMakeLists.txt b/src/organize/CMakeLists.txt new file mode 100644 index 0000000000..d568a9ec15 --- /dev/null +++ b/src/organize/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(strawberry PRIVATE + organize.cpp + organizeformat.cpp + organizeformatvalidator.cpp + organizesyntaxhighlighter.cpp + organizedialog.cpp + organizeerrordialog.cpp +) diff --git a/src/osd/CMakeLists.txt b/src/osd/CMakeLists.txt new file mode 100644 index 0000000000..ee4393ff56 --- /dev/null +++ b/src/osd/CMakeLists.txt @@ -0,0 +1,9 @@ +target_sources(strawberry PRIVATE osdbase.cpp osdpretty.cpp) + +if(HAVE_DBUS) + target_sources(strawberry PRIVATE osddbus.cpp osddbus.h ${OSD_DBUS_SOURCES}) +endif() + +if(APPLE) + target_sources(strawberry PRIVATE osdmac.mm) +endif() diff --git a/src/dbus/org.freedesktop.Notifications.xml b/src/osd/org.freedesktop.Notifications.xml similarity index 100% rename from src/dbus/org.freedesktop.Notifications.xml rename to src/osd/org.freedesktop.Notifications.xml diff --git a/src/playlist/CMakeLists.txt b/src/playlist/CMakeLists.txt new file mode 100644 index 0000000000..daa7daf843 --- /dev/null +++ b/src/playlist/CMakeLists.txt @@ -0,0 +1,25 @@ +target_sources(strawberry PRIVATE + playlist.cpp + playlistbackend.cpp + playlistcontainer.cpp + playlistdelegates.cpp + playlistfilter.cpp + playlistheader.cpp + playlistitem.cpp + playlistitemmimedata.cpp + playlistlistcontainer.cpp + playlistlistmodel.cpp + playlistlistsortfiltermodel.cpp + playlistlistview.cpp + playlistmanager.cpp + playlistsaveoptionsdialog.cpp + playlistsequence.cpp + playlisttabbar.cpp + playlistundocommands.cpp + playlistview.cpp + playlistproxystyle.cpp + songmimedata.cpp + songloaderinserter.cpp + songplaylistitem.cpp + dynamicplaylistcontrols.cpp +) diff --git a/src/playlistparsers/CMakeLists.txt b/src/playlistparsers/CMakeLists.txt new file mode 100644 index 0000000000..94c09d75d1 --- /dev/null +++ b/src/playlistparsers/CMakeLists.txt @@ -0,0 +1,12 @@ +target_sources(strawberry PRIVATE + asxiniparser.cpp + asxparser.cpp + cueparser.cpp + m3uparser.cpp + parserbase.cpp + playlistparser.cpp + plsparser.cpp + wplparser.cpp + xmlparser.cpp + xspfparser.cpp +) diff --git a/src/providers/CMakeLists.txt b/src/providers/CMakeLists.txt new file mode 100644 index 0000000000..862232283d --- /dev/null +++ b/src/providers/CMakeLists.txt @@ -0,0 +1 @@ +target_sources(strawberry PRIVATE musixmatchprovider.cpp) diff --git a/src/qobuz/CMakeLists.txt b/src/qobuz/CMakeLists.txt new file mode 100644 index 0000000000..f8d190c11a --- /dev/null +++ b/src/qobuz/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(strawberry PRIVATE + qobuzservice.cpp + qobuzurlhandler.cpp + qobuzbaserequest.cpp + qobuzrequest.cpp + qobuzstreamurlrequest.cpp + qobuzfavoriterequest.cpp +) diff --git a/src/queue/CMakeLists.txt b/src/queue/CMakeLists.txt new file mode 100644 index 0000000000..4bb5d5bffe --- /dev/null +++ b/src/queue/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(strawberry PRIVATE + queue.cpp + queueview.cpp +) diff --git a/src/radios/CMakeLists.txt b/src/radios/CMakeLists.txt new file mode 100644 index 0000000000..a2c26b5c4d --- /dev/null +++ b/src/radios/CMakeLists.txt @@ -0,0 +1,13 @@ +target_sources(strawberry PRIVATE + radioservices.cpp + radiobackend.cpp + radiomodel.cpp + radioview.cpp + radioviewcontainer.cpp + radioservice.cpp + radioplaylistitem.cpp + radiochannel.cpp + somafmservice.cpp + radioparadiseservice.cpp + radiomimedata.cpp +) diff --git a/src/scrobbler/CMakeLists.txt b/src/scrobbler/CMakeLists.txt new file mode 100644 index 0000000000..f67545cf4b --- /dev/null +++ b/src/scrobbler/CMakeLists.txt @@ -0,0 +1,17 @@ +target_sources(strawberry PRIVATE + audioscrobbler.cpp + scrobblersettings.cpp + scrobblerservice.cpp + scrobblercache.cpp + scrobblercacheitem.cpp + scrobblemetadata.cpp + scrobblingapi20.cpp + lastfmscrobbler.cpp + librefmscrobbler.cpp + listenbrainzscrobbler.cpp + lastfmimport.cpp +) + +if(HAVE_SUBSONIC) + target_sources(strawberry PRIVATE subsonicscrobbler.cpp) +endif() diff --git a/src/settings/CMakeLists.txt b/src/settings/CMakeLists.txt new file mode 100644 index 0000000000..03eae4d2c8 --- /dev/null +++ b/src/settings/CMakeLists.txt @@ -0,0 +1,41 @@ +target_sources(strawberry PRIVATE + settingsdialog.cpp + settingspage.cpp + behavioursettingspage.cpp + collectionsettingspage.cpp + collectionsettingsdirectorymodel.cpp + backendsettingspage.cpp + playlistsettingspage.cpp + scrobblersettingspage.cpp + coverssettingspage.cpp + lyricssettingspage.cpp + networkproxysettingspage.cpp + appearancesettingspage.cpp + contextsettingspage.cpp + notificationssettingspage.cpp + transcodersettingspage.cpp +) + +if(HAVE_MOODBAR) + target_sources(strawberry PRIVATE moodbarsettingspage.cpp) +endif() + +if(HAVE_GLOBALSHORTCUTS) + target_sources(strawberry PRIVATE globalshortcutssettingspage.cpp) +endif() + +if(HAVE_SUBSONIC) + target_sources(strawberry PRIVATE subsonicsettingspage.cpp) +endif() + +if(HAVE_SPOTIFY) + target_sources(strawberry PRIVATE spotifysettingspage.cpp) +endif() + +if(HAVE_TIDAL) + target_sources(strawberry PRIVATE tidalsettingspage.cpp) +endif() + +if(HAVE_QOBUZ) + target_sources(strawberry PRIVATE qobuzsettingspage.cpp) +endif() diff --git a/src/settings/globalshortcutssettingspage.cpp b/src/settings/globalshortcutssettingspage.cpp index 1a7f5ea83d..51604cd46b 100644 --- a/src/settings/globalshortcutssettingspage.cpp +++ b/src/settings/globalshortcutssettingspage.cpp @@ -70,27 +70,33 @@ GlobalShortcutsSettingsPage::GlobalShortcutsSettingsPage(SettingsDialog *dialog, QObject::connect(ui_->radio_custom, &QRadioButton::clicked, this, &GlobalShortcutsSettingsPage::ChangeClicked); QObject::connect(ui_->button_change, &QPushButton::clicked, this, &GlobalShortcutsSettingsPage::ChangeClicked); -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#ifdef HAVE_KDE_GLOBALSHORTCUTS QObject::connect(ui_->checkbox_kde, &QCheckBox::toggled, this, &GlobalShortcutsSettingsPage::ShortcutOptionsChanged); +#else + ui_->widget_kde->hide(); +#endif +#ifdef HAVE_GNOME_GLOBALSHORTCUTS QObject::connect(ui_->checkbox_gnome, &QCheckBox::toggled, this, &GlobalShortcutsSettingsPage::ShortcutOptionsChanged); - QObject::connect(ui_->checkbox_mate, &QCheckBox::toggled, this, &GlobalShortcutsSettingsPage::ShortcutOptionsChanged); QObject::connect(ui_->button_gnome_open, &QPushButton::clicked, this, &GlobalShortcutsSettingsPage::OpenGnomeKeybindingProperties); - QObject::connect(ui_->button_mate_open, &QPushButton::clicked, this, &GlobalShortcutsSettingsPage::OpenMateKeybindingProperties); #else - ui_->widget_kde->hide(); ui_->widget_gnome->hide(); + #endif +#ifdef HAVE_MATE_GLOBALSHORTCUTS + QObject::connect(ui_->checkbox_mate, &QCheckBox::toggled, this, &GlobalShortcutsSettingsPage::ShortcutOptionsChanged); + QObject::connect(ui_->button_mate_open, &QPushButton::clicked, this, &GlobalShortcutsSettingsPage::OpenMateKeybindingProperties); +#else ui_->widget_mate->hide(); -#endif // defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#endif #ifdef HAVE_X11_GLOBALSHORTCUTS QObject::connect(ui_->checkbox_x11, &QCheckBox::toggled, this, &GlobalShortcutsSettingsPage::ShortcutOptionsChanged); #else ui_->widget_x11->hide(); -#endif // HAVE_X11_GLOBALSHORTCUTS +#endif #ifndef Q_OS_MACOS ui_->widget_macos_access->hide(); -#endif // Q_OS_MACOS +#endif } @@ -113,8 +119,7 @@ void GlobalShortcutsSettingsPage::Load() { QObject::connect(ui_->button_macos_preferences, &QPushButton::clicked, manager, &GlobalShortcutsManager::ShowMacAccessibilityDialog); #endif -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) - +#ifdef HAVE_KDE_GLOBALSHORTCUTS if (GlobalShortcutsManager::IsKdeAvailable()) { qLog(Debug) << "KDE (KGlobalAccel) backend is available."; ui_->widget_kde->show(); @@ -123,7 +128,9 @@ void GlobalShortcutsSettingsPage::Load() { qLog(Debug) << "KDE (KGlobalAccel) backend is unavailable."; ui_->widget_kde->hide(); } +#endif +#ifdef HAVE_GNOME_GLOBALSHORTCUTS if (GlobalShortcutsManager::IsGnomeAvailable()) { qLog(Debug) << "Gnome (GSD) backend is available."; ui_->widget_gnome->show(); @@ -132,7 +139,9 @@ void GlobalShortcutsSettingsPage::Load() { qLog(Debug) << "Gnome (GSD) backend is unavailable."; ui_->widget_gnome->hide(); } +#endif +#ifdef HAVE_MATE_GLOBALSHORTCUTS if (GlobalShortcutsManager::IsMateAvailable()) { qLog(Debug) << "MATE backend is available."; ui_->widget_mate->show(); @@ -141,8 +150,7 @@ void GlobalShortcutsSettingsPage::Load() { qLog(Debug) << "MATE backend is unavailable."; ui_->widget_mate->hide(); } - -#endif // defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#endif #ifdef HAVE_X11_GLOBALSHORTCUTS if (GlobalShortcutsManager::IsX11Available()) { @@ -153,7 +161,7 @@ void GlobalShortcutsSettingsPage::Load() { qLog(Debug) << "X11 backend is unavailable."; ui_->widget_x11->hide(); } -#endif // HAVE_X11_GLOBALSHORTCUTS +#endif const QList shortcuts = manager->shortcuts().values(); for (const GlobalShortcutsManager::Shortcut &i : shortcuts) { @@ -174,29 +182,31 @@ void GlobalShortcutsSettingsPage::Load() { SetShortcut(shortcut.s.id, shortcut.s.action->shortcut()); } -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) - +#ifdef HAVE_KDE_GLOBALSHORTCUTS if (ui_->widget_kde->isVisibleTo(this)) { ui_->checkbox_kde->setChecked(s.value("use_kde", true).toBool()); } +#endif +#ifdef HAVE_GNOME_GLOBALSHORTCUTS if (ui_->widget_gnome->isVisibleTo(this)) { ui_->checkbox_gnome->setChecked(s.value("use_gnome", true).toBool()); } +#endif +#ifdef HAVE_MATE_GLOBALSHORTCUTS if (ui_->widget_mate->isVisibleTo(this)) { ui_->checkbox_mate->setChecked(s.value("use_mate", true).toBool()); } - -#endif // defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#endif #ifdef HAVE_X11_GLOBALSHORTCUTS if (ui_->widget_x11->isVisibleTo(this)) { ui_->checkbox_x11->setChecked(s.value("use_x11", false).toBool()); } -#endif // HAVE_X11_GLOBALSHORTCUTS +#endif -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && (defined(HAVE_DBUS) || defined(HAVE_X11_GLOBALSHORTCUTS)) +#if defined(HAVE_KDE_GLOBALSHORTCUTS) || defined(HAVE_GNOME_GLOBALSHORTCUTS) || defined(HAVE_MATE_GLOBALSHORTCUTS) || defined(HAVE_X11_GLOBALSHORTCUTS)) ShortcutOptionsChanged(); #endif @@ -224,15 +234,21 @@ void GlobalShortcutsSettingsPage::Save() { s.setValue(shortcut.s.id, shortcut.key.toString()); } -#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#ifdef HAVE_KDE_GLOBALSHORTCUTS s.setValue("use_kde", ui_->checkbox_kde->isChecked()); +#endif + +#ifdef HAVE_GNOME_GLOBALSHORTCUTS s.setValue("use_gnome", ui_->checkbox_gnome->isChecked()); +#endif + +#ifdef HAVE_MATE_GLOBALSHORTCUTS s.setValue("use_mate", ui_->checkbox_mate->isChecked()); -#endif // defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) && defined(HAVE_DBUS) +#endif #ifdef HAVE_X11_GLOBALSHORTCUTS s.setValue("use_x11", ui_->checkbox_x11->isChecked()); -#endif // HAVE_X11_GLOBALSHORTCUTS +#endif s.endGroup(); diff --git a/src/smartplaylists/CMakeLists.txt b/src/smartplaylists/CMakeLists.txt new file mode 100644 index 0000000000..fcdfd98462 --- /dev/null +++ b/src/smartplaylists/CMakeLists.txt @@ -0,0 +1,21 @@ +target_sources(strawberry PRIVATE + playlistgenerator.cpp + playlistgeneratorinserter.cpp + playlistgeneratormimedata.cpp + playlistquerygenerator.cpp + smartplaylistquerywizardplugin.cpp + smartplaylistquerywizardpluginsortpage.cpp + smartplaylistquerywizardpluginsearchpage.cpp + smartplaylistsearch.cpp + smartplaylistsearchpreview.cpp + smartplaylistsearchterm.cpp + smartplaylistsearchtermwidget.cpp + smartplaylistsearchtermwidgetoverlay.cpp + smartplaylistsmodel.cpp + smartplaylistsviewcontainer.cpp + smartplaylistsview.cpp + smartplaylistwizard.cpp + smartplaylistwizardplugin.cpp + smartplaylistwizardtypepage.cpp + smartplaylistwizardfinishpage.cpp +) diff --git a/src/spotify/CMakeLists.txt b/src/spotify/CMakeLists.txt new file mode 100644 index 0000000000..a5fac14578 --- /dev/null +++ b/src/spotify/CMakeLists.txt @@ -0,0 +1,6 @@ +target_sources(strawberry PRIVATE + spotifyservice.cpp + spotifybaserequest.cpp + spotifyrequest.cpp + spotifyfavoriterequest.cpp +) diff --git a/src/streaming/CMakeLists.txt b/src/streaming/CMakeLists.txt new file mode 100644 index 0000000000..6175dda8f8 --- /dev/null +++ b/src/streaming/CMakeLists.txt @@ -0,0 +1,15 @@ +target_sources(strawberry PRIVATE + streamingservices.cpp + streamingservice.cpp + streamplaylistitem.cpp + streamingsearchview.cpp + streamingsearchmodel.cpp + streamingsearchsortmodel.cpp + streamingsearchitemdelegate.cpp + streamingsongsview.cpp + streamingtabsview.cpp + streamingcollectionview.cpp + streamingcollectionviewcontainer.cpp + streamingsearchview.cpp + streamsongmimedata.cpp +) diff --git a/src/subsonic/CMakeLists.txt b/src/subsonic/CMakeLists.txt new file mode 100644 index 0000000000..59d351039e --- /dev/null +++ b/src/subsonic/CMakeLists.txt @@ -0,0 +1,7 @@ +target_sources(strawberry PRIVATE + subsonicservice.cpp + subsonicurlhandler.cpp + subsonicbaserequest.cpp + subsonicrequest.cpp + subsonicscrobblerequest.cpp +) diff --git a/src/tagreader/CMakeLists.txt b/src/tagreader/CMakeLists.txt new file mode 100644 index 0000000000..a5491ebf87 --- /dev/null +++ b/src/tagreader/CMakeLists.txt @@ -0,0 +1,27 @@ +target_sources(strawberry PRIVATE + tagreaderclient.cpp + tagreaderresult.cpp + tagreaderbase.cpp + tagreadertaglib.cpp + tagreadergme.cpp + tagreaderrequest.cpp + tagreaderismediafilerequest.cpp + tagreaderreadfilerequest.cpp + tagreaderwritefilerequest.cpp + tagreaderloadcoverdatarequest.cpp + tagreaderloadcoverimagerequest.cpp + tagreadersavecoverrequest.cpp + tagreadersaveplaycountrequest.cpp + tagreadersaveratingrequest.cpp + albumcovertagdata.cpp + savetagcoverdata.cpp + tagreaderreply.cpp + tagreaderreadfilereply.cpp + tagreaderloadcoverdatareply.cpp + tagreaderloadcoverimagereply.cpp + tagreaderclient.h + tagreaderreply.h + tagreaderreadfilereply.h + tagreaderloadcoverdatareply.h + tagreaderloadcoverimagereply.h +) diff --git a/src/tidal/CMakeLists.txt b/src/tidal/CMakeLists.txt new file mode 100644 index 0000000000..3e76bc1b27 --- /dev/null +++ b/src/tidal/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(strawberry PRIVATE + tidalservice.cpp + tidalurlhandler.cpp + tidalbaserequest.cpp + tidalrequest.cpp + tidalstreamurlrequest.cpp + tidalfavoriterequest.cpp +) diff --git a/src/transcoder/CMakeLists.txt b/src/transcoder/CMakeLists.txt new file mode 100644 index 0000000000..3bdd8f82ac --- /dev/null +++ b/src/transcoder/CMakeLists.txt @@ -0,0 +1,14 @@ +target_sources(strawberry PRIVATE + transcoder.cpp + transcoderoptionsinterface.cpp + transcodedialog.cpp + transcoderoptionsdialog.cpp + transcoderoptionsflac.cpp + transcoderoptionswavpack.cpp + transcoderoptionsvorbis.cpp + transcoderoptionsopus.cpp + transcoderoptionsspeex.cpp + transcoderoptionsaac.cpp + transcoderoptionsasf.cpp + transcoderoptionsmp3.cpp +) diff --git a/src/translations/CMakeLists.txt b/src/translations/CMakeLists.txt new file mode 100644 index 0000000000..ff8589d699 --- /dev/null +++ b/src/translations/CMakeLists.txt @@ -0,0 +1 @@ +target_sources(strawberry PRIVATE) diff --git a/src/translations/translations.pot b/src/translations/translations.pot deleted file mode 100644 index 9f3a5ea5fb..0000000000 --- a/src/translations/translations.pot +++ /dev/null @@ -1,4476 +0,0 @@ -# Strawberry Music Player -# -#, fuzzy -msgid "" -msgstr "" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "All Files (*)" -msgstr "" - -msgid "Context" -msgstr "" - -msgid "Collection" -msgstr "" - -msgid "Queue" -msgstr "" - -msgid "Playlists" -msgstr "" - -msgid "Smart playlists" -msgstr "" - -msgid "Files" -msgstr "" - -msgid "Radios" -msgstr "" - -msgid "Devices" -msgstr "" - -msgid "Subsonic" -msgstr "" - -msgid "Tidal" -msgstr "" - -msgid "Spotify" -msgstr "" - -msgid "Qobuz" -msgstr "" - -msgid "Show all songs" -msgstr "" - -msgid "Show only duplicates" -msgstr "" - -msgid "Show only untagged" -msgstr "" - -msgid "Configure collection..." -msgstr "" - -msgid "Play" -msgstr "" - -msgid "Stop after this track" -msgstr "" - -msgid "Toggle queue status" -msgstr "" - -msgid "Queue selected tracks to play next" -msgstr "" - -msgid "Toggle skip status" -msgstr "" - -msgid "Rescan song(s)..." -msgstr "" - -msgid "Copy URL(s)..." -msgstr "" - -msgid "Show in collection..." -msgstr "" - -msgid "Show in file browser..." -msgstr "" - -msgid "Organize files..." -msgstr "" - -msgid "Copy to collection..." -msgstr "" - -msgid "Move to collection..." -msgstr "" - -msgid "Copy to device..." -msgstr "" - -msgid "Delete from disk..." -msgstr "" - -msgid "Check for updates..." -msgstr "" - -msgid "Strawberry running under Rosetta" -msgstr "" - -#, qt-format -msgid "" -"You are running Strawberry under Rosetta. Running Strawberry under Rosetta " -"is unsupported and known to have issues. You should download Strawberry for " -"the correct CPU architecture from %1" -msgstr "" - -msgid "Sponsoring Strawberry" -msgstr "" - -#, qt-format -msgid "" -"Strawberry is free and open source software. If you like Strawberry, please " -"consider sponsoring the project. For more information about sponsorship see " -"our website %1" -msgstr "" - -msgid "Pause" -msgstr "" - -msgid "Dequeue track" -msgstr "" - -msgid "Dequeue selected tracks" -msgstr "" - -msgid "Queue track" -msgstr "" - -msgid "Queue selected tracks" -msgstr "" - -msgid "Queue to play next" -msgstr "" - -msgid "Unskip track" -msgstr "" - -msgid "Unskip selected tracks" -msgstr "" - -msgid "Skip track" -msgstr "" - -msgid "Skip selected tracks" -msgstr "" - -#, qt-format -msgid "Set %1 to \"%2\"..." -msgstr "" - -#, qt-format -msgid "Edit tag \"%1\"..." -msgstr "" - -msgid "Add to another playlist" -msgstr "" - -msgid "New playlist" -msgstr "" - -msgid "Add file" -msgstr "" - -msgid "Music" -msgstr "" - -msgid "Add folder" -msgstr "" - -msgid "Clear playlist" -msgstr "" - -#, qt-format -msgid "" -"Playlist has %1 songs, too large to undo, are you sure you want to clear the " -"playlist?" -msgstr "" - -msgid "Error" -msgstr "" - -msgid "None of the selected songs were suitable for copying to a device" -msgstr "" - -msgid "" -"The version of Strawberry you've just updated to requires a full collection " -"rescan because of the new features listed below:" -msgstr "" - -msgid "Would you like to run a full rescan right now?" -msgstr "" - -msgid "Collection rescan notice" -msgstr "" - -msgid "Usage" -msgstr "" - -msgid "options" -msgstr "" - -msgid "URL(s)" -msgstr "" - -msgid "Player options" -msgstr "" - -msgid "Start the playlist currently playing" -msgstr "" - -msgid "Play if stopped, pause if playing" -msgstr "" - -msgid "Pause playback" -msgstr "" - -msgid "Stop playback" -msgstr "" - -msgid "Stop playback after current track" -msgstr "" - -msgid "Skip backwards in playlist" -msgstr "" - -msgid "Skip forwards in playlist" -msgstr "" - -msgid "Set the volume to percent" -msgstr "" - -msgid "Increase the volume by 4 percent" -msgstr "" - -msgid "Decrease the volume by 4 percent" -msgstr "" - -msgid "Increase the volume by percent" -msgstr "" - -msgid "Decrease the volume by percent" -msgstr "" - -msgid "Seek the currently playing track to an absolute position" -msgstr "" - -msgid "Seek the currently playing track by a relative amount" -msgstr "" - -msgid "" -"Restart the track, or play the previous track if within 8 seconds of start." -msgstr "" - -msgid "Playlist options" -msgstr "" - -msgid "Create a new playlist with files" -msgstr "" - -msgid "Append files/URLs to the playlist" -msgstr "" - -msgid "Loads files/URLs, replacing current playlist" -msgstr "" - -msgid "Play the th track in the playlist" -msgstr "" - -msgid "Play given playlist" -msgstr "" - -msgid "Other options" -msgstr "" - -msgid "Display the on-screen-display" -msgstr "" - -msgid "Toggle visibility for the pretty on-screen-display" -msgstr "" - -msgid "Change the language" -msgstr "" - -msgid "Resize the window" -msgstr "" - -msgid "Equivalent to --log-levels *:1" -msgstr "" - -msgid "Equivalent to --log-levels *:3" -msgstr "" - -msgid "Comma separated list of class:level, level is 0-3" -msgstr "" - -msgid "Print out version information" -msgstr "" - -#, qt-format -msgid "Unable to execute SQL query: %1" -msgstr "" - -#, qt-format -msgid "Failed SQL query: %1" -msgstr "" - -msgid "Integrity check" -msgstr "" - -msgid "Database corruption detected." -msgstr "" - -msgid "Backing up database" -msgstr "" - -msgid "Deleting files" -msgstr "" - -#, qt-format -msgid "Failed to create directory %1." -msgstr "" - -#, qt-format -msgid "Destination file %1 exists, but not allowed to overwrite." -msgstr "" - -#, qt-format -msgid "Destination file %1 exists, but not allowed to overwrite" -msgstr "" - -#, qt-format -msgid "Could not copy file %1 to %2." -msgstr "" - -msgid "Unknown" -msgstr "" - -msgid "LUFS" -msgstr "" - -msgid "LU" -msgstr "" - -msgid "You need GStreamer for this URL." -msgstr "" - -msgid "Preload function was not set for blocking operation." -msgstr "" - -#, qt-format -msgid "File %1 does not exist." -msgstr "" - -#, qt-format -msgid "File %1 is not recognized as a valid audio file." -msgstr "" - -msgid "CD playback is only available with the GStreamer engine." -msgstr "" - -#, qt-format -msgid "Could not open file %1 for reading: %2" -msgstr "" - -#, qt-format -msgid "Could not open CUE file %1 for reading: %2" -msgstr "" - -#, qt-format -msgid "Could not open playlist file %1 for reading: %2" -msgstr "" - -#, qt-format -msgid "Couldn't create GStreamer source element for %1" -msgstr "" - -#, qt-format -msgid "Couldn't create GStreamer typefind element for %1" -msgstr "" - -#, qt-format -msgid "Couldn't create GStreamer fakesink element for %1" -msgstr "" - -#, qt-format -msgid "Couldn't link GStreamer source, typefind and fakesink elements for %1" -msgstr "" - -msgid "Playlist" -msgstr "" - -msgid "1 day" -msgstr "" - -#, qt-format -msgid "%1 days" -msgstr "" - -msgid "Today" -msgstr "" - -msgid "Yesterday" -msgstr "" - -#, qt-format -msgid "%1 days ago" -msgstr "" - -msgid "Tomorrow" -msgstr "" - -#, qt-format -msgid "In %1 days" -msgstr "" - -msgid "Next week" -msgstr "" - -#, qt-format -msgid "In %1 weeks" -msgstr "" - -msgid "Show in file browser" -msgstr "" - -msgid "Too many songs selected." -msgstr "" - -#, qt-format -msgid "" -"%1 songs in %2 different directories selected, are you sure you want to open " -"them all?" -msgstr "" - -#, qt-format -msgid "Failed to load image from data for %1" -msgstr "" - -msgid "Success" -msgstr "" - -msgid "File is unsupported" -msgstr "" - -msgid "Filename is missing" -msgstr "" - -msgid "File does not exist" -msgstr "" - -msgid "File could not be opened" -msgstr "" - -msgid "Could not parse file" -msgstr "" - -msgid "Could save file" -msgstr "" - -msgid "Unknown error" -msgstr "" - -msgid "" -"Prefix a search term with a field name to limit the search to that field, e." -"g.:" -msgstr "" - -msgid "artist" -msgstr "" - -#, qt-format -msgid "searches for all artists containing the word %1. " -msgstr "" - -#, qt-format -msgid "" -"Search terms for numerical fields can be prefixed with %1 or %2 to refine " -"the search, e.g.: " -msgstr "" - -msgid "rating" -msgstr "" - -#, qt-format -msgid "" -"Multiple search terms can also be combined with \"%1\" (default) and \"%2\", " -"as well as grouped with parentheses. " -msgstr "" - -msgid "Available fields" -msgstr "" - -msgid "Buffering" -msgstr "" - -msgid "Framerate" -msgstr "" - -#, qt-format -msgid "Low (%1 fps)" -msgstr "" - -#, qt-format -msgid "Medium (%1 fps)" -msgstr "" - -#, qt-format -msgid "High (%1 fps)" -msgstr "" - -#, qt-format -msgid "Super high (%1 fps)" -msgstr "" - -msgid "No analyzer" -msgstr "" - -msgid "Block analyzer" -msgstr "" - -msgid "Boom analyzer" -msgstr "" - -msgid "Turbine" -msgstr "" - -msgid "Sonogram" -msgstr "" - -msgid "WaveRubber" -msgstr "" - -msgid "Pre-amp" -msgstr "" - -msgid "Custom" -msgstr "" - -msgid "Classical" -msgstr "" - -msgid "Club" -msgstr "" - -msgid "Dance" -msgstr "" - -msgid "Full Bass" -msgstr "" - -msgid "Full Treble" -msgstr "" - -msgid "Full Bass + Treble" -msgstr "" - -msgid "Laptop/Headphones" -msgstr "" - -msgid "Large Hall" -msgstr "" - -msgid "Live" -msgstr "" - -msgid "Party" -msgstr "" - -msgid "Pop" -msgstr "" - -msgid "Reggae" -msgstr "" - -msgid "Rock" -msgstr "" - -msgid "Soft" -msgstr "" - -msgid "Ska" -msgstr "" - -msgid "Soft Rock" -msgstr "" - -msgid "Techno" -msgstr "" - -msgid "Zero" -msgstr "" - -msgid "Save preset" -msgstr "" - -msgid "Name" -msgstr "" - -msgid "Delete preset" -msgstr "" - -#, qt-format -msgid "Are you sure you want to delete the \"%1\" preset?" -msgstr "" - -#, qt-format -msgid "%1 dB" -msgstr "" - -msgid "Filetype" -msgstr "" - -msgid "Length" -msgstr "" - -msgid "Samplerate" -msgstr "" - -msgid "Bit depth" -msgstr "" - -msgid "Bitrate" -msgstr "" - -msgid "EBU R 128 Integrated Loudness" -msgstr "" - -msgid "EBU R 128 Loudness Range" -msgstr "" - -msgid "Show album cover" -msgstr "" - -msgid "Show song technical data" -msgstr "" - -msgid "Show song lyrics" -msgstr "" - -msgid "Automatically search for song lyrics" -msgstr "" - -msgid "No song playing" -msgstr "" - -#, qt-format -msgid "%1 song" -msgstr "" - -#, qt-format -msgid "%1 songs" -msgstr "" - -#, qt-format -msgid "%1 artist" -msgstr "" - -#, qt-format -msgid "%1 artists" -msgstr "" - -#, qt-format -msgid "%1 album" -msgstr "" - -#, qt-format -msgid "%1 albums" -msgstr "" - -msgid "kbps" -msgstr "" - -msgid "Saving playcounts and ratings" -msgstr "" - -msgid "Various artists" -msgstr "" - -msgid "Loading..." -msgstr "" - -#, qt-format -msgid "Unable to execute collection SQL query: %1" -msgstr "" - -#, qt-format -msgid "Updating %1 database." -msgstr "" - -msgid "Updating collection" -msgstr "" - -#, qt-format -msgid "Updating %1" -msgstr "" - -msgid "Your collection is empty!" -msgstr "" - -msgid "Click here to add some music" -msgstr "" - -msgid "Append to current playlist" -msgstr "" - -msgid "Replace current playlist" -msgstr "" - -msgid "Open in new playlist" -msgstr "" - -msgid "Search for this" -msgstr "" - -msgid "Edit track information..." -msgstr "" - -msgid "Edit tracks information..." -msgstr "" - -msgid "Rescan song(s)" -msgstr "" - -msgid "Show in various artists" -msgstr "" - -msgid "Don't show in various artists" -msgstr "" - -msgid "There are other songs in this album" -msgstr "" - -msgid "" -"Would you like to move the other songs on this album to Various Artists as " -"well?" -msgstr "" - -msgid "Show" -msgstr "" - -msgid "Group by" -msgstr "" - -msgid "Display options" -msgstr "" - -msgid "Group by Album artist/Album" -msgstr "" - -msgid "Group by Album artist/Album - Disc" -msgstr "" - -msgid "Group by Album artist/Year - Album" -msgstr "" - -msgid "Group by Album artist/Year - Album - Disc" -msgstr "" - -msgid "Group by Artist/Album" -msgstr "" - -msgid "Group by Artist/Album - Disc" -msgstr "" - -msgid "Group by Artist/Year - Album" -msgstr "" - -msgid "Group by Artist/Year - Album - Disc" -msgstr "" - -msgid "Group by Genre/Album artist/Album" -msgstr "" - -msgid "Group by Genre/Artist/Album" -msgstr "" - -msgid "Group by Album Artist" -msgstr "" - -msgid "Group by Artist" -msgstr "" - -msgid "Group by Album" -msgstr "" - -msgid "Group by Genre/Album" -msgstr "" - -msgid "Advanced grouping..." -msgstr "" - -msgid "Grouping Name" -msgstr "" - -msgid "Grouping name:" -msgstr "" - -msgid "First level" -msgstr "" - -msgid "Second Level" -msgstr "" - -msgid "Third Level" -msgstr "" - -msgid "None" -msgstr "" - -msgid "Album artist" -msgstr "" - -msgid "Artist" -msgstr "" - -msgid "Album" -msgstr "" - -msgid "Album - Disc" -msgstr "" - -msgid "Year - Album" -msgstr "" - -msgid "Year - Album - Disc" -msgstr "" - -msgid "Original year - Album" -msgstr "" - -msgid "Original year - Album - Disc" -msgstr "" - -msgid "Disc" -msgstr "" - -msgid "Year" -msgstr "" - -msgid "Original year" -msgstr "" - -msgid "Genre" -msgstr "" - -msgid "Composer" -msgstr "" - -msgid "Performer" -msgstr "" - -msgid "Grouping" -msgstr "" - -msgid "File type" -msgstr "" - -msgid "Format" -msgstr "" - -msgid "Sample rate" -msgstr "" - -#, qt-format -msgid "Could not write metadata to %1" -msgstr "" - -#, qt-format -msgid "Could not write metadata to %1: %2" -msgstr "" - -msgid "Title" -msgstr "" - -msgid "Track" -msgstr "" - -msgid "Original Year" -msgstr "" - -msgid "Album Artist" -msgstr "" - -msgid "Play Count" -msgstr "" - -msgid "Skip Count" -msgstr "" - -msgid "Last Played" -msgstr "" - -msgid "Sample Rate" -msgstr "" - -msgid "Bit Depth" -msgstr "" - -msgid "File Name" -msgstr "" - -msgid "File Name (without path)" -msgstr "" - -msgid "File Size" -msgstr "" - -msgid "File Type" -msgstr "" - -msgid "Date Modified" -msgstr "" - -msgid "Date Created" -msgstr "" - -msgid "Comment" -msgstr "" - -msgid "Source" -msgstr "" - -msgid "Mood" -msgstr "" - -msgid "Rating" -msgstr "" - -msgid "CUE" -msgstr "" - -msgid "Integrated Loudness" -msgstr "" - -msgid "Loudness Range" -msgstr "" - -msgid "Undo" -msgstr "" - -msgid "Redo" -msgstr "" - -msgid "Load playlist" -msgstr "" - -msgid "" -"No matches found. Clear the search box to show the whole playlist again." -msgstr "" - -msgid "stop" -msgstr "" - -msgid "Never" -msgstr "" - -msgid "&Hide..." -msgstr "" - -msgid "&Stretch columns to fit window" -msgstr "" - -msgid "&Reset columns to default" -msgstr "" - -msgid "&Lock rating" -msgstr "" - -msgid "&Align text" -msgstr "" - -msgid "&Left" -msgstr "" - -msgid "&Center" -msgstr "" - -msgid "&Right" -msgstr "" - -#, qt-format -msgid "&Hide %1" -msgstr "" - -msgid "New folder" -msgstr "" - -msgid "Delete" -msgstr "" - -msgctxt "Save playlist menu action." -msgid "Save playlist" -msgstr "" - -msgid "Enter the name of the folder" -msgstr "" - -msgid "Copy to device" -msgstr "" - -msgid "Playlist must be open first." -msgstr "" - -msgid "Remove playlists" -msgstr "" - -#, qt-format -msgid "You are about to remove %1 playlists from your favorites, are you sure?" -msgstr "" - -msgid "" -"You can favorite playlists by clicking the star icon next to a playlist name" -msgstr "" - -msgid "Favorited playlists will be saved here" -msgstr "" - -msgid "Couldn't create playlist" -msgstr "" - -msgctxt "Title of the playlist save dialog." -msgid "Save playlist" -msgstr "" - -msgid "Unknown playlist extension" -msgstr "" - -msgid "Unknown file extension for playlist." -msgstr "" - -#, qt-format -msgid "%1 selected of" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "%n track(s)" -msgstr "" - -msgid "Automatic" -msgstr "" - -msgid "Relative" -msgstr "" - -msgid "Absolute" -msgstr "" - -msgid "Star playlist" -msgstr "" - -msgid "Close playlist" -msgstr "" - -msgid "Rename playlist..." -msgstr "" - -msgid "Save playlist..." -msgstr "" - -msgid "Rename playlist" -msgstr "" - -msgid "Enter a new name for this playlist" -msgstr "" - -msgid "Remove playlist" -msgstr "" - -msgid "" -"You are about to remove a playlist which is not part of your favorite " -"playlists: the playlist will be deleted (this action cannot be undone). \n" -"Are you sure you want to continue?" -msgstr "" - -msgid "Warn me when closing a playlist tab" -msgstr "" - -msgid "This option can be changed in the \"Behavior\" preferences" -msgstr "" - -msgid "" -"Double-click here to favorite this playlist so it will be saved and remain " -"accessible through the \"Playlists\" panel on the left side bar" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "add %n songs" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "remove %n songs" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "move %n songs" -msgstr "" - -msgid "sort songs" -msgstr "" - -msgid "shuffle songs" -msgstr "" - -msgid "Hz" -msgstr "" - -msgid "Bit" -msgstr "" - -msgid "Error while loading audio CD." -msgstr "" - -msgid "Loading tracks" -msgstr "" - -msgid "Loading tracks info" -msgstr "" - -msgid "Saving CUE files is not supported." -msgstr "" - -#, qt-format -msgid "Don't know how to handle %1" -msgstr "" - -#, qt-format -msgid "All playlists (%1)" -msgstr "" - -#, qt-format -msgid "%1 playlists (%2)" -msgstr "" - -#, qt-format -msgid "Unknown filetype: %1" -msgstr "" - -#, qt-format -msgid "Could not open file %1" -msgstr "" - -#, qt-format -msgid "Directory %1 does not exist." -msgstr "" - -#, qt-format -msgid "Failed to open %1 for writing." -msgstr "" - -msgid "Loading smart playlist" -msgstr "" - -msgid "Collection search" -msgstr "" - -msgid "Find songs in your collection that match the criteria you specify." -msgstr "" - -msgid "Search terms" -msgstr "" - -msgid "A song will be included in the playlist if it matches these conditions." -msgstr "" - -msgid "Search options" -msgstr "" - -msgid "Choose how the playlist is sorted and how many songs it will contain." -msgstr "" - -#, qt-format -msgid "%1 songs found (showing %2)" -msgstr "" - -#, qt-format -msgid "%1 songs found" -msgstr "" - -msgid "after" -msgstr "" - -msgid "before" -msgstr "" - -msgid "on" -msgstr "" - -msgid "not on" -msgstr "" - -msgid "in the last" -msgstr "" - -msgid "not in the last" -msgstr "" - -msgid "between" -msgstr "" - -msgid "contains" -msgstr "" - -msgid "does not contain" -msgstr "" - -msgid "starts with" -msgstr "" - -msgid "ends with" -msgstr "" - -msgid "greater than" -msgstr "" - -msgid "less than" -msgstr "" - -msgid "equals" -msgstr "" - -msgid "not equals" -msgstr "" - -msgid "empty" -msgstr "" - -msgid "not empty" -msgstr "" - -msgid "A-Z" -msgstr "" - -msgid "Z-A" -msgstr "" - -msgid "oldest first" -msgstr "" - -msgid "newest first" -msgstr "" - -msgid "shortest first" -msgstr "" - -msgid "longest first" -msgstr "" - -msgid "smallest first" -msgstr "" - -msgid "biggest first" -msgstr "" - -msgid "Hours" -msgstr "" - -msgid "Days" -msgstr "" - -msgid "Weeks" -msgstr "" - -msgid "Months" -msgstr "" - -msgid "Years" -msgstr "" - -msgid "The second value must be greater than the first one!" -msgstr "" - -msgid "Add search term" -msgstr "" - -msgid "Newest tracks" -msgstr "" - -msgid "50 random tracks" -msgstr "" - -msgid "Ever played" -msgstr "" - -msgid "Never played" -msgstr "" - -msgid "Last played" -msgstr "" - -msgid "Most played" -msgstr "" - -msgid "Favourite tracks" -msgstr "" - -msgid "Least favourite tracks" -msgstr "" - -msgid "All tracks" -msgstr "" - -msgid "Dynamic random mix" -msgstr "" - -msgid "New smart playlist..." -msgstr "" - -msgid "Play next" -msgstr "" - -msgid "Edit smart playlist..." -msgstr "" - -msgid "Delete smart playlist" -msgstr "" - -msgid "Smart playlist" -msgstr "" - -msgid "Playlist type" -msgstr "" - -msgid "" -"A smart playlist is a dynamic list of songs that come from your collection. " -"There are different types of smart playlist that offer different ways of " -"selecting songs." -msgstr "" - -msgid "Finish" -msgstr "" - -msgid "Choose a name for your smart playlist" -msgstr "" - -msgid "Abort" -msgstr "" - -msgid "All albums" -msgstr "" - -msgid "Albums with covers" -msgstr "" - -msgid "Albums without covers" -msgstr "" - -msgid "Really cancel?" -msgstr "" - -msgid "Closing this window will stop searching for album covers." -msgstr "" - -msgid "Don't stop!" -msgstr "" - -msgid "All artists" -msgstr "" - -#, qt-format -msgid "Got %1 covers out of %2 (%3 failed)" -msgstr "" - -#, qt-format -msgid "%1 transferred" -msgstr "" - -msgid "Export finished" -msgstr "" - -msgid "No covers to export." -msgstr "" - -#, qt-format -msgid "Exported %1 covers out of %2 (%3 skipped)" -msgstr "" - -#, qt-format -msgid "Could not save cover to file %1." -msgstr "" - -#, qt-format -msgid "Covers from %1" -msgstr "" - -msgid "Search" -msgstr "" - -msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" -msgstr "" - -msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" -msgstr "" - -msgid "All files (*)" -msgstr "" - -msgid "Load cover from disk..." -msgstr "" - -msgid "Save cover to disk..." -msgstr "" - -msgid "Load cover from URL..." -msgstr "" - -msgid "Search for album covers..." -msgstr "" - -msgid "Unset cover" -msgstr "" - -msgid "Delete cover" -msgstr "" - -msgid "Clear cover" -msgstr "" - -msgid "Show fullsize..." -msgstr "" - -msgid "Search automatically" -msgstr "" - -msgid "Load cover from disk" -msgstr "" - -#, qt-format -msgid "Failed to open cover file %1 for reading: %2" -msgstr "" - -#, qt-format -msgid "Cover file %1 is empty." -msgstr "" - -msgid "unknown" -msgstr "" - -msgid "Save album cover" -msgstr "" - -#, qt-format -msgid "Failed to open cover file %1 for writing: %2" -msgstr "" - -#, qt-format -msgid "Failed writing cover to file %1: %2" -msgstr "" - -#, qt-format -msgid "Failed writing cover to file %1." -msgstr "" - -#, qt-format -msgid "Failed to delete cover file %1: %2" -msgstr "" - -#, qt-format -msgid "Failed to write cover to file %1: %2" -msgstr "" - -msgid "Total network requests made" -msgstr "" - -msgid "Average image size" -msgstr "" - -msgid "Total bytes transferred" -msgstr "" - -msgid "Fetching cover error" -msgstr "" - -msgid "The site you requested does not exist!" -msgstr "" - -msgid "The site you requested is not an image!" -msgstr "" - -msgid "Genius Authentication" -msgstr "" - -msgid "Please open this URL in your browser" -msgstr "" - -msgid "Redirect missing token code!" -msgstr "" - -msgid "Received invalid reply from web browser." -msgstr "" - -msgid "Redirect from Genius is missing query items code or state." -msgstr "" - -msgid "General" -msgstr "" - -msgid "User interface" -msgstr "" - -msgid "Streaming" -msgstr "" - -msgid "Add directory..." -msgstr "" - -msgid "Write all playcounts and ratings to files" -msgstr "" - -msgid "" -"Are you sure you want to write song playcounts and ratings to file for all " -"songs in your collection?" -msgstr "" - -msgid "Enter your user token from" -msgstr "" - -msgid "Use Tidal settings to authenticate." -msgstr "" - -msgid "Use Spotify settings to authenticate." -msgstr "" - -msgid "Use Qobuz settings to authenticate." -msgstr "" - -#, qt-format -msgid "%1 needs authentication." -msgstr "" - -#, qt-format -msgid "%1 does not need authentication." -msgstr "" - -msgid "No provider selected." -msgstr "" - -msgid "Authentication failed" -msgstr "" - -#, qt-format -msgid "Manually unset (%1)" -msgstr "" - -#, qt-format -msgid "Set through album cover search (%1)" -msgstr "" - -#, qt-format -msgid "Automatically picked up from album directory (%1)" -msgstr "" - -#, qt-format -msgid "Embedded album cover art (%1)" -msgstr "" - -msgid "Select background image" -msgstr "" - -msgid "OSD Preview" -msgstr "" - -msgid "Drag to reposition" -msgstr "" - -msgid "About Strawberry" -msgstr "" - -#, qt-format -msgid "Version %1" -msgstr "" - -msgid "Strawberry is a music player and music collection organizer." -msgstr "" - -msgid "" -"It is a fork of Clementine released in 2018 aimed at music collectors and " -"audiophiles." -msgstr "" - -#, qt-format -msgid "" -"Strawberry is free software released under GPL. The source code is available " -"on %1" -msgstr "" - -#, qt-format -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program. If not, see %1" -msgstr "" - -msgid "" -"If you like Strawberry and can make use of it, consider sponsoring or " -"donating." -msgstr "" - -#, qt-format -msgid "" -"You can sponsor the author on %1. You can also make a one-time payment " -"through %2." -msgstr "" - -msgid "Author and maintainer" -msgstr "" - -msgid "Contributors" -msgstr "" - -msgid "Clementine authors" -msgstr "" - -msgid "Clementine contributors" -msgstr "" - -msgid "Thanks to" -msgstr "" - -msgid "Thanks to all the other Amarok and Clementine contributors." -msgstr "" - -msgid "(different across multiple songs)" -msgstr "" - -msgid "Different art across multiple songs." -msgstr "" - -msgid "Previous" -msgstr "" - -msgid "Next" -msgstr "" - -msgid "Saving tracks" -msgstr "" - -#, qt-format -msgid "%1 songs selected." -msgstr "" - -msgid "Yes" -msgstr "" - -msgid "No" -msgstr "" - -msgid "Cover is unset." -msgstr "" - -msgid "Cover from embedded image." -msgstr "" - -#, qt-format -msgid "Cover from %1" -msgstr "" - -msgid "Cover art not set" -msgstr "" - -msgid "Album cover editing is only available for collection songs." -msgstr "" - -msgid "Cover changed: Will be cleared when saved." -msgstr "" - -msgid "Cover changed: Will be unset when saved." -msgstr "" - -msgid "Cover changed: Will be deleted when saved." -msgstr "" - -msgid "Cover changed: Will set new when saved." -msgstr "" - -msgid "Reset song play statistics" -msgstr "" - -msgid "Are you sure you want to reset this song's play statistics?" -msgstr "" - -msgid "loading..." -msgstr "" - -msgid "Not found." -msgstr "" - -msgid "Original tags" -msgstr "" - -msgid "Suggested tags" -msgstr "" - -msgid "Delete files" -msgstr "" - -msgid "The following files will be deleted from disk:" -msgstr "" - -msgid "Are you sure you want to continue?" -msgstr "" - -msgid "Receiving initial data from last.fm..." -msgstr "" - -#, qt-format -msgid "Receiving playcount for %1 songs and last played for %2 songs." -msgstr "" - -#, qt-format -msgid "Receiving last played for %1 songs." -msgstr "" - -#, qt-format -msgid "Receiving playcounts for %1 songs." -msgstr "" - -#, qt-format -msgid "Playcounts for %1 songs and last played for %2 songs received." -msgstr "" - -#, qt-format -msgid "Last played for %1 songs received." -msgstr "" - -#, qt-format -msgid "Playcounts for %1 songs received." -msgstr "" - -msgid "Strawberry is running as a Snap" -msgstr "" - -msgid "It is detected that Strawberry is running as a Snap" -msgstr "" - -msgid "" -"Strawberry is slower, and has restrictions when running as a Snap. Accessing " -"the root filesystem (/) will not work. There also might be other " -"restrictions such as accessing certain devices or network shares." -msgstr "" - -#, qt-format -msgid "For Ubuntu there is an official PPA repository available at %1." -msgstr "" - -#, qt-format -msgid "" -"Official releases are available for Debian and Ubuntu which also work on " -"most of their derivatives. See %1 for more information." -msgstr "" - -msgid "For a better experience please consider the other options above." -msgstr "" - -msgid "" -"Copy your strawberry.conf and strawberry.db from your ~/snap directory to " -"avoid losing configuration before you uninstall the snap:" -msgstr "" - -msgid "Uninstall the snap with:" -msgstr "" - -msgid "Install strawberry through PPA:" -msgstr "" - -msgid "Select directory for the playlists" -msgstr "" - -msgid "Directory does not exist." -msgstr "" - -msgid "Large sidebar" -msgstr "" - -msgid "Icons sidebar" -msgstr "" - -msgid "Small sidebar" -msgstr "" - -msgid "Plain sidebar" -msgstr "" - -msgid "Tabs on top" -msgstr "" - -msgid "Icons on top" -msgstr "" - -msgid "Available" -msgstr "" - -msgid "New songs" -msgstr "" - -msgid "Exceeded by" -msgstr "" - -msgid "Used" -msgstr "" - -msgid "Clear" -msgstr "" - -msgid "Reset" -msgstr "" - -msgid "Small album cover" -msgstr "" - -msgid "Large album cover" -msgstr "" - -msgid "Fit cover to width" -msgstr "" - -msgid "Show above status bar" -msgstr "" - -msgid "You are signed in." -msgstr "" - -#, qt-format -msgid "You are signed in as %1." -msgstr "" - -#, qt-format -msgid "Expires on %1" -msgstr "" - -#, qt-format -msgid "disc %1" -msgstr "" - -#, qt-format -msgid "track %1" -msgstr "" - -msgid "Paused" -msgstr "" - -msgid "Stopped" -msgstr "" - -#, qt-format -msgid "Stop playing after track: %1" -msgstr "" - -msgid "On" -msgstr "" - -msgid "Off" -msgstr "" - -msgid "Playlist finished" -msgstr "" - -#, qt-format -msgid "Volume %1%" -msgstr "" - -msgid "Don't shuffle" -msgstr "" - -msgid "Shuffle all" -msgstr "" - -msgid "Shuffle tracks in this album" -msgstr "" - -msgid "Shuffle albums" -msgstr "" - -msgid "Don't repeat" -msgstr "" - -msgid "Repeat track" -msgstr "" - -msgid "Repeat album" -msgstr "" - -msgid "Repeat playlist" -msgstr "" - -msgid "Stop after every track" -msgstr "" - -msgid "Intro tracks" -msgstr "" - -#, qt-format -msgid "Configure %1..." -msgstr "" - -msgid "Add to artists" -msgstr "" - -msgid "Add to albums" -msgstr "" - -msgid "Add to songs" -msgstr "" - -msgid "Enter search terms above to find music" -msgstr "" - -msgid "The streaming collection is empty!" -msgstr "" - -msgid "Click here to retrieve music" -msgstr "" - -msgid "Remove from favorites" -msgstr "" - -msgid "Open homepage" -msgstr "" - -msgid "Donate" -msgstr "" - -msgid "Refresh channels" -msgstr "" - -#, qt-format -msgid "Getting %1 channels" -msgstr "" - -#, qt-format -msgid "%1 Scrobbler Authentication" -msgstr "" - -msgid "Open URL in web browser?" -msgstr "" - -msgid "" -"Press \"Save\" to copy the URL to clipboard and manually open it in a web " -"browser." -msgstr "" - -msgid "Could not open URL. Please open this URL in your browser" -msgstr "" - -msgid "Invalid reply from web browser. Missing token." -msgstr "" - -msgid "Received invalid reply from web browser. Try another browser." -msgstr "" - -#, qt-format -msgid "Scrobbler %1 is not authenticated!" -msgstr "" - -#, qt-format -msgid "Scrobbler %1 error: %2" -msgstr "" - -msgid "ListenBrainz Authentication" -msgstr "" - -#, qt-format -msgid "Unable to scrobble %1 - %2 because of error: %3" -msgstr "" - -#, qt-format -msgid "Missing MusicBrainz recording ID for %1 %2 %3" -msgstr "" - -#, qt-format -msgid "ListenBrainz error: %1" -msgstr "" - -msgid "Missing username, please login to last.fm first!" -msgstr "" - -msgid "Organizing files" -msgstr "" - -msgid "Artist's initial" -msgstr "" - -msgctxt "Refers to bitrate in file organize dialog." -msgid "Bitrate" -msgstr "" - -msgid "File extension" -msgstr "" - -msgid "Error copying songs" -msgstr "" - -msgid "" -"There were problems copying some songs. The following files could not be " -"copied:" -msgstr "" - -msgid "Error deleting songs" -msgstr "" - -msgid "" -"There were problems deleting some songs. The following files could not be " -"deleted:" -msgstr "" - -#, qt-format -msgid "" -"Could not create the GStreamer element \"%1\" - make sure you have all the " -"required GStreamer plugins installed" -msgstr "" - -#, qt-format -msgid "Successfully written %1" -msgstr "" - -#, qt-format -msgid "Transcoding %1 files using %2 threads" -msgstr "" - -#, qt-format -msgid "Error processing %1: %2" -msgstr "" - -#, qt-format -msgid "Starting %1" -msgstr "" - -#, qt-format -msgid "" -"Couldn't find an encoder for %1, check you have the correct GStreamer " -"plugins installed" -msgstr "" - -#, qt-format -msgid "" -"Couldn't find a muxer for %1, check you have the correct GStreamer plugins " -"installed" -msgstr "" - -msgid "Start transcoding" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "%n remaining" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "%n finished" -msgstr "" - -#, c-format, qt-plural-format -msgctxt "" -msgid "%n failed" -msgstr "" - -msgid "Add files to transcode" -msgstr "" - -msgid "Open a directory to import music from" -msgstr "" - -msgid "Play/Pause" -msgstr "" - -msgid "Stop" -msgstr "" - -msgid "Stop playing after current track" -msgstr "" - -msgid "Next track" -msgstr "" - -msgid "Previous track" -msgstr "" - -msgid "Restart or previous track" -msgstr "" - -msgid "Increase volume" -msgstr "" - -msgid "Decrease volume" -msgstr "" - -msgid "Mute" -msgstr "" - -msgid "Seek forward" -msgstr "" - -msgid "Seek backward" -msgstr "" - -msgid "Show/Hide" -msgstr "" - -msgid "Show OSD" -msgstr "" - -msgid "Toggle Pretty OSD" -msgstr "" - -msgid "Change shuffle mode" -msgstr "" - -msgid "Change repeat mode" -msgstr "" - -msgid "Enable/disable scrobbling" -msgstr "" - -msgid "Love" -msgstr "" - -#, qt-format -msgid "Press a key combination to use for %1..." -msgstr "" - -#, qt-format -msgid "The \"%1\" command could not be started." -msgstr "" - -#, qt-format -msgid "Shortcut for %1" -msgstr "" - -#, qt-format -msgid "" -"Using X11 shortcuts on %1 is not recommended and can cause keyboard to " -"become unresponsive!" -msgstr "" - -#, qt-format -msgid " Shortcuts on %1 are usually used through MPRIS and KGlobalAccel." -msgstr "" - -#, qt-format -msgid "" -" Shortcuts on %1 are usually used through Gnome Settings Daemon and should " -"be configured in gnome-settings-daemon instead." -msgstr "" - -#, qt-format -msgid "" -" Shortcuts on %1 are usually used through Gnome Settings Daemon and should " -"be configured in cinnamon-settings-daemon instead." -msgstr "" - -#, qt-format -msgid "" -" Shortcuts on %1 are usually used through MATE Settings Daemon and should be " -"configured there instead." -msgstr "" - -msgid "D-Bus path" -msgstr "" - -msgid "Serial number" -msgstr "" - -msgid "Mount points" -msgstr "" - -msgid "Partition label" -msgstr "" - -msgid "UUID" -msgstr "" - -msgid "Connect device" -msgstr "" - -msgid "" -"This is the first time you have connected this device. Strawberry will now " -"scan the device to find music files - this may take some time." -msgstr "" - -msgid "This device will not work properly" -msgstr "" - -msgid "" -"This is an MTP device, but you compiled Strawberry without libmtp support." -msgstr "" - -msgid "" -"If you continue, this device will work slowly and songs copied to it may not " -"work." -msgstr "" - -msgid "This is an iPod, but you compiled Strawberry without libgpod support." -msgstr "" - -#, qt-format -msgid "This type of device is not supported: %1" -msgstr "" - -#, qt-format -msgid "Updating %1%..." -msgstr "" - -msgid "Not connected" -msgstr "" - -msgid "Not mounted - double click to mount" -msgstr "" - -msgid "Double click to open" -msgstr "" - -#, qt-format -msgid "%1 song%2" -msgstr "" - -msgid "Safely remove device" -msgstr "" - -msgid "Forget device" -msgstr "" - -msgid "Device properties..." -msgstr "" - -msgid "Delete from device..." -msgstr "" - -msgid "" -"Forgetting a device will remove it from this list and Strawberry will have " -"to rescan all the songs again next time you connect it." -msgstr "" - -msgid "" -"These files will be deleted from the device, are you sure you want to " -"continue?" -msgstr "" - -msgid "Model" -msgstr "" - -msgid "Manufacturer" -msgstr "" - -#, qt-format -msgid "Could not copy %1 to %2: %3" -msgstr "" - -#, qt-format -msgid "Writing database failed: %1" -msgstr "" - -msgid "Writing database failed." -msgstr "" - -msgid "Loading iPod database" -msgstr "" - -msgid "An error occurred loading the iTunes database" -msgstr "" - -msgid "Mount point" -msgstr "" - -msgid "Device" -msgstr "" - -msgid "URI" -msgstr "" - -#, qt-format -msgid "Invalid MTP device: %1" -msgstr "" - -msgid "Could not open MTP device." -msgstr "" - -#, qt-format -msgid "MTP error: %1" -msgstr "" - -msgid "MTP device not found." -msgstr "" - -msgid "Loading MTP device" -msgstr "" - -#, qt-format -msgid "Error connecting MTP device %1" -msgstr "" - -#, qt-format -msgid "Error connecting MTP device %1: %2" -msgstr "" - -msgid "Identifying song" -msgstr "" - -msgid "Fingerprinting song" -msgstr "" - -msgid "Downloading metadata" -msgstr "" - -msgid "Error while setting CDDA device to ready state." -msgstr "" - -msgid "Error while setting CDDA device to pause state." -msgstr "" - -msgid "Error while querying CDDA tracks." -msgstr "" - -msgid "Server URL is invalid." -msgstr "" - -msgid "Missing username or password." -msgstr "" - -msgid "Subsonic server URL is invalid." -msgstr "" - -msgid "Missing Subsonic username or password." -msgstr "" - -msgid "Retrieving albums..." -msgstr "" - -#, qt-format -msgid "Retrieving songs for %1 album..." -msgstr "" - -#, qt-format -msgid "Retrieving songs for %1 albums..." -msgstr "" - -#, qt-format -msgid "Retrieving album cover for %1 album..." -msgstr "" - -#, qt-format -msgid "Retrieving album covers for %1 albums..." -msgstr "" - -msgid "Configuration incomplete" -msgstr "" - -msgid "Missing server url, username or password." -msgstr "" - -msgid "Configuration incorrect" -msgstr "" - -msgid "Test successful!" -msgstr "" - -msgid "Test failed!" -msgstr "" - -msgid "Reply from Tidal is missing query items." -msgstr "" - -msgid "Missing Tidal API token." -msgstr "" - -msgid "Missing Tidal username." -msgstr "" - -msgid "Missing Tidal password." -msgstr "" - -msgid "" -"Not authenticated with Tidal and reached maximum number of login attempts." -msgstr "" - -msgid "Not authenticated with Tidal." -msgstr "" - -msgid "Missing Tidal API token, username or password." -msgstr "" - -msgid "Authenticating..." -msgstr "" - -msgid "Receiving artists..." -msgstr "" - -msgid "Receiving albums..." -msgstr "" - -msgid "Receiving songs..." -msgstr "" - -msgid "Searching..." -msgstr "" - -#, qt-format -msgid "Receiving albums for %1 artist..." -msgstr "" - -#, qt-format -msgid "Receiving albums for %1 artists..." -msgstr "" - -#, qt-format -msgid "Receiving songs for %1 album..." -msgstr "" - -#, qt-format -msgid "Receiving songs for %1 albums..." -msgstr "" - -#, qt-format -msgid "Receiving album cover for %1 album..." -msgstr "" - -#, qt-format -msgid "Receiving album covers for %1 albums..." -msgstr "" - -msgid "No match." -msgstr "" - -msgid "Cancelled." -msgstr "" - -#, qt-format -msgid "" -"Received URL with %1 encrypted stream from Tidal. Strawberry does not " -"currently support encrypted streams." -msgstr "" - -msgid "" -"Received URL with encrypted stream from Tidal. Strawberry does not currently " -"support encrypted streams." -msgstr "" - -msgid "Missing Tidal client ID." -msgstr "" - -msgid "Missing API token." -msgstr "" - -msgid "Missing username." -msgstr "" - -msgid "Missing password." -msgstr "" - -msgid "Spotify Authentication" -msgstr "" - -msgid "Redirect missing token code or state!" -msgstr "" - -msgid "Not authenticated with Spotify." -msgstr "" - -msgid "Data missing error" -msgstr "" - -msgid "Maximum number of login attempts reached." -msgstr "" - -msgid "Missing Qobuz app ID." -msgstr "" - -msgid "Missing Qobuz username." -msgstr "" - -msgid "Missing Qobuz password." -msgstr "" - -msgid "Not authenticated with Qobuz." -msgstr "" - -msgid "Missing Qobuz app ID or secret." -msgstr "" - -msgid "Missing app id." -msgstr "" - -msgid "Show moodbar" -msgstr "" - -msgid "Moodbar style" -msgstr "" - -msgid "Normal" -msgstr "" - -msgid "Angry" -msgstr "" - -msgid "Frozen" -msgstr "" - -msgid "Happy" -msgstr "" - -msgid "System colors" -msgstr "" - -msgid "Strawberry Music Player" -msgstr "" - -msgid "F5" -msgstr "" - -msgid "&Play" -msgstr "" - -msgid "F6" -msgstr "" - -msgid "&Stop" -msgstr "" - -msgid "F7" -msgstr "" - -msgid "&Next track" -msgstr "" - -msgid "F8" -msgstr "" - -msgid "&Quit" -msgstr "" - -msgid "Ctrl+Q" -msgstr "" - -msgid "Ctrl+Alt+V" -msgstr "" - -msgid "&Clear playlist" -msgstr "" - -msgid "Ctrl+K" -msgstr "" - -msgid "Ctrl+E" -msgstr "" - -msgid "Renumber tracks in this order..." -msgstr "" - -msgid "Set value for all selected tracks..." -msgstr "" - -msgid "Edit tag..." -msgstr "" - -msgid "&Settings..." -msgstr "" - -msgid "Ctrl+P" -msgstr "" - -msgid "&About Strawberry" -msgstr "" - -msgid "F1" -msgstr "" - -msgid "S&huffle playlist" -msgstr "" - -msgid "Ctrl+H" -msgstr "" - -msgid "&Add file..." -msgstr "" - -msgid "Ctrl+Shift+A" -msgstr "" - -msgid "&Open file..." -msgstr "" - -msgid "Open audio &CD..." -msgstr "" - -msgid "&Cover Manager" -msgstr "" - -msgid "C&onsole" -msgstr "" - -msgid "&Shuffle mode" -msgstr "" - -msgid "&Repeat mode" -msgstr "" - -msgid "Remove from playlist" -msgstr "" - -msgid "&Equalizer" -msgstr "" - -msgid "&Transcode Music" -msgstr "" - -msgid "Add &folder..." -msgstr "" - -msgid "&Jump to the currently playing track" -msgstr "" - -msgid "Ctrl+J" -msgstr "" - -msgid "&New playlist" -msgstr "" - -msgid "Ctrl+N" -msgstr "" - -msgid "Save &playlist..." -msgstr "" - -msgid "Ctrl+S" -msgstr "" - -msgid "&Load playlist..." -msgstr "" - -msgid "Ctrl+Shift+O" -msgstr "" - -msgid "&Save all playlists..." -msgstr "" - -msgid "Go to next playlist tab" -msgstr "" - -msgid "Go to previous playlist tab" -msgstr "" - -msgid "&Update changed collection folders" -msgstr "" - -msgid "About &Qt" -msgstr "" - -msgid "&Mute" -msgstr "" - -msgid "Ctrl+M" -msgstr "" - -msgid "&Do a full collection rescan" -msgstr "" - -msgid "Stop collection scan" -msgstr "" - -msgid "Complete tags automatically..." -msgstr "" - -msgid "Ctrl+T" -msgstr "" - -msgid "Toggle scrobbling" -msgstr "" - -msgid "Remove &duplicates from playlist" -msgstr "" - -msgid "Remove &unavailable tracks from playlist" -msgstr "" - -msgid "Add file(s) to transcoder" -msgstr "" - -msgid "Add file to transcoder" -msgstr "" - -msgid "Add stream..." -msgstr "" - -msgid "Show sidebar" -msgstr "" - -msgid "Import data from last.fm..." -msgstr "" - -msgid "MenuPopupToolButton" -msgstr "" - -msgid "&Music" -msgstr "" - -msgid "P&laylist" -msgstr "" - -msgid "Help" -msgstr "" - -msgid "&Tools" -msgstr "" - -msgid "Collection advanced grouping" -msgstr "" - -msgid "You can change the way the songs in the collection are organized." -msgstr "" - -msgid "Group Collection by..." -msgstr "" - -msgid "Second level" -msgstr "" - -msgid "Third level" -msgstr "" - -msgid "Separate albums by grouping tag" -msgstr "" - -msgid "Collection Filter" -msgstr "" - -msgid "Entire collection" -msgstr "" - -msgid "Added today" -msgstr "" - -msgid "Added this week" -msgstr "" - -msgid "Added within three months" -msgstr "" - -msgid "Added this year" -msgstr "" - -msgid "Added this month" -msgstr "" - -msgid "Save current grouping" -msgstr "" - -msgid "Manage saved groupings" -msgstr "" - -msgid "Enter search terms here" -msgstr "" - -msgid "Form" -msgstr "" - -msgid "Saved Grouping Manager" -msgstr "" - -msgid "Remove" -msgstr "" - -msgid "Ctrl+Up" -msgstr "" - -msgid "File paths" -msgstr "" - -msgid "This can be changed later through the preferences" -msgstr "" - -msgid "Remember my choice" -msgstr "" - -msgid "Stop after each track" -msgstr "" - -msgid "Repeat" -msgstr "" - -msgid "Shuffle" -msgstr "" - -msgid "Dynamic mode is on" -msgstr "" - -msgid "New tracks will be added automatically." -msgstr "" - -msgid "Expand" -msgstr "" - -msgid "Repopulate" -msgstr "" - -msgid "Turn off" -msgstr "" - -msgid "QueueView" -msgstr "" - -msgid "Move down" -msgstr "" - -msgid "Move up" -msgstr "" - -msgid "Ctrl+Down" -msgstr "" - -msgid "Search mode" -msgstr "" - -msgid "Match every search term (AND)" -msgstr "" - -msgid "Match one or more search terms (OR)" -msgstr "" - -msgid "Include all songs" -msgstr "" - -msgid "Sorting" -msgstr "" - -msgid "Put songs in a random order" -msgstr "" - -msgid "Sort songs by" -msgstr "" - -msgid "Limits" -msgstr "" - -msgid "Show all the songs" -msgstr "" - -msgid "Only show the first" -msgstr "" - -msgid " songs" -msgstr "" - -msgid "Preview" -msgstr "" - -msgid "and" -msgstr "" - -msgid "ago" -msgstr "" - -msgid "New smart playlist" -msgstr "" - -msgid "Edit smart playlist" -msgstr "" - -msgid "Use dynamic mode" -msgstr "" - -msgid "" -"In dynamic mode new tracks will be chosen and added to the playlist every " -"time a song finishes." -msgstr "" - -msgid "Export covers" -msgstr "" - -msgid "Output" -msgstr "" - -msgid "Enter a filename for exported covers (no extension):" -msgstr "" - -msgid "Export downloaded covers" -msgstr "" - -msgid "Export embedded covers" -msgstr "" - -msgid "Existing covers" -msgstr "" - -msgid "Do not overwrite" -msgstr "" - -msgid "O&verwrite all" -msgstr "" - -msgid "Overwrite s&maller ones only" -msgstr "" - -msgid "Size" -msgstr "" - -msgid "Scale size" -msgstr "" - -msgid "Size:" -msgstr "" - -msgid "Pixel" -msgstr "" - -msgid "Cover Manager" -msgstr "" - -msgid "Fetch automatically" -msgstr "" - -msgid "Load" -msgstr "" - -msgid "Add to playlist" -msgstr "" - -msgid "View" -msgstr "" - -msgid "Total albums:" -msgstr "" - -msgid "Without cover:" -msgstr "" - -msgid "0" -msgstr "" - -msgid "Fetch Missing Covers" -msgstr "" - -msgid "Export Covers" -msgstr "" - -msgid "Fetch completed" -msgstr "" - -msgid "Load cover from URL" -msgstr "" - -msgid "Enter a URL to download a cover from the Internet:" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "Behavior" -msgstr "" - -msgid "Show system tray icon" -msgstr "" - -msgid "Keep running in the background when the window is closed" -msgstr "" - -msgid "Show song progress on system tray icon" -msgstr "" - -msgid "Show song progress on taskbar" -msgstr "" - -msgid "Resume playback on start" -msgstr "" - -msgid "Show playing widget" -msgstr "" - -msgid "On startup" -msgstr "" - -msgid "Remember from &last time" -msgstr "" - -msgid "Show the main window" -msgstr "" - -msgid "Hide the main window" -msgstr "" - -msgid "Show the main window maximized" -msgstr "" - -msgid "Show the main window minimized" -msgstr "" - -msgid "Language" -msgstr "" - -msgid "Use the system default" -msgstr "" - -msgid "You will need to restart Strawberry if you change the language." -msgstr "" - -msgid "Using the menu to add a song will..." -msgstr "" - -msgid "Never start playing" -msgstr "" - -msgid "Play if there is nothing already playing" -msgstr "" - -msgid "Always start playing" -msgstr "" - -msgid "Pressing \"Previous\" in player will..." -msgstr "" - -msgid "Jump to previous song right away" -msgstr "" - -msgid "Restart song, then jump to previous if pressed again" -msgstr "" - -msgid "Double clicking a song will..." -msgstr "" - -msgid "Append to the playlist" -msgstr "" - -msgid "Replace the playlist" -msgstr "" - -msgid "Add to the queue" -msgstr "" - -msgid "Double clicking a song in the playlist will..." -msgstr "" - -msgid "Change the currently playing song" -msgstr "" - -msgid "Seeking using a keyboard shortcut or mouse wheel" -msgstr "" - -msgid "Time step" -msgstr "" - -msgid " s" -msgstr "" - -msgid "Volume Increment" -msgstr "" - -msgid "These folders will be scanned for music to make up your collection" -msgstr "" - -msgid "Add new folder..." -msgstr "" - -msgid "Remove folder" -msgstr "" - -msgid "Automatic updating" -msgstr "" - -msgid "Update the collection when Strawberry starts" -msgstr "" - -msgid "Monitor the collection for changes" -msgstr "" - -msgid "Song fingerprinting and tracking" -msgstr "" - -msgid "Mark disappeared songs unavailable" -msgstr "" - -msgid "" -"Perform song EBU R 128 analysis (required for EBU R 128 loudness " -"normalization)" -msgstr "" - -msgid "Expire unavailable songs after" -msgstr "" - -msgid "days" -msgstr "" - -msgid "Preferred album art filenames (comma separated)" -msgstr "" - -msgid "" -"When looking for album art Strawberry will first look for picture files that " -"contain one of these words.\n" -"If there are no matches then it will use the largest image in the directory." -msgstr "" - -msgid "Automatically open single categories in the collection tree" -msgstr "" - -msgid "Show dividers" -msgstr "" - -msgid "Show album cover art in collection" -msgstr "" - -msgid "Use various artists for compilation albums" -msgstr "" - -msgid "" -"Skip leading articles (\"the\", \"a\", \"an\") when sorting artist names" -msgstr "" - -msgid "Album cover pixmap cache" -msgstr "" - -msgid "Enable Disk Cache" -msgstr "" - -msgid "Disk Cache Size" -msgstr "" - -msgid "Current disk cache in use:" -msgstr "" - -msgid "Clear Disk Cache" -msgstr "" - -msgid "Song playcounts and ratings" -msgstr "" - -msgid "Save playcounts to song tags when possible" -msgstr "" - -msgid "Save ratings to song tags when possible" -msgstr "" - -msgid "Overwrite database playcount when songs are re-read from disk" -msgstr "" - -msgid "Overwrite database rating when songs are re-read from disk" -msgstr "" - -msgid "Save playcounts and ratings to files now" -msgstr "" - -msgid "Enable delete files in the right click context menu" -msgstr "" - -msgid "Backend" -msgstr "" - -msgid "Audio output" -msgstr "" - -msgid "Engine" -msgstr "" - -msgid "ALSA plugin:" -msgstr "" - -msgid "hw" -msgstr "" - -msgid "p&lughw" -msgstr "" - -msgid "pcm" -msgstr "" - -msgid "Exclusive mode (Experimental)" -msgstr "" - -msgid "Options" -msgstr "" - -msgid "Enable volume control" -msgstr "" - -msgid "Upmix / downmix to" -msgstr "" - -msgid "channels" -msgstr "" - -msgid "Improve headphone listening of stereo audio records (bs2b)" -msgstr "" - -msgid "Enable HTTP/2 for streaming" -msgstr "" - -msgid "Use strict SSL mode" -msgstr "" - -msgid "Buffer" -msgstr "" - -msgid " ms" -msgstr "" - -msgid "Buffer duration" -msgstr "" - -msgid "High watermark" -msgstr "" - -msgid "Low watermark" -msgstr "" - -msgid "Defaults" -msgstr "" - -msgid "Audio normalization" -msgstr "" - -msgid "No audio normalization" -msgstr "" - -msgid "Replay Gain" -msgstr "" - -msgid "Use Replay Gain metadata if it is available" -msgstr "" - -msgid "Replay Gain mode" -msgstr "" - -msgid "Radio (equal loudness for all tracks)" -msgstr "" - -msgid "Album (ideal loudness for all tracks)" -msgstr "" - -msgid "Apply compression to prevent clipping" -msgstr "" - -msgid "Fallback-gain" -msgstr "" - -msgid "EBU R 128 Loudness Normalization" -msgstr "" - -msgid "Perform track loudness normalization" -msgstr "" - -msgid "Target Level" -msgstr "" - -msgid "Fading" -msgstr "" - -msgid "Fade out when stopping a track" -msgstr "" - -msgid "Cross-fade when changing tracks manually" -msgstr "" - -msgid "Cross-fade when changing tracks automatically" -msgstr "" - -msgid "Except between tracks on the same album or in the same CUE sheet" -msgstr "" - -msgid "Fading duration" -msgstr "" - -msgid "Fade out on pause / fade in on resume" -msgstr "" - -msgid "Add song artist tag" -msgstr "" - -msgid "Add song album tag" -msgstr "" - -msgid "Add song title tag" -msgstr "" - -msgid "Add song albumartist tag" -msgstr "" - -msgid "Add song year tag" -msgstr "" - -msgid "Add song composer tag" -msgstr "" - -msgid "Add song performer tag" -msgstr "" - -msgid "Add song grouping tag" -msgstr "" - -msgid "Add song disc tag" -msgstr "" - -msgid "Add song track tag" -msgstr "" - -msgid "Add song genre tag" -msgstr "" - -msgid "Add song length tag" -msgstr "" - -msgid "Add song play count" -msgstr "" - -msgid "Add song skip count" -msgstr "" - -msgid "Add a new line if supported by the notification type" -msgstr "" - -msgid "%filename%" -msgstr "" - -msgid "Add song filename" -msgstr "" - -msgid "%url%" -msgstr "" - -msgid "Add song URL" -msgstr "" - -msgid "%rating%" -msgstr "" - -msgid "Add song rating" -msgstr "" - -msgid "%originalyear%" -msgstr "" - -msgid "Add song original year tag" -msgstr "" - -msgid "Custom text settings" -msgstr "" - -msgid "Summary" -msgstr "" - -msgid "Enable Items" -msgstr "" - -msgid "Technical Data" -msgstr "" - -msgid "Song Lyrics" -msgstr "" - -msgid "Automatically search for album cover" -msgstr "" - -msgid "Font for headline" -msgstr "" - -msgid "Font" -msgstr "" - -msgid "Font size" -msgstr "" - -msgid " pt" -msgstr "" - -msgid "Font for data and lyrics" -msgstr "" - -msgid "Use alternating row colors" -msgstr "" - -msgid "Show bars on the currently playing track" -msgstr "" - -msgid "Show a glowing animation on the currently playing track" -msgstr "" - -msgid "Continue to the next item in the playlist if a song is unavailable" -msgstr "" - -msgid "Grey out unavailable songs in playlists on playback" -msgstr "" - -msgid "Grey out unavailable songs in playlists on startup" -msgstr "" - -msgid "Automatically select current playing track" -msgstr "" - -msgid "Enable playlist toolbar" -msgstr "" - -msgid "Enable playlist clear button" -msgstr "" - -msgid "Automatically sort playlist when inserting songs" -msgstr "" - -msgid "When saving a playlist, file paths should be" -msgstr "" - -msgid "A&utomatic" -msgstr "" - -msgid "Absolu&te" -msgstr "" - -msgid "Re&lative" -msgstr "" - -msgid "As&k when saving" -msgstr "" - -msgid "Metadata" -msgstr "" - -msgid "" -"If activated, clicking a selected song in the playlist view will let you " -"edit the tag value directly" -msgstr "" - -msgid "Enable song metadata inline edition with click" -msgstr "" - -msgid "Write metadata when saving playlists" -msgstr "" - -msgid "Scrobbler" -msgstr "" - -msgid "Enable" -msgstr "" - -msgid "" -"Songs are scrobbled if they have valid metadata and are longer than 30 " -"seconds, have been playing for at least half its duration or for 4 minutes " -"(whichever occurs earlier)." -msgstr "" - -msgid "Work in offline mode (Only cache scrobbles)" -msgstr "" - -msgid "Show scrobble button" -msgstr "" - -msgid "Show love button" -msgstr "" - -msgid "Submit scrobbles every" -msgstr "" - -msgid " seconds" -msgstr "" - -msgid "" -"(This is the delay between when a song is scrobbled and when scrobbles are " -"submitted to the server. Setting the time to 0 seconds will submit scrobbles " -"immediately)." -msgstr "" - -msgid "Prefer album artist when sending scrobbles" -msgstr "" - -msgid "Show dialog for errors" -msgstr "" - -msgid "Strip \"remastered\" and similar from album and title" -msgstr "" - -msgid "Enable scrobbling for the following sources:" -msgstr "" - -msgid "Local file" -msgstr "" - -msgid "CDDA" -msgstr "" - -msgid "SomaFM" -msgstr "" - -msgid "Stream" -msgstr "" - -msgid "Radio Paradise" -msgstr "" - -msgid "Last.fm" -msgstr "" - -msgid "Login" -msgstr "" - -msgid "Libre.fm" -msgstr "" - -msgid "Listenbrainz" -msgstr "" - -msgid "User token:" -msgstr "" - -msgid "Covers" -msgstr "" - -msgid "Cover providers" -msgstr "" - -msgid "Choose the providers you want to use when searching for covers." -msgstr "" - -msgid "Authentication" -msgstr "" - -msgid "Album cover types" -msgstr "" - -msgid "Saving album covers" -msgstr "" - -msgid "Save album covers in album directory" -msgstr "" - -msgid "Save album covers in cache directory" -msgstr "" - -msgid "Save album covers as embedded cover" -msgstr "" - -msgid "Filename:" -msgstr "" - -msgid "Pattern" -msgstr "" - -msgid "Random" -msgstr "" - -msgid "Overwrite existing file" -msgstr "" - -msgid "Lowercase filename" -msgstr "" - -msgid "Replace spaces with dashes" -msgstr "" - -msgid "Lyrics" -msgstr "" - -msgid "Lyrics providers" -msgstr "" - -msgid "Choose the providers you want to use when searching for lyrics." -msgstr "" - -msgid "Network Proxy" -msgstr "" - -msgid "&Use the system proxy settings" -msgstr "" - -msgid "Direct internet connection" -msgstr "" - -msgid "&Manual proxy configuration" -msgstr "" - -msgid "HTTP proxy" -msgstr "" - -msgid "SOCKS proxy" -msgstr "" - -msgid "Port" -msgstr "" - -msgid "Use authentication" -msgstr "" - -msgid "Username" -msgstr "" - -msgid "Password" -msgstr "" - -msgid "Use proxy settings for streaming" -msgstr "" - -msgid "Appearance" -msgstr "" - -msgid "Style" -msgstr "" - -msgid "Use system theme icons" -msgstr "" - -msgid "Settings require restart." -msgstr "" - -msgid "Tabbar colors" -msgstr "" - -msgid "&Use the system default color" -msgstr "" - -msgid "Use custom color" -msgstr "" - -msgid "Use gradient background" -msgstr "" - -msgid "Select tabbar color:" -msgstr "" - -msgid "Background image" -msgstr "" - -msgid "Default bac&kground image" -msgstr "" - -msgid "&No background image" -msgstr "" - -msgid "The album cover of the currently playing song" -msgstr "" - -msgid "Albu&m cover" -msgstr "" - -msgid "Custom image:" -msgstr "" - -msgid "Browse..." -msgstr "" - -msgid "Position" -msgstr "" - -msgid "Upper Left" -msgstr "" - -msgid "Upper Right" -msgstr "" - -msgid "Middle" -msgstr "" - -msgid "Bottom Left" -msgstr "" - -msgid "Bottom Right" -msgstr "" - -msgid "Max cover size" -msgstr "" - -msgid "Stretch image to fill playlist" -msgstr "" - -msgid "Keep aspect ratio" -msgstr "" - -msgid "Do not cut image" -msgstr "" - -msgid "Blur amount" -msgstr "" - -msgid "0px" -msgstr "" - -msgid "Opacity" -msgstr "" - -msgid "40%" -msgstr "" - -msgid "Icon sizes" -msgstr "" - -msgid "Playlist buttons" -msgstr "" - -msgid "Tabbar large mode" -msgstr "" - -msgid "Play control buttons" -msgstr "" - -msgid "Configure buttons" -msgstr "" - -msgid "Files, playlists and queue buttons" -msgstr "" - -msgid "Tabbar small mode" -msgstr "" - -msgid "Playlist playing song color" -msgstr "" - -msgid "System highlight color" -msgstr "" - -msgid "Custom color" -msgstr "" - -msgid "Select playlist playing song color:" -msgstr "" - -msgid "Notifications" -msgstr "" - -msgid "Strawberry can show a message when the track changes." -msgstr "" - -msgid "Notification type" -msgstr "" - -msgctxt "Refers to a disabled notification type in Notification settings." -msgid "Disabled" -msgstr "" - -msgid "Show a &native desktop notification" -msgstr "" - -msgid "Show a pretty OSD" -msgstr "" - -msgid "Show a popup fro&m the system tray" -msgstr "" - -msgid "General settings" -msgstr "" - -msgid "Popup duration" -msgstr "" - -msgid "Disable duration" -msgstr "" - -msgid "Show a notification when I change the volume" -msgstr "" - -msgid "Show a notification when I change the repeat/shuffle mode" -msgstr "" - -msgid "Show a notification when I pause playback" -msgstr "" - -msgid "Show a notification when I resume playback" -msgstr "" - -msgid "Include album art in the notification" -msgstr "" - -msgid "Custom message settings" -msgstr "" - -msgid "Use a custom message for notifications" -msgstr "" - -msgid "Body" -msgstr "" - -msgid "Pretty OSD options" -msgstr "" - -msgid "Background color" -msgstr "" - -msgid "Text options" -msgstr "" - -msgid "Choose font..." -msgstr "" - -msgid "Choose color..." -msgstr "" - -msgid "Background opacity" -msgstr "" - -msgid "Basic Blue" -msgstr "" - -msgid "Strawberry Red" -msgstr "" - -msgid "Custom..." -msgstr "" - -msgid "Enable fading" -msgstr "" - -msgid "Transcoding" -msgstr "" - -msgid "" -"These settings are used in the \"Transcode Music\" dialog, and when " -"converting music before copying it to a device." -msgstr "" - -msgid "FLAC" -msgstr "" - -msgid "WavPack" -msgstr "" - -msgid "Vorbis" -msgstr "" - -msgid "Opus" -msgstr "" - -msgid "Speex" -msgstr "" - -msgid "AAC" -msgstr "" - -msgid "ASF (WMA)" -msgstr "" - -msgid "MP3" -msgstr "" - -msgid "Equalizer" -msgstr "" - -msgid "Preset:" -msgstr "" - -msgid "Enable equalizer" -msgstr "" - -msgid "Enable stereo balancer" -msgstr "" - -msgid "Left" -msgstr "" - -msgid "Balance" -msgstr "" - -msgid "Right" -msgstr "" - -msgid "About" -msgstr "" - -msgid "Strawberry Error" -msgstr "" - -msgid "Console" -msgstr "" - -msgid "Run" -msgstr "" - -msgid "Edit track information" -msgstr "" - -msgid "Date created" -msgstr "" - -msgid "Art Automatic" -msgstr "" - -msgid "Date modified" -msgstr "" - -msgid "Art Embedded" -msgstr "" - -msgctxt "A playlist's tag." -msgid "Last played" -msgstr "" - -msgid "Play count" -msgstr "" - -msgid "EBU R 128 integrated loudness" -msgstr "" - -msgid "Bit rate" -msgstr "" - -msgid "Skip count" -msgstr "" - -msgid "Path" -msgstr "" - -msgid "Filename" -msgstr "" - -msgid "Art Unset" -msgstr "" - -msgid "File size" -msgstr "" - -msgid "Art Manual" -msgstr "" - -msgid "EBU R 128 loudness range" -msgstr "" - -msgid "Reset play counts" -msgstr "" - -msgid "Change art" -msgstr "" - -msgid "Embedded cover" -msgstr "" - -msgid "Complete tags automatically" -msgstr "" - -msgid "Compilation" -msgstr "" - -msgid "Tags" -msgstr "" - -msgid "Complete lyrics automatically" -msgstr "" - -msgid "Tag fetcher" -msgstr "" - -msgid "Sorry" -msgstr "" - -msgid "Strawberry was unable to find results for this file" -msgstr "" - -msgid "Select best possible match" -msgstr "" - -msgid "Add Stream" -msgstr "" - -msgid "Enter the URL of a stream:" -msgstr "" - -msgid "Enter username and password" -msgstr "" - -msgid "Import data from last.fm" -msgstr "" - -msgid "Choose data to import from last.fm" -msgstr "" - -msgid "Play counts" -msgstr "" - -msgid "" -"Warning: Play counts and last played from last.fm will completely replace " -"the same data for the matched songs. Play counts will replace the data based " -"on artist and song title for the same albums! Please backup your database " -"before you start." -msgstr "" - -msgid "Go!" -msgstr "" - -msgid "Close" -msgstr "" - -msgid "Cancel" -msgstr "" - -msgid "Message Dialog" -msgstr "" - -msgid "Do not show this message again." -msgstr "" - -msgid "Select directory for saving playlists" -msgstr "" - -msgid "Type" -msgstr "" - -msgid "0:00:00" -msgstr "" - -msgid "Click to toggle between remaining time and total time" -msgstr "" - -msgid "You are not signed in." -msgstr "" - -msgid "Sign out" -msgstr "" - -msgid "Signing in..." -msgstr "" - -msgid "Streaming Tabs View" -msgstr "" - -msgid "Artists" -msgstr "" - -msgid "Albums" -msgstr "" - -msgid "Songs" -msgstr "" - -msgid "Refresh catalogue" -msgstr "" - -msgid "Streaming Search View" -msgstr "" - -msgid "artists" -msgstr "" - -msgid "albums" -msgstr "" - -msgid "songs" -msgstr "" - -msgid "Organize Files" -msgstr "" - -msgid "Destination" -msgstr "" - -msgid "After copying..." -msgstr "" - -msgid "Keep the original files" -msgstr "" - -msgid "Delete the original files" -msgstr "" - -msgid "Naming options" -msgstr "" - -msgid "" -"

Tokens start with %, for example: %artist %album %title

\n" -"\n" -"

If you surround sections of text that contain a token with curly-braces, " -"that section will be hidden if the token is empty.

" -msgstr "" - -msgid "Insert..." -msgstr "" - -msgid "Remove problematic characters from filenames" -msgstr "" - -msgid "Restrict to characters allowed on FAT filesystems" -msgstr "" - -msgid "Restrict characters to ASCII" -msgstr "" - -msgid "Allow extended ASCII characters" -msgstr "" - -msgid "Replace spaces with underscores" -msgstr "" - -msgid "Overwrite existing files" -msgstr "" - -msgid "Copy album cover artwork" -msgstr "" - -msgid "Safely remove the device after copying" -msgstr "" - -msgid "Transcode Music" -msgstr "" - -msgid "Files to transcode" -msgstr "" - -msgid "Directory" -msgstr "" - -msgid "Add..." -msgstr "" - -msgid "Add all tracks from a directory and all its subdirectories" -msgstr "" - -msgid "Import..." -msgstr "" - -msgid "Output options" -msgstr "" - -msgid "Audio format" -msgstr "" - -msgid "Options..." -msgstr "" - -msgid "Alongside the originals" -msgstr "" - -msgid "Select..." -msgstr "" - -msgid "Progress" -msgstr "" - -msgid "Details..." -msgstr "" - -msgid "Transcoder Log" -msgstr "" - -msgid " kbps" -msgstr "" - -msgid "Profile" -msgstr "" - -msgid "Main profile (MAIN)" -msgstr "" - -msgid "Low complexity profile (LC)" -msgstr "" - -msgid "Scalable sampling rate profile (SSR)" -msgstr "" - -msgid "Long term prediction profile (LTP)" -msgstr "" - -msgid "Use temporal noise shaping" -msgstr "" - -msgid "Allow mid/side encoding" -msgstr "" - -msgid "Block type" -msgstr "" - -msgid "Normal block type" -msgstr "" - -msgid "No short blocks" -msgstr "" - -msgid "No long blocks" -msgstr "" - -msgid "Transcoding options" -msgstr "" - -msgctxt "Sound quality" -msgid "Quality" -msgstr "" - -msgid "Fast" -msgstr "" - -msgid "Best" -msgstr "" - -msgid "Use bitrate management engine" -msgstr "" - -msgid "Target bitrate" -msgstr "" - -msgid "Minimum bitrate" -msgstr "" - -msgid "disabled" -msgstr "" - -msgid "Maximum bitrate" -msgstr "" - -msgid "automatic" -msgstr "" - -msgid "Average bitrate" -msgstr "" - -msgid "Encoding mode" -msgstr "" - -msgid "Auto" -msgstr "" - -msgid "Ultra wide band (UWB)" -msgstr "" - -msgid "Wide band (WB)" -msgstr "" - -msgid "Narrow band (NB)" -msgstr "" - -msgid "Variable bit rate" -msgstr "" - -msgid "Voice activity detection" -msgstr "" - -msgid "Discontinuous transmission" -msgstr "" - -msgid "Encoding complexity" -msgstr "" - -msgid "Frames per buffer" -msgstr "" - -msgid "Optimize for &quality" -msgstr "" - -msgid "Opti&mize for bitrate" -msgstr "" - -msgid "Constant bitrate" -msgstr "" - -msgid "Encoding engine quality" -msgstr "" - -msgid "Standard" -msgstr "" - -msgid "High" -msgstr "" - -msgid "Force mono encoding" -msgstr "" - -msgid "Press a key" -msgstr "" - -msgid "Global Shortcuts" -msgstr "" - -msgid "Use Gnome (GSD) shortcuts when available" -msgstr "" - -msgid "Open..." -msgstr "" - -msgid "Use MATE shortcuts when available" -msgstr "" - -msgid "Use KDE (KGlobalAccel) shortcuts when available" -msgstr "" - -msgid "Use X11 shortcuts when available" -msgstr "" - -msgid "" -"You need to launch System Preferences and allow Strawberry to \"control your computer\" to use global " -"shortcuts in Strawberry." -msgstr "" - -msgid "Shortcut" -msgstr "" - -msgctxt "Category label" -msgid "Action" -msgstr "" - -msgid "&None" -msgstr "" - -msgid "&Default" -msgstr "" - -msgid "&Custom" -msgstr "" - -msgid "Change shortcut..." -msgstr "" - -msgid "Device Properties" -msgstr "" - -msgid "Icon" -msgstr "" - -msgid "Hardware information" -msgstr "" - -msgid "Hardware information is only available while the device is connected." -msgstr "" - -msgid "Information" -msgstr "" - -msgid "Supported formats" -msgstr "" - -msgid "This device supports the following file formats:" -msgstr "" - -msgid "" -"Strawberry can automatically convert the music you copy to this device into " -"a format that it can play." -msgstr "" - -msgid "Do not convert any music" -msgstr "" - -msgid "Convert any music that the device can't play" -msgstr "" - -msgid "Convert all music" -msgstr "" - -msgid "Preferred format" -msgstr "" - -msgid "" -"This device must be connected and opened before Strawberry can see what file " -"formats it supports." -msgstr "" - -msgid "Open device" -msgstr "" - -msgid "Querying device..." -msgstr "" - -msgid "File formats" -msgstr "" - -msgid "Server URL" -msgstr "" - -msgid "Authentication method:" -msgstr "" - -msgid "Hex" -msgstr "" - -msgid "MD5 token (Recommended)" -msgstr "" - -msgid "Preferences" -msgstr "" - -msgid "Use HTTP/2 when possible" -msgstr "" - -msgid "Verify server certificate" -msgstr "" - -msgid "Download album covers" -msgstr "" - -msgid "Server-side scrobbling" -msgstr "" - -msgid "Test" -msgstr "" - -msgid "Delete songs" -msgstr "" - -msgid "" -"Tidal support is not official and requires a API token from a registered " -"application to work. We can't help you getting these." -msgstr "" - -msgid "Use OAuth" -msgstr "" - -msgid "Client ID" -msgstr "" - -msgid "API Token" -msgstr "" - -msgid "Audio quality" -msgstr "" - -msgid "Search delay" -msgstr "" - -msgid "ms" -msgstr "" - -msgid "Artists search limit" -msgstr "" - -msgid "Albums search limit" -msgstr "" - -msgid "Songs search limit" -msgstr "" - -msgid "Fetch entire albums when searching songs" -msgstr "" - -msgid "Album cover size" -msgstr "" - -msgid "Stream URL method" -msgstr "" - -msgid "Append explicit to album title for explicit albums" -msgstr "" - -msgid "Basic authentication" -msgstr "" - -msgid "Authenticate" -msgstr "" - -msgid "" -"

The GStreamer Spotify plugin is not detected, you will " -"not be able to stream songs from Spotify without it. See Wiki for instructions on how to " -"install the plugin.

" -msgstr "" - -msgid "" -"Qobuz support is not official and requires an API app ID and secret from a " -"registered application to work. We can't help you getting these." -msgstr "" - -msgid "App ID" -msgstr "" - -msgid "App Secret" -msgstr "" - -msgid "Base64 encoded secret" -msgstr "" - -msgid "Moodbar" -msgstr "" - -msgid "Show a moodbar in the track progress bar" -msgstr "" - -msgid "Save the .mood files directly in the songs folders" -msgstr "" - -msgid "Enabled" -msgstr "" - -msgid "Return to Strawberry" -msgstr "" - -msgid "Success!" -msgstr "" - -msgid "Please close your browser and return to Strawberry." -msgstr "" diff --git a/src/utilities/CMakeLists.txt b/src/utilities/CMakeLists.txt new file mode 100644 index 0000000000..3a30c57abc --- /dev/null +++ b/src/utilities/CMakeLists.txt @@ -0,0 +1,28 @@ +target_sources(strawberry PRIVATE + strutils.cpp + envutils.cpp + colorutils.cpp + cryptutils.cpp + fileutils.cpp + diskutils.cpp + imageutils.cpp + macaddrutils.cpp + mimeutils.cpp + randutils.cpp + threadutils.cpp + timeutils.cpp + transliterate.cpp + xmlutils.cpp + filemanagerutils.cpp + coverutils.cpp + screenutils.cpp + textencodingutils.cpp +) + +if(APPLE) + target_sources(strawberry PRIVATE macosutils.mm) +endif() + +if(WIN32) + target_sources(strawberry PRIVATE winutils.cpp) +endif() diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt new file mode 100644 index 0000000000..6e2f74180b --- /dev/null +++ b/src/widgets/CMakeLists.txt @@ -0,0 +1,38 @@ +target_sources(strawberry PRIVATE + autoexpandingtreeview.cpp + busyindicator.cpp + clickablelabel.cpp + fancytabwidget.cpp + fancytabbar.cpp + fancytabdata.cpp + favoritewidget.cpp + fileview.cpp + fileviewlist.cpp + forcescrollperpixel.cpp + freespacebar.cpp + groupediconview.cpp + lineedit.cpp + linetextedit.cpp + multiloadingindicator.cpp + playingwidget.cpp + renametablineedit.cpp + sliderslider.cpp + prettyslider.cpp + volumeslider.cpp + stickyslider.cpp + stretchheaderview.cpp + trackslider.cpp + tracksliderpopup.cpp + tracksliderslider.cpp + loginstatewidget.cpp + ratingwidget.cpp + resizabletextedit.cpp +) + +if(APPLE) + target_sources(strawberry PRIVATE searchfield_mac.mm) +else() + target_sources(strawberry PRIVATE searchfield_qt.cpp searchfield_qt_private.cpp) +endif() + +target_sources(strawberry PRIVATE ${WIDGETS_SEARCHFIELD_UI})