Rafał Dzięgiel
32995fc6a6
Sort chapters arr when switching to prev/next one
...
TOC representation obtained for some video files might be out of order. Sort them when switching between chapers, otherwise "next" chapter might not be the nearest one.
2021-04-22 15:48:16 +02:00
Rafał Dzięgiel
6b5240ddbc
Add missing return value
2021-04-22 15:35:16 +02:00
Rafał Dzięgiel
46ef6bcd1d
Use "const" for chapters keys
...
Array is reversed but variable holding it is not replaced in this function, so "const" can be used here
2021-04-22 15:28:19 +02:00
Rafał Dzięgiel
bd13a3c15a
Use Shift+Left/Right to switch video chapters
2021-04-22 14:40:21 +02:00
Rafał Dzięgiel
c9b2f25192
Act on key press, not release
2021-04-22 14:13:53 +02:00
Rafał Dzięgiel
6f39b3939a
Do not get ancestor on key release if unneeded
2021-04-21 18:14:13 +02:00
Rafał Dzięgiel
ee78ffb1e4
Fix seeks when window tiling with Super key
...
Super key is consumed by shell and never reaches app key press detection. Use that to fix seeking when tiling window by ignoring all key releases that did not have a key press beforehand.
2021-04-21 17:04:09 +02:00
Rafał Dzięgiel
bfbbc517d5
Small cleanup
2021-04-21 16:59:06 +02:00
Rafał Dzięgiel
deb273179f
Add append_playlist function
2021-04-21 14:55:20 +02:00
Rafał Dzięgiel
f0ea7ae798
Remove set_seek_mode check
...
We now use a custom GstPlayer fork that has it added
2021-04-18 15:28:55 +02:00
Rafał Dzięgiel
380236b8ba
Cleanup: do not extend player class twice
...
We only use the base class once, no need to have it separately then. Merge into single file.
2021-04-18 15:25:02 +02:00
Rafał Dzięgiel
9799783ee5
Use Gst.(M)SECOND constants instead of numbers
...
It makes code easier to read
2021-04-17 13:08:12 +02:00
Rafał Dzięgiel
3a998fb91e
YT: auto select best matching resolution for used monitor
2021-04-16 09:53:21 +02:00
Rafał Dzięgiel
28c1daf709
Save and offer resume only for local files
...
We do not know if the online URI still leads to the same file as before (or if different one leads to previous). Additionally we would also need to check if media is seekable. Disable for now to avoid problems.
2021-04-12 22:29:20 +02:00
Rafał Dzięgiel
aa49d25df5
Stop pipeline before replacing playlist
2021-04-12 19:28:12 +02:00
Rafostar
85804ea297
Move YT related functions from player to youtube script
2021-04-11 15:35:41 +02:00
Rafostar
7cf86e92eb
YT: resolve redirects on the Clapper side
...
Instead of providing URIs directly to GStreamer, follow redirects and provide that final URI. With this change souphttpsrc will not have to go through redirects from the beginning for each video segment.
2021-04-11 14:46:08 +02:00
Rafał Dzięgiel
8d7fb761f7
Always reset auto fullscreen boolean value
...
Otherwise we would keep checking the settings with each playlist file and accidentally entered fullscreen when that setting value was changed in middle of playback.
2021-04-09 19:58:33 +02:00
Rafał Dzięgiel
aec2166c11
Only auto fullscreen with new playlist
...
This fixes a bug when player would enter fullscreen when changing playlist item
2021-04-09 19:34:17 +02:00
Rafał Dzięgiel
c21b214477
Tweak how auto fullscreen option works
...
When auto fullscreen is enabled, enter fullscreen on each media load
unless player is in floating mode in which probably user wants it to remain.
2021-04-09 19:11:34 +02:00
Rafał Dzięgiel
d9939a94c2
Fix some error messages not being displayed
2021-04-09 18:49:44 +02:00
Rafał Dzięgiel
a39c67e5e7
Check if local subtitle file exists before loading it
...
Otherwise GStreamer will error out and playback will stop. Non-existing subtitle file is common on Flatpak when user tries to open/drop a file from a folder that container does not have access to.
2021-04-09 10:55:06 +02:00
Rafał Dzięgiel
b15b94fc90
Convenient ways of opening external subtitles
...
Play video with external subtiles by:
* selecting and opening both video+subs from file chooser/manager
* dropping subtitles file on player window
* opening subtiles from file chooser/manager while video plays
* send their file path/uri to player via WebSocket message
2021-04-07 16:33:21 +02:00
Rafał Dzięgiel
7f69bee11c
Move all file operations code to single file
2021-04-01 21:58:50 +02:00
Rafał Dzięgiel
e89b3599c9
Remove "escape" key handler
...
It was conflicting with GTK build-in escape key functionality for closing popovers
2021-03-19 10:29:44 +01:00
Rafał Dzięgiel
c89d488c30
Prefetch YouTube video info on hover
...
Speed up loading of YouTube videos by downloading and parsing their info before video is dropped into player.
2021-03-12 13:05:58 +01:00
Rafał Dzięgiel
4375077dbc
Decode custom video title from info
...
The values in JSON info are URI encoded with "+" signs, add custom decode function that decodes them.
2021-03-11 18:49:08 +01:00
Rafał Dzięgiel
fceb8ff70a
YouTube support. Closes #46
2021-03-11 17:34:54 +01:00
Rafał Dzięgiel
86d365872a
API: operate on cubic volume scale
...
Instead converting volume inside GJS, simplify things by making API operate on cubic volume scale.
2021-02-24 08:42:27 +01:00
Rafał Dzięgiel
a309ef6099
Make remote app minimize, maximize and close buttons affect Clapper
2021-02-23 11:56:02 +01:00
Rafał Dzięgiel
6950cf1bbb
Do not import GstClapper for remote app
...
No need to import and initialize whole GStreamer for web application if the only thing needed there is a single enum.
2021-02-22 16:34:08 +01:00
Rafał Dzięgiel
834a690903
Tweak overlay revealers show/hide logic
2021-02-18 17:13:38 +01:00
Rafał Dzięgiel
12591e106f
Move event controllers to widget and add them to top revealer
2021-02-17 16:31:37 +01:00
Rafał Dzięgiel
e79ce58b26
Rename "fullscreenMode" boolean to "isFullscreenMode"
2021-02-17 12:28:45 +01:00
Rafał Dzięgiel
887f189b60
Save window size only when windowed and not in floating mode
2021-02-17 12:20:44 +01:00
Rafał Dzięgiel
91703cf7cf
Hide both cursor and overlays with a single timer
...
Simplify hide controls logic code by using single timer to hide both cursor and video overlays at once
2021-02-14 14:07:38 +01:00
Rafał Dzięgiel
8064bab6a2
Remove old floating mode leftovers
...
Clapper has now much simpler floating mode. This overcomplicated code is not needed anymore.
2021-02-13 20:19:08 +01:00
Rafał Dzięgiel
1d16d3e2ac
Add OSD headerbar and transition to floating mode
2021-02-13 17:19:03 +01:00
Rafał Dzięgiel
a597de5481
Swipe when fullscreen to seek or adjust volume
2021-02-10 23:11:46 +01:00
Rafał Dzięgiel
1ee0db1cbc
Also do not save resume info for very long titles (random URIs)
2021-02-09 17:19:42 +01:00
Rafał Dzięgiel
d1f32955b8
Do not save resume info under certain conditions
...
Do not save when video is short, just started or almost finished
2021-02-08 22:16:49 +01:00
Rafał Dzięgiel
d952f37b0e
Prevent saving unfinished video info when autoclosing
2021-02-08 21:30:52 +01:00
Rafał Dzięgiel
15eeea2872
Save resume info of last unfinished video
2021-02-08 21:16:13 +01:00
Rafał Dzięgiel
c2808e7d9a
Update position slider right after seek is done
2021-02-08 18:50:29 +01:00
Rafał Dzięgiel
0167f0ab4e
Draw black background from CSS when GL fails
...
When GLArea gets a GL error it leaves user with nothing, but transparent background with error text in the middle. Make it look somewhat decent by drawing black background for the not working video widget.
2021-02-05 19:15:15 +01:00
Rafał Dzięgiel
dea77cc39f
API: notify about speed value reset on STOP
2021-01-28 17:39:52 +01:00
Rafał Dzięgiel
bee1889376
Port app to the new GstClapper API
2021-01-28 00:23:01 +01:00
Rafał Dzięgiel
f9c8a3ce33
Do not try to dispose non-existing window
2021-01-22 11:46:50 +01:00
Rafał Dzięgiel
340cb36ecd
Move "clapper_src" dir to "src"
...
The "clapper_src" directory name was unusual. This was done to make it work as a widget for other apps. Now that this functionality got removed it can be named simply "src" as recommended by guidelines.
2021-01-21 14:19:04 +01:00
Rafostar
918ba34885
Add Gtk app
2020-08-31 20:47:10 +02:00