console: move gui_update+gui_setup_refresh from vl.c into console.c

Pure code motion, no functional changes.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2013-03-13 12:17:13 +01:00
parent 36671fbd06
commit 98a9ad9082
3 changed files with 50 additions and 51 deletions

View File

@ -213,8 +213,6 @@ static inline int is_buffer_shared(DisplaySurface *surface)
return !(surface->flags & QEMU_ALLOCATED_FLAG); return !(surface->flags & QEMU_ALLOCATED_FLAG);
} }
void gui_setup_refresh(DisplayState *ds);
void register_displaychangelistener(DisplayState *ds, void register_displaychangelistener(DisplayState *ds,
DisplayChangeListener *dcl); DisplayChangeListener *dcl);
void unregister_displaychangelistener(DisplayChangeListener *dcl); void unregister_displaychangelistener(DisplayChangeListener *dcl);

View File

@ -166,6 +166,56 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds);
static void dpy_gfx_switch_surface(DisplayState *ds, static void dpy_gfx_switch_surface(DisplayState *ds,
DisplaySurface *surface); DisplaySurface *surface);
static void gui_update(void *opaque)
{
uint64_t interval = GUI_REFRESH_INTERVAL;
DisplayState *ds = opaque;
DisplayChangeListener *dcl;
dpy_refresh(ds);
QLIST_FOREACH(dcl, &ds->listeners, next) {
if (dcl->gui_timer_interval &&
dcl->gui_timer_interval < interval) {
interval = dcl->gui_timer_interval;
}
}
qemu_mod_timer(ds->gui_timer, interval + qemu_get_clock_ms(rt_clock));
}
static void gui_setup_refresh(DisplayState *ds)
{
DisplayChangeListener *dcl;
bool need_timer = false;
bool have_gfx = false;
bool have_text = false;
QLIST_FOREACH(dcl, &ds->listeners, next) {
if (dcl->ops->dpy_refresh != NULL) {
need_timer = true;
}
if (dcl->ops->dpy_gfx_update != NULL) {
have_gfx = true;
}
if (dcl->ops->dpy_text_update != NULL) {
have_text = true;
}
}
if (need_timer && ds->gui_timer == NULL) {
ds->gui_timer = qemu_new_timer_ms(rt_clock, gui_update, ds);
qemu_mod_timer(ds->gui_timer, qemu_get_clock_ms(rt_clock));
}
if (!need_timer && ds->gui_timer != NULL) {
qemu_del_timer(ds->gui_timer);
qemu_free_timer(ds->gui_timer);
ds->gui_timer = NULL;
}
ds->have_gfx = have_gfx;
ds->have_text = have_text;
}
void graphic_hw_update(QemuConsole *con) void graphic_hw_update(QemuConsole *con)
{ {
if (!con) { if (!con) {

49
vl.c
View File

@ -1626,55 +1626,6 @@ MachineInfoList *qmp_query_machines(Error **errp)
/***********************************************************/ /***********************************************************/
/* main execution loop */ /* main execution loop */
static void gui_update(void *opaque)
{
uint64_t interval = GUI_REFRESH_INTERVAL;
DisplayState *ds = opaque;
DisplayChangeListener *dcl;
dpy_refresh(ds);
QLIST_FOREACH(dcl, &ds->listeners, next) {
if (dcl->gui_timer_interval &&
dcl->gui_timer_interval < interval)
interval = dcl->gui_timer_interval;
}
qemu_mod_timer(ds->gui_timer, interval + qemu_get_clock_ms(rt_clock));
}
void gui_setup_refresh(DisplayState *ds)
{
DisplayChangeListener *dcl;
bool need_timer = false;
bool have_gfx = false;
bool have_text = false;
QLIST_FOREACH(dcl, &ds->listeners, next) {
if (dcl->ops->dpy_refresh != NULL) {
need_timer = true;
}
if (dcl->ops->dpy_gfx_update != NULL) {
have_gfx = true;
}
if (dcl->ops->dpy_text_update != NULL) {
have_text = true;
}
}
if (need_timer && ds->gui_timer == NULL) {
ds->gui_timer = qemu_new_timer_ms(rt_clock, gui_update, ds);
qemu_mod_timer(ds->gui_timer, qemu_get_clock_ms(rt_clock));
}
if (!need_timer && ds->gui_timer != NULL) {
qemu_del_timer(ds->gui_timer);
qemu_free_timer(ds->gui_timer);
ds->gui_timer = NULL;
}
ds->have_gfx = have_gfx;
ds->have_text = have_text;
}
struct vm_change_state_entry { struct vm_change_state_entry {
VMChangeStateHandler *cb; VMChangeStateHandler *cb;
void *opaque; void *opaque;