1499 Commits

Author SHA1 Message Date
Rafał Dzięgiel
8fcaaffe8a 0.10.0 0.10.0 2025-12-22 11:36:43 +01:00
Rafał Dzięgiel
3b8ca000bb New Crowdin updates (#602)
* New translations clapper-app.pot (Finnish)

* New translations clapper-app.pot (Polish)
2025-12-22 10:49:44 +01:00
Rafał Dzięgiel
41ef7f964d doc: clapper: Add "app-id" to migrating MPRIS example
It is a new option now required to be set, so migration guide should have it
2025-12-22 09:39:08 +01:00
Rafał Dzięgiel
37a4bcb84c clapper-gtk: Bundle custom speed icons
Recent Adwaita icon theme changed "power-profile" icons which were
used for speed status. Since new ones do not fit our usage, bundle
icons that do, so they will be always loaded.

Fixes #570
2025-12-21 18:47:42 +01:00
Rafał Dzięgiel
0db279da59 Merge pull request #603 from Rafostar/devel
Merge devel branch
2025-12-20 12:48:51 +01:00
Rafał Dzięgiel
5e380bdf30 clapper-app: Support list item D&D between different windows
Handle drag and drop from the list in one player window to another
2025-12-19 23:42:09 +01:00
Rafał Dzięgiel
c03214799d clapper-app: Fix crash on D&D into empty queue
Ensure that drop list target is always cleared when drop finishes
or no longer needed. Handle cases where there is no drop target
such as dragging into empty queue (just append items then).

Fixes #435
2025-12-19 23:42:00 +01:00
Rafał Dzięgiel
55d75b0c74 clapper-app: Fix auto resize dimensions calculation
Improved logic that uses GCD to calculate correct window size to be scaled.

Fixes #521
2025-12-19 16:08:40 +01:00
Rafał Dzięgiel
5f7cf0c4c8 clapper: Fallback to stream tags for single stream content
In cases where audio file is played, there may not be separate global tags due to
only single stream. In this cases we should also use stream tags as if they were
global ones, but at the same time prioritize global tags if any are available.
2025-12-19 12:14:19 +01:00
Rafał Dzięgiel
1ab691ab8e clapper: harvest: Add debug message for skipped imports
Makes debugging this part easier
2025-12-19 10:07:11 +01:00
Rafał Dzięgiel
bfeaec721c clapper-app: Set "app-id" property in MPRIS enhancer plugin
Latest code requires and uses it in order to handle artwork/image unpacking from media
2025-12-19 10:07:04 +01:00
Rafał Dzięgiel
f8bf36c5af clapper: media-item: Rename tags allowance variable
Change veriable name which controls whether tags can be overwritten
to "allow_overwrite" instead of using "from_user".

This prepares code for the forthcoming changes where stream scope
tags can be allowed in some cases.
2025-12-19 10:04:42 +01:00
Rafał Dzięgiel
8ee82f1fde New Crowdin updates (#601)
* New translations clapper-app.pot (Romanian)

* New translations clapper-app.pot (French)

* New translations clapper-app.pot (Spanish)

* New translations clapper-app.pot (Afrikaans)

* New translations clapper-app.pot (Arabic)

* New translations clapper-app.pot (Catalan)

* New translations clapper-app.pot (Czech)

* New translations clapper-app.pot (Danish)

* New translations clapper-app.pot (German)

* New translations clapper-app.pot (Greek)

* New translations clapper-app.pot (Basque)

* New translations clapper-app.pot (Finnish)

* New translations clapper-app.pot (Hebrew)

* New translations clapper-app.pot (Hungarian)

* New translations clapper-app.pot (Italian)

* New translations clapper-app.pot (Japanese)

* New translations clapper-app.pot (Korean)

* New translations clapper-app.pot (Lithuanian)

* New translations clapper-app.pot (Dutch)

* New translations clapper-app.pot (Norwegian)

* New translations clapper-app.pot (Polish)

* New translations clapper-app.pot (Portuguese)

* New translations clapper-app.pot (Russian)

* New translations clapper-app.pot (Slovak)

* New translations clapper-app.pot (Serbian (Cyrillic))

* New translations clapper-app.pot (Swedish)

* New translations clapper-app.pot (Turkish)

* New translations clapper-app.pot (Ukrainian)

* New translations clapper-app.pot (Chinese Simplified)

* New translations clapper-app.pot (Chinese Traditional)

* New translations clapper-app.pot (Vietnamese)

* New translations clapper-app.pot (Portuguese, Brazilian)

* New translations clapper-app.pot (Persian)

* New translations clapper-app.pot (Croatian)

* New translations clapper-app.pot (Hindi)

* New translations clapper-app.pot (Asturian)

* New translations clapper-app.pot (Occitan)
2025-12-13 10:30:15 +01:00
Rafał Dzięgiel
9598feb798 clapper-app: Update POT file 2025-12-12 21:58:52 +01:00
Rafał Dzięgiel
453ec0f523 New Crowdin updates (#547)
* New translations clapper-app.pot (Chinese Simplified)

* New translations clapper-app.pot (Persian)

* New translations clapper-app.pot (Arabic)
2025-12-12 21:51:15 +01:00
Rafał Dzięgiel
71c9a11635 clapper: playlist-demux: Improved "claps" typefinding
Suggesting "possible" type does not always work as intended, since lots
of text might be determined as "text/plain" due to higher probability.

We should give at least a "likely" typefind result instead of "possible",
but in order for that lets also check some more lines of playlist just to
be safe when announcing likeness.
2025-12-12 21:35:15 +01:00
Rafał Dzięgiel
bca914dad6 meson: Do internal compilation with clapper warnings disabled
So we do not print deprecation warnings about our own
legacy APIs which are left for compatibility purposes
2025-12-12 21:35:12 +01:00
Rafał Dzięgiel
6936473a7b shared: Improve disabling of deprecations warnings
Have a separate compile option to disable them like GLib does.
This way we can define it across libs and apps to have them all be quiet.

This is done to avoid messages about legacy features that are left
for compatibility or fallback purposes.
2025-12-12 21:35:10 +01:00
Rafał Dzięgiel
cffe64840d clapper-app: Slightly wider URI entry dialog
To view a little more of entered text
2025-12-12 21:35:02 +01:00
Rafał Dzięgiel
7a57673801 clapper: Support loading enhancers written in Lua 2025-12-11 18:08:38 +01:00
Rafał Dzięgiel
eea7a9ff80 Merge pull request #599 from Rafostar/framestepping
clapper: Implement frame advance function
2025-12-10 19:07:30 +01:00
Rafał Dzięgiel
21db8a4caf clapper-app: Add advance frame shortcut to help overlay 2025-12-09 22:18:50 +01:00
Rafał Dzięgiel
f6e99ddf4c clapper-app: Advance frame with "E" key 2025-12-09 21:54:31 +01:00
Rafał Dzięgiel
736952a378 clapper: Add advance frame function
Allows to perform frame step operation forward
2025-12-09 21:53:32 +01:00
Rafał Dzięgiel
f75b1b6bb2 clapper-app: prefs: Shorter text for no enhancers 2025-12-08 20:28:06 +01:00
Rafał Dzięgiel
cbbd93bf04 clapper-gtk: av: Fix checks when inhibiting session 2025-12-08 20:00:42 +01:00
Rafał Dzięgiel
065b8698dc clapper-gtk: video: Fix sink property type checks
Sometimes property might return a subclass type when object is subclassed.
This especially happens with custom GdkPaintable implementations.
For this reason instead of comparing object type, check if it inherits what we want.
2025-12-08 19:55:38 +01:00
Rafał Dzięgiel
c1fd82f8d9 clapper-gtk: seek-bar: Honour accurate seek method on markers
When seeking to a marker position, logic always used NORMAL seek method since
FAST would be too inaccurate. This is fine, but when user sets preferred seek
method to ACCURATE we should use it always (including seeks to marker positions).
2025-12-08 19:52:04 +01:00
Rafał Dzięgiel
38cad126ff clapper: playlistable: Annotation fixes
Both cancellable and error cannot be NULL
2025-12-08 18:50:39 +01:00
Rafał Dzięgiel
c270920886 clapper: extractable: Annotation fixes
Both "cancellable" and "error" cannot be NULL.
Also add missing "harvest" annotation.
2025-12-08 18:49:36 +01:00
Rafał Dzięgiel
e91d9a71a7 doc: extractable: Document all common harvest media types 2025-12-08 18:47:50 +01:00
Rafał Dzięgiel
c7a793fbf0 Merge pull request #598 from Rafostar/playlistable-excludes
clapper: Playlistable support for string excludes
2025-12-06 19:19:21 +01:00
Rafał Dzięgiel
5e62e89aef doc: clapper: Document excludes keys in playlistables 2025-12-06 18:32:41 +01:00
Rafał Dzięgiel
d331641e88 clapper: playlist-demux: Support searching for exclusions
Sometimes data is similar and can be determined to be a playlist
by NOT including some specific syntax (e.g. HLS). For this reason
add ability to define an exclusion requirement for playlist parsers.
2025-12-06 18:32:32 +01:00
Rafał Dzięgiel
cff2cedf62 Merge pull request #597 from Rafostar/queue-alters
clapper: Queue and timeline alter changes
2025-12-06 16:53:49 +01:00
Rafał Dzięgiel
c3533ddec2 clapper: reactable: Add timeline insert/remove functions
Similar to queue alternation functions present in reactable, also
add ones for timeline alternations as these are a must for non-newly
created items.

For consistency, remove auto thread switching logic from insert/remove
functions in ClapperTimeline object. Such behavior is unexpected and
I feel it could lead to potential issues such as deadlocks.
2025-12-06 16:35:00 +01:00
Rafał Dzięgiel
e1d635e6dd clapper: Function to insert into queue after other item position 2025-12-06 16:24:21 +01:00
Rafał Dzięgiel
8f33737903 clapper: Deprecate Server feature
It was ported to Clapper Enhancers repo as a plugin called "Control Hub"
for better clarity what it does. Applications using old one should slowy
move towards using new implementation instead.
2025-12-02 18:20:52 +01:00
Rafał Dzięgiel
1bc1fbf54e clapper-app: Add Control Hub Enhancer support
When installed configure and use it instead of ClapperServer feature.
Also hide all server feature options in preferences when not being used.
2025-12-02 18:19:12 +01:00
Rafał Dzięgiel
f58e403c55 clapper: reactable: Add missing "message_received" docs note 2025-12-02 18:15:33 +01:00
Rafał Dzięgiel
c39c72c3ed clapper: media-item: Add missing version annotation 2025-12-02 18:13:27 +01:00
Rafał Dzięgiel
c20d22bb55 examples: Add audio level meter python example
An example showcasing how to make a simple audio visualization for L/R volume levels
2025-12-02 17:44:08 +01:00
Rafał Dzięgiel
54efc98166 clapper: Fix media items leak when parsing URI list
Unlike other array containers, GListStore append function
refs object internally, so unref afterwards is needed.
2025-11-25 20:24:18 +01:00
Rafał Dzięgiel
48d7f48212 clapper: Media item construction code cleanup
Slight cleanup related to media item construction.
Also fixes an issue where item ID was not being set when
created with g_object_new (what bindings usually use).
2025-11-25 20:20:49 +01:00
Rafał Dzięgiel
f0d27b01ef clapper: Modify URI of media item from GFile in-place
When creating item from GFile, modify URI in-place if needed (avoid a copy)
2025-11-25 19:13:57 +01:00
Rafał Dzięgiel
4cae6d4aed clapper: Use atomic operations for item ID generation 2025-11-25 19:02:24 +01:00
Rafał Dzięgiel
3c00dc61d6 Merge pull request #594 from Rafostar/devel
Playlists handling changes and bugfixes
2025-11-23 19:28:14 +01:00
Rafał Dzięgiel
50d7ae4b2a clapper: Add readable "redirect-uri" property to media item
Allow applications to inspect permanent redirect URIs of media items
in a similar manner as done for "cache-location" property
2025-11-23 18:46:51 +01:00
Rafał Dzięgiel
9e1622976a clapper: Make media item "cache-location" a readable property 2025-11-23 18:46:41 +01:00
Rafał Dzięgiel
872c049af8 clapper: Skip default cache location set at item construction
It is already NULL for newly created media item and otherwise
debug printing for this property being changed to NULL for each
media item is confusing
2025-11-23 14:45:13 +01:00