Commit Graph

1165 Commits

Author SHA1 Message Date
Rafostar
b446fb943e Hide track selection buttons without contents 2020-09-10 21:21:35 +02:00
Rafostar
ed5d449142 Support for multiple media files
This enables support for starting media player with more than one file path specified. When a file playback finishes, next is loaded automatically.
2020-09-10 19:53:04 +02:00
Rafostar
b8ed6b32dc Reuse old redio buttons
When a media is changed, normally one would expect to create new radio buttons with video/audio/subtitle tracks names corresponding to current video, but this is inefficient. Destroying objects just to create similiar ones again does take a long time and might lead to memory leaks. That is why a better and faster approach is to simply edit already available objects to match our expectations instead. This commit does just that for tracks radio buttons.
2020-09-10 19:50:41 +02:00
Rafostar
e9ec155e7b Move fullscreen and menu buttons to header bar
Follow other GNOME apps designs by having fullscreen button on the right side of window header bar. The control panel had too many buttons already and we still need to make some space for playlist. This way "fullscreen" button will be on top bar while windowed and "unfullscreen" button will appear on the bottom right only when player entered fullscreen mode.
2020-09-10 14:24:02 +02:00
Rafostar
557cbc11e2 Use filename as title when media info doesn't have one 2020-09-10 11:34:50 +02:00
Rafostar
3fb370e1d0 Fix not updated volume icon on startup 2020-09-10 10:41:37 +02:00
Rafostar
06914db0da Add header bar with media title and path 2020-09-10 10:26:20 +02:00
Rafostar
a9ac872c98 Do not hide controls in fullscreen while navigating it 2020-09-09 22:56:11 +02:00
Rafostar
0c5278e844 Make button popovers appear above the controls bar 2020-09-09 21:40:16 +02:00
Rafostar
ab11d52a68 Recreate volume button from scratch
Create volume button with popover instead of using GTK provided volume button.

