Commit Diff


commit - 62396e0bf828997ddd485f37b5147314c32b1966
commit + d980494c3c457d28ec2abc3ec6f1d63322164e4d
blob - 27bc45d9ad3145ae6bc6fcea367826db9f5bbd7f
blob + d83c272f4036d3971845202b54868eb60a2c17af
--- amused.c
+++ amused.c
@@ -444,3 +444,18 @@ main_enqueue(struct imsgev *iev, struct imsg *imsg)
 err:
 	imsg_compose_event(iev, IMSG_CTL_ERR, 0, 0, -1, err, strlen(err)+1);
 }
+
+void
+main_send_playlist(struct imsgev *iev)
+{
+	char path[PATH_MAX];
+	size_t i;
+
+	for (i = 0; i < playlist.len; ++i) {
+		strlcpy(path, playlist.songs[i], sizeof(path));
+		imsg_compose_event(iev, IMSG_CTL_SHOW, 0, 0, -1, path,
+		    sizeof(path));
+	}
+
+	imsg_compose_event(iev, IMSG_CTL_SHOW, 0, 0, -1, NULL, 0);
+}
blob - 77712b46d1856aa8ac18ce799cc122014d80b52b
blob + 216322d71c078e2bce9cd98b4170485a77a6fa9c
--- amused.h
+++ amused.h
@@ -89,6 +89,7 @@ int		main_send_player(uint16_t, int, const void *, uin
 void		main_playlist_advance(void);
 void		main_restart_track(void);
 void		main_enqueue(struct imsgev *, struct imsg *);
+void		main_send_playlist(struct imsgev *);
 
 /* ctl.c */
 __dead void	usage(void);
blob - fe847f1b67c4856351914c7ac73f301d173219ac
blob + 74413ce2af666d6de873bbc1e9f1b35f544e1c07
--- control.c
+++ control.c
@@ -300,6 +300,8 @@ control_dispatch_imsg(int fd, short event, void *bula)
 			playlist_truncate();
 			break;
 		case IMSG_CTL_SHOW:
+			main_send_playlist(&c->iev);
+			break;
 		default:
 			log_debug("%s: error handling imsg %d", __func__,
 			    imsg.hdr.type);
blob - 72a0a507cfe62b913fe1369d572579e508a8ee37
blob + fb2a7fafbdbde3b83797216021b5d2f91d15293d
--- ctl.c
+++ ctl.c
@@ -49,6 +49,7 @@ struct ctl_command ctl_commands[] = {
 	{ "restart",	RESTART,	ctl_noarg,	"" },
 	{ "add",	ADD,		ctl_add,	"files...", 1 },
 	{ "flush",	FLUSH,		ctl_noarg,	"" },
+	{ "show",	SHOW,		ctl_noarg,	"" },
 	{ NULL },
 };