PCIQXLDevice *qxl = DO_UPCAST(PCIQXLDevice, pci, dev);
VGACommonState *vga = &qxl->vga;
PortioList *qxl_vga_port_list = g_new(PortioList, 1);
- DisplayState *ds;
int rc;
qxl->id = 0;
qxl->ssd.dcl.ops = &display_listener_ops;
qxl->ssd.dcl.con = vga->con;
- ds = qemu_console_displaystate(vga->con);
- register_displaychangelistener(ds, &qxl->ssd.dcl);
+ register_displaychangelistener(&qxl->ssd.dcl);
return rc;
}
return !(surface->flags & QEMU_ALLOCATED_FLAG);
}
-void register_displaychangelistener(DisplayState *ds,
- DisplayChangeListener *dcl);
+void register_displaychangelistener(DisplayChangeListener *dcl);
void update_displaychangelistener(DisplayChangeListener *dcl,
uint64_t interval);
void unregister_displaychangelistener(DisplayChangeListener *dcl);
// register vga output callbacks
dcl->ops = &dcl_ops;
- register_displaychangelistener(ds, dcl);
+ register_displaychangelistener(dcl);
// register cleanup function
atexit(cocoa_cleanup);
static void text_console_do_init(CharDriverState *chr, DisplayState *ds);
static void dpy_refresh(DisplayState *s);
+static DisplayState *get_alloc_displaystate(void);
static void gui_update(void *opaque)
{
g_free(surface);
}
-void register_displaychangelistener(DisplayState *ds,
- DisplayChangeListener *dcl)
+void register_displaychangelistener(DisplayChangeListener *dcl)
{
QemuConsole *con;
trace_displaychangelistener_register(dcl, dcl->ops->dpy_name);
- dcl->ds = ds;
- QLIST_INSERT_HEAD(&ds->listeners, dcl, next);
- gui_setup_refresh(ds);
+ dcl->ds = get_alloc_displaystate();
+ QLIST_INSERT_HEAD(&dcl->ds->listeners, dcl, next);
+ gui_setup_refresh(dcl->ds);
if (dcl->con) {
dcl->con->dcls++;
con = dcl->con;
dcl = (DisplayChangeListener *) g_malloc0(sizeof(DisplayChangeListener));
dcl->ops = &dcl_ops;
- register_displaychangelistener(ds, dcl);
+ register_displaychangelistener(dcl);
invalidate = 1;
}
gtk_widget_show_all(s->window);
- register_displaychangelistener(ds, &s->dcl);
+ register_displaychangelistener(&s->dcl);
global_state = s;
}
dcl = g_malloc0(sizeof(DisplayChangeListener));
dcl->ops = &dcl_ops;
- register_displaychangelistener(ds, dcl);
+ register_displaychangelistener(dcl);
mouse_mode_notifier.notify = sdl_mouse_mode_change;
qemu_add_mouse_mode_change_notifier(&mouse_mode_notifier);
ssd->dcl.ops = &display_listener_ops;
ssd->dcl.con = qemu_console_lookup_by_index(0);
- register_displaychangelistener(ds, &ssd->dcl);
+ register_displaychangelistener(&ssd->dcl);
qemu_spice_create_host_primary(ssd);
}
vnc_start_worker_thread();
vs->dcl.ops = &dcl_ops;
- register_displaychangelistener(ds, &vs->dcl);
+ register_displaychangelistener(&vs->dcl);
}