E_Hal.h
Go to the documentation of this file.
1 #ifndef E_HAL_H
2 #define E_HAL_H
3 
4 #include <Eina.h>
5 #include <E_DBus.h>
6 
13 #define E_HAL_SENDER "org.freedesktop.Hal"
14 #define E_HAL_MANAGER_PATH "/org/freedesktop/Hal/Manager"
15 #define E_HAL_MANAGER_INTERFACE "org.freedesktop.Hal.Manager"
16 #define E_HAL_DEVICE_INTERFACE "org.freedesktop.Hal.Device"
17 #define E_HAL_DEVICE_VOLUME_INTERFACE "org.freedesktop.Hal.Device.Volume"
18 
19 /* message return types */
20 
23 
25 {
26  Eina_List *strings; /* list of const char * */
27 };
28 
30 {
31  Eina_Bool boolean;
32 };
33 
35 {
36  const char *udi;
37 };
38 
40 {
41  const char *udi;
42  const char *capability;
43 };
44 
45 typedef enum
46 {
54 
56 {
58  union
59  {
60  const char *s;
61  int i;
62  dbus_bool_t b;
63  double d;
64  dbus_uint64_t u64;
65  Eina_List *strlist;
66  } val;
67 };
68 
70 {
71  Eina_Hash *properties;
72 };
73 
82 
83 
87 
88 #ifdef __cplusplus
89 extern "C" {
90 #endif
91 
92  EAPI int e_hal_init(void);
93  EAPI int e_hal_shutdown(void);
94 
95 /* org.freedesktop.Hal.Device */
96  EAPI DBusPendingCall *e_hal_device_get_property(E_DBus_Connection *conn, const char *udi, const char *property, E_DBus_Callback_Func cb_func, void *data);
97  EAPI DBusPendingCall *e_hal_device_get_all_properties(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data);
98  EAPI DBusPendingCall *e_hal_device_query_capability(E_DBus_Connection *conn, const char *udi, const char *capability, E_DBus_Callback_Func cb_func, void *data);
99 
100 /* org.freedesktop.Hal.Manager */
101  EAPI DBusPendingCall *e_hal_manager_get_all_devices(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data);
102  EAPI DBusPendingCall *e_hal_manager_device_exists(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data);
103  EAPI DBusPendingCall *e_hal_manager_find_device_string_match(E_DBus_Connection *conn, const char *key, const char *value, E_DBus_Callback_Func cb_func, void *data);
104  EAPI DBusPendingCall *e_hal_manager_find_device_by_capability(E_DBus_Connection *conn, const char *capability, E_DBus_Callback_Func cb_func, void *data);
105 
106 /* utility functions */
108  EAPI const char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err);
109  EAPI Eina_Bool e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err);
110  EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err);
111  EAPI uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err);
112  EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err);
113  EAPI const Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err);
114 
115 /* (un)mount */
116  EAPI DBusPendingCall *e_hal_device_volume_mount(E_DBus_Connection *conn, const char *udi, const char *mount_point, const char *fstype, Eina_List *options, E_DBus_Callback_Func cb_func, void *data);
117  EAPI DBusPendingCall *e_hal_device_volume_unmount(E_DBus_Connection *conn, const char *udi, Eina_List *options, E_DBus_Callback_Func cb_func, void *data);
118  EAPI DBusPendingCall *e_hal_device_volume_eject(E_DBus_Connection *conn, const char *udi, Eina_List *options, E_DBus_Callback_Func cb_func, void *data);
119 
120 #ifdef __cplusplus
121 }
122 #endif
123 
128 #endif