Compare commits

...
19 Commits
Author SHA1 Message Date
Jonah Brüchert f9948bf3c3 WIP 2022-07-29 02:57:13 +02:00
Jonah Brüchert 94c3e653f7 Begin work on MPRIS integration
This code should eventually become a library, therefore we already have
the restriction that the mpris2 static library may not link against
other parts of the AudioTube code.
2022-07-19 16:23:41 +02:00
Jonah Brüchert 56ffb52ce5 flatpak: Update python packages 2022-07-19 15:16:41 +02:00
l10n daemon script f0a2d2e79a GIT_SILENT Sync po/docbooks with svn 2022-07-19 01:45:53 +00:00
l10n daemon script 182e77a68d GIT_SILENT Sync po/docbooks with svn 2022-07-17 01:52:45 +00:00
Jonah Brüchert 98ccbfe99d ytmusic: Include iostream
Previously this was not necessary, but now it fails to compile.
I suspect this to be related to a gcc update.
2022-07-16 19:31:40 +02:00
l10n daemon script 53bfc641b4 GIT_SILENT Sync po/docbooks with svn 2022-07-15 01:54:45 +00:00
l10n daemon script 1aabf2eefc GIT_SILENT Sync po/docbooks with svn 2022-07-14 01:58:13 +00:00
l10n daemon script 0d54dfb660 GIT_SILENT Sync po/docbooks with svn 2022-07-12 01:55:23 +00:00
Jonah Brüchert 8093f16f16 player: Set text directly on label instead of on the button
I suspect this to be the cause of the duplicated label. However I'm not
fully certain this fixes it. Please re-open the bug if the issue
persists.

BUG: 456597
2022-07-11 22:16:16 +02:00
Jonah Brüchert bac6ac3362 (very) minor database optimization 2022-07-11 22:09:59 +02:00
Jonah Brüchert 2f914d9f60 appstream: Add library screenshot 2022-07-11 15:44:12 +02:00
l10n daemon script d3293d22ab GIT_SILENT Sync po/docbooks with svn 2022-07-11 01:55:30 +00:00
l10n daemon script 4de3fdae81 GIT_SILENT Sync po/docbooks with svn 2022-07-10 01:57:26 +00:00
l10n daemon script 9518c73415 GIT_SILENT Sync po/docbooks with svn 2022-07-09 01:56:21 +00:00
l10n daemon script 05be539411 GIT_SILENT Sync po/docbooks with svn 2022-07-03 02:04:59 +00:00
l10n daemon script f12c4e3109 GIT_SILENT Sync po/docbooks with svn 2022-06-28 01:48:54 +00:00
l10n daemon script 004ef28a15 GIT_SILENT Sync po/docbooks with svn 2022-06-26 01:47:08 +00:00
l10n daemon script afa9b25aff GIT_SILENT Sync po/docbooks with svn 2022-06-25 02:06:45 +00:00
46 changed files with 1304 additions and 268 deletions

No files matched your search

