Jonas Kvinge
0bc94b90d7
SmartPlaylistSearchTerm: Handle unrated (-1) as zero
...
Fixes #1244
2023-07-26 01:45:28 +02:00
Strawbs Bot
9ed4bd9366
Update translations
2023-07-24 09:46:20 +02:00
Jonas Kvinge
d3352e476f
Remove `< 0` check on unsigned
2023-07-21 07:17:58 +02:00
Jonas Kvinge
4b4c5fc0ab
Use const reference for `AlbumCoverLoaderOptions::Types`
2023-07-21 07:17:26 +02:00
Jonas Kvinge
38b9c7c38a
MusixmatchCoverProvider: Add const
2023-07-21 07:16:32 +02:00
Jonas Kvinge
c71ce41c83
LastFMImport: Move variable declaration
2023-07-21 07:16:23 +02:00
Jonas Kvinge
4cd030215d
Transcoder: Remove useless empty check
2023-07-21 07:16:08 +02:00
Jonas Kvinge
2ce5d6f727
Database: Add missing const
2023-07-21 07:15:55 +02:00
Jonas Kvinge
b55a0df8e1
CollectionView: Remove useless variable
2023-07-21 07:15:42 +02:00
Jonas Kvinge
ee5fa23a7a
LocalRedirectServer: Remove unused https variable
2023-07-21 07:15:08 +02:00
Jonas Kvinge
75ab6f25f4
Check return of QSqlQuery::prepare
2023-07-21 07:12:20 +02:00
Jonas Kvinge
eaed82c9b2
CollectionItemDelegate: Remove check for nullptr, already done
2023-07-21 07:11:21 +02:00
Jonas Kvinge
2a4be6fcd7
BoomAnalyzer: Move variable declaration
2023-07-21 07:10:31 +02:00
Jonas Kvinge
e6198500f7
BlockAnalyzer: Remove useless continue
2023-07-21 07:10:17 +02:00
Jonas Kvinge
7db36c83c1
MainWindow: Don't use our network manager for Qt Sparkle
2023-07-21 06:20:46 +02:00
Jonas Kvinge
0e1921698c
TidalUrlHandler: service is already a pointer
2023-07-21 06:11:16 +02:00
Jonas Kvinge
95eed1ecec
Fix QtConcurrent::run build with Qt 5
2023-07-21 06:10:44 +02:00
Jonas Kvinge
2e61235403
Application: Use shared pointers
...
Fixes #1239
2023-07-21 05:55:24 +02:00
Jonas Kvinge
d6b53f78ab
Cleanup includes
2023-07-21 05:25:57 +02:00
Jonas Kvinge
a2c7ff63df
Formatting
2023-07-21 05:11:27 +02:00
Roman Lebedev
9fb15545bd
GstEnginePipeline: Perform EBU R 128 Loudness Normalization in floating-point
2023-07-19 03:07:22 +02:00
Jonas Kvinge
56180ca419
LocalRedirectServer: Remove https option and gnutls dependency
2023-07-18 19:44:45 +02:00
Jonas Kvinge
dc65753a0b
ebur128analysis: Remove extra semicolon
2023-07-16 23:26:17 +02:00
Jonas Kvinge
d8857d8e72
Add missing QMetaType include
2023-07-12 18:13:02 +02:00
Jonas Kvinge
fdc3e0a5f5
LyricsSearchResult: Add missing QList include
2023-07-12 18:12:48 +02:00
Jonas Kvinge
8f7180eb6c
Song: Pass double by value
2023-07-12 18:12:08 +02:00
Jonas Kvinge
8945602eae
Song: Add missing newlines between functions
2023-07-12 18:11:43 +02:00
Jonas Kvinge
7826f77425
Formatting
2023-07-12 16:27:59 +02:00
Jonas Kvinge
00372e85c5
FilterParser: Silence double / float warning
2023-07-12 16:27:28 +02:00
Jonas Kvinge
a1ffc5c33b
ebur128analysis: Rename dsc variable
2023-07-12 16:26:39 +02:00
Jonas Kvinge
8a44a41abb
ebur128analysis: Initialize variables to silence warnings
2023-07-12 16:26:17 +02:00
Jonas Kvinge
23f0c56eba
Song: Move ebur128 functions
2023-07-12 16:23:27 +02:00
Jonas Kvinge
3d25863ccb
CollectionWatcher: Make PerformEBUR128Analysis const
2023-07-12 16:22:17 +02:00
Roman Lebedev
4bd993b1e3
GstEngine/GstEnginePipeline: support gap-less playback w/ loudness-normalizing gain
...
Ok, it does appear that it is that simple.
In principle this (even the non-update case) results in volume jumps,
so maybe we'll want gradual gain change...
Notably, i thought we'd always seek if the pipeline
was already operating on the same URL as the new one,
but apparently only for adjacent songs?
2023-07-12 14:34:04 +02:00
Roman Lebedev
f81816b0cd
EBUR128Analysis: handle channel map
...
Loudness measurement is channel-dependent.
This perhaps matters most for mono audio.
2023-07-12 14:34:04 +02:00
Roman Lebedev
94ab788032
GstEnginePipeline: actually perform (EBU R 128) loudness normalization
...
The magic: if EBU R 128 loudness normalization is enabled,
just insert `volume` GST element into the pipeline
(where ReplayGain would be inserted) and configure it.
We currently don't support changing said gain after the pipeline
was created. We might need to, though, for a number of reasons.
2023-07-12 14:34:04 +02:00
Roman Lebedev
e3a333564a
`GstEngine::Load()`: different loudness-normalizing gain means new pipeline
...
This is a bit of a gotcha, there should be a point (where we seek?)
where we'd be able to change said gain, but for now this is a simple[r]
stop-gap fix.
2023-07-12 14:34:04 +02:00
Roman Lebedev
13d6cf201f
Engine: pipe-in the EBU R 128 loudness normalization gain stuff
...
The idea is that Integrated Loudness is an integral part
of the song, much like knowing it's beginning / ending
in the file, and we must handle it the exact same way,
and pipe it through all the way.
At the same time, `EngineBase` knows Target Level (from settings),
and these two combined tell us the Gain needed to normalize the
Loudness of the particular Song (`EngineBase::Load()` does that).
So the actual backend only needs to handle the Volume.
We don't currently support changing Target Level on the fly.
We don't currently support changing Loudness-normalizing Gain on the fly.
This does not handle the case when the song is loaded from URL
and thus the EBU R 128 measures, that exist, are not nessesairly correct.
2023-07-12 14:34:04 +02:00
Roman Lebedev
40ef3191fc
`EBUR128Analysis`: place a `queue` before `appsink`
...
This improves the performance of the analysis (by 2x!),
by offloading non-`libebur128`-computations (i.e. decode-convert)
to a separate thread, thus reducing walltime.
2023-07-12 14:34:04 +02:00
Roman Lebedev
bda2b91c92
Collectionwatcher: sink `PerformEBUR128Analysis()` into `ScanNewFile` & friends
2023-07-12 14:34:04 +02:00
Roman Lebedev
1462bfa297
CollectionWatcher: support EBU R 128 analysis
...
Again, somewhat pretty similar to the existing fingerprint analysis,
we must support performing it both for the new files,
and re-performing it on (some of) already-existing songs,
because it might have been disabled before.
Admittedly, i quite don't like some of this code,
maybe this can be done in a more concise way.
NOTE: this only supports scanning each separate songs.
Should we ever want to support per-album loudness normalization,
this will need massive changes...
2023-07-12 14:34:04 +02:00
Roman Lebedev
bafcb97fa1
Implement `EBUR128Analysis`
...
The most juicy bit!
This is based on Song Fingerprint Analysis,
but here we must know the actual song, and not just the file.
The library supports only interleaved S16/S32/F32/F64,
so we must be sure we insert `audioconvert` into pipeline.
One point of contention here for me, is whether we should
feed the frames to the library the moment we get them
in `NewBufferCallback`, or collect them in a buffer
and pass them all at once. I've gone with the former,
because it seems like that is not the worst choice:
https://github.com/strawberrymusicplayer/strawberry/pull/1216#issuecomment-1610075876
In principle, the analysis *could* fail,
so we want to handle that gracefully.
2023-07-12 14:34:04 +02:00
Roman Lebedev
f905676b1c
CollectionBackend/CollectionWatcher: add `HasSongsWithMissingLoudnessCharacteristics` logic
...
Exactly identical to the "missing fingerprint" logic,
just for the two new fields being added.
2023-07-12 14:34:04 +02:00
Roman Lebedev
0ea81b13b9
BackendSettingsPage: add "EBU R 128 loudness normalization"-related settings
...
Change `Use Replay Gain metadata if it is available` checkbox
into a radio button and add button to disable any loudness normalization.
Add second group(+radio button), for EBU R 128 loudness normalization.
There is only one tunable: Target Level,
defaulting to EBU R 128-recommended `-23 LUFS`.
Care should be taken when changing Target Level!
You probably don't want to go outside of `-30..-16` range!
At least as implemented, there is only support for per-song normalization,
i.e. no per-album normalization.
We do not do anything with loudness range,
although i have some further thoughts about compression.
We do not do anything about clipping / peak level.
NOTE: we do not need `libebur128` to *perform* the audio normalization,
only for the initial analysis.
Co-authored-by: Jonas Kvinge <jonas@jkvinge.net>
2023-07-12 14:34:04 +02:00
Roman Lebedev
9a7949297e
CollectionSettingsPage: add option to toggle `libebur128`-based song analysis
...
Much like song fingerprinting, performing EBU R 128 analysis is optional.
If you will want to enable EBU R 128 loudness normalization
(which does not depend on the presence of `libebur128`!)
you will probably want to enable it, but it is not enabled by default.
There will be support for rescanning songs for which it is missing.
2023-07-12 14:34:04 +02:00
Roman Lebedev
29342fa9ac
CMake: when optional component `EBUR128` is detected, link to `libebur128`
2023-07-12 14:34:04 +02:00
Roman Lebedev
b2c66c9cda
Playlist: add newly-added columns
...
Still mostly boilter-plate-y. It is somewhat interesting to see that info
in playlist view, so add the two fileds as columns.
At least for Integrated loudness, since it's normally negative,
we need to add a specialized Delegate.
2023-07-12 14:34:04 +02:00
Roman Lebedev
44e5c32bcb
ContextView: show newly-added fields
...
And still very boilerplate-y, same as in previous change,
just show the two new Song fields in `Context` view.
2023-07-12 14:34:04 +02:00
Roman Lebedev
e7fc4e7f89
EditTagDialog: show newly-added fields (read-only)
...
Still very boilerplate-y. Add two placeholders to the UI
(in the middle of the existing table, so the diff is a mess),
and populate them with data.
2023-07-12 14:34:04 +02:00
Roman Lebedev
e589486907
Song: add pretty-printers for EBU R 128 Integrated Loudness and Loudness Range fields
...
They end up being used in a quite a number of places later on,
it makes sense to have them in a common place.
Integrated Loudness (LUFS) is *usually* negative, so we really want to
always print a sign. But Loudness Range is non-negative.
I think it makes sense to print one or at most two decimal places for these.
2023-07-12 14:34:04 +02:00
Roman Lebedev
459c4c5d86
Song: add EBU R 128 Integrated Loudness and Loudness Range fields, DB [de]serialization
...
Again, pretty boring boilerplate, rather identical to the handling of
other fields. We do need to be careful when [de]serializing it, though,
we don't want to accidentally loose the `NULL` (i.e. unknown) state!
2023-07-12 14:34:04 +02:00
Roman Lebedev
73c56f038e
SqlQuery: add `BindDoubleOrNullValue()` method
...
To facilitate serializing of the two DB fields added by the previous change.
2023-07-12 14:34:04 +02:00
Roman Lebedev
0a4888f861
Database scheme: add EBU R 128 Integrated Loudness and Loudness Range columns
...
Nothing really ground-breaking, just add those two fields
to each table that already has `bitrate`/`samplerate`/`bitdepth` fields.
Those new fields do need to be able to represent an invalid state
which is their default state, thus they are non-`NOT NULL`.
In principle, the actual field type could be `INTEGER`
(i.e. fixed point w/ 2 fractional digits), but unless we really want to
save a few bytes, it doesn't seem worthwhile.
FIXME: i'm not sure if `device-schema` should be changed too.
2023-07-12 14:34:04 +02:00
Strawbs Bot
0a26c295a0
Update translations
2023-07-02 14:10:05 +02:00
Jonas Kvinge
e66651a4cb
Song: Remove unused application include
2023-07-02 00:29:30 +02:00
Jonas Kvinge
1d9a052870
AlbumCoverChoiceController: Move result declaration
2023-07-02 00:29:19 +02:00
Jonas Kvinge
fa04eb67db
Convert old embedded and unset art in the new schema
2023-06-29 20:21:50 +02:00
Jonas Kvinge
5f4d6dffef
AlbumCoverLoader: Fix loading existing album covers from disk
2023-06-29 00:44:00 +02:00
Jonas Kvinge
b9c7510946
AlbumCoverLoader: Fix Handling default image in finish task
2023-06-28 23:52:39 +02:00
Jonas Kvinge
e690be1bdd
DeviceDatabaseBackend: Fix device schema version mismatch
...
schema_version in device-schema.sql is 4.
2023-06-26 20:06:11 +02:00
Jonas Kvinge
6ed5190276
Remove AudD lyrics
2023-06-25 01:14:12 +02:00
Jonas Kvinge
354b55cbbc
Use QFileInfo::path instead of QUrl::RemoveFilename
2023-06-15 21:06:18 +02:00
Jonas Kvinge
b87a950357
CoverUtils: Only create path if it doesn't exist
2023-06-15 21:04:11 +02:00
Jonas Kvinge
950c236720
AlbumCoverManager: Fix clear and unset actions
2023-06-15 20:35:41 +02:00
Jonas Kvinge
32982be4f2
EditTagDialog: Allow clearing unset cover
2023-06-15 20:34:03 +02:00
Jonas Kvinge
f467331934
Add ifdefs around #pragma GCC diagnostic
2023-06-15 20:10:25 +02:00
Dakes
1deacaecf9
FilterParser: Add ability to filter by rating
...
Playlists can now be filtered by the rating from 0-5 like:
rating:0 rating:<3 rating:!=0
or by a float value, like:
rating:f0.1 rating:>=f0.5
2023-06-09 21:31:15 +02:00
Jonas Kvinge
b0849d21f3
TidalStreamURLRequest: Ignore different track ID
2023-06-08 17:36:24 +02:00
Jonas Kvinge
5b60ea8e77
MainWindow: Remove F2 from edit tag shortcut
...
Fixes #1210
2023-06-07 19:38:59 +02:00
Jonas Kvinge
6d55eb5974
CollectionModel: Fix icon disk cache
2023-06-07 00:51:53 +02:00
Jonas Kvinge
972053c699
MoodbarLoader: Fix loading cached moodbars
2023-06-07 00:50:35 +02:00
Jonas Kvinge
9db7896828
Prefix class for ReloadSettings
2023-06-06 23:20:42 +02:00
Jonas Kvinge
be6f93735d
Simplify if statements
2023-06-06 23:19:45 +02:00
Jonas Kvinge
8ee32dfa88
Add static_cast to silence narrowing conversion warnings
2023-06-06 23:18:49 +02:00
Jonas Kvinge
e2f9411b46
EditTagDialog: Initialize cover_action
2023-06-06 23:17:29 +02:00
Jonas Kvinge
50fcda2763
OSDDBus: Remove use of QImage::isGrayscale, Always expect RGB
...
Fixes #1205
2023-06-06 21:43:05 +02:00
Jonas Kvinge
331aa382f9
Rewrite album cover loader
2023-06-06 20:41:01 +02:00
Jonas Kvinge
716e80fb84
UWPDeviceFinder: Fix EngineDeviceList
2023-06-01 21:35:48 +02:00
Jonas Kvinge
80067b806d
TranscodeDialog: Append number to filename if it already exists
...
Fixes #1200
2023-06-01 20:42:47 +02:00
Jonas Kvinge
315073f9a7
Add EngineDevice class
2023-06-01 19:31:19 +02:00
Jonas Kvinge
a1dbbba1a1
ContextView: Remove engine and device
2023-06-01 19:29:52 +02:00
Jonas Kvinge
cb8a0b6853
ContextSettingsPage: Remove engine and device
2023-06-01 19:29:52 +02:00
Jonas Kvinge
a5a29f7ad3
DeviceFinder: Add typedef DeviceList
2023-06-01 18:43:43 +02:00
Jonas Kvinge
8e14ef7c0c
GstStartup: Set rank for directsoundsink higher than wasapisink for MinGW
...
Fixes #1204
2023-06-01 18:31:55 +02:00
Jonas Kvinge
e466cb6e30
Add UWP device finder
2023-06-01 18:11:30 +02:00
Jonas Kvinge
f0df9dc0fb
GstEngine: Append "2" to wasapi2sink description
2023-06-01 17:22:11 +02:00
Strawbs Bot
b31c08083a
Update translations
2023-05-30 01:02:07 +02:00
Jonas Kvinge
60d7a4e7ee
AlbumCoverManager: Fix invalid reference
2023-05-29 11:24:41 +02:00
Strawbs Bot
000cf5fd5a
Update translations
2023-05-13 01:01:35 +02:00
Strawbs Bot
1aff69d3cf
Update translations
2023-05-06 01:02:19 +02:00
Robert Marshall
f2f63a703e
class CueParser Process composer metadata in cue files
...
Use composer as an alternative to songwriter
..and move a misplaced comment
2023-05-05 17:47:37 +02:00
Jonas Kvinge
97e6b17f96
ContextView: QFontDatabase::families is not static in Qt 5
2023-05-05 17:46:02 +02:00
Jonas Kvinge
b90d284b08
ContextView: Check for default font family
2023-05-05 16:43:34 +02:00
Jonas Kvinge
840a65c630
ContextSettingsPage: Use constant for default font family
2023-05-05 16:43:01 +02:00
Strawbs Bot
7c7724e41c
Update translations
2023-05-05 01:29:26 +02:00
Jonas Kvinge
919ff414e6
Replace SingleApplication with KDSingleApplication
2023-05-04 09:44:54 +02:00
Strawbs Bot
b861703dad
Update translations
2023-05-04 01:15:19 +02:00
Jonas Kvinge
2f17647cd3
Use const reference for AlbumCoverLoaderResult
2023-05-03 21:43:22 +02:00
Jonas Kvinge
f8d2c7eba3
Bump required Qt version to 5.12
2023-05-03 20:50:58 +02:00
Jonas Kvinge
e511b2faf9
Use new connect syntax for QMetaObject::invokeMethod
2023-05-03 20:08:51 +02:00
Jonas Kvinge
301e6b194a
Replace 0 msec singleshot with invoke method
2023-05-03 19:55:58 +02:00
Jonas Kvinge
1208ca3ad4
ContextView: Simplify font code
2023-05-03 01:59:13 +02:00
Jonas Kvinge
84e7cd0df8
CollectionWatcher: Connect PathChanged signal once
2023-05-03 01:17:10 +02:00
Strawbs Bot
7e1077426e
Update translations
2023-05-02 01:01:40 +02:00
Jonas Kvinge
1e2c437a08
CMakeLists: Remove hardcoded sqlite3 link with MSVC
2023-05-01 19:20:00 +02:00
Jonas Kvinge
1d3223e9c6
Add getopt supporting unicode
...
Fixes #1191
2023-05-01 16:44:18 +02:00
Strawbs Bot
ee4cd11ae1
Update translations
2023-04-29 01:01:40 +02:00
Strawbs Bot
3df29ed2a9
Update translations
2023-04-25 01:01:22 +02:00
Jonas Kvinge
69658f2022
AlbumCoverChoiceController: Check for nullptr in SearchForCover
2023-04-23 19:27:01 +02:00
Jonas Kvinge
5fd0a0831f
GstEngine: Include all outputs that starts with "Sink/Audio"
2023-04-23 01:28:52 +02:00
Strawbs Bot
43b299ebd1
Update translations
2023-04-23 01:21:40 +02:00
Jonas Kvinge
9612304023
GstEngine: Use _stricmp with MSVC
2023-04-23 01:20:11 +02:00
Jonas Kvinge
3154e59b36
EngineBase: Remove extra semicolon
2023-04-22 20:41:22 +02:00
Jonas Kvinge
4c1c322b54
Rename AnalyzerBase
2023-04-22 19:45:21 +02:00
Jonas Kvinge
e9f3281694
Rename EngineBase
2023-04-22 19:13:42 +02:00
Jonas Kvinge
c3534affdb
EngineBase: Remove PluginDetails
2023-04-22 17:18:29 +02:00
Jonas Kvinge
c6e62b3263
GstStartup: Remove setting rank for wasapisink and directsoundsink
2023-04-22 17:15:41 +02:00
Jonas Kvinge
d8ce177ce7
GstEngine: Remove class comment
2023-04-22 17:14:49 +02:00
Jonas Kvinge
726bfbefb0
Replace gst_element_factory_get_klass with gst_element_factory_get_metadata
2023-04-22 16:49:37 +02:00
Jonas Kvinge
3145433099
SystemTrayIcon: Simply icon loading
2023-04-22 15:27:34 +02:00
Jonas Kvinge
bdf6844b74
Database: Move error_reported
2023-04-22 14:38:45 +02:00
Jonas Kvinge
9ad430915c
CddaDevice: Remove application.h include
2023-04-22 14:31:25 +02:00
Jonas Kvinge
60bbd71a22
Remove NetworkAccessManager from song loader
2023-04-22 14:05:48 +02:00
Jonas Kvinge
c96498758f
Fix and improve gapless playback
...
If "about-to-finish" was emitted before the preload time was reached, we never set the next uri, so gapless playback was broken.
Make sure to always set the next uri, and increase preload gap from 5 to 8 seconds.
2023-04-22 03:54:11 +02:00
Strawbs Bot
f4600bd8eb
Update translations
2023-04-22 01:21:46 +02:00
Jonas Kvinge
7202a5734c
ListenBrainzScrobbler: Only send duration_ms when valid
2023-04-21 20:54:18 +02:00
Jonas Kvinge
8edb6eaa81
Song: Add missing const
2023-04-21 20:48:30 +02:00
Jonas Kvinge
b8eecc05fd
AlbumCoverLoader: Use own NetworkAccessManager instance
...
Since AlbumCoverLoader runs in it's own thread.
2023-04-21 20:29:43 +02:00
Jonas Kvinge
7fc5aef553
Use one instance of NetworkAccessManager
2023-04-21 20:20:53 +02:00
Jonas Kvinge
bee6b7f946
Rename original_url to media_url
2023-04-21 16:20:00 +02:00
Jonas Kvinge
3bedfb6ac8
GstEngine: Formatting
2023-04-21 15:07:17 +02:00
Jonas Kvinge
f49bf0192b
Engine::Base: Formatting
2023-04-21 15:06:44 +02:00
Jonas Kvinge
f36ac5272b
Scrobbler: Simplify error handling
2023-04-21 02:11:26 +02:00
Strawbs Bot
f0fe446f7f
Update translations
2023-04-21 01:01:44 +02:00
Jonas Kvinge
d9c4720a3e
ListenBrainzScrobbler: Split artist mbids by slash
2023-04-20 21:55:11 +02:00
monochromec
4de5d8f2a3
Fixed typo and improved wording of Rosetta notice
2023-04-20 16:29:48 +02:00
Strawbs Bot
8651311016
Update translations
2023-04-19 01:08:38 +02:00
Jonas Kvinge
1d27c5a14c
MainWindow: Add missing QSettings declaration
2023-04-18 20:17:01 +02:00
Jonas Kvinge
b0b8ff2d49
CollectionModel: URL percent encode disk cache keys
...
Fixes #1183
2023-04-18 18:42:37 +02:00
Jonas Kvinge
cd03e1fc74
Make it possible to not show Rosetta warning
...
Fixes #1180
2023-04-18 18:03:39 +02:00
Jonas Kvinge
b273a449e3
Add common message dialog
2023-04-18 17:44:42 +02:00
Jonas Kvinge
b637867f9e
MainWindow: Hide checkbox, set size, center rosetta warning
2023-04-18 16:54:43 +02:00
Jonas Kvinge
41d5792b27
Add screen utilities for screen and center widget on screen
2023-04-18 16:54:35 +02:00
Strawbs Bot
9baf1774e0
Update translations
2023-04-15 01:01:23 +02:00
Strawbs Bot
9ca66e4061
Update translations
2023-04-12 01:01:23 +02:00
Jonas Kvinge
db2d34f840
FavoriteWidget: Use icon loader for star icons
...
Fixes #1178
2023-04-10 21:29:52 +02:00
Strawbs Bot
195cc61df7
Update translations
2023-04-10 01:22:37 +02:00
Jonas Kvinge
aaa530e72b
Add const/references to all signal parameters
2023-04-09 20:23:42 +02:00
Jonas Kvinge
fa856ee905
Remove directory.h
2023-04-09 20:17:45 +02:00
Strawbs Bot
2bf7a5c4d3
Update translations
2023-04-08 01:27:44 +02:00
Jonas Kvinge
780b982635
SmartPlaylistSearchTermWidget: Fix loading search terms
...
Fixes #1172
2023-04-07 23:05:07 +02:00
Jonas Kvinge
74bbc1f19f
PlaylistGenerator: Use std::make_shared
2023-04-07 22:41:10 +02:00
Jonas Kvinge
e314545f2e
Database: Fix SQL query error message
2023-04-07 20:54:31 +02:00
Jonas Kvinge
f1a3a12c1c
CollectionBackend: Fix SQL query error message
2023-04-07 20:54:15 +02:00
Jonas Kvinge
ef080c3cb1
PlaylistView: Fix resetting album cover
2023-04-07 20:07:40 +02:00
Jonas Kvinge
7313db5ac0
Add compile test for QX11Application
...
if Qt was compiled without XCB, globalshortcut-x11 failed to compile.
2023-04-07 15:57:39 +02:00
Jonas Kvinge
b59aa0827e
GstEnginePipeline: Always set initial volume
2023-04-07 02:30:41 +02:00
Strawbs Bot
2584f1293e
Update translations
2023-04-07 01:13:27 +02:00
Jonas Kvinge
b660287779
Use `std::shared_ptr`for `AlbumCoverLoaderResult`
...
Reduces memory fragmentation with Qt 6
2023-04-06 23:18:10 +02:00
Jonas Kvinge
962536bc83
AlbumCoverLoaderResult: Use enum class for type
2023-04-06 01:23:42 +02:00
Strawbs Bot
ee4fcf8100
Update translations
2023-04-04 01:01:21 +02:00
Strawbs Bot
9a4ed1a19d
Update translations
2023-03-31 21:56:09 +02:00
Gaganpreet Arora
c1d0702b4d
QobuzRequest: Handle multiple discs in integration
...
Albums with multiple discs are not being handled which results in tracks
being listed out of order. If the disc (media_number) is present in
JSON, we use it to set the disc in the Song object.
2023-03-31 21:21:58 +02:00
Jonas Kvinge
bae1b42394
OSDPretty: Respect device pixel ratio
2023-03-29 18:23:06 +02:00
Jonas Kvinge
a2533edd57
PlayingWidget: Make previous pixmap respect device pixel ratio
2023-03-29 00:24:38 +02:00
Jonas Kvinge
7b88c198fe
SongSourceDelegate: Fix compile with Qt 5
2023-03-29 00:14:21 +02:00
Jonas Kvinge
c49cb0c119
ImageUtils: Formatting
2023-03-29 00:09:40 +02:00
Jonas Kvinge
03aabeb848
AlbumCoverManager: Respect device pixel ratio
2023-03-29 00:06:56 +02:00
Jonas Kvinge
1d3a837f7a
SongSourceDelegate: Respect device pixel ratio
2023-03-29 00:04:34 +02:00
Jonas Kvinge
92adc18b8f
ContextAlbum: Make size hint respect device pixel ratio
2023-03-28 18:21:19 +02:00
Fletcher Dostie
e4697c8ff1
Render context art at correct size
2023-03-28 17:54:56 +02:00
Jonas Kvinge
a3e9f152d8
CollectionSettingsPage: Remove iopriority hide
2023-03-26 03:14:52 +02:00
Jonas Kvinge
ffe6a81b9a
Collection: Always use Idle priority for watcher
2023-03-26 00:10:29 +01:00
Jonas Kvinge
9bb051b4eb
CollectionSettingsPage: Remove settings for IO and thread priority and workers
2023-03-26 00:09:41 +01:00
Jonas Kvinge
c1465a890f
TagReaderClient: Always use 1 tagreader worker
2023-03-26 00:08:55 +01:00
Jonas Kvinge
272976f0b7
TagReaderClient: Fix default save options
2023-03-25 23:54:15 +01:00
Jonas Kvinge
4724b170b1
AuddLyricsProvider: Disable provider by default
...
Since we are currently missing API key.
2023-03-25 19:20:10 +01:00
Jonas Kvinge
337bd4bcef
ListenBrainzScrobbler: Make sure we only add the same artist id once
2023-03-25 19:14:26 +01:00
Jonas Kvinge
0604c78453
CollectionBackend: Check for changed fingerprint
2023-03-25 18:35:14 +01:00
Jonas Kvinge
c8169adf7c
CollectionModel: Guard against invalid disc and year
2023-03-25 18:32:41 +01:00
Jonas Kvinge
7b610d131c
CollectionModel: Replace qMax with std::max
2023-03-25 18:31:21 +01:00
Jonas Kvinge
18da55453f
EditTagDialog: Not set for track, disc, year, etc to -1
2023-03-25 18:29:12 +01:00
Jonas Kvinge
2aeab8b672
CollectionModel: Remove unused QByteArray include
2023-03-25 18:26:53 +01:00
Jonas Kvinge
b02ac833ad
CollectionWatcher: Fix rescan songs feature
2023-03-25 16:38:03 +01:00
Jonas Kvinge
4de912cf41
Song: Fix missing colon in SQL bind value
2023-03-25 16:34:26 +01:00
Jonas Kvinge
ed260c6e20
CollectionWatcher: Check for changed AcoustID and MusicBrainz
2023-03-25 14:35:12 +01:00
Jonas Kvinge
fab38f693d
Scrobbler: Refactor and add MusicBrainz integration
2023-03-25 14:25:21 +01:00
Jonas Kvinge
aedbd52e9d
Add AcoustID
2023-03-24 22:48:22 +01:00
Jonas Kvinge
e967d15b4e
Add AudD lyrics provider
2023-03-24 21:16:11 +01:00
Fletcher Dostie
bb43cc63ec
Fix album art rendering on High DPI displays
2023-03-24 21:02:55 +01:00
Jonas Kvinge
ca176c319d
Add Acoustid and MusicBrainz tags to database schema
2023-03-24 21:00:58 +01:00
Jonas Kvinge
17c960ecd4
Song: Add Acoustid fingerprint and MusicBrainz tags
2023-03-24 20:57:46 +01:00
Jonas Kvinge
b766ae3498
Song: Use static_cast from int to Source
2023-03-24 20:54:42 +01:00
Jonas Kvinge
52c83d592c
Rename Stands4 to Lyrics.com
2023-03-22 23:36:15 +01:00
Jonas Kvinge
c8caea0d30
GstEnginePipeline: Use constexpr
2023-03-22 23:29:56 +01:00
Jonas Kvinge
7a6c54d8e7
GstEnginePipeline: Remove hard-coded num-bands
2023-03-22 23:29:24 +01:00
Strawbs Bot
7082e52a4f
Update translations
2023-03-21 01:01:49 +01:00
Strawbs Bot
6cdca617e0
Update translations
2023-03-20 01:14:38 +01:00
Jonas Kvinge
a1adc1a75a
Add option for strict SSL mode in backend settings
2023-03-19 23:02:17 +01:00
Jonas Kvinge
b16bec704a
GstEnginePipeline: Use "source-setup" instead of "notify::source" signal
...
This works with both playbin 2 and 3.
Possible fix for #1148
2023-03-19 22:28:12 +01:00