wifi_error wifi_disable_full_scan_results(wifi_request_id id, wifi_interface_handle iface) { ALOGD("[WIFI HAL]Disabling full scan results"); wifi_handle handle = getWifiHandle(iface); if(id == -1) { wifi_scan_result_handler handler; wifi_handle handle = getWifiHandle(iface); int params_dummy; memset(&handler, 0, sizeof(handler)); FullScanResultsCommand *cmd = new FullScanResultsCommand(iface, 0, ¶ms_dummy, handler); cmd->cancel(); cmd->releaseRef(); return WIFI_SUCCESS; } WifiCommand *cmd = wifi_unregister_cmd(handle, id); if (cmd) { cmd->cancel(); cmd->releaseRef(); return WIFI_SUCCESS; } return WIFI_ERROR_INVALID_ARGS; }
wifi_error wifi_stop_gscan(wifi_request_id id, wifi_interface_handle iface) { char prop_buf[PROPERTY_VALUE_MAX]; property_get("wlan.mtk.gscan", prop_buf, "0"); if(!strcmp(prop_buf, "1")) { ALOGD("[WIFI HAL]Stopping GScan"); wifi_handle handle = getWifiHandle(iface); if(id == -1) { wifi_scan_result_handler handler; wifi_scan_cmd_params dummy_params; memset(&handler, 0, sizeof(handler)); ScanCommand *cmd = new ScanCommand(iface, id, &dummy_params, handler); cmd->cancel(); cmd->releaseRef(); return WIFI_SUCCESS; } WifiCommand *cmd = wifi_unregister_cmd(handle, id); if (cmd) { cmd->cancel(); cmd->releaseRef(); return WIFI_SUCCESS; } } return WIFI_ERROR_INVALID_ARGS; }
virtual int cancel() { ALOGV("Clear alerthandler"); /* unregister alert handler */ unregisterVendorHandler(GOOGLE_OUI, GOOGLE_DEBUG_MEM_DUMP_EVENT); wifi_unregister_cmd(wifiHandle(), id()); ALOGD("Success to clear alerthandler"); return WIFI_SUCCESS; }
wifi_error wifi_reset_significant_change_handler(wifi_request_id id, wifi_interface_handle iface) { char prop_buf[PROPERTY_VALUE_MAX]; property_get("wlan.mtk.gscan", prop_buf, "0"); if(!strcmp(prop_buf, "1")) { wifi_handle handle = getWifiHandle(iface); WifiCommand *cmd = wifi_unregister_cmd(handle, id); if (cmd) { cmd->cancel(); cmd->releaseRef(); return WIFI_SUCCESS; } } return WIFI_ERROR_INVALID_ARGS; }
wifi_error wifi_set_alert_handler(wifi_request_id id, wifi_interface_handle iface, wifi_alert_handler handler) { wifi_handle handle = getWifiHandle(iface); ALOGV("Alerthandler start, handle = %p", handle); SetAlertHandler *cmd = new SetAlertHandler(iface, id, handler); NULL_CHECK_RETURN(cmd, "memory allocation failure", WIFI_ERROR_OUT_OF_MEMORY); wifi_error result = wifi_register_cmd(handle, id, cmd); if (result != WIFI_SUCCESS) { cmd->releaseRef(); return result; } result = (wifi_error)cmd->start(); if (result != WIFI_SUCCESS) { wifi_unregister_cmd(handle, id); cmd->releaseRef(); return result; } return result; }