+1 -1
View File
@@ -33,7 +33,7 @@ ecm_setup_version(${PROJECT_VERSION}
kde_enable_exceptions()
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql)
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql DBus)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash)
find_package(pybind11 REQUIRED)
find_package(Ytdlp REQUIRED RUNTIME)
+12 -12
View File
@@ -5,16 +5,6 @@
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"yt-dlp\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9a/bf/1bc7e3096ddc2c398b3d04176530a9c02efe08546d9730c9eef0b07a0a43/yt_dlp-2022.5.18-py2.py3-none-any.whl",
"sha256": "deec1009442312c1e2ee5298966842194d0e950b433f0d4fc844ef464b9c32a7"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f8/a3/622d9acbfb9a71144b5d7609906bc648c62e3ca5fdbb1c8cca222949d82c/websockets-10.3.tar.gz",
@@ -32,8 +22,18 @@
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/24/40/e249ac3845a2333ce50f1bb02299ffb766babdfe80ca9d31e0158ad06afd/pycryptodomex-3.14.1.tar.gz",
"sha256": "2ce76ed0081fd6ac8c74edc75b9d14eca2064173af79843c24fa62573263c1f2"
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/1f/13/b1f7b4e44b11584a5f077af87895961b57911217a629efb8d3a9efd2a491/yt_dlp-2022.7.18-py2.py3-none-any.whl",
"sha256": "d7d1f81d230756f094b4d9ee59b37b2c13b2e63ff5fb72cda53625edb072cdae"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/52/0d/6cc95a83f6961a1ca041798d222240890af79b381e97eda3b9b538dba16f/pycryptodomex-3.15.0.tar.gz",
"sha256": "7341f1bb2dadb0d1a0047f34c3a58208a92423cdbd3244d998e4b28df5eac0ed"
}
]
}
+11 -11
View File
@@ -7,23 +7,18 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ec/03/062e6444ce4baf1eac17a6a0ebfe36bb1ad05e1df0e20b110de59c278498/urllib3-1.26.9-py2.py3-none-any.whl",
"sha256": "44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"
"url": "https://files.pythonhosted.org/packages/94/69/64b11e8c2fb21f08634468caef885112e682b0ebe2908e74d3616eb1c113/charset_normalizer-2.1.0-py3-none-any.whl",
"sha256": "5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/11/dd/e015f3780f42dd9af62cf0107b44ea1298926627ecd70c17b0e484e95bcd/certifi-2022.5.18.1-py3-none-any.whl",
"sha256": "f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
"url": "https://files.pythonhosted.org/packages/68/47/93d3d28e97c7577f563903907912f4b3804054e4877a5ba6651f7182c53b/urllib3-1.26.10-py2.py3-none-any.whl",
"sha256": "8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/06/b3/24afc8868eba069a7f03650ac750a778862dc34941a4bebeb58706715726/charset_normalizer-2.0.12-py3-none-any.whl",
"sha256": "6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl",
"sha256": "f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
"url": "https://files.pythonhosted.org/packages/ca/91/6d9b8ccacd0412c08820f72cebaa4f0c0441b5cda699c90f618b6f8a1b42/requests-2.28.1-py3-none-any.whl",
"sha256": "8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"
},
{
"type": "file",
@@ -34,6 +29,11 @@
"type": "file",
"url": "https://files.pythonhosted.org/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl",
"sha256": "84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
}
]
}
+4 -1
View File
@@ -129,11 +129,14 @@ SPDX-License-Identifier: CC0-1.0
<launchable type="desktop-id">org.kde.audiotube.desktop</launchable>
<screenshots>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/desktop.png</image>
<image>https://cdn.kde.org/screenshots/audiotube/library.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/mobile_playlist.png</image>
</screenshot>
<screenshot>
<image>https://cdn.kde.org/screenshots/audiotube/desktop.png</image>
</screenshot>
</screenshots>
<recommends>
<control>pointing</control>
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-28 23:09+0400\n"
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
"Language-Team: Arabic <[email protected]>\n"
@@ -128,22 +128,22 @@ msgstr "ابحث"
msgid "AudioTube"
msgstr "تيوب الصوتي"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "المشغل الآن"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "صُفّ"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "أزل المسار"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
"Last-Translator: Kheyyam <[email protected]>\n"
"Language-Team: Azerbaijani <[email protected]>\n"
@@ -129,22 +129,22 @@ msgstr "Axtarın"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "İndi səslənir"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Növbə"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Mahnını silin"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
@@ -132,22 +132,22 @@ msgstr "Cerca"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Ara s'està reproduint"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cua"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
@@ -132,22 +132,22 @@ msgstr "Busca"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Ara s'està reproduint"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cua"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Elimina la pista"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+18 -28
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2022-01-11 17:36+0100\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-28 13:58+0200\n"
"Last-Translator: Vit Pelcak <[email protected]>\n"
"Language-Team: Czech <[email protected]>\n"
"Language: cs\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 21.12.0\n"
"X-Generator: Lokalize 22.04.2\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -92,32 +92,32 @@ msgstr "Zrušit"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Oblíbené"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "Zobrazit vše"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "Oblíbené skladby"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Nejčastěji hrané"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "Přehrané skladby"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "Zpět"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -129,23 +129,22 @@ msgstr "Hledat"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Nepřehrává se žádné médium"
msgstr "Nyní přehrávám"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "Fronta"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Odstranit skladbu"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -154,12 +153,12 @@ msgstr "Nepřehrává se žádné médium"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Neznámý seznam skladeb"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Zatím zde nejsou žádné skladby"
#: contents/ui/SearchPage.qml:27
#, kde-format
@@ -190,12 +189,3 @@ msgstr "Rádio"
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Najít hudbu na Hudba YouTube"
#~ msgid "Clear"
#~ msgstr "Vyprázdnit"
#~ msgid "Pause"
#~ msgstr "Pozastavit"
#~ msgid "Expand"
#~ msgstr "Rozvinout"
+8 -8
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2022-06-15 11:16+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-02 12:04+0200\n"
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
"Language: de\n"
@@ -130,22 +130,22 @@ msgstr "Suchen"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Aktueller Titel"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Warteschlange"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Stück entfernen"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -154,12 +154,12 @@ msgstr "Es werden keine Medien wiedergegeben"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Unbekannte Liste von Liedern"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Bisher keine Lieder hier"
#: contents/ui/SearchPage.qml:27
#, kde-format
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-01-01 15:21+0000\n"
"Last-Translator: Steve Allewell <[email protected]>\n"
"Language-Team: British English <[email protected]>\n"
@@ -129,23 +129,23 @@ msgstr "Search"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Remove Track"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 12:34+0200\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
@@ -131,22 +131,22 @@ msgstr "Buscar"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Reproduciendo"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Cola"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Eliminar pista"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+18 -19
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2022-02-21 18:58+0100\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-18 22:37+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
"Language-Team: Basque <[email protected]>\n"
"Language: eu\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 21.12.2\n"
"X-Generator: Lokalize 22.04.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -95,32 +95,32 @@ msgstr "Utzi"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Gogokoak"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "Erakutsi denak"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "Gogoko abestiak"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Gehien jotakoa"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "Jotako abestiak"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "Atzera"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -132,23 +132,22 @@ msgstr "Bilatu"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Ez da euskarririk jotzen ari"
msgstr "Orain jotzen"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "Ilara"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Kendu pista"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -157,12 +156,12 @@ msgstr "Ez da euskarririk jotzen ari"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Abesti zerrenda ezezaguna"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Hemen oraindik ez dago abestirik"
#: contents/ui/SearchPage.qml:27
#, kde-format
+18 -19
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2022-01-11 22:47+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-13 19:11+0300\n"
"Last-Translator: Tommi Nieminen <[email protected]>\n"
"Language-Team: Finnish <[email protected]>\n"
"Language: fi\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 20.04.2\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -91,32 +91,32 @@ msgstr "Peru"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Suosikit"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "Näytä kaikki"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "Suosikkikappaleet"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Soitetuimmat"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "Soitetut kappaleet"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "Takaisin"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -128,23 +128,22 @@ msgstr "Etsi"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Mitään ei toisteta"
msgstr "Nyt soi"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "Jono"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Poista raita"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -153,12 +152,12 @@ msgstr "Mitään ei toisteta"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Tuntematon kappaleluettelo"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Ei vielä kappaleita"
#: contents/ui/SearchPage.qml:27
#, kde-format
+5 -5
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-05 18:56+0200\n"
"Last-Translator: Xavier Besnard <[email protected]>\n"
"Language-Team: French <[email protected]>\n"
@@ -126,22 +126,22 @@ msgstr "Rechercher"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "En cours de lecture"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Mettre en file d'attente"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Supprimer une piste"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
"Language-Team: kde-hindi\n"
@@ -128,23 +128,23 @@ msgstr "खोजें"
msgid "AudioTube"
msgstr "ओडियो-ट्यूब"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "कोई मीडिया नहीं बजा रहा है"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "गाना हटाएँ"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 14:13+0200\n"
"Last-Translator: Vincenzo Reale <[email protected]>\n"
"Language-Team: Italian <[email protected]>\n"
@@ -129,22 +129,22 @@ msgstr "Cerca"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "In riproduzione"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Coda"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Rimuovi traccia"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+19 -20
View File
@@ -1,13 +1,13 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
# Shinjo Park <[email protected]>, 2021.
# Shinjo Park <[email protected]>, 2021, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2021-12-08 00:45+0100\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 15:34+0200\n"
"Last-Translator: Shinjo Park <[email protected]>\n"
"Language-Team: Korean <[email protected]>\n"
"Language: ko\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 21.08.1\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -90,32 +90,32 @@ msgstr "취소"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "책갈피"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "모두 표시"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "책갈피에 등록된 노래"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "가장 많이 재생됨"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "재생한 노래"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "뒤로"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -127,23 +127,22 @@ msgstr "검색"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "재생 중인 미디어 없음"
msgstr "지금 재생 중"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "대기열에 추가"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "트랙 삭제"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -152,12 +151,12 @@ msgstr "재생 중인 미디어 없음"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "알 수 없는 노래 목록"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "목록에 등록된 곡 없음"
#: contents/ui/SearchPage.qml:27
#, kde-format
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 13:17+0200\n"
"Last-Translator: Freek de Kruijf <[email protected]>\n"
"Language-Team: \n"
@@ -129,22 +129,22 @@ msgstr "Zoeken"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Speelt nu"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Wachtrij"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Track verwijderen"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-01-01 09:11-0800\n"
"Last-Translator: A S Alam <[email protected]>\n"
"Language-Team: Punjabi <[email protected]>\n"
@@ -127,23 +127,23 @@ msgstr "ਖੋਜੋ"
msgid "AudioTube"
msgstr "ਆਡੀਓ-ਟਿਊਬ"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "ਕੋਈ ਮੀਡੀਆ ਨਹੀਂ ਚੱਲਦਾ"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "ਟਰੈਕ ਨੂੰ ਹਟਾਓ"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+18 -19
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Łukasz Wojniłowicz <[email protected]>, 2021.
# Łukasz Wojniłowicz <[email protected]>, 2021, 2022.
# Ignacy Kajdan <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2021-12-30 12:38+0100\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-26 20:24+0200\n"
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"Language: pl\n"
@@ -94,32 +94,32 @@ msgstr "Anuluj"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Ulubione"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "Pokaż wszystkie"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "Ulubione utwory"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Najczęściej odtwarzane"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "Odtwarzane utwory"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "Wstecz"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -131,23 +131,22 @@ msgstr "Szukaj"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Nic nie jest odtwarzane"
msgstr "Teraz odtwarzany"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "Kolejka"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Usuń utwór"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -156,12 +155,12 @@ msgstr "Nic nie jest odtwarzane"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Nieznana lista utworów"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Jeszcze nie ma tutaj utworów"
#: contents/ui/SearchPage.qml:27
#, kde-format
+5 -5
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-03 17:36+0100\n"
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
@@ -131,22 +131,22 @@ msgstr "Procurar"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Agora a Ouvir"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Fila"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Remover a Faixa"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+19 -20
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR This file is copyright:
# This file is distributed under the same license as the audiotube package.
#
# Luiz Fernando Ranghetti <[email protected]>, 2021.
# Luiz Fernando Ranghetti <[email protected]>, 2021, 2022.
# Thiago Masato Costa Sueto <[email protected]>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2021-12-09 10:13-0300\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 14:59-0300\n"
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
"Language: pt_BR\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 20.04.2\n"
"X-Generator: Lokalize 21.12.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -93,32 +93,32 @@ msgstr "Cancelar"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr ""
msgstr "Favoritos"
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr ""
msgstr "Mostrar tudo"
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr ""
msgstr "Músicas favoritas"
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr ""
msgstr "Mais reproduzidas"
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr ""
msgstr "Músicas reproduzidas"
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr ""
msgstr "Voltar"
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -130,23 +130,22 @@ msgstr "Pesquisar"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#, fuzzy, kde-format
#| msgid "No media playing"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Nenhuma mídia em reprodução"
msgstr "Reproduzindo agora"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
msgstr "Fila"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Remover faixa"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
@@ -155,12 +154,12 @@ msgstr "Nenhuma mídia em reprodução"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr ""
msgstr "Lista de músicas desconhecida"
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr ""
msgstr "Nenhuma música ainda"
#: contents/ui/SearchPage.qml:27
#, kde-format
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-10 21:39+0300\n"
"Last-Translator: Alexander Yavorsky <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
@@ -128,22 +128,22 @@ msgstr "Поиск"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Удалить дорожку"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-04-07 18:01+0200\n"
"Last-Translator: Roman Paholik <[email protected]>\n"
"Language-Team: Slovak <[email protected]>\n"
@@ -126,23 +126,23 @@ msgstr "Hľadať"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, fuzzy, kde-format
#| msgid "No media playing"
msgid "Now Playing"
msgstr "Neprehráva sa žiadne médium"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 07:50+0200\n"
"Last-Translator: Matjaž Jeran <[email protected]>\n"
"Language-Team: Slovenian <[email protected]>\n"
@@ -128,22 +128,22 @@ msgstr "Išči"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Pravkar predvajano"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Čakalna vrsta"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Odstrani sled"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:40+0200\n"
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n"
@@ -127,22 +127,22 @@ msgstr "Sök"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Spelar nu"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Köa"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Ta bort spår"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:29+0300\n"
"Last-Translator: Emir SARI <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
@@ -129,22 +129,22 @@ msgstr "Ara"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Şimdi Çalınıyor"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Kuyruk"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Parçayı Kaldır"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 08:15+0300\n"
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
@@ -130,22 +130,22 @@ msgstr "Пошук"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "Зараз відтворюємо"
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "Додати до черги"
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "Вилучити композицію"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+6 -6
View File
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"PO-Revision-Date: 2022-06-19 07:00\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-16 05:20\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -127,22 +127,22 @@ msgstr "搜索"
msgid "AudioTube"
msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr "移除曲目"
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+5 -5
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-05-30 00:47+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -128,22 +128,22 @@ msgstr ""
msgid "AudioTube"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:86
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:112
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:224
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
msgid "Remove Track"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:244
#: contents/ui/MaximizedPlayerPage.qml:242
#: contents/ui/MinimizedPlayerControls.qml:96
#, kde-format
msgid "No media playing"
+2
View File
@@ -19,6 +19,7 @@ target_include_directories(asyncdatabase PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(asyncdatabase PUBLIC Qt5::Sql)
add_subdirectory(example)
add_subdirectory(mpris2)
add_executable(audiotube
main.cpp
@@ -50,6 +51,7 @@ target_link_libraries(audiotube
KF5::Crash
ytm
asyncdatabase
mpris2
)
target_compile_definitions(audiotube PRIVATE -DQT_NO_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING)
+3 -5
View File
@@ -83,14 +83,13 @@ Item {
ToolButton {
id: nowPlayingTab
text: i18n("Now Playing")
padding: Kirigami.Units.largeSpacing
onClicked: swipeView.setCurrentIndex(0)
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
Layout.preferredWidth: Kirigami.Units.gridUnit * 9
contentItem: Label {
text: nowPlayingTab.text
text: i18n("Now Playing")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
@@ -109,14 +108,13 @@ Item {
}
ToolButton {
id: queueTab
text: i18n("Queue")
padding: Kirigami.Units.largeSpacing
onClicked: swipeView.setCurrentIndex(1)
Layout.preferredHeight: Kirigami.Units.gridUnit * 2
Layout.preferredWidth: Kirigami.Units.gridUnit * 9
contentItem: Label {
text: queueTab.text
text: i18n("Queue")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
+11 -1
View File
@@ -98,7 +98,17 @@ Flickable {
videoId: UserPlaylistModel.currentVideoId
onTitleChanged: Library.addPlaybackHistoryItem(info.videoId, info.title)
}
MprisPlayer {
id: mpris
trackTitle: info.title
album: "Test Album"
playbackState: MprisPlayer.PlaybackRunning
playerName: "AudioTube"
trackDuration: audio.duration
}
property var audioPlayer: Audio {
id: audio
+2 -2
View File
@@ -211,9 +211,9 @@ FavouriteWatcher::FavouriteWatcher(Library *library, const QString &videoId)
: QObject(library), m_videoId(videoId), m_library(library)
{
auto update = [this] {
connectFuture(m_library->database().getResult<SingleValue<int>>("select count(*) from favourites where video_id = ?", m_videoId), this, [this](auto count) {
connectFuture(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from favourites where video_id = ?", m_videoId), this, [this](auto count) {
if (count) {
m_isFavourite = count->value > 0;
m_isFavourite = count->value;
Q_EMIT isFavouriteChanged();
}
});
+4 -1
View File
@@ -11,6 +11,8 @@
#include <KCrash>
#include <KAboutData>
#include "declarativemprisplayer.h"
#include "mpris2.h"
#include "searchmodel.h"
#include "albummodel.h"
#include "videoinfoextractor.h"
@@ -21,7 +23,7 @@
#include "playerutils.h"
#include "library.h"
#include "asyncdatabase.h"
#include <mediaplayer2.h>
constexpr auto URI = "org.kde.ytmusic";
@@ -45,6 +47,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
qmlRegisterType<VideoInfoExtractor>(URI, 1, 0, "VideoInfoExtractor");
qmlRegisterType<ArtistModel>(URI, 1, 0, "ArtistModel");
qmlRegisterType<PlaylistModel>(URI, 1, 0, "PlaylistModel");
qmlRegisterType<DeclarativeMprisPlayer>(URI, 1, 0, "MprisPlayer");
qmlRegisterSingletonType<UserPlaylistModel>(URI, 1, 0, "UserPlaylistModel", [](QQmlEngine *, QJSEngine *) {
return new UserPlaylistModel();
});
+16
View File
@@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: 2021 Jonah Brüchert <[email protected]>
#
# SPDX-License-Identifier: BSD-2-Clause
add_library(mpris2 STATIC
mediaplayer2.cpp
mediaplayer2.h
mediaplayer2player.cpp
mediaplayer2player.h
mpris2.cpp
mpris2.h
declarativemprisplayer.cpp
declarativemprisplayer.h
)
target_link_libraries(mpris2 PUBLIC Qt::Core Qt::Gui Qt::DBus KF5::CoreAddons)
+61
View File
@@ -0,0 +1,61 @@
#include "declarativemprisplayer.h"
#include <QTimer>
DeclarativeMprisPlayer::DeclarativeMprisPlayer()
{
QTimer::singleShot(0, [this]() {
connect(m_mpris.player(), &MediaPlayer2Player::play, this, &DeclarativeMprisPlayer::play);
connect(m_mpris.player(), &MediaPlayer2Player::playPause, this, &DeclarativeMprisPlayer::playPause);
connect(m_mpris.player(), &MediaPlayer2Player::Stop, this, &DeclarativeMprisPlayer::stop);
});
}
QString DeclarativeMprisPlayer::playerName() const {
return m_mpris.playerName();
}
void DeclarativeMprisPlayer::setPlayerName(const QString &name) {
m_mpris.setPlayerName(name);
Q_EMIT playerNameChanged();
}
DeclarativeMprisPlayer::PlaybackState DeclarativeMprisPlayer::playbackState() {
return PlaybackState(m_mpris.player()->playbackState());
}
void DeclarativeMprisPlayer::setPlaybackState(PlaybackState state) {
m_mpris.player()->setPlaybackState(MediaPlayer2Player::PlaybackState(state));
}
void DeclarativeMprisPlayer::setAlbum(const QString &album) {
m_mpris.player()->setCurrentTrackAlbum(album);
}
QString DeclarativeMprisPlayer::album() const {
return m_mpris.player()->currentTrackAlbum();
}
QUrl DeclarativeMprisPlayer::albumArt() const {
return m_mpris.player()->currentTrackCoverArt();
}
void DeclarativeMprisPlayer::setAlbumArt(const QUrl &url) {
m_mpris.player()->setCurrentTrackCoverArt(url);
}
QString DeclarativeMprisPlayer::trackTitle() const
{
return m_mpris.player()->currentTrackTitle();
}
void DeclarativeMprisPlayer::setTrackTitle(const QString &title)
{
m_mpris.player()->setCurrentTrackTitle(title);
}
void DeclarativeMprisPlayer::setTrackDuration(qlonglong trackDuration)
{
return m_mpris.player()->setDuration(trackDuration);
}
qlonglong DeclarativeMprisPlayer::trackDuration() const { return 0; }
+66
View File
@@ -0,0 +1,66 @@
#pragma once
#include <QObject>
#include "mediaplayer2player.h"
#include "mpris2.h"
class DeclarativeMprisPlayer : public QObject
{
Q_OBJECT
Q_PROPERTY(QString playerName READ playerName WRITE setPlayerName NOTIFY playerNameChanged)
Q_PROPERTY(PlaybackState playbackState READ playbackState WRITE setPlaybackState NOTIFY playbackStateChanged)
Q_PROPERTY(QString album READ album WRITE setAlbum NOTIFY albumChanged)
Q_PROPERTY(QUrl albumArt READ albumArt WRITE setAlbumArt NOTIFY albumArtChanged)
Q_PROPERTY(QString trackTitle READ trackTitle WRITE setTrackTitle NOTIFY trackTitleChanged);
Q_PROPERTY(qlonglong trackDuration READ trackDuration WRITE setTrackDuration NOTIFY trackDurationChanged);
public:
enum PlaybackState {
PlaybackStopped = MediaPlayer2Player::PlaybackStopped,
PlaybackRunning = MediaPlayer2Player::PlaybackRunning,
PlaybackPaused = MediaPlayer2Player::PlaybackPaused
};
Q_ENUM(PlaybackState)
DeclarativeMprisPlayer();
QString playerName() const;
void setPlayerName(const QString &name);
Q_SIGNAL void playerNameChanged();
PlaybackState playbackState();
void setPlaybackState(PlaybackState state);
Q_SIGNAL void playbackStateChanged();
void setAlbum(const QString &album);
QString album() const;
Q_SIGNAL void albumChanged();
QUrl albumArt() const;
void setAlbumArt(const QUrl &url);
Q_SIGNAL void albumArtChanged();
QString trackTitle() const;
void setTrackTitle(const QString &title);
Q_SIGNAL void trackTitleChanged();
qlonglong trackDuration() const;
void setTrackDuration(qlonglong trackDuration);
Q_SIGNAL void trackDurationChanged();
Q_SIGNAL void changeVolume();
Q_SIGNAL void play();
Q_SIGNAL void playPause();
Q_SIGNAL void stop();
Q_SIGNAL void goPrevious();
Q_SIGNAL void goNext();
private:
Mpris2 m_mpris;
};
+71
View File
@@ -0,0 +1,71 @@
// SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
// SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
// SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
// SPDX-License-Identifier: GPL-3.0-or-later
#include "mediaplayer2.h"
#include <QCoreApplication>
#include <KAboutData>
MediaPlayer2::MediaPlayer2(QObject* parent)
: QDBusAbstractAdaptor(parent)
{
}
MediaPlayer2::~MediaPlayer2()
= default;
bool MediaPlayer2::CanQuit() const
{
return true;
}
bool MediaPlayer2::CanRaise() const
{
return true;
}
bool MediaPlayer2::HasTrackList() const
{
return false;
}
void MediaPlayer2::Quit()
{
QCoreApplication::quit();
}
void MediaPlayer2::Raise()
{
Q_EMIT raisePlayer();
}
QString MediaPlayer2::Identity() const
{
return KAboutData::applicationData().displayName();
}
QString MediaPlayer2::DesktopEntry() const
{
return KAboutData::applicationData().desktopFileName();
}
QStringList MediaPlayer2::SupportedUriSchemes() const
{
return QStringList() << QStringLiteral("file");
}
QStringList MediaPlayer2::SupportedMimeTypes() const
{
// KService::Ptr app = KService::serviceByDesktopName(KCmdLineArgs::aboutData()->appName());
// if (app) {
// return app->mimeTypes();
// }
return QStringList();
}
#include "moc_mediaplayer2.cpp"
+51
View File
@@ -0,0 +1,51 @@
/***************************************************************************
SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
SPDX-License-Identifier: GPL-3.0-or-later
***************************************************************************/
#pragma once
#include <QDBusAbstractAdaptor>
#include <QStringList>
class MediaPlayer2 : public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html
Q_PROPERTY(bool CanQuit READ CanQuit CONSTANT)
Q_PROPERTY(bool CanRaise READ CanRaise CONSTANT)
Q_PROPERTY(bool HasTrackList READ HasTrackList CONSTANT)
Q_PROPERTY(QString Identity READ Identity CONSTANT)
Q_PROPERTY(QString DesktopEntry READ DesktopEntry CONSTANT)
Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes CONSTANT)
Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes CONSTANT)
public:
explicit MediaPlayer2(QObject* parent = nullptr);
~MediaPlayer2() override;
[[nodiscard]] bool CanQuit() const;
[[nodiscard]] bool CanRaise() const;
[[nodiscard]] bool HasTrackList() const;
[[nodiscard]] QString Identity() const;
[[nodiscard]] QString DesktopEntry() const;
[[nodiscard]] QStringList SupportedUriSchemes() const;
[[nodiscard]] QStringList SupportedMimeTypes() const;
public Q_SLOTS:
void Quit();
void Raise();
Q_SIGNALS:
void raisePlayer();
};
+383
View File
@@ -0,0 +1,383 @@
// SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
// SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
// SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
// SPDX-FileCopyrightText: 2022 (c) Jonah Brüchert <[email protected]>
// SPDX-License-Identifier: GPL-3.0-or-later
#include "mediaplayer2player.h"
#include <QStringList>
#include <QStringBuilder>
#include <QDBusConnection>
#include <QMetaClassInfo>
#include <QImage>
#include <QBuffer>
constexpr double MAX_RATE = 1.0;
constexpr const double MIN_RATE = 1.0;
MediaPlayer2Player::MediaPlayer2Player(QObject* parent)
: QDBusAbstractAdaptor(parent)
{
m_volume = 0; // TODO
m_canPlay = true; // TODO
signalPropertiesChange(QStringLiteral("Volume"), Volume());
m_mediaPlayerPresent = 1;
}
MediaPlayer2Player::~MediaPlayer2Player() = default;
QString MediaPlayer2Player::PlaybackStatus() const
{
switch (m_playbackState) {
case PlaybackStopped:
return QStringLiteral("Stopped");
case PlaybackRunning:
return QStringLiteral("Playing");
case PlaybackPaused:
return QStringLiteral("Paused");
}
Q_UNREACHABLE();
}
bool MediaPlayer2Player::CanGoNext() const
{
return m_canGoNext;
}
void MediaPlayer2Player::Next()
{
Q_EMIT next();
}
bool MediaPlayer2Player::CanGoPrevious() const
{
return m_canGoPrevious;
}
void MediaPlayer2Player::Previous()
{
Q_EMIT previous();
}
bool MediaPlayer2Player::CanPause() const
{
return m_canPlay;
}
void MediaPlayer2Player::Pause()
{
Q_EMIT pause();
}
void MediaPlayer2Player::PlayPause()
{
Q_EMIT playPause();
}
void MediaPlayer2Player::Stop()
{
Q_EMIT stop();
}
bool MediaPlayer2Player::CanPlay() const
{
return m_canPlay;
}
void MediaPlayer2Player::Play()
{
Q_EMIT play();
}
double MediaPlayer2Player::Volume() const
{
return m_volume;
}
void MediaPlayer2Player::setVolume(double volume)
{
m_volume = qBound(0.0, volume, 1.0);
Q_EMIT volumeChanged(m_volume);
signalPropertiesChange(QStringLiteral("Volume"), Volume());
}
void MediaPlayer2Player::setPropertyPosition(int newPositionInMs)
{
// TODO
}
QVariantMap MediaPlayer2Player::Metadata() const
{
return m_metadata;
}
qlonglong MediaPlayer2Player::Position() const
{
return m_position;
}
double MediaPlayer2Player::Rate() const
{
return m_rate;
}
void MediaPlayer2Player::setRate(double newRate)
{
if (newRate <= 0.0001 && newRate >= -0.0001) {
Pause();
} else {
m_rate = qBound(MinimumRate(), newRate, MaximumRate());
Q_EMIT rateChanged(m_rate);
signalPropertiesChange(QStringLiteral("Rate"), Rate());
}
}
double MediaPlayer2Player::MinimumRate() const
{
return MIN_RATE;
}
double MediaPlayer2Player::MaximumRate() const
{
return MAX_RATE;
}
bool MediaPlayer2Player::CanSeek() const
{
return m_playerIsSeekableChanged;
}
bool MediaPlayer2Player::CanControl() const
{
return true;
}
void MediaPlayer2Player::Seek(qlonglong Offset)
{
Q_EMIT seek(Offset);
}
void MediaPlayer2Player::SetPosition(const QDBusObjectPath &trackId, qlonglong pos)
{
Q_EMIT positionRequested(pos);
}
void MediaPlayer2Player::OpenUri(const QString &uri)
{
Q_UNUSED(uri);
}
//void MediaPlayer2Player::playerSourceChanged()
//{
// setCurrentTrack(m_manageAudioPlayer->playListPosition());
//}
void MediaPlayer2Player::playControlEnabledChanged()
{
signalPropertiesChange(QStringLiteral("CanPause"), CanPause());
signalPropertiesChange(QStringLiteral("CanPlay"), CanPlay());
Q_EMIT canPauseChanged();
Q_EMIT canPlayChanged();
}
void MediaPlayer2Player::skipBackwardControlEnabledChanged()
{
signalPropertiesChange(QStringLiteral("CanGoPrevious"), CanGoPrevious());
Q_EMIT canGoPreviousChanged();
}
void MediaPlayer2Player::skipForwardControlEnabledChanged()
{
signalPropertiesChange(QStringLiteral("CanGoNext"), CanGoNext());
Q_EMIT canGoNextChanged();
}
void MediaPlayer2Player::playerPlaybackStateChanged()
{
signalPropertiesChange(QStringLiteral("PlaybackStatus"), PlaybackStatus());
Q_EMIT playbackStatusChanged();
playerIsSeekableChanged();
}
void MediaPlayer2Player::playerIsSeekableChanged()
{
signalPropertiesChange(QStringLiteral("CanSeek"), CanSeek());
Q_EMIT canSeekChanged();
}
void MediaPlayer2Player::audioPositionChanged()
{
setPropertyPosition(m_position);
}
void MediaPlayer2Player::playerSeeked(qint64 position)
{
Q_EMIT Seeked(position * 1000);
}
void MediaPlayer2Player::audioDurationChanged()
{
m_metadata = getMetadataOfCurrentTrack();
signalPropertiesChange(QStringLiteral("Metadata"), Metadata());
skipBackwardControlEnabledChanged();
skipForwardControlEnabledChanged();
playerPlaybackStateChanged();
playerIsSeekableChanged();
setPropertyPosition(m_position);
}
QVariantMap MediaPlayer2Player::getMetadataOfCurrentTrack()
{
auto result = QVariantMap();
if (m_currentTrackId.isEmpty()) {
return {};
}
result[QStringLiteral("mpris:trackid")] = QVariant::fromValue<QDBusObjectPath>(QDBusObjectPath(m_currentTrackId));
result[QStringLiteral("mpris:length")] = m_duration * 1000;
//convert milli-seconds into micro-seconds
result[QStringLiteral("xesam:title")] = m_currentTrackTitle;
result[QStringLiteral("xesam:url")] = m_currentTrackUrl;
result[QStringLiteral("xesam:album")] = m_currentTrackAlbum;
result[QStringLiteral("xesam:artist")] = m_currentTrackArtist;
result[QStringLiteral("mpris:artUrl")] = m_coverArtUrl;
return result;
}
int MediaPlayer2Player::mediaPlayerPresent() const
{
return m_mediaPlayerPresent;
}
void MediaPlayer2Player::setDuration(qlonglong duration) {
m_duration = duration;
}
void MediaPlayer2Player::setPlaybackState(PlaybackState newState)
{
m_playbackState = newState;
}
void MediaPlayer2Player::setCurrentTrackTitle(const QString &title)
{
m_currentTrackTitle = title;
}
QString MediaPlayer2Player::currentTrackTitle() const
{
return m_currentTrackTitle;
}
void MediaPlayer2Player::setCurrentTrackUrl(const QUrl &url)
{
m_currentTrackUrl = url;
}
void MediaPlayer2Player::setCurrentTrackAlbum(const QString &album)
{
m_currentTrackAlbum = album;
}
QString MediaPlayer2Player::currentTrackAlbum() const
{
return m_currentTrackAlbum;
}
void MediaPlayer2Player::setCurrentTrackArtist(const QString &artist)
{
m_currentTrackArtist = artist;
}
QString MediaPlayer2Player::currentTrackArtist() const
{
return m_currentTrackArtist;
}
void MediaPlayer2Player::setCurrentTrackCoverArt(const QUrl &url)
{
m_coverArtUrl = url;
}
QUrl MediaPlayer2Player::currentTrackCoverArt() const
{
return m_coverArtUrl;
}
void MediaPlayer2Player::setCurrentTrackCoverArt(const QImage &image)
{
QByteArray data;
QBuffer buffer(&data);
image.save(&buffer);
m_coverArtUrl = QUrl(QString("data:image/png;base64," % data));
}
void MediaPlayer2Player::setCanGoPrevious(bool value)
{
m_canGoPrevious = value;
}
void MediaPlayer2Player::canGoForward(bool value)
{
m_canGoNext = value;
}
void MediaPlayer2Player::canPause(bool value)
{
m_canPause = value;
}
void MediaPlayer2Player::canPlay(bool value)
{
m_canPlay = value;
}
void MediaPlayer2Player::setPosition(qlonglong position) {
m_position = position;
}
void MediaPlayer2Player::setMediaPlayerPresent(int status)
{
if (m_mediaPlayerPresent != status) {
m_mediaPlayerPresent = status;
Q_EMIT mediaPlayerPresentChanged();
signalPropertiesChange(QStringLiteral("CanGoNext"), CanGoNext());
signalPropertiesChange(QStringLiteral("CanGoPrevious"), CanGoPrevious());
signalPropertiesChange(QStringLiteral("CanPause"), CanPause());
signalPropertiesChange(QStringLiteral("CanPlay"), CanPlay());
Q_EMIT canGoNextChanged();
Q_EMIT canGoPreviousChanged();
Q_EMIT canPauseChanged();
Q_EMIT canPlayChanged();
}
}
void MediaPlayer2Player::signalPropertiesChange(const QString &property, const QVariant &value)
{
QVariantMap properties;
properties[property] = value;
const int ifaceIndex = metaObject()->indexOfClassInfo("D-Bus Interface");
QDBusMessage msg = QDBusMessage::createSignal(QStringLiteral("/org/mpris/MediaPlayer2"),
QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"));
msg << QLatin1String(metaObject()->classInfo(ifaceIndex).value());
msg << properties;
msg << QStringList();
QDBusConnection::sessionBus().send(msg);
}
#include "moc_mediaplayer2player.cpp"
+244
View File
@@ -0,0 +1,244 @@
// SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
// SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
// SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
// SPDX-FileCopyrightText: 2022 (c) Jonah Brüchert <[email protected]>
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <QDBusAbstractAdaptor>
#include <QDBusObjectPath>
#include <QDBusMessage>
#include <QUrl>
class MediaPlayListProxyModel;
class ManageAudioPlayer;
class ManageMediaPlayerControl;
class ManageHeaderBar;
class AudioWrapper;
class MediaPlayer2Player : public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player") // Docs: https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html
Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus NOTIFY playbackStatusChanged)
Q_PROPERTY(double Rate READ Rate WRITE setRate NOTIFY rateChanged)
Q_PROPERTY(QVariantMap Metadata READ Metadata NOTIFY playbackStatusChanged)
Q_PROPERTY(double Volume READ Volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(qlonglong Position READ Position WRITE setPropertyPosition NOTIFY playbackStatusChanged)
Q_PROPERTY(double MinimumRate READ MinimumRate CONSTANT)
Q_PROPERTY(double MaximumRate READ MaximumRate CONSTANT)
Q_PROPERTY(bool CanGoNext READ CanGoNext NOTIFY canGoNextChanged)
Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious NOTIFY canGoPreviousChanged)
Q_PROPERTY(bool CanPlay READ CanPlay NOTIFY canPlayChanged)
Q_PROPERTY(bool CanPause READ CanPause NOTIFY canPauseChanged)
Q_PROPERTY(bool CanControl READ CanControl NOTIFY canControlChanged)
Q_PROPERTY(bool CanSeek READ CanSeek NOTIFY canSeekChanged)
Q_PROPERTY(int mediaPlayerPresent READ mediaPlayerPresent WRITE setMediaPlayerPresent NOTIFY mediaPlayerPresentChanged)
public:
explicit MediaPlayer2Player(QObject* parent = nullptr);
~MediaPlayer2Player() override;
QString PlaybackStatus() const;
double Rate() const;
QVariantMap Metadata() const;
double Volume() const;
qlonglong Position() const;
double MinimumRate() const;
double MaximumRate() const;
bool CanGoNext() const;
bool CanGoPrevious() const;
bool CanPlay() const;
bool CanPause() const;
bool CanSeek() const;
bool CanControl() const;
int currentTrack() const;
int mediaPlayerPresent() const;
void setDesktopFileName(const QString &fileName);
///
/// Signal to the mpris interface that the playback is now at a new position
///
void setPosition(qlonglong pos);
///
/// Signal the length of the current track to the mpris interface
///
void setDuration(qlonglong duration);
enum PlaybackState {
PlaybackStopped,
PlaybackRunning,
PlaybackPaused
};
///
/// Set the current playback state
///
void setPlaybackState(PlaybackState newState);
PlaybackState playbackState() const {
return m_playbackState;
}
///
/// Set the current track's title
///
void setCurrentTrackTitle(const QString &title);
QString currentTrackTitle() const;
///
/// Set the current track's URL
///
void setCurrentTrackUrl(const QUrl &url);
///
/// Set the album of the currently playing track
///
void setCurrentTrackAlbum(const QString &album);
QString currentTrackAlbum() const;
///
/// Set current track's artist
///
void setCurrentTrackArtist(const QString &artist);
QString currentTrackArtist() const;
///
/// Set cover art url
///
void setCurrentTrackCoverArt(const QUrl &url);
QUrl currentTrackCoverArt() const;
///
/// Set cover art image
///
void setCurrentTrackCoverArt(const QImage &image);
void setCanGoPrevious(bool);
void canGoForward(bool);
void canPause(bool value);
void canPlay(bool value);
Q_SIGNALS:
void Seeked(qlonglong Position);
void rateChanged(double newRate);
///
/// Emitted when the volume should be changed to newVol
///
void volumeChanged(double newVol);
void playbackStatusChanged();
void canGoNextChanged();
void canGoPreviousChanged();
void canPlayChanged();
void canPauseChanged();
void canControlChanged();
void canSeekChanged();
void currentTrackChanged();
void mediaPlayerPresentChanged();
///
/// Emitted when the player should skip to the next track
///
void next();
///
/// Emitted when it is requested to skip to the previous track
/// over the MPRIS interface
///
void previous();
///
/// Emitted when play / pause should be toggled
///
void playPause();
///
/// Emitted when the playback should be stopped
///
void stop();
///
/// Emitted when playback should be resumed
///
void play();
///
/// Emitted when the player should seek
///
void seek(qlonglong offset);
///
/// Emitted when the player should skip to the given position
///
void positionRequested(qlonglong position);
public Q_SLOTS:
void Next();
void Previous();
void Pause();
void PlayPause();
void Stop();
void Play();
void Seek(qlonglong Offset);
void SetPosition(const QDBusObjectPath &trackId, qlonglong pos);
void OpenUri(const QString &uri);
private Q_SLOTS:
void playControlEnabledChanged();
void skipBackwardControlEnabledChanged();
void skipForwardControlEnabledChanged();
void playerPlaybackStateChanged();
void playerIsSeekableChanged();
void audioPositionChanged();
void playerSeeked(qint64 position);
void audioDurationChanged();
private:
void signalPropertiesChange(const QString &property, const QVariant &value);
void setMediaPlayerPresent(int status);
void setRate(double newRate);
void setVolume(double volume);
void setPropertyPosition(int newPositionInMs);
QVariantMap getMetadataOfCurrentTrack();
QVariantMap m_metadata;
QString m_currentTrack;
QString m_currentTrackId;
double m_rate = 1.0;
double m_volume = 0.0;
int m_mediaPlayerPresent = 0;
bool m_canPause = true;
bool m_canPlay = false;
bool m_canGoNext = false;
bool m_canGoPrevious = false;
qlonglong m_position = 0;
bool m_playerIsSeekableChanged = false;
mutable QDBusMessage mProgressIndicatorSignal;
int mPreviousProgressPosition = 0;
// Current track metadata
qlonglong m_duration;
PlaybackState m_playbackState = PlaybackStopped;
QString m_currentTrackTitle;
QUrl m_currentTrackUrl;
QString m_currentTrackAlbum;
QString m_currentTrackArtist;
QUrl m_coverArtUrl;
};
+79
View File
@@ -0,0 +1,79 @@
/***************************************************************************
SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
SPDX-License-Identifier: GPL-3.0-or-later
***************************************************************************/
#include "mpris2.h"
#include "mediaplayer2.h"
#include "mediaplayer2player.h"
#include <QDBusConnection>
#if defined Q_OS_WIN
#include <Windows.h>
#else
#include <unistd.h>
#endif
Mpris2::Mpris2(QObject* parent)
: QObject(parent)
{
}
void Mpris2::initDBusService()
{
QString mspris2Name(QStringLiteral("org.mpris.MediaPlayer2.") + m_playerName);
bool success = QDBusConnection::sessionBus().registerService(mspris2Name);
// If the above failed, it's likely because we're not the first instance
// or the name is already taken. In that event the MPRIS2 spec wants the
// following:
if (!success) {
#if defined Q_OS_WIN
success = QDBusConnection::sessionBus().registerService(mspris2Name + QLatin1String(".instance") + QString::number(GetCurrentProcessId()));
#else
success = QDBusConnection::sessionBus().registerService(mspris2Name + QLatin1String(".instance") + QString::number(getpid()));
#endif
}
if (success) {
m_mp2 = std::make_unique<MediaPlayer2>(this);
m_mp2p = std::make_unique<MediaPlayer2Player>(this);
QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/mpris/MediaPlayer2"), this, QDBusConnection::ExportAdaptors);
connect(m_mp2.get(), &MediaPlayer2::raisePlayer, this, &Mpris2::raisePlayer);
}
}
Mpris2::~Mpris2()
= default;
QString Mpris2::playerName() const
{
return m_playerName;
}
void Mpris2::setPlayerName(const QString &playerName)
{
if (m_playerName == playerName) {
return;
}
m_playerName = playerName;
if (!m_playerName.isEmpty()) {
if (!m_mp2) {
initDBusService();
}
}
Q_EMIT playerNameChanged();
}
#include "moc_mpris2.cpp"
+63
View File
@@ -0,0 +1,63 @@
/***************************************************************************
SPDX-FileCopyrightText: 2014 (c) Sujith Haridasan <[email protected]>
SPDX-FileCopyrightText: 2014 (c) Ashish Madeti <[email protected]>
SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <[email protected]>
SPDX-License-Identifier: GPL-3.0-or-later
***************************************************************************/
#pragma once
#include <QObject>
#include <memory>
class MediaPlayer2;
class MediaPlayer2Player;
class Mpris2 : public QObject
{
Q_OBJECT
Q_PROPERTY(QString playerName
READ playerName
WRITE setPlayerName
NOTIFY playerNameChanged)
public:
explicit Mpris2(QObject* parent = nullptr);
~Mpris2() override;
[[nodiscard]] QString playerName() const;
MediaPlayer2Player *player() const {
return m_mp2p.get();
}
void setPlayerName(const QString &playerName);
Q_SIGNALS:
void raisePlayer();
void playerNameChanged();
void playListModelChanged();
void audioPlayerManagerChanged();
void manageMediaPlayerControlChanged();
void headerBarManagerChanged();
void audioPlayerChanged();
void showProgressOnTaskBarChanged();
private:
void initDBusService();
std::unique_ptr<MediaPlayer2> m_mp2;
std::unique_ptr<MediaPlayer2Player> m_mp2p;
QString m_playerName;
bool mShowProgressOnTaskBar = true;
};
+1
View File
@@ -5,6 +5,7 @@
#include "ytmusic.h"
#include <algorithm>
#include <iostream>
#include <pybind11/embed.h>
#include <pybind11/stl.h>