--- src/virt-viewer-session-spice.c | 7 +++++++ src/virt-viewer-session-vnc.c | 6 ++++++ src/virt-viewer-session.c | 12 ++++++++++++ src/virt-viewer-session.h | 2 ++ 4 files changed, 27 insertions(+) diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index b1686c5..3d48ba3 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -123,6 +123,12 @@ virt_viewer_session_spice_dispose(GObject *obj) } +static const gchar* +virt_viewer_session_spice_mime_type(VirtViewerSession *self G_GNUC_UNUSED) +{ + return "application/x-spice"; +} + static void virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass) { @@ -142,6 +148,7 @@ virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass) dclass->usb_device_selection = virt_viewer_session_spice_usb_device_selection; dclass->smartcard_insert = virt_viewer_session_spice_smartcard_insert; dclass->smartcard_remove = virt_viewer_session_spice_smartcard_remove; + dclass->mime_type = virt_viewer_session_spice_mime_type; g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate)); diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c index 52baf5c..3245de3 100644 --- a/src/virt-viewer-session-vnc.c +++ b/src/virt-viewer-session-vnc.c @@ -64,6 +64,11 @@ virt_viewer_session_vnc_finalize(GObject *obj) G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj); } +static const gchar* +virt_viewer_session_vnc_mime_type(VirtViewerSession *self G_GNUC_UNUSED) +{ + return "application/x-vnc"; +} static void virt_viewer_session_vnc_class_init(VirtViewerSessionVncClass *klass) @@ -78,6 +83,7 @@ virt_viewer_session_vnc_class_init(VirtViewerSessionVncClass *klass) dclass->open_host = virt_viewer_session_vnc_open_host; dclass->open_uri = virt_viewer_session_vnc_open_uri; dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd; + dclass->mime_type = virt_viewer_session_vnc_mime_type; g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate)); } diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c index a1d96c2..6205e30 100644 --- a/src/virt-viewer-session.c +++ b/src/virt-viewer-session.c @@ -367,6 +367,18 @@ gboolean virt_viewer_session_open_uri(VirtViewerSession *session, const gchar *u return klass->open_uri(session, uri); } +const gchar* virt_viewer_session_mime_type(VirtViewerSession *self) +{ + VirtViewerSessionClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), NULL); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(self); + g_return_val_if_fail(klass->mime_type != NULL, FALSE); + + return klass->mime_type(self); +} + gboolean virt_viewer_session_channel_open_fd(VirtViewerSession *session, VirtViewerSessionChannel *channel, int fd) { diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h index 38ed988..30def16 100644 --- a/src/virt-viewer-session.h +++ b/src/virt-viewer-session.h @@ -73,6 +73,7 @@ struct _VirtViewerSessionClass { void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent); void (* smartcard_insert) (VirtViewerSession* session); void (* smartcard_remove) (VirtViewerSession* session); + const gchar* (* mime_type) (VirtViewerSession* session); /* signals */ void (*session_connected)(VirtViewerSession *session); @@ -98,6 +99,7 @@ struct _VirtViewerSessionClass { GType virt_viewer_session_get_type(void); GtkWidget *virt_viewer_session_new(void); +const gchar* virt_viewer_session_mime_type(VirtViewerSession *session); void virt_viewer_session_add_display(VirtViewerSession *session, VirtViewerDisplay *display); -- 1.7.11.7