From ee735ee68792ab93af5c66368e046a77eec3fc6e Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Fri, 29 Mar 2024 10:55:31 +0100 Subject: piano: Do not return empty explanation. Instead return NULL and let the client handle it. --- src/libpiano/response.c | 3 ++- src/ui_act.c | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/libpiano/response.c b/src/libpiano/response.c index 42e2ffe..0be8872 100644 --- a/src/libpiano/response.c +++ b/src/libpiano/response.c @@ -520,7 +520,8 @@ PianoReturn_t PianoResponse (PianoHandle_t *ph, PianoRequest_t *req) { assert (reqData != NULL); json_object *explanations; - if (json_object_object_get_ex (result, "explanations", &explanations)) { + if (json_object_object_get_ex (result, "explanations", &explanations) && + json_object_array_length (explanations) > 0) { reqData->retExplain = malloc (strSize * sizeof (*reqData->retExplain)); strncpy (reqData->retExplain, "We're playing this track " diff --git a/src/ui_act.c b/src/ui_act.c index 30bd4e5..fa5c43b 100644 --- a/src/ui_act.c +++ b/src/ui_act.c @@ -271,8 +271,12 @@ BarUiActCallback(BarUiActExplain) { BarUiMsg (&app->settings, MSG_INFO, "Receiving explanation... "); if (BarUiActDefaultPianoCall (PIANO_REQUEST_EXPLAIN, &reqData)) { - BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain); - free (reqData.retExplain); + if (reqData.retExplain == NULL) { + BarUiMsg (&app->settings, MSG_ERR, "No explanation provided.\n"); + } else { + BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain); + free (reqData.retExplain); + } } BarUiActDefaultEventcmd ("songexplain"); } -- cgit v1.2.3