8 * @defgroup EHal_Group EHal
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"
19 /* message return types */
21 typedef struct E_Hal_Property E_Hal_Property;
22 typedef struct E_Hal_Properties E_Hal_Properties;
24 struct E_Hal_String_List_Return
26 Eina_List *strings; /* list of const char * */
29 struct E_Hal_Bool_Return
34 struct E_Hal_UDI_Return
39 struct E_Hal_Capability
42 const char *capability;
47 E_HAL_PROPERTY_TYPE_STRING,
48 E_HAL_PROPERTY_TYPE_INT,
49 E_HAL_PROPERTY_TYPE_UINT64,
50 E_HAL_PROPERTY_TYPE_BOOL,
51 E_HAL_PROPERTY_TYPE_DOUBLE,
52 E_HAL_PROPERTY_TYPE_STRLIST
53 } E_Hal_Property_Type;
57 E_Hal_Property_Type type;
69 struct E_Hal_Properties
71 Eina_Hash *properties;
74 typedef struct E_Hal_Properties E_Hal_Device_Get_All_Properties_Return;
75 typedef struct E_Hal_Property E_Hal_Device_Get_Property_Return;
76 typedef struct E_Hal_Bool_Return E_Hal_Device_Query_Capability_Return;
77 typedef struct E_Hal_String_List_Return E_Hal_String_List_Return;
78 typedef struct E_Hal_String_List_Return E_Hal_Manager_Get_All_Devices_Return;
79 typedef struct E_Hal_Bool_Return E_Hal_Manager_Device_Exists_Return;
80 typedef struct E_Hal_String_List_Return E_Hal_Manager_Find_Device_String_Match_Return;
81 typedef struct E_Hal_String_List_Return E_Hal_Manager_Find_Device_By_Capability_Return;
84 typedef struct E_Hal_UDI_Return E_Hal_Manager_Device_Added;
85 typedef struct E_Hal_UDI_Return E_Hal_Manager_Device_Removed;
86 typedef struct E_Hal_Capability E_Hal_Manager_New_Capability;
92 EAPI int e_hal_init(void);
93 EAPI int e_hal_shutdown(void);
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);
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);
106 /* utility functions */
107 EAPI void e_hal_property_free(E_Hal_Property *prop);
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);
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);