| Spice-GTK Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | Signals | ||||
#include <channel-main.h>
SpiceMainChannel;
SpiceMainChannelClass;
typedef spice_main_channel;
void spice_main_set_display (SpiceMainChannel *channel,
int id,
int x,
int y,
int width,
int height);
void spice_main_clipboard_grab (SpiceMainChannel *channel,
guint32 *types,
int ntypes);
void spice_main_clipboard_release (SpiceMainChannel *channel);
void spice_main_clipboard_notify (SpiceMainChannel *channel,
guint32 type,
const guchar *data,
size_t size);
void spice_main_clipboard_request (SpiceMainChannel *channel,
guint32 type);
"agent-caps-0" gint : Read "agent-connected" gboolean : Read "color-depth" guint : Read / Write / Construct "disable-animation" gboolean : Read / Write / Construct "disable-font-smooth" gboolean : Read / Write / Construct "disable-wallpaper" gboolean : Read / Write / Construct "mouse-mode" gint : Read "set-color-depth" gboolean : Read / Write / Construct
"main-agent-update" : Run First "main-clipboard" : Run Last "main-clipboard-grab" : Run Last "main-clipboard-release" : Run Last "main-clipboard-request" : Run Last "main-mouse-update" : Run First "migration-started" : Run Last
The main channel is the Spice session control channel. It handles communication initialization (channels list), migrations, mouse modes, multimedia time, and agent communication.
typedef struct {
SpiceChannelClass parent_class;
/* signals */
void (*mouse_update)(SpiceChannel *channel);
void (*agent_update)(SpiceChannel *channel);
} SpiceMainChannelClass;
void spice_main_set_display (SpiceMainChannel *channel,int id,int x,int y,int width,int height);
Notify the guest of screen resolution change. The notification is sent 1 second later, if no further changes happen.
|
display channel ID |
|
x position |
|
y position |
|
display width |
|
display height |
void spice_main_clipboard_grab (SpiceMainChannel *channel,guint32 *types,int ntypes);
Grab the guest clipboard, with VD_AGENT_CLIPBOARD types.
|
an array of VD_AGENT_CLIPBOARD types available in the clipboard |
|
the number of types
|
void spice_main_clipboard_release (SpiceMainChannel *channel);
Release the clipboard (for example, when the client looses the clipboard grab): Inform the guest no clipboard data is available.
void spice_main_clipboard_notify (SpiceMainChannel *channel,guint32 type,const guchar *data,size_t size);
Send the clipboard data to the guest.
|
a VD_AGENT_CLIPBOARD type |
|
clipboard data |
|
data length in bytes |
void spice_main_clipboard_request (SpiceMainChannel *channel,guint32 type);
Request clipboard data of type from the guest. The reply is sent
through the "main-clipboard" signal.
|
a VD_AGENT_CLIPBOARD type |
"agent-caps-0" property"agent-caps-0" gint : Read
Agent capability bits 0 -> 31.
Allowed values: >= 0
Default value: 0
"agent-connected" property"agent-connected" gboolean : Read
Whether the agent is connected.
Default value: FALSE
"color-depth" property"color-depth" guint : Read / Write / Construct
Color depth.
Allowed values: [8,32]
Default value: 32
"disable-animation" property"disable-animation" gboolean : Read / Write / Construct
Disable guest animations.
Default value: FALSE
"disable-font-smooth" property"disable-font-smooth" gboolean : Read / Write / Construct
Disable guest font smoothing.
Default value: FALSE
"disable-wallpaper" property"disable-wallpaper" gboolean : Read / Write / Construct
Disable guest wallpaper.
Default value: FALSE
"mouse-mode" property"mouse-mode" gint : Read
Spice protocol specifies two mouse modes, client mode and
server mode. In client mode (SPICE_MOUSE_MODE_CLIENT), the
affective mouse is the client side mouse: the client sends
mouse position within the display and the server sends mouse
shape messages. In server mode (SPICE_MOUSE_MODE_SERVER), the
client sends relative mouse movements and the server sends
position and shape commands.
Allowed values: >= 0
Default value: 0
"set-color-depth" property"set-color-depth" gboolean : Read / Write / Construct
Set display color depth.
Default value: FALSE
"main-agent-update" signalvoid user_function (SpiceMainChannel *spicemainchannel, gpointer user_data) : Run First
"main-clipboard" signalvoid user_function (SpiceMainChannel *main, guint type, gpointer data, guint size, gpointer user_data) : Run Last
Provides guest clipboard data requested by spice_main_clipboard_request().
|
the SpiceMainChannel that emitted the signal |
|
the VD_AGENT_CLIPBOARD data type |
|
clipboard data |
|
size of data in bytes
|
|
user data set when the signal handler was connected. |
"main-clipboard-grab" signalgboolean user_function (SpiceMainChannel *main, gpointer types, guint ntypes, gpointer user_data) : Run Last
Inform when clipboard data is available from the guest, and for
which types.
|
the SpiceMainChannel that emitted the signal |
|
the VD_AGENT_CLIPBOARD data types |
|
the number of types
|
|
user data set when the signal handler was connected. |
"main-clipboard-release" signalvoid user_function (SpiceMainChannel *main, gpointer user_data) : Run Last
Inform when the clipboard is released from the guest, when no clipboard data is available from the guest.
|
the SpiceMainChannel that emitted the signal |
|
user data set when the signal handler was connected. |
"main-clipboard-request" signalgboolean user_function (SpiceMainChannel *main, guint types, gpointer user_data) : Run Last
Request clipbard data from the client.
|
the SpiceMainChannel that emitted the signal |
|
the VD_AGENT_CLIPBOARD request type
Returns: TRUE if the request is successful
|
|
user data set when the signal handler was connected. |
"main-mouse-update" signalvoid user_function (SpiceMainChannel *main, gpointer user_data) : Run First
Notify when the mouse mode has changed.
|
the SpiceMainChannel that emitted the signal |
|
user data set when the signal handler was connected. |
"migration-started" signalvoid user_function (SpiceMainChannel *main, GObject *session, gpointer user_data) : Run Last
Inform when migration is starting. Application wishing to make
connections themself can set the "client-sockets"
to TRUE, then follow "channel-new" creation, and
use spice_channel_open_fd() once the socket is created.
|
the SpiceMainChannel that emitted the signal |
|
a migration SpiceSession |
|
user data set when the signal handler was connected. |