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