Jordan Petridis
f337488951
Readme: Update the dependencies needed
2018-06-25 17:35:54 +00:00
Jordan Petridis
f104f11613
Fix trivial_cast lint warning.
2018-06-24 20:01:27 +03:00
Jordan Petridis
32e8f952fd
Even more lints!
2018-06-24 02:21:27 +03:00
Jordan Petridis
c7cfc81c6f
Merge branch 'embedded-player' into 'master'
...
Embedded player
Closes #38
See merge request World/hammond!40
2018-06-23 23:03:39 +00: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
0686fca3b0
h-gtk: Increase the polling rate of the main thread channel.
...
When dragging the PlayerWidget.timer.slider widget PlayerDurationChanged
messaged pile up in the channel and get out of sync with the
slider.connect_value_changed() signal.
2018-06-23 22:45:21 +00:00
Jordan Petridis
79b425326b
Update Changelog.
2018-06-23 22:45:20 +00:00
Jordan Petridis
2d879b9604
PlayerRate: Change the container widget to GtkBox and add padding.
2018-06-23 22:45:20 +00:00
Jordan Petridis
38eb14b013
Delete commented out code.
2018-06-23 22:45:19 +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
a93d5246d2
PlayerInfo: Swap bold properties of the labels.
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
Jordan Petridis
a7b639a66b
PlayerWidget: Wire the PlayerTimes labels and scale.
...
Adapted from gstreamer basic-tutorial-5.
https://gstreamer.freedesktop.org/documentation/tutorials/basic/toolkit-integration.html
2018-06-23 22:45:12 +00:00
Jordan Petridis
1b78d221b6
PlayerWidget: Wire the play and pause buttons and add style classes to the Info Labels.
...
This also includes the yak shaving of a ::new and ::inti methods.
2018-06-23 22:45:12 +00:00
Jordan Petridis
ac7b1a3c66
CI: disable debian builds fow now.
...
Debian stable provides gst 1.10 but the gst-rs bindings requiere
v 1.12 to build.
I will make custom images Soon™
2018-06-23 22:45:12 +00:00
Jordan Petridis
039c3182aa
h-gtk: Remove unused .ui file.
2018-06-23 22:45:12 +00:00
Jordan Petridis
55d94b1844
CI: Add gstreamer as a dep for the debian build.
2018-06-23 22:45:11 +00:00
Jordan Petridis
3baa69b43b
cargo fmt
2018-06-23 22:45:11 +00:00
Jordan Petridis
5f92df97e6
PlayerWidget: Wire the widget to the GUI.
...
This commit also removes the majority of the playback widget,
though most of it's code will make it to the PlayerWidget once
it starts to get wired to the gtreamer_plaer::Player.
2018-06-23 22:45:11 +00:00
Jordan Petridis
47f297c495
PlayerWidget: Intial draft of the the PlayerExt trait.
2018-06-23 22:45:11 +00:00
Jordan Petridis
58f09ba150
h-gtk: Bind the new player widget to code.
2018-06-23 22:45:10 +00:00
Jordan Petridis
1142948945
Rework the player widget.
2018-06-23 22:45:10 +00:00
Zander Brown
9528160b03
Start hooking things up
...
Still doesn't accept input
2018-06-23 22:45:10 +00:00
Zander Brown
4afdc54914
Initial playback control area
...
(not plumbed in)
2018-06-23 22:45:10 +00:00
Zander Brown
09973a6a56
Initial playback
...
... and not a lot more. Hit play and the podcast will play, press play on something else and that will play instead
2018-06-23 22:45:09 +00:00
Jordan Petridis
f56bf3afef
Enable more rustc lints
2018-06-23 21:02:19 +03:00