#include "bt-hal-dbus-common-utils.h"
#include "bt-hal-tds-dbus-handler.h"
-bt_status_t _bt_hal_tds_register_provider()
+static bt_status_t __bt_hal_tds_provider_method_call(const char *method, GVariant *param)
{
GDBusConnection *gconn;
char *adapter_path;
if (provider_proxy == NULL)
return BT_STATUS_FAIL;
- result = g_dbus_proxy_call_sync(provider_proxy, "RegisterTdsProvider",
- NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+ result = g_dbus_proxy_call_sync(provider_proxy, method,
+ param, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
if (result == NULL) {
if (error != NULL) {
ERR("Error occured in Proxy call [%s]\n", error->message);
return BT_STATUS_SUCCESS;
}
-bt_status_t _bt_hal_tds_unregister_provider()
+bt_status_t _bt_hal_tds_register_provider()
{
- GDBusConnection *gconn;
- char *adapter_path;
- GDBusProxy *provider_proxy;
- GVariant *result;
- GError *error = NULL;
-
- gconn = _bt_hal_get_system_gconn();
- if (gconn == NULL)
- return BT_STATUS_FAIL;
-
- adapter_path = _bt_hal_get_adapter_path();
- if (adapter_path == NULL)
- return BT_STATUS_FAIL;
-
- provider_proxy = g_dbus_proxy_new_sync(gconn, G_DBUS_PROXY_FLAGS_NONE,
- NULL, BT_HAL_BLUEZ_NAME, adapter_path,
- BT_HAL_TDS_PROVIDER_INTERFACE, NULL, NULL);
- g_free(adapter_path);
- if (provider_proxy == NULL)
- return BT_STATUS_FAIL;
-
- result = g_dbus_proxy_call_sync(provider_proxy, "UnregisterTdsProvider",
- NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
- if (result == NULL) {
- if (error != NULL) {
- ERR("Error occured in Proxy call [%s]\n", error->message);
- g_error_free(error);
- }
- g_object_unref(provider_proxy);
- return BT_STATUS_FAIL;
- }
- g_variant_unref(result);
+ return __bt_hal_tds_provider_method_call("RegisterTdsProvider", NULL);
+}
- return BT_STATUS_SUCCESS;
+bt_status_t _bt_hal_tds_unregister_provider()
+{
+ return __bt_hal_tds_provider_method_call("UnregisterTdsProvider", NULL);
}
bt_status_t _bt_hal_tds_set_block_data(unsigned char *data, unsigned int data_len)
{
- GDBusConnection *gconn;
- char *adapter_path;
- GDBusProxy *provider_proxy;
- GVariant *result;
- GError *error = NULL;
GVariantBuilder *builder;
GVariant *temp;
int i;
- gconn = _bt_hal_get_system_gconn();
- if (gconn == NULL)
- return BT_STATUS_FAIL;
-
- adapter_path = _bt_hal_get_adapter_path();
- if (adapter_path == NULL)
- return BT_STATUS_FAIL;
-
/* Create block data */
builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
for (i = 0; i < data_len; i++)
temp = g_variant_new("ay", builder);
g_variant_builder_unref(builder);
- provider_proxy = g_dbus_proxy_new_sync(gconn, G_DBUS_PROXY_FLAGS_NONE,
- NULL, BT_HAL_BLUEZ_NAME, adapter_path,
- BT_HAL_TDS_PROVIDER_INTERFACE, NULL, NULL);
- g_free(adapter_path);
- if (provider_proxy == NULL)
- return BT_STATUS_FAIL;
-
- result = g_dbus_proxy_call_sync(provider_proxy, "SetTdsBlockData",
- g_variant_new("(@ay)", temp),
- G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
- if (result == NULL) {
- if (error != NULL) {
- ERR("Error occured in Proxy call [%s]\n", error->message);
- g_error_free(error);
- }
- g_object_unref(provider_proxy);
- return BT_STATUS_FAIL;
- }
- g_variant_unref(result);
-
- return BT_STATUS_SUCCESS;
+ return __bt_hal_tds_provider_method_call("SetTdsBlockData", g_variant_new("(@ay)", temp));
}
bt_status_t _bt_hal_tds_send_activation_response(unsigned char response,
unsigned char *data, unsigned int data_len)
{
- GDBusConnection *gconn;
- char *adapter_path;
- GDBusProxy *provider_proxy;
- GVariant *result;
- GError *error = NULL;
GVariantBuilder *builder;
GVariant *temp;
int i;
- gconn = _bt_hal_get_system_gconn();
- if (gconn == NULL)
- return BT_STATUS_FAIL;
-
- adapter_path = _bt_hal_get_adapter_path();
- if (adapter_path == NULL)
- return BT_STATUS_FAIL;
-
/* Create response data */
builder = g_variant_builder_new(G_VARIANT_TYPE("ay"));
for (i = 0; i < data_len; i++)
temp = g_variant_new("ay", builder);
g_variant_builder_unref(builder);
- provider_proxy = g_dbus_proxy_new_sync(gconn, G_DBUS_PROXY_FLAGS_NONE,
- NULL, BT_HAL_BLUEZ_NAME, adapter_path,
- BT_HAL_TDS_PROVIDER_INTERFACE, NULL, NULL);
- g_free(adapter_path);
- if (provider_proxy == NULL)
- return BT_STATUS_FAIL;
-
- result = g_dbus_proxy_call_sync(provider_proxy, "TdsActivationResponse",
- g_variant_new("(y@ay)", response, temp),
- G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
- if (result == NULL) {
- if (error != NULL) {
- ERR("Error occured in Proxy call [%s]\n", error->message);
- g_error_free(error);
- }
- g_object_unref(provider_proxy);
- return BT_STATUS_FAIL;
- }
- g_variant_unref(result);
-
- return BT_STATUS_SUCCESS;
+ return __bt_hal_tds_provider_method_call("TdsActivationResponse", g_variant_new("(y@ay)", response, temp));
}