summaryrefslogtreecommitdiff
path: root/src/modules/rkt
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-06-15 19:11:35 -0700
committerVito Caputo <vcaputo@pengaru.com>2023-06-15 19:11:35 -0700
commit68cc907e6a8180092f185be1e611d5a8b6057056 (patch)
tree871b9b31c01e22ce2807c6c33f8b4235b3ad9cba /src/modules/rkt
parent3da9ffaefe9c5557cd8eb8c61e34471b19ca0c5f (diff)
modules/rkt: end the stream on scene 99999
This conditionally will end the stream on scene 99999 if connect=off (playback mode) When connect=on it'll just make it show an "EXIT SCENE" diagnostic instead of the "NO SCENE" message. Now you just stick 99999 in the rkt:scene track to end the show. It's assumed 99999 scenes will never be needed...
Diffstat (limited to 'src/modules/rkt')
-rw-r--r--src/modules/rkt/rkt.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/modules/rkt/rkt.c b/src/modules/rkt/rkt.c
index 2cc031d..3316db5 100644
--- a/src/modules/rkt/rkt.c
+++ b/src/modules/rkt/rkt.c
@@ -297,10 +297,16 @@ static void rkt_render_fragment(til_module_context_t *context, til_stream_t *str
unsigned scene;
scene = (unsigned)sync_get_val(ctxt->scene_track, ctxt->rocket_row);
- if (scene < ((rkt_setup_t *)context->setup)->n_scenes)
+ if (scene < ((rkt_setup_t *)context->setup)->n_scenes) {
til_module_render(ctxt->scenes[scene].module_ctxt, stream, ticks, fragment_ptr);
- else {
- txt_t *msg = txt_newf("%s: NO SCENE @ %u", context->setup->path, scene);
+ } else if (scene == 99999 && !((rkt_setup_t *)context->setup)->connect) {
+ /* 99999 is treated as an "end of sequence" scene, but only honored when connect=off (player mode) */
+ til_stream_end(stream);
+ } else {
+ txt_t *msg = txt_newf("%s: %s @ %u",
+ context->setup->path,
+ scene == 99999 ? "EXIT SCENE" : "NO SCENE",
+ scene);
/* TODO: creating/destroying this every frame is dumb, but
* as this is a diagnostic it's not so important.
© All Rights Reserved