1 #include <gdk-pixbuf/gdk-pixbuf.h>
2
3 #include "helpers.h"
4
notification_setup_raw_image(const char * path)5 GVariant *notification_setup_raw_image(const char *path)
6 {
7 GdkPixbuf *pb = gdk_pixbuf_new_from_file(path, NULL);
8
9 if (!pb)
10 return NULL;
11
12 GVariant *hint_data = g_variant_new_from_data(
13 G_VARIANT_TYPE("ay"),
14 gdk_pixbuf_read_pixels(pb),
15 gdk_pixbuf_get_byte_length(pb),
16 TRUE,
17 (GDestroyNotify) g_object_unref,
18 g_object_ref(pb));
19
20 GVariant *hint = g_variant_new(
21 "(iiibii@ay)",
22 gdk_pixbuf_get_width(pb),
23 gdk_pixbuf_get_height(pb),
24 gdk_pixbuf_get_rowstride(pb),
25 gdk_pixbuf_get_has_alpha(pb),
26 gdk_pixbuf_get_bits_per_sample(pb),
27 gdk_pixbuf_get_n_channels(pb),
28 hint_data);
29
30 g_object_unref(pb);
31
32 return hint;
33 }
34
35 /* vim: set tabstop=8 shiftwidth=8 expandtab textwidth=0: */
36