aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-11-02 10:29:01 +0100
committerThomas White <taw@physics.org>2021-11-02 10:29:01 +0100
commit9823cbca42e5f91b8669ea23b5085c1c18d82d4f (patch)
tree44bfcf796fa6676db6f26c5cbb927fd77c42dec9
parent4b8b19c0b96094d69488f918beece0651f6c7d60 (diff)
Playback display: Handle non-existent cue
-rw-r--r--src/starlet-playback-display.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/starlet-playback-display.c b/src/starlet-playback-display.c
index b0204e7..9ce5438 100644
--- a/src/starlet-playback-display.c
+++ b/src/starlet-playback-display.c
@@ -91,7 +91,11 @@ static gboolean draw_sig(GtkWidget *widget, cairo_t *cr,
cairo_save(cr);
cairo_translate(cr, OVERALL_BORDER, OVERALL_BORDER);
- snprintf(tmp, 32, "Current cue number: %.2f", pbd->current_cue_number);
+ if ( pbd->current_cue_number < 0.0 ) {
+ snprintf(tmp, 32, "Current cue doesn't exist!");
+ } else {
+ snprintf(tmp, 32, "Current cue number: %.2f", pbd->current_cue_number);
+ }
plot_text(cr, tmp, pc, fontdesc, 0.0, 0.0);
snprintf(tmp, 32, "Scanout rate: %.2f per second", pbd->scanout_rate);
plot_text(cr, tmp, pc, fontdesc, 0.0, 32.0);
@@ -222,7 +226,12 @@ static int symbol_eq(SCM symbol, const char *val)
static void handle_playback_status(struct playback_display *pbd, SCM list)
{
- pbd->current_cue_number = scm_to_double(scm_list_ref(list, scm_from_int(0)));
+ SCM cue_number = scm_list_ref(list, scm_from_int(0));
+ if ( scm_is_false(cue_number) ) {
+ pbd->current_cue_number = -1.0;
+ } else {
+ pbd->current_cue_number = scm_to_double(cue_number);
+ }
pbd->scanout_rate = scm_to_double(scm_list_ref(list, scm_from_int(1)));
}