1ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam/* Copyright (c) 2015, The Linux Foundation. All rights reserved. 2ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * 3ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * Redistribution and use in source and binary forms, with or without 4ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * modification, are permitted provided that the following conditions 5ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * are met: 6ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * * Redistributions of source code must retain the above copyright 7ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * notice, this list of conditions and the following disclaimer. 8ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * * Redistributions in binary form must reproduce the above copyright 9ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * notice, this list of conditions and the following disclaimer in 10ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * the documentation and/or other materials provided with the 11ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * distribution. 12ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * * Neither the name of The Linux Foundation nor the names of its 13ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * contributors may be used to endorse or promote products derived 14ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * from this software without specific prior written permission. 15ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * 16ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam */ 28ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 29ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#ifndef __WIFI_HAL_RSSI_MONITOR_COMMAND_H__ 30ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#define __WIFI_HAL_RSSI_MONITOR_COMMAND_H__ 31ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 32ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#include "cpp_bindings.h" 33ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 34ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#ifdef __cplusplus 35ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyamextern "C" 36ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam{ 37ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#endif /* __cplusplus */ 38ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 39ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyamclass RSSIMonitorCommand: public WifiVendorCommand 40ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam{ 41ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyamprivate: 42ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam static RSSIMonitorCommand *mRSSIMonitorCommandInstance; 43ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam wifi_rssi_event_handler mHandler; 44ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam RSSIMonitorCommand(wifi_handle handle, int id, u32 vendor_id, u32 subcmd); 4584228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik bool mEventHandlingEnabled; 4684228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik /* mutex for the mEventHandlingEnabled access*/ 4784228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik pthread_mutex_t rm_lock; 48ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 49ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyampublic: 50ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam virtual ~RSSIMonitorCommand(); 51ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam static RSSIMonitorCommand* instance(wifi_handle handle, wifi_request_id id); 52ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam virtual int handleEvent(WifiEvent &event); 53d0d336f8cfaa370fc8f9ff7426ffba0036063c61Amarnath Hullur Subramanyam virtual void setReqId(wifi_request_id reqid); 5484228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik virtual void setCallbackHandler(wifi_rssi_event_handler nHandler); 5584228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik void enableEventHandling(); 5684228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik void disableEventHandling(); 5784228ea6c6aaabd4717dc8932f1b0a73b6105d88Subhani Shaik bool isEventHandlingEnabled(); 58ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam}; 59ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam 60ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#ifdef __cplusplus 61ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam} 62ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#endif /* __cplusplus */ 63ddae66e0dd0f0b30e8f8a7c8dc84a205f8a98f98Amarnath Hullur Subramanyam#endif 64