mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-04 01:43:24 +00:00
libgimpbase: add _gimp_wire_{read,write}_int64()
... for reading/writing guint64 data in the wire protocol.
This commit is contained in:
parent
9afa42ab91
commit
77c24ca16c
2 changed files with 57 additions and 0 deletions
|
@ -311,6 +311,30 @@ gimp_wire_destroy (GimpWireMessage *msg)
|
||||||
(* handler->destroy_func) (msg);
|
(* handler->destroy_func) (msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_gimp_wire_read_int64 (GIOChannel *channel,
|
||||||
|
guint64 *data,
|
||||||
|
gint count,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (count >= 0, FALSE);
|
||||||
|
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
if (! _gimp_wire_read_int8 (channel,
|
||||||
|
(guint8 *) data, count * 8, user_data))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
{
|
||||||
|
*data = GUINT64_FROM_BE (*data);
|
||||||
|
data++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_gimp_wire_read_int32 (GIOChannel *channel,
|
_gimp_wire_read_int32 (GIOChannel *channel,
|
||||||
guint32 *data,
|
guint32 *data,
|
||||||
|
@ -468,6 +492,31 @@ _gimp_wire_read_color (GIOChannel *channel,
|
||||||
(gdouble *) data, 4 * count, user_data);
|
(gdouble *) data, 4 * count, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_gimp_wire_write_int64 (GIOChannel *channel,
|
||||||
|
const guint64 *data,
|
||||||
|
gint count,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (count >= 0, FALSE);
|
||||||
|
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
guint64 tmp = GUINT64_TO_BE (data[i]);
|
||||||
|
|
||||||
|
if (! _gimp_wire_write_int8 (channel,
|
||||||
|
(const guint8 *) &tmp, 8, user_data))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_gimp_wire_write_int32 (GIOChannel *channel,
|
_gimp_wire_write_int32 (GIOChannel *channel,
|
||||||
const guint32 *data,
|
const guint32 *data,
|
||||||
|
|
|
@ -83,6 +83,10 @@ void gimp_wire_destroy (GimpWireMessage *msg);
|
||||||
|
|
||||||
/* for internal use in libgimpbase */
|
/* for internal use in libgimpbase */
|
||||||
|
|
||||||
|
G_GNUC_INTERNAL gboolean _gimp_wire_read_int64 (GIOChannel *channel,
|
||||||
|
guint64 *data,
|
||||||
|
gint count,
|
||||||
|
gpointer user_data);
|
||||||
G_GNUC_INTERNAL gboolean _gimp_wire_read_int32 (GIOChannel *channel,
|
G_GNUC_INTERNAL gboolean _gimp_wire_read_int32 (GIOChannel *channel,
|
||||||
guint32 *data,
|
guint32 *data,
|
||||||
gint count,
|
gint count,
|
||||||
|
@ -107,6 +111,10 @@ G_GNUC_INTERNAL gboolean _gimp_wire_read_color (GIOChannel *channel,
|
||||||
GimpRGB *data,
|
GimpRGB *data,
|
||||||
gint count,
|
gint count,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
G_GNUC_INTERNAL gboolean _gimp_wire_write_int64 (GIOChannel *channel,
|
||||||
|
const guint64 *data,
|
||||||
|
gint count,
|
||||||
|
gpointer user_data);
|
||||||
G_GNUC_INTERNAL gboolean _gimp_wire_write_int32 (GIOChannel *channel,
|
G_GNUC_INTERNAL gboolean _gimp_wire_write_int32 (GIOChannel *channel,
|
||||||
const guint32 *data,
|
const guint32 *data,
|
||||||
gint count,
|
gint count,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue