* grub-core/kern/term.c (grub_checkkey): Replaced with ...
(grub_getkey_noblock): ... this. All users updated.
+2012-02-18 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Replace grub_checkkey with grub_getkey_noblock.
+
+ * grub-core/kern/term.c (grub_checkkey): Replaced with ...
+ (grub_getkey_noblock): ... this. All users updated.
+
2012-02-18 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/emu/console.c: Move to ...
grub_file_t file;
char buf[GRUB_DISK_SECTOR_SIZE];
grub_ssize_t size;
- int key = 0;
+ int key = GRUB_TERM_NO_KEY;
if (state[0].set)
dos = 1;
}
}
- while (grub_checkkey () >= 0 &&
- (key = grub_getkey ()) != GRUB_TERM_ESC)
+ while ((key = grub_getkey_noblock ()) != GRUB_TERM_ESC)
;
}
{
unsigned int to;
- if (note->pitch == T_FINE || grub_checkkey () >= 0)
+ if (note->pitch == T_FINE || grub_getkey_noblock () != GRUB_TERM_NO_KEY)
return 1;
grub_dprintf ("play", "pitch = %d, duration = %d\n", note->pitch,
}
to = grub_get_rtc () + BASE_TEMPO * note->duration / tempo;
- while (((unsigned int) grub_get_rtc () <= to) && (grub_checkkey () < 0))
+ while (((unsigned int) grub_get_rtc () <= to)
+ && (grub_getkey_noblock () == GRUB_TERM_NO_KEY))
;
return 0;
beep_off ();
- while (grub_checkkey () > 0)
- grub_getkey ();
-
return 0;
}
start = grub_get_time_ms ();
while (grub_get_time_ms () - start < ms)
- if (grub_checkkey () >= 0 && grub_getkey () == GRUB_TERM_ESC)
+ if (grub_getkey_noblock () == GRUB_TERM_ESC)
return 1;
return 0;
void (*grub_xputs) (const char *str) = grub_xputs_dumb;
-static int pending_key = GRUB_TERM_NO_KEY;
-
int
-grub_checkkey (void)
+grub_getkey_noblock (void)
{
grub_term_input_t term;
- if (pending_key != GRUB_TERM_NO_KEY)
- return pending_key;
-
if (grub_term_poll_usb)
grub_term_poll_usb ();
FOR_ACTIVE_TERM_INPUTS(term)
{
- pending_key = term->getkey (term);
- if (pending_key != GRUB_TERM_NO_KEY)
- return pending_key;
+ int key = term->getkey (term);
+ if (key != GRUB_TERM_NO_KEY)
+ return key;
}
- return -1;
+ return GRUB_TERM_NO_KEY;
}
int
grub_refresh ();
- grub_checkkey ();
- while (pending_key == GRUB_TERM_NO_KEY)
+ while (1)
{
+ ret = grub_getkey_noblock ();
+ if (ret != GRUB_TERM_NO_KEY)
+ return ret;
grub_cpu_idle ();
- grub_checkkey ();
}
- ret = pending_key;
- pending_key = GRUB_TERM_NO_KEY;
- return ret;
}
-
void
grub_refresh (void)
{
endtime = grub_get_time_ms () + 10000;
- while (grub_get_time_ms () < endtime)
- if (grub_checkkey () >= 0)
- {
- grub_getkey ();
- break;
- }
+ while (grub_get_time_ms () < endtime
+ && grub_getkey_noblock () == GRUB_TERM_NO_KEY);
grub_xputs ("\n");
}
return default_entry;
}
- if (grub_checkkey () >= 0 || timeout < 0)
- {
- c = grub_getkey ();
+ c = grub_getkey_noblock ();
+ if (c != GRUB_TERM_NO_KEY)
+ {
if (timeout >= 0)
{
grub_env_unset ("timeout");
void grub_putcode (grub_uint32_t code, struct grub_term_output *term);
int EXPORT_FUNC(grub_getkey) (void);
-int EXPORT_FUNC(grub_checkkey) (void);
+int EXPORT_FUNC(grub_getkey_noblock) (void);
void grub_cls (void);
void EXPORT_FUNC(grub_refresh) (void);
void grub_puts_terminal (const char *str, struct grub_term_output *term);