static void
_show_challenge (mnemon_t *mnemon,
- challenge_type_t challenge_type,
+ const char *challenge_type,
const char *challenge)
{
const char *program;
char *command;
- if (challenge_type == CHALLENGE_TYPE_TEXT) {
+ if (strcmp (challenge_type, "text") == 0) {
printf ("%s\n", challenge);
return;
}
* have a custom external program that accepts image filenames on
* stdin.
*/
- switch (challenge_type) {
- case CHALLENGE_TYPE_TEXT:
- ASSERT_NOT_REACHED;
- break;
- case CHALLENGE_TYPE_IMAGE:
+ if (strcmp (challenge_type, "image") == 0) {
program = "xli -gamma 2.2";
- break;
- case CHALLENGE_TYPE_AUDIO:
+ } else if (strcmp (challenge_type, "audio") == 0) {
program = "play";
- break;
- case CHALLENGE_TYPE_MIDI:
+ } else if (strcmp (challenge_type, "midi") == 0) {
program = "timidity -Os";
- break;
- case CHALLENGE_TYPE_TEXT_TO_SPEECH:
+ } else if (strcmp (challenge_type, "text-to-speech") == 0) {
program = "mnemon-tts";
- break;
+ } else {
+ fprintf (stderr, "Error: unsupported challenge type: %s\n",
+ challenge_type);
+ exit (1);
}
xasprintf (&command, "%s %s/%s >/dev/null 2>&1 &",
static void
_hide_challenge (unused (mnemon_t *mnemon),
- challenge_type_t challenge_type)
+ const char *challenge_type)
{
char * command;
- if (challenge_type != CHALLENGE_TYPE_IMAGE)
+ if (strcmp (challenge_type, "image"))
return;
/* XXX: And this is just embarrassing (obviously wrong in several
category->order = CATEGORY_ORDER_RANDOM;
category->time_limit = 0.0;
category->bin_zero_head = 0;
- category->challenge_type = CHALLENGE_TYPE_TEXT;
+ category->challenge_type = xstrdup("");
category->repeat = 0;
}
free (category->items);
free (category->name);
+
+ free (category->challenge_type);
}
static void
fprintf (file, "time = %f\n\n",
category->time_limit);
- fprintf (file, "challenge = ");
- switch (category->challenge_type) {
- case CHALLENGE_TYPE_TEXT:
- fprintf (file, "text");
- break;
- case CHALLENGE_TYPE_IMAGE:
- fprintf (file, "image");
- break;
- case CHALLENGE_TYPE_AUDIO:
- fprintf (file, "audio");
- break;
- case CHALLENGE_TYPE_MIDI:
- fprintf (file, "midi");
- break;
- case CHALLENGE_TYPE_TEXT_TO_SPEECH:
- fprintf (file, "text-to-speech");
- break;
- }
- fprintf (file, "\n\n");
+ fprintf (file, "challenge = %s\n\n", category->challenge_type);
fprintf (file, "repeat = %d\n\n", category->repeat);
exit (1);
}
} else if (strcmp (name, "challenge") == 0) {
- if (strcmp (value, "text") == 0) {
- category->challenge_type = CHALLENGE_TYPE_TEXT;
- } else if (strcmp (value, "image") == 0) {
- category->challenge_type = CHALLENGE_TYPE_IMAGE;
- } else if (strcmp (value, "audio") == 0) {
- category->challenge_type = CHALLENGE_TYPE_AUDIO;
- } else if (strcmp (value, "midi") == 0) {
- category->challenge_type = CHALLENGE_TYPE_MIDI;
- } else if (strcmp (value, "text-to-speech") == 0) {
- category->challenge_type = CHALLENGE_TYPE_TEXT_TO_SPEECH;
- } else {
- fprintf (stderr, "Unknown value for \"challenge\" option \"%s\" at %s:%d\n",
- value, path, line_count);
- exit (1);
- }
+ /* XXX: Need to switch to talloc here. */
+ free (category->challenge_type);
+ category->challenge_type = xstrdup (value);
} else if (strcmp (name, "repeat") == 0) {
if (strcmp (value, "0") == 0)
category->repeat = 0;