jmshrv / finamp

A Jellyfin music client for mobile
Mozilla Public License 2.0
1.67k stars 118 forks source link

Updated volume normalization #706

Closed Chaphasilor closed 1 month ago

Chaphasilor commented 2 months ago

Adapts volume normalization / replay gain based on the upcoming changes in https://github.com/jellyfin/jellyfin/pull/11457

Removes outdated settings and shows normalization gain as a feature chip

Chaphasilor commented 2 months ago

@Komodo5197 will a downloads repair be enough to update the BaseItemDto metdata for offline mode when people upgrade to 10.9? Or do we need to add a migration for that?

Komodo5197 commented 2 months ago

It could be, but does need some tweaks. I wanted to reduce unneeded database writes, so the metadata only updates if the function BaseItemDto.mostlyEqual returns false. You can add a comparison of the relevant attributes there and it should work.

Chaphasilor commented 1 month ago

@Komodo5197 if you don't have anything else, I'll go ahead an merge this :)

Komodo5197 commented 1 month ago

The downloads change looks good, I haven’t payed too much attention to the other code. I’ll note with this and the lyrics PR we’re up to ~6 feature chips, and it would be nice to be able to disable some in settings to avoid scrolling on small screens. That’s only slightly related to this though.

Chaphasilor commented 1 month ago

Okay. Yeah customizing feature chips is definitely planned. I'd like to move away from the generic list of switches as settings, to a more tailor-made customization that fits whatever is customized, along with a preview.
So in the case of the feature chips, we'd show a preview with some sample data, and the preview would be the same size as the chips will end up being on the player screen. Maybe related settings (e.g. player screen) could share a single preview.

For the feature chips I'd like a way to show/hide or add/remove chips, and reorder them. All of this should be reflected in the preview, but the preview shouldn't be interactive. All customization should use separate controls.

I'll see if I can get any work done on this in the coming weeks, including an initial mockup.

But for now, a bit of overflow is fine. The complaints might motivate me to work on it sooner rather than later xD