<arg type="t" name="rx_data" direction="out"/>
<arg type="t" name="tx_data" direction="out"/>
</method>
+ <method name="hostapd_set_txpower">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="u" name="txpower" direction="in"/>
+ <arg type="u" name="result" direction="out"/>
+ </method>
+ <method name="hostapd_get_txpower">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="u" name="result" direction="out"/>
+ </method>
<!-- Signal (D-Bus) definitions -->
<signal name="net_closed">
<arg type="s" name="arg1" direction="out"/>
return TETHERING_ERROR_NONE;
}
+
+API int tethering_wifi_set_txpower(tethering_h tethering, unsigned int txpower)
+{
+ GError *error = NULL;
+ CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE, TETHERING_WIFI_FEATURE);
+
+ _retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(tethering) is NULL\n");
+ _retvm_if(tethering_is_enabled(tethering, TETHERING_TYPE_WIFI) == false,
+ TETHERING_ERROR_NOT_ENABLED,
+ "tethering type[%d] is not enabled\n", TETHERING_TYPE_WIFI);
+ __tethering_h *th = (__tethering_h *)tethering;
+
+ g_dbus_proxy_call_sync(th->client_bus_proxy, "hostapd_set_txpower",
+ g_variant_new("(u)", txpower),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, th->cancellable, &error);
+ if (error) {
+ ERR("g_dbus_proxy_call_sync is failed and error is %s\n", error->message);
+ g_clear_error(&error);
+ return TETHERING_ERROR_OPERATION_FAILED;
+ }
+ return TETHERING_ERROR_NONE;
+}
+
+API int tethering_wifi_get_txpower(tethering_h tethering, unsigned int *txpower)
+{
+ GError *error = NULL;
+ GVariant *result = NULL;
+ CHECK_FEATURE_SUPPORTED(TETHERING_FEATURE, TETHERING_WIFI_FEATURE);
+
+ _retvm_if(tethering == NULL, TETHERING_ERROR_INVALID_PARAMETER,
+ "parameter(tethering) is NULL\n");
+ _retvm_if(tethering_is_enabled(tethering, TETHERING_TYPE_WIFI) == false,
+ TETHERING_ERROR_NOT_ENABLED,
+ "tethering type[%d] is not enabled\n", TETHERING_TYPE_WIFI);
+
+ __tethering_h *th = (__tethering_h *)tethering;
+
+ result = g_dbus_proxy_call_sync(th->client_bus_proxy, "hostapd_get_txpower",
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, th->cancellable, &error);
+
+ if (result != NULL) {
+ g_variant_get(result, "(u)", txpower);
+ g_variant_unref(result);
+ } else {
+ if (error)
+ ERR("g_dbus_proxy_call_sync is failed and error is %s\n", error->message);
+ g_clear_error(&error);
+ return TETHERING_ERROR_OPERATION_FAILED;
+ }
+ g_clear_error(&error);
+ return TETHERING_ERROR_NONE;
+}
+
return 1;
}
+static int test_tethering_wifi_get_txpower(void)
+{
+ int ret = TETHERING_ERROR_NONE;
+
+ unsigned int txpower = 0;
+ ret = tethering_wifi_get_txpower(th, &txpower);
+ if (__is_err(ret) == true) {
+ printf("Fail to get txpower!!\n");
+ return -1;
+ }
+ g_print("tethering_hostapd_get_txpower received [%d]\n",txpower);
+ return 1;
+}
+static int test_tethering_wifi_set_txpower(void)
+{
+ int ret;
+ unsigned int txpower = 0;
+
+ printf("Input tx power for Wi-Fi tethering: ");
+ ret = scanf("%d", &txpower);
+
+ ret = tethering_wifi_set_txpower(th, txpower);
+ if (__is_err(ret) == true) {
+ printf("Fail to set txpower!!\n");
+ return -1;
+ }
+
+ return 1;
+}
+
int main(int argc, char **argv)
{
GMainLoop *mainloop;
printf("o - Enable dhcp server\n");
printf("p - Enable dhcp server with range\n");
printf("q - Is dhcp server enabled?\n");
+ printf("r - Get Wi-Fi txpower\n");
+ printf("s - Set Wi-Fi txpower\n");
printf("0 - Exit \n");
printf("ENTER - Show options menu.......\n");
}
case 'q':
rv = test_tethering_wifi_is_dhcp_enabled();
break;
+ case 'r':
+ rv = test_tethering_wifi_get_txpower();
+ break;
+ case 's':
+ rv = test_tethering_wifi_set_txpower();
+ break;
}
if (rv == 1)