betetr playlist end behavior

This commit is contained in:
Erica Z 2024-10-18 22:32:21 +02:00
parent df3484f147
commit 2f99ae9edf
2 changed files with 12 additions and 7 deletions

View file

@ -40,6 +40,7 @@ class Playbin : GLib.Object {
private bool notify_next_playing; private bool notify_next_playing;
public signal void now_playing (); public signal void now_playing ();
public signal void stopped ();
public double position { get; private set; default = 0.0; } public double position { get; private set; default = 0.0; }
public double duration { get; private set; default = 0.0; } public double duration { get; private set; default = 0.0; }
@ -114,16 +115,16 @@ class Playbin : GLib.Object {
case 2: case 2:
assert (data.name == "playlist-pos"); assert (data.name == "playlist-pos");
if (data.format == Mpv.Format.NONE) {
this.play_queue_position = this.play_queue.get_n_items ();
} else {
if (data.parse_int64 () < 0) { if (data.parse_int64 () < 0) {
debug ("playlist-pos is null, sending stopped event");
this.play_queue_position = this.play_queue.get_n_items (); this.play_queue_position = this.play_queue.get_n_items ();
this.song = null;
this.state = PlaybinState.STOPPED;
this.stopped ();
} else { } else {
this.play_queue_position = (uint) data.parse_int64 (); this.play_queue_position = (uint) data.parse_int64 ();
}
}
debug (@"playlist-pos has been updated to $(this.play_queue_position)"); debug (@"playlist-pos has been updated to $(this.play_queue_position)");
}
break; break;
default: default:

View file

@ -82,6 +82,10 @@ class Ui.Window : Adw.ApplicationWindow {
} }
}); });
this.playbin.stopped.connect (() => {
this.playing_cover_art = Gdk.Paintable.empty (1, 1);
});
this.play_queue.selection.user_selected.connect ((position) => { this.play_queue.selection.user_selected.connect ((position) => {
this.playbin.select_track (position); this.playbin.select_track (position);
}); });