Creating new button with only needed elements is more efficient then removing unneeded items from pre-made volume button. This should also increase performance a little when changing volume, because now we generate new icon only when a change is needed. In pre-made button icon is regenerated on each volume change.
2020-09-09 21:34:32 +02:00
Rafostar
22e8e44316 Create TODO.md
Note all collected ideas from reddit comments.
2020-09-09 10:28:47 +02:00
Spirit
b65666d4be Clean up meson warnings (#2)
Co-authored-by: Florian Singer <florian@spiritXPS.localdomain>
2020-09-09 09:26:34 +02:00
Rafostar
edcc7b71b9 Add meson build system (#1)
Initial meson build system support. We do not create .desktop file yet, but we need an option to open media files from GUI first anyway.
2020-09-08 19:55:59 +02:00
Rafostar
fd22457857 Reduce fullscreen position scale height a little bit 2020-09-08 10:31:22 +02:00
Rafostar
1c5759af88 Remove "Performace Comparison" from readme
Looks like nowadays VA-API is force disabled in Totem, in which case this comparison does not seem fair.
2020-09-08 09:45:22 +02:00
Rafostar
649ff7682c Support loading files using full or relative paths 2020-09-08 08:58:43 +02:00
Rafostar
689edd9cf3 Always start unmuted 2020-09-07 11:54:57 +02:00
Rafostar
ba37e66054 Add performace comparison to readme 2020-09-07 11:48:07 +02:00
Rafostar
a8fa4bc6de Tweak fullscreen menu appearance 2020-09-07 11:27:06 +02:00
Rafostar
7626813ff3 Update README.md 2020-09-06 14:12:19 +02:00
Rafostar
374e3cc33a Show "Unknown" when language is undetected 2020-09-06 12:44:24 +02:00
Rafostar
f5db250486 Load media after player is drawn
Loading file too early might lead to Xorg related crash. We must first make sure the player widget is fully drawn, before we start drawing video frames.
2020-09-06 12:18:37 +02:00
Rafostar
da652e1ec5 Skip setting player option when unsupported 2020-09-06 10:34:27 +02:00
Rafostar
d8d342a956 Make everything on fullscreen bigger (TV mode) 2020-09-06 10:18:53 +02:00
Rafostar
7d2edec553 Show playback time and switch to dark mode when fullscreen 2020-09-05 13:49:44 +02:00
Rafostar
e76d1c9e6e Add video, audio and subtitle track selection 2020-09-04 23:43:51 +02:00
Rafostar
24e84a397b Assign created elements to player keys 2020-09-04 23:38:29 +02:00
Rafostar
4e235a0e9b Add controls background on fullscreen 2020-09-04 10:47:05 +02:00
Rafostar
54bbcd2eb1 Make all interface buttons flat 2020-09-03 23:08:32 +02:00
Rafostar
e5e06336f3 Add slide animation for fullscreen controls 2020-09-03 21:17:43 +02:00
Rafostar
3d9bab0578 Add overlay for controls when fullscreen
When player is fullscreen playback controls are shown on top of video (at screen bottom). When windowed, controls are shown below the video instead.
2020-09-03 20:01:26 +02:00
Rafostar
2bef72fd95 Change pause icon to play on stopped video 2020-09-03 13:02:29 +02:00
Rafostar
28264da424 Prevent system from lock/suspend when video is playing 2020-09-03 12:53:24 +02:00
Rafostar
f6f2a2f4e4 Add some easy way to install
I know that this should be done using some sort of build system (like meson), but the player is still far from finished and a basic install script should be sufficient for the time being, if anyone wishes to test it.
2020-09-03 11:33:42 +02:00
Rafostar
7d2b1f1118 Add custom debug script with Gst version check 2020-09-03 10:43:07 +02:00
Rafostar
176ddf1cc2 Bind keyboard up/down arrow keys to volume 2020-09-03 10:40:58 +02:00
Rafostar
ec68db73c9 Do not update position slider during buffering 2020-09-03 07:29:02 +02:00
Rafostar
9f18ec35b2 Tweak position and volume slider values 2020-09-02 22:26:48 +02:00
Rafostar
70ec6311c0 Add seeking on slider drop and make it default behaviour
Seeking during slider drag is very CPU and HDD intensive task. We are requesting the player to keep seeking in VERY short amounts of time. This can be performed more effectively by doing a single seek after slider drop. Since this is a different behaviour then usually in media players, I am making this optional (enabled by default).
2020-09-02 18:31:22 +02:00
Rafostar
fd2ad7e596 Listen for key presses on window instead of player
This fixes a GNOME bug where sometimes key press events are not emited
2020-09-02 16:56:58 +02:00
Rafostar
c2bc1e39cc Add "addButton" convenience function 2020-09-02 16:54:58 +02:00
Rafostar
4480bed3bc Auto hide cursor on player window 2020-09-02 11:57:16 +02:00
Rafostar
116dc4dd20 Destroy removed volume control buttons 2020-09-02 09:12:17 +02:00
Rafostar
2333d8fc1c Fix drag sometimes starting from wrong button 2020-09-02 09:06:34 +02:00
Rafostar
7307845646 Initial video playlist support
For now player will load only first video from playlist. Good enough for testing. Full playlist support will be added later on.
2020-09-01 23:46:49 +02:00
Rafostar
9f04b74e05 Fix volume button icon behaviour 2020-09-01 23:43:40 +02:00
Rafostar
647ad3f1ec Drag application from video (MPV like window dragging) 2020-09-01 19:48:25 +02:00
Rafostar
26a571408b Add some keys, buttons and scrolls bindings 2020-09-01 17:50:59 +02:00
Rafostar
fa12f15a9a Start loop optionally 2020-09-01 17:49:24 +02:00
Rafostar
326ba66da0 Spread volume icon changes evenly 2020-09-01 17:46:47 +02:00