Get the [class@Clapper.
Player] that this reactable is reacting to.
This is meant to be used in implementations where reaction goes the other way around (from enhancer plugin to the player). For example some external event needs to influence parent player object like changing its state, seeking, etc.
Note that enhancers are working in a non-main application thread, thus if you need to do operations on a [class@Clapper.Queue] such as
adding/removing items, you need to switch thread first. Otherwise this will not be thread safe for applications that use single threaded
toolkits such as GTK. You can do this manually or use provided reactable convenience functions.
Due to the threaded nature, you should also avoid comparisons to the current properties values in the player or its queue. While these are thread safe, there is no guarantee that values/objects between threads are still the same in both (or still exist). For example, instead of using [property@Clapper.Queue:current_item], monitor it with implemented [vfunc@Clapper.Reactable.played_item_changed] instead, as these functions are all serialized into your implementation thread.
| this |
|
A reference to the parent Player. |