static int handleInput (void) { int processed = 0; suspendCommandQueue(); if (!isSuspended) { apiClaimDriver(); if (processInput()) processed = 1; apiReleaseDriver(); } #ifdef ENABLE_API else if (apiStarted) { switch (readBrailleCommand(&brl, KTB_CTX_DEFAULT)) { case BRL_CMD_RESTARTBRL: restartBrailleDriver(); break; default: processed = 1; case EOF: break; } } #endif /* ENABLE_API */ resumeCommandQueue(); return processed; }
static GIO_INPUT_HANDLER(handleBrailleInput) { int processed = 0; { int error = parameters->error; if (error) { logActionError(error, "braille input monitor"); brl.hasFailed = 1; return 0; } } suspendCommandQueue(); if (!brl.isSuspended) { if (brl.api) brl.api->claimDriver(); if (processInput()) processed = 1; if (brl.api) brl.api->releaseDriver(); } #ifdef ENABLE_API else if (brl.api && brl.api->isStarted()) { switch (readBrailleCommand(&brl, KTB_CTX_DEFAULT)) { case BRL_CMD_RESTARTBRL: brl.hasFailed = 1; break; default: processed = 1; case EOF: break; } } #endif /* ENABLE_API */ resumeCommandQueue(); return processed; }