struct E_Hal_Bool_Return
{
- Eina_Bool boolean;
+ char boolean;
};
struct E_Hal_UDI_Return
EAPI DBusPendingCall *e_hal_manager_find_device_by_capability(E_DBus_Connection *conn, const char *capability, E_DBus_Callback_Func cb_func, void *data);
/* utility functions */
- EAPI void e_hal_property_free(E_Hal_Property *prop);
- EAPI const char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err);
- EAPI Eina_Bool e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err);
- EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err);
- EAPI dbus_uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err);
- EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err);
- EAPI const Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI void e_hal_property_free(E_Hal_Property *prop);
+ EAPI char *e_hal_property_string_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI char e_hal_property_bool_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI int e_hal_property_int_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI dbus_uint64_t e_hal_property_uint64_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI double e_hal_property_double_get(E_Hal_Properties *properties, const char *key, int *err);
+ EAPI Eina_List *e_hal_property_strlist_get(E_Hal_Properties *properties, const char *key, int *err);
/* (un)mount */
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);
E_Hal_Device_Get_Property_Return *ret = NULL;
DBusMessageIter iter;
int type;
- char *tmp;
ret = calloc(1, sizeof(E_Hal_Device_Get_Property_Return));
if (!ret)
type = dbus_message_iter_get_arg_type(&iter);
switch(type)
{
- case DBUS_TYPE_STRING:
- dbus_message_iter_get_basic(&iter, &tmp);
- ret->val.s = (char*)eina_stringshare_add(tmp);
+ case 's':
+ dbus_message_iter_get_basic(&iter, &(ret->val.s));
break;
- case DBUS_TYPE_INT32:
+ case 'i':
dbus_message_iter_get_basic(&iter, &(ret->val.i));
break;
- case DBUS_TYPE_BOOLEAN:
+ case 'b':
dbus_message_iter_get_basic(&iter, &(ret->val.b));
break;
- case DBUS_TYPE_DOUBLE:
+ case 'd':
dbus_message_iter_get_basic(&iter, &(ret->val.d));
break;
}
E_Hal_Device_Get_Property_Return *ret = data;
if (!ret) return;
- if (ret->type == E_HAL_PROPERTY_TYPE_STRLIST)
- {
- const char *s;
- EINA_LIST_FREE(ret->val.strlist, s)
- eina_stringshare_del(s);
- }
- else if (ret->type == E_HAL_PROPERTY_TYPE_STRING)
- eina_stringshare_del(ret->val.s);
free(ret);
}
{
E_Hal_Device_Get_All_Properties_Return *ret = NULL;
DBusMessageIter iter, a_iter, s_iter, v_iter;
- char *tmp;
- /* a{sv} = array of string+variant */
if (!dbus_message_has_signature(msg, "a{sv}"))
{
dbus_set_error(err, DBUS_ERROR_INVALID_SIGNATURE, "");
switch(dbus_message_iter_get_arg_type(&v_iter))
{
- case DBUS_TYPE_STRING:
+ case 's':
prop->type = E_HAL_PROPERTY_TYPE_STRING;
- dbus_message_iter_get_basic(&v_iter, &tmp);
- prop->val.s = (char*)eina_stringshare_add(tmp);
+ dbus_message_iter_get_basic(&v_iter, &(prop->val.s));
break;
- case DBUS_TYPE_INT32:
+ case 'i':
prop->type = E_HAL_PROPERTY_TYPE_INT;
dbus_message_iter_get_basic(&v_iter, &(prop->val.i));
break;
- case DBUS_TYPE_UINT64:
+ case 't':
prop->type = E_HAL_PROPERTY_TYPE_UINT64;
dbus_message_iter_get_basic(&v_iter, &(prop->val.u64));
break;
- case DBUS_TYPE_BOOLEAN:
+ case 'b':
prop->type = E_HAL_PROPERTY_TYPE_BOOL;
dbus_message_iter_get_basic(&v_iter, &(prop->val.b));
break;
- case DBUS_TYPE_DOUBLE:
+ case 'd':
prop->type = E_HAL_PROPERTY_TYPE_DOUBLE;
dbus_message_iter_get_basic(&v_iter, &(prop->val.d));
break;
- case DBUS_TYPE_ARRAY:
+ case 'a':
prop->type = E_HAL_PROPERTY_TYPE_STRLIST;
{
DBusMessageIter list_iter;
{
char *str;
dbus_message_iter_get_basic(&list_iter, &str);
- tmp = (char*)eina_stringshare_add(str);
- prop->val.strlist = eina_list_append(prop->val.strlist, tmp);
+ prop->val.strlist = eina_list_append(prop->val.strlist, str);
dbus_message_iter_next(&list_iter);
}
}
dbus_message_iter_init_append(msg, &iter);
dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &mount_point);
dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &fstype);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter);
if (options)
{
msg = e_hal_device_volume_call_new(udi, "Unmount");
dbus_message_iter_init_append(msg, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter);
if (options)
{
const char *opt;
msg = e_hal_device_volume_call_new(udi, "Eject");
dbus_message_iter_init_append(msg, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &subiter);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &subiter);
if (options)
{
const char *opt;