spice: add display & head options
This allows to specify display and head to use, simliar to vnc. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1487663858-11731-1-git-send-email-kraxel@redhat.com
This commit is contained in:
		
							parent
							
								
									857e479552
								
							
						
					
					
						commit
						8bf69b499a
					
				@ -497,6 +497,12 @@ static QemuOptsList qemu_spice_opts = {
 | 
				
			|||||||
        },{
 | 
					        },{
 | 
				
			||||||
            .name = "seamless-migration",
 | 
					            .name = "seamless-migration",
 | 
				
			||||||
            .type = QEMU_OPT_BOOL,
 | 
					            .type = QEMU_OPT_BOOL,
 | 
				
			||||||
 | 
					        },{
 | 
				
			||||||
 | 
					            .name = "display",
 | 
				
			||||||
 | 
					            .type = QEMU_OPT_STRING,
 | 
				
			||||||
 | 
					        },{
 | 
				
			||||||
 | 
					            .name = "head",
 | 
				
			||||||
 | 
					            .type = QEMU_OPT_NUMBER,
 | 
				
			||||||
#ifdef HAVE_SPICE_GL
 | 
					#ifdef HAVE_SPICE_GL
 | 
				
			||||||
        },{
 | 
					        },{
 | 
				
			||||||
            .name = "gl",
 | 
					            .name = "gl",
 | 
				
			||||||
 | 
				
			|||||||
@ -1035,9 +1035,26 @@ static void qemu_spice_display_init_one(QemuConsole *con)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void qemu_spice_display_init(void)
 | 
					void qemu_spice_display_init(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    QemuConsole *con;
 | 
					    QemuOptsList *olist = qemu_find_opts("spice");
 | 
				
			||||||
 | 
					    QemuOpts *opts = QTAILQ_FIRST(&olist->head);
 | 
				
			||||||
 | 
					    QemuConsole *spice_con, *con;
 | 
				
			||||||
 | 
					    const char *str;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    str = qemu_opt_get(opts, "display");
 | 
				
			||||||
 | 
					    if (str) {
 | 
				
			||||||
 | 
					        int head = qemu_opt_get_number(opts, "head", 0);
 | 
				
			||||||
 | 
					        Error *err = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        spice_con = qemu_console_lookup_by_device_name(str, head, &err);
 | 
				
			||||||
 | 
					        if (err) {
 | 
				
			||||||
 | 
					            error_report("Failed to lookup display/head");
 | 
				
			||||||
 | 
					            exit(1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        spice_con = NULL;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0;; i++) {
 | 
					    for (i = 0;; i++) {
 | 
				
			||||||
        con = qemu_console_lookup_by_index(i);
 | 
					        con = qemu_console_lookup_by_index(i);
 | 
				
			||||||
        if (!con || !qemu_console_is_graphic(con)) {
 | 
					        if (!con || !qemu_console_is_graphic(con)) {
 | 
				
			||||||
@ -1046,6 +1063,9 @@ void qemu_spice_display_init(void)
 | 
				
			|||||||
        if (qemu_spice_have_display_interface(con)) {
 | 
					        if (qemu_spice_have_display_interface(con)) {
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (spice_con != NULL && spice_con != con) {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        qemu_spice_display_init_one(con);
 | 
					        qemu_spice_display_init_one(con);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user