Zander Brown
cfe10553b2
Stop overriding the images
2018-07-24 04:01:16 +03:00
Jordan Petridis
e77000076b
Player: Add custom icons for the forward and rewind buttons.
2018-07-23 21:28:29 +03:00
Jordan Petridis
ffa3e9ec9a
Add Sam to the artists credits.
2018-07-21 23:02:56 +00:00
Jordan Petridis
fbbe0d9ca9
EpisodeWidget: Tweak padding and spacing.
2018-07-21 21:14:07 +03:00
Jordan Petridis
454a9c7076
ShowWidget: Fix description padding.
2018-07-21 19:41:15 +03:00
Jordan Petridis
fc934ce8e1
ShowsView/Stack: Add some assertions.
2018-07-21 10:39:42 +03:00
Jordan Petridis
b9bcc28e0f
ShowMenu: Add debug assertions here too.
2018-07-21 10:30:46 +03:00
Jordan Petridis
b5ddca65f5
ShowWidget: Add some assertions.
2018-07-21 10:24:48 +03:00
Jordan Petridis
536805791e
ShowWidget: Move controls into a headerbar menu.
...
This fits better the HIG and allows for more flexibility in the way
the ShowWidget is implemented/designed.
2018-07-21 09:47:08 +03:00
Jordan Petridis
d50f5a0488
Player: Remove no longer relavant FIXME annotations.
2018-07-19 22:14:17 +03:00
Jordan Petridis
671a31a95a
Player: Improver human-facing error message.
2018-07-18 16:16:33 +03:00
Jordan Petridis
5913166a13
EpisodeWidget: Avoid Refference Cycles.
...
When passing an Rc into a gtk callback it causes
the Rust struct to be kept in memory even if the gtk+ wiget
was dropped.
Should have been using Weak refferences all along.
2018-07-17 20:42:45 +03:00
Jordan Petridis
6036562af2
HomeEpisode: Do not initialize the Image until it needs to be drawn.
2018-07-17 16:08:20 +03:00
Jordan Petridis
39e6c258d5
ShowsChild: do not initialize the cover until it needs to be drawn.
2018-07-17 16:04:04 +03:00
Jordan Petridis
1ab0291483
EpisodeWidget: Only initialize the episode once it's first drawn.
2018-07-17 15:57:52 +03:00
Jordan Petridis
fe024502d4
EpisodeWidget: Pass the EpisodeModel by value.
...
This is preparationg for being able to pass the model to
the connect_craw callback directly.
2018-07-16 16:01:32 +03:00
Jordan Petridis
2b6cca6bab
Version bump.
2018-07-04 17:26:56 +03:00
Jordan Petridis
b02b554105
Models: Change the Query suffix to Model.
...
This is maps better to the MVC naming convention.
2018-06-30 23:02:13 +03:00
Jordan Petridis
2d66ba918a
Models: Rename Podcat Models to Show to better match the UI code.
2018-06-30 22:47:58 +03:00
Jordan Petridis
f3fb27005a
Database: Rename the tables to better match the userfacing strings
2018-06-30 21:47:49 +03:00
Jordan Petridis
4b983e401d
PlayerWidget: Use weak ref counting for callbacks.
...
When we pass strong reference to callback closures, it prevents
the object to be dropped even if they gtk Widget was destroyed.
2018-06-27 23:06:27 +03:00
Jordan Petridis
8fb5c16bce
Upgrade crossbeam-channel.
2018-06-26 23:37:06 +03:00
Jordan Petridis
32e8f952fd
Even more lints!
2018-06-24 02:21:27 +03:00
Jordan Petridis
faeafc329c
PlayerWidget: Tweak rewind on pause behavior.
...
Only rewind on pause if the stream position is passed a certain point.
Else it can feel a bit weird if you just started the stream and it
immediatly rewinds.
2018-06-23 22:45:21 +00:00
Jordan Petridis
eeef0d13ff
PlayerWidget: Use the Gtk Main Context for the gst_player as well.
...
There is no longer a need for sending stuff to the main-thread `Action`
channel anymore thanks to this.
2018-06-23 22:45:21 +00:00
Jordan Petridis
ff2f43766e
PlayerWidget: Add a widget to change the playback speed of the stream.
...
Only 3 options are offered currently since the design of the feature
is still in progress and this is only a throw a away prototype.
2018-06-23 22:45:19 +00:00
Jordan Petridis
593d66ea54
EpisodeWidget: Mark an episode as played when the play button is hit.
...
Ideally episodes would be marked as played only when they have
passed a cerain point in their duration, but till thats ready
we should keep marking them.
2018-06-23 22:45:19 +00:00
Jordan Petridis
ee8cbbf7ef
PlayerWidget: Delete commented out stuff.
2018-06-23 22:45:19 +00:00
Jordan Petridis
474cb49d2c
PlayerInfo: Increase the size of the cover.
2018-06-23 22:45:19 +00:00
Jordan Petridis
590f815dc0
PlayerInfo: Limit label widths and add tooltips.
2018-06-23 22:45:18 +00:00
Jordan Petridis
3e2ab8e7ee
PlayerExt: Add a stop method.
...
Also connect on the gst_player::Player::connect_on_stream_end method.
The main reason for this is to be able to reset the slider bar to 0
upon a stream ends.
2018-06-23 22:45:18 +00:00
Jordan Petridis
a83270699f
PlayerWidget: refactor seek method.
2018-06-23 22:45:17 +00:00
Jordan Petridis
745afb32a3
PlayerWidget: Rewind on pause.
2018-06-23 22:45:17 +00:00
Jordan Petridis
2fcb8d915d
PlayerWidget: Remove an .expect() occurrence.
2018-06-23 22:45:17 +00:00
Jordan Petridis
a596b62a5f
PlayerWidget: Tweak gst_player config.
2018-06-23 22:45:16 +00:00
Jordan Petridis
55b1504aab
PlayerTimes: Display human-friendly values.
2018-06-23 22:45:16 +00:00
Jordan Petridis
c42822669b
PlayerTimes: Replace unnecessary Arc with Rc.
2018-06-23 22:45:16 +00:00
Jordan Petridis
b58d28c723
PlayerTimes: create wrapper struct of gst::ClockTime.
...
Now on_duration_changed requires a `Duration` type and
on_position_updated requires a `Position` type as oppose to
both accepting `ClockTime` as their argument.
2018-06-23 22:45:16 +00:00
Jordan Petridis
a6a34d8246
PlayerWidget: Group the button connect_clicked methods.
2018-06-23 22:45:16 +00:00
Jordan Petridis
0080399db2
PlayerWidget: Move on_duration_change and on_postion_updated methods.
...
Previously they depended on the player/pipeline to get the ClockTime
values, and only `PlayerWidget` had access to the `gst_player::Player`
object.
Now that it uses the gst_player methods instead of the raw pipeline
methods to get the ClockTime values it no longer needs access to the whole
PlayerWidget object.
2018-06-23 22:45:15 +00:00
Jordan Petridis
50b480ee23
PlayerWidget: Refactor the position_changed/updated callback.
...
It now uses gst_player::Player::connect_position_updated callback
to send, cross threads, the `position` value to the gtk main loop
which then updates the widget.
2018-06-23 22:45:15 +00:00
Jordan Petridis
da467b7837
PlayerWidget::seek handle the case where the offset might be none.
2018-06-23 22:45:15 +00:00
Jordan Petridis
70914b6c3e
PlayerWigdet: Refactor the way the duration label is updated.
...
This now connect's directly to gst_player::Player::connect_duration_changed
method.
The method then sends a cross-thread msg to the Action channel in the main loop that
then updates the widget.
2018-06-23 22:45:14 +00:00
Jordan Petridis
6c3fbfe0ca
PlayerWiget: refactor the seekbar connect signal.
2018-06-23 22:45:14 +00:00
Jordan Petridis
8e4b705e60
PlayerWidget: Log the gst warnings.
2018-06-23 22:45:14 +00:00
Jordan Petridis
48d80d3194
PlayerWidget: Remove unused vars an Enum.
2018-06-23 22:45:14 +00:00
Jordan Petridis
38768c777d
PlayerWidget: Connect the fast-forward and rewind buttons, sort of.
...
There appears to be a bug where it seeks 17 seconds instead of 10.
2018-06-23 22:45:13 +00:00
Jordan Petridis
1daa841f31
PlayerWidget: Connect to the errors callback.
2018-06-23 22:45:13 +00:00
Jordan Petridis
a9f81d0ad3
PlayerWidget: Refactor the timers callbacks.
...
Should use the gst_player::Player callbacks instead but they require
the Send Trait which means we would need to use SendCell and that's
not something I am going to deal with right now.
2018-06-23 22:45:13 +00:00
Jordan Petridis
76720424ab
PlayerWidget: Set a custom config for the gst Player.
2018-06-23 22:45:13 +00:00