diff --git a/podcasts-gtk/resources/gtk/player_toolbar.ui b/podcasts-gtk/resources/gtk/player_toolbar.ui index 3495956..d604615 100644 --- a/podcasts-gtk/resources/gtk/player_toolbar.ui +++ b/podcasts-gtk/resources/gtk/player_toolbar.ui @@ -339,6 +339,42 @@ Tobias Bernard 6 vertical 3 + + + 2.00× + True + True + False + 2 speed rate + center + center + True + normal_rate + + + True + True + 0 + + + + + 1.75× + True + True + False + 1.75 speed rate + center + center + True + normal_rate + + + True + True + 1 + + 1.50× @@ -354,7 +390,7 @@ Tobias Bernard True True - 0 + 2 @@ -372,7 +408,7 @@ Tobias Bernard True True - 1 + 3 @@ -390,7 +426,7 @@ Tobias Bernard True True - 2 + 4 diff --git a/podcasts-gtk/src/widgets/player.rs b/podcasts-gtk/src/widgets/player.rs index a8adda3..7c25af2 100644 --- a/podcasts-gtk/src/widgets/player.rs +++ b/podcasts-gtk/src/widgets/player.rs @@ -175,6 +175,8 @@ fn format_duration(seconds: u32) -> String { #[derive(Debug, Clone)] struct PlayerRate { + radio200: gtk::RadioButton, + radio175: gtk::RadioButton, radio150: gtk::RadioButton, radio125: gtk::RadioButton, radio_normal: gtk::RadioButton, @@ -275,6 +277,8 @@ impl Default for PlayerWidget { episode_id: RefCell::new(None), }; + let radio200 = builder.get_object("rate_2_00").unwrap(); + let radio175 = builder.get_object("rate_1_75").unwrap(); let radio150 = builder.get_object("rate_1_50").unwrap(); let radio125 = builder.get_object("rate_1_25").unwrap(); let radio_normal = builder.get_object("normal_rate").unwrap(); @@ -282,6 +286,8 @@ impl Default for PlayerWidget { let btn = builder.get_object("rate_button").unwrap(); let label = builder.get_object("rate_label").unwrap(); let rate = PlayerRate { + radio200, + radio175, radio150, radio125, radio_normal, @@ -581,6 +587,18 @@ impl PlayerWrapper { .connect_toggled(clone!(weak => move |_| { weak.upgrade().map(|p| p.on_rate_changed(1.50)); })); + + self.rate + .radio175 + .connect_toggled(clone!(weak => move |_| { + weak.upgrade().map(|p| p.on_rate_changed(1.75)); + })); + + self.rate + .radio200 + .connect_toggled(clone!(weak => move |_| { + weak.upgrade().map(|p| p.on_rate_changed(2.00)); + })); } fn connect_mpris_buttons(&self, sender: &Sender) {