* @return 1 on success, 0 on failure.
*/
bool
-e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
+e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
{
E_Ofono_Element_Call_Data *data;
E_Ofono_Element_Pending *p;
EINA_SAFETY_ON_NULL_RETURN_VAL(pending, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(msg, 0);
+ interface = interface ? : element->interface;
+
data = malloc(sizeof(*data));
if (!data)
{
{
ERR("failed to call %s (obj=%s, path=%s, iface=%s)",
method_name, e_ofono_system_bus_name_get(),
- element->path, element->interface);
+ element->path, interface);
free(data);
free(p);
return 0;
}
bool
-e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
+e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
{
DBusMessage *msg;
EINA_SAFETY_ON_NULL_RETURN_VAL(method_name, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(pending, 0);
+ interface = interface ? : element->interface;
+
msg = dbus_message_new_method_call
- (e_ofono_system_bus_name_get(), element->path, element->interface,
+ (e_ofono_system_bus_name_get(), element->path, interface,
method_name);
return e_ofono_element_message_send
- (element, method_name, cb, msg, pending, user_cb, user_data);
+ (element, method_name, interface, cb, msg, pending, user_cb, user_data);
}
static bool
EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
return e_ofono_element_call_full
- (element, name, _e_ofono_element_get_properties_callback,
+ (element, name, element->interface,
+ _e_ofono_element_get_properties_callback,
&element->_pending.properties_get, cb, data);
}
dbus_message_iter_close_container(&itr, &variant);
return e_ofono_element_message_send
- (element, name, NULL, msg, &element->_pending.property_set, cb, data);
+ (element, name, NULL, NULL, msg, &element->_pending.property_set, cb, data);
}
/**
dbus_message_iter_close_container(&itr, &v);
return e_ofono_element_message_send
- (element, name, NULL, msg, &element->_pending.property_set, cb, data);
+ (element, name, NULL, NULL, msg, &element->_pending.property_set, cb, data);
}
/**
dbus_message_iter_append_basic(&itr, DBUS_TYPE_OBJECT_PATH, &string);
return e_ofono_element_message_send
- (element, method_name, cb, msg, pending, user_cb, user_data);
+ (element, method_name, NULL, cb, msg, pending, user_cb, user_data);
}
bool
dbus_message_iter_append_basic(&itr, DBUS_TYPE_STRING, &string);
return e_ofono_element_message_send
- (element, method_name, cb, msg, pending, user_cb, user_data);
+ (element, method_name, NULL, cb, msg, pending, user_cb, user_data);
}
bool
dbus_message_iter_append_basic(&itr, DBUS_TYPE_STRING, &string);
return e_ofono_element_message_send
- (element, method_name, cb, msg, pending, user_cb, user_data);
+ (element, method_name, NULL, cb, msg, pending, user_cb, user_data);
}
/**
E_Ofono_Element *e_ofono_element_register(const char *path, const char *interface);
void e_ofono_element_unregister(E_Ofono_Element *element);
- bool e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
+ bool e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
- bool e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
+ bool e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
bool e_ofono_element_call_with_path(E_Ofono_Element *element, const char *method_name, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
bool e_ofono_element_call_with_string(E_Ofono_Element *element, const char *method_name, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
bool e_ofono_element_call_with_path_and_string(E_Ofono_Element *element, const char *method_name, const char *path, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);