GenieDialog_setStopSequence API

Users can set a list of stop sequences in dialog config initially. Along with that, Genie provides the ability of updating stop sequences dynamically at runtime.

The API to achieve this:

/**
* @brief A function to set/update the list of stop sequences of a dialog. Old sequences if any are discarded.
*        Call with a nullptr or an empty JSON or an empty string to reset to no stop sequence.
*
* @param[in] dialogHandle A dialog handle.
*
* @param[in] newStopSequences A JSON string with list of new stop sequences. Must be null terminated.
*
* @return Status code:
*         - GENIE_STATUS_SUCCESS: API call was successful.
*         - GENIE_STATUS_ERROR_INVALID_HANDLE: Dialog handle is invalid.
*         - GENIE_STATUS_ERROR_JSON_FORMAT: JSON string is invalid.
*/
GENIE_API
Genie_Status_t GenieDialog_setStopSequence(const GenieDialog_Handle_t dialogHandle,
                                           const char* newStopSequences);

Example on how to update stop sequences in between queries

//Create dialog config
GenieDialogConfig_Handle_t dialogConfigHandle = NULL;
GenieDialogConfig_createFromJson(dialogConfigStr, &dialogConfigHandle);

//Create dialog
GenieDialog_Handle_t dialogHandle = NULL;
GenieDialog_create(dialogConfigHandle, &dialogHandle);

//Query with original config
GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback);

//Update stop sequences using JSON string
const char newStopSequences[] = "{\"stop-sequence\":[\".\",\",\"]}";
GenieDialog_setStopSequence(dialogHandle, newStopSequences);

//Query with updated stop sequences
GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback);

//Fallback to no stop sequence, using any of the below
const char noStopSequences[] = "{}"; //empty json
GenieDialog_setStopSequence(dialogHandle, noStopSequences);

const char noStopSequences2[] = "{\"stop-sequence\":[\"\"]}"; //empty string in json
GenieDialog_setStopSequence(dialogHandle, noStopSequences2);

GenieDialog_setStopSequence(dialogHandle, nullptr); //null pointer