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