int repeater_run(struct repeater_config *config) { int status; struct repeater repeater; status = init(&repeater, config); if (status == 0) { /* Start tasks and wait for a key press to shut down */ status = start_tasks(&repeater); if (status < 0) { fprintf(stderr, "Failed to start tasks.\n"); } else { printf("Repeater running. Press enter to stop.\n"); getchar(); } /* Stop tasks */ stop_tasks(&repeater); deinit(&repeater); } return status; }
int repeater_run(struct repeater_config *config) { int status; char key; struct repeater repeater; status = term_init(); if (status != 0) { return 1; } status = init(&repeater, config); if (status == 0) { /* Start tasks and wait for a key press to shut down */ status = start_tasks(&repeater); if (status < 0) { fprintf(stderr, "Failed to start tasks.\r\n"); } else { repeater_help(); do { key = get_key(); repeater_handle_key(&repeater, key); } while (key != KEY_QUIT); } /* Stop tasks */ stop_tasks(&repeater); deinit(&repeater); } return term_deinit(); }