コード例 #1
0
ファイル: data.c プロジェクト: psunkari/spicebird
JabberData *
jabber_data_create_from_data(gconstpointer rawdata, gsize size, const char *type,
                             JabberStream *js)
{
    JabberData *data = g_new0(JabberData, 1);
    gchar *checksum = purple_util_get_image_checksum(rawdata, size);
    gchar cid[256];

    g_snprintf(cid, sizeof(cid), "*****@*****.**", checksum);
    g_free(checksum);

    data->cid = g_strdup(cid);
    data->type = g_strdup(type);
    data->size = size;

    data->data = g_memdup(rawdata, size);

    return data;
}
コード例 #2
0
ファイル: smiley.c プロジェクト: matyapiro31/instantbird-1.5
static void
purple_smiley_set_property(GObject *object, guint param_id, const GValue *value,
		GParamSpec *spec)
{
	PurpleSmiley *smiley = PURPLE_SMILEY(object);
	switch (param_id) {
		case PROP_SHORTCUT:
			{
				const char *shortcut = g_value_get_string(value);
				purple_smiley_set_shortcut(smiley, shortcut);
			}
			break;
		case PROP_IMGSTORE:
			{
				PurpleStoredImage *img = g_value_get_pointer(value);

				purple_imgstore_unref(smiley->img);
				g_free(smiley->checksum);

				smiley->img = img;
				if (img) {
					smiley->checksum = purple_util_get_image_checksum(
							purple_imgstore_get_data(img),
							purple_imgstore_get_size(img));
					purple_smiley_data_store(img);
				} else {
					smiley->checksum = NULL;
				}

				g_object_notify(object, PROP_IMGSTORE_S);
			}
			break;
		default:
			G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, spec);
			break;
	}
}