4 #include <eina_stringshare.h>
11 # define EAPI __declspec(dllexport)
13 # define EAPI __declspec(dllimport)
18 # define EAPI __attribute__ ((visibility("default")))
27 #define E_HAL_SENDER "org.freedesktop.Hal"
28 #define E_HAL_MANAGER_PATH "/org/freedesktop/Hal/Manager"
29 #define E_HAL_MANAGER_INTERFACE "org.freedesktop.Hal.Manager"
30 #define E_HAL_DEVICE_INTERFACE "org.freedesktop.Hal.Device"
31 #define E_HAL_DEVICE_VOLUME_INTERFACE "org.freedesktop.Hal.Device.Volume"
33 /* message return types */
35 typedef struct E_Hal_Property E_Hal_Property;
36 typedef struct E_Hal_Properties E_Hal_Properties;
38 struct E_Hal_String_List_Return
40 Eina_List *strings; /* list of const char * */
43 struct E_Hal_Bool_Return
48 struct E_Hal_UDI_Return
53 struct E_Hal_Capability
56 const char *capability;
61 E_HAL_PROPERTY_TYPE_STRING,
62 E_HAL_PROPERTY_TYPE_INT,
63 E_HAL_PROPERTY_TYPE_UINT64,
64 E_HAL_PROPERTY_TYPE_BOOL,
65 E_HAL_PROPERTY_TYPE_DOUBLE,
66 E_HAL_PROPERTY_TYPE_STRLIST
67 } E_Hal_Property_Type;
71 E_Hal_Property_Type type;
83 struct E_Hal_Properties
85 Eina_Hash *properties;
88 typedef struct E_Hal_Properties E_Hal_Device_Get_All_Properties_Return;
89 typedef struct E_Hal_Property E_Hal_Device_Get_Property_Return;
90 typedef struct E_Hal_Bool_Return E_Hal_Device_Query_Capability_Return;
91 typedef struct E_Hal_String_List_Return E_Hal_String_List_Return;
92 typedef struct E_Hal_String_List_Return E_Hal_Manager_Get_All_Devices_Return;
93 typedef struct E_Hal_Bool_Return E_Hal_Manager_Device_Exists_Return;
94 typedef struct E_Hal_String_List_Return E_Hal_Manager_Find_Device_String_Match_Return;
95 typedef struct E_Hal_String_List_Return E_Hal_Manager_Find_Device_By_Capability_Return;
98 typedef struct E_Hal_UDI_Return E_Hal_Manager_Device_Added;
99 typedef struct E_Hal_UDI_Return E_Hal_Manager_Device_Removed;
100 typedef struct E_Hal_Capability E_Hal_Manager_New_Capability;
106 EAPI int e_hal_init(void);
107 EAPI int e_hal_shutdown(void);
109 /* org.freedesktop.Hal.Device */
110 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);
111 EAPI DBusPendingCall *e_hal_device_get_all_properties(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data);
112 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);
114 /* org.freedesktop.Hal.Manager */
115 EAPI DBusPendingCall *e_hal_manager_get_all_devices(E_DBus_Connection *conn, E_DBus_Callback_Func cb_func, void *data);
116 EAPI DBusPendingCall *e_hal_manager_device_exists(E_DBus_Connection *conn, const char *udi, E_DBus_Callback_Func cb_func, void *data);
117 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);
118 EAPI DBusPendingCall *e_hal_manager_find_device_by_capability(E_DBus_Connection *conn, const char *capability, E_DBus_Callback_Func cb_func, void *data);
120 /* utility functions */
121 EAPI void e_hal_property_free(E_Hal_Property *prop);
122 EAPI char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err);
123 EAPI char e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err);
124 EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err);
125 EAPI dbus_uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err);
126 EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err);
127 EAPI Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err);
130 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);
131 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);
132 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);