improvements after logging.
[framework/uifw/edbus.git] / src / lib / notification / e_notify_private.h
1 #ifndef E_NOTIFY_PRIVATE_H
2 #define E_NOTIFY_PRIVATE_H
3
4 #define E_NOTIFICATION_BUS_NAME "org.freedesktop.Notifications"
5 #define E_NOTIFICATION_INTERFACE "org.freedesktop.Notifications"
6 #define E_NOTIFICATION_PATH "/org/freedesktop/Notifications"
7
8 #define e_notification_call_new(member) dbus_message_new_method_call(E_NOTIFICATION_BUS_NAME, E_NOTIFICATION_PATH, E_NOTIFICATION_INTERFACE, member)
9
10 typedef void (*E_DBus_Variant_Marshaller) (DBusMessageIter *iter, void *data);
11 #define E_DBUS_VARIANT_MARSHALLER(x) ((E_DBus_Variant_Marshaller)(x))
12
13 void e_notify_marshal_dict_variant(DBusMessageIter *iter, const char *key, char *type_str, E_DBus_Variant_Marshaller func, void *data);
14 void e_notify_marshal_dict_string(DBusMessageIter *iter, const char *key, const char *value);
15 void e_notify_marshal_dict_byte(DBusMessageIter *iter, const char *key, char value);
16 void e_notify_marshal_dict_int(DBusMessageIter *iter, const char *key, int value);
17
18 void e_notify_marshal_string_array(DBusMessageIter *iter, const char **strings);
19 void e_notify_marshal_string_list_as_array(DBusMessageIter *iter, Eina_List *strings);
20 Eina_List * e_notify_unmarshal_string_array_as_list(DBusMessageIter *iter, DBusError *err);
21 DBusMessage * e_notify_marshal_get_capabilities();
22 DBusMessage * e_notify_marshal_get_capabilities_return(DBusMessage *method_call, const char **capabilities);
23 void * e_notify_unmarshal_get_capabilities_return(DBusMessage *msg, DBusError *err);
24 void   e_notify_free_get_capabilities_return(void *data);
25 DBusMessage * e_notify_marshal_get_server_information();
26 DBusMessage * e_notify_marshal_get_server_information_return(DBusMessage *method_call, const char *name, const char *vendor, const char *version);
27 void * e_notify_unmarshal_get_server_information_return(DBusMessage *msg, DBusError *err);
28 void   e_notify_free_get_server_information_return(void *data);
29 DBusMessage * e_notify_marshal_close_notification(dbus_uint32_t id);
30 dbus_uint32_t e_notify_unmarshal_close_notification(DBusMessage *msg, DBusError *err);
31 DBusMessage * e_notify_marshal_notification_closed_signal(dbus_uint32_t id, dbus_uint32_t reason);
32 E_Notification_Event_Notification_Closed * e_notify_unmarshal_notification_closed_signal(DBusMessage *msg, DBusError *err);
33 DBusMessage * e_notify_marshal_action_invoked_signal(dbus_uint32_t id, const char *action_id);
34 E_Notification_Event_Action_Invoked * e_notify_unmarshal_action_invoked_signal(DBusMessage *msg, DBusError *err);
35 DBusMessage * e_notify_marshal_notify(E_Notification *n);
36 E_Notification * e_notify_unmarshal_notify(DBusMessage *msg, DBusError *err);
37 DBusMessage * e_notify_marshal_notify_return(DBusMessage *method_call, dbus_uint32_t notification_id);
38 void * e_notify_unmarshal_notify_return(DBusMessage *msg, DBusError *err);
39 void   e_notify_free_notify_return(void *data);
40 void e_notify_unmarshal_notify_actions(E_Notification *n, DBusMessageIter *iter);
41 void e_notify_unmarshal_notify_hints(E_Notification *n, DBusMessageIter *iter);
42 void e_notify_marshal_hint_image(DBusMessageIter *iter, E_Notification_Image *img);
43 E_Notification_Image * e_notify_unmarshal_hint_image(DBusMessageIter *iter);
44
45
46 #ifndef E_DBUS_COLOR_DEFAULT
47 #define E_DBUS_COLOR_DEFAULT EINA_COLOR_CYAN
48 #endif
49 extern int _e_dbus_notification_log_dom;
50
51 #ifdef ERR
52 #undef ERR
53 #endif
54 #ifdef INF
55 #undef INF
56 #endif
57 #ifdef WARN
58 #undef WARN
59 #endif
60 #ifdef DBG
61 #undef DBG
62 #endif
63
64 #define DBG(...)   EINA_LOG_DOM_DBG(_e_dbus_notification_log_dom, __VA_ARGS__)
65 #define INFO(...)    EINA_LOG_DOM_INFO(_e_dbus_notification_log_dom, __VA_ARGS__)
66 #define WARN(...) EINA_LOG_DOM_WARN(_e_dbus_notification_log_dom, __VA_ARGS__)
67 #define ERR(...)   EINA_LOG_DOM_ERR(_e_dbus_notification_log_dom, __VA_ARGS__)
68
69
70 struct E_Notification_Image
71 {
72   int   width;
73   int   height;
74   int   rowstride;
75   char  has_alpha;
76   int   bits_per_sample;
77   int   channels;
78   unsigned char *data;
79 };
80
81 struct E_Notification
82 {
83   int id;
84   char *app_name;
85   unsigned int replaces_id;
86   char *app_icon;
87   char *summary;
88   char *body;
89   int expire_timeout;
90
91   Eina_List *actions;
92
93   struct
94   {
95     char urgency;
96     char *category;
97     char *desktop;
98     char *sound_file;
99     char suppress_sound;
100     int x, y;
101     E_Notification_Image *image_data;
102     E_Notification_Image *icon_data;
103   } hints;
104
105   int hint_flags;
106   unsigned char closed;
107
108   int refcount;
109 };
110
111 struct E_Notification_Action 
112 {
113   char *id;
114   char *name;
115 };
116
117 #endif