spice-gtk-0.35关于usb方面的代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FlayHigherGT/article/details/85261810

spice-gtk-0.35是里面有一个spicy的测试工具,可以直接用来远程连接虚拟机代替remote-viewer,但是spicy远程连接的虚拟机却不能自动加载插入的usb设备,下面简单解析一下spice-gtk-0.35中关于usb的代码

usb-device-manager.c

这个文件和spice-session是关联的,session启动的时候起来一个spice-channel,其实就是usb-device-manager.c(这个类似一个channel-display.c)里面的,里面有一个spice_usb_device_manager_add_dev这个函数就是channel检测到有usb之后执行的任务。函数里面有一个判断 if (priv->auto_connect)如果这个执行,就会自动连接usb的,如果不执行那就需要在上面的input的menu菜单里面点击usb设置选择usb以后才能重定向usb     spice_usb_device_manager_add_dev最后发射:

    g_signal_emit(self, signals[DEVICE_ADDED], 0, device);信号传输给usb-deivce-widget.c里面

usb-device-widget.c

在这个里面收到信号的时候就会在这个widget类中添加这个usb的按钮,如果说上面不执行auto_connect那就需要你点击按钮以后才会将usb重定向,如果上面是,那就直接给你按钮按下去了,自动重定向连接usb。

spicy.c

这个里面是主窗口,主窗口上面的菜单栏里面input可以点开usb的设置,点开的操作就会执行usb-device-widget-new创建一个新的widget来控制usb的连接和断开。

猜你喜欢

转载自blog.csdn.net/FlayHigherGT/article/details/85261810