srvc_battery_int.h revision dbba0e652e0ce23dd691df3c03979ec6e32c8db3
1dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie/******************************************************************************
2dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *
3dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  Copyright (C) 1999-2012 Broadcom Corporation
4dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *
5dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  Licensed under the Apache License, Version 2.0 (the "License");
6dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  you may not use this file except in compliance with the License.
7dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  You may obtain a copy of the License at:
8dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *
9dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  http://www.apache.org/licenses/LICENSE-2.0
10dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *
11dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  Unless required by applicable law or agreed to in writing, software
12dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  distributed under the License is distributed on an "AS IS" BASIS,
13dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  See the License for the specific language governing permissions and
15dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *  limitations under the License.
16dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie *
17dbba0e652e0ce23dd691df3c03979ec6e32c8db3Matthew Xie ******************************************************************************/
182e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
192e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifndef SRVC_BATTERY_INT_H
202e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define SRVC_BATTERY_INT_H
212e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
222e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#include "bt_target.h"
232e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#include "srvc_api.h"
242e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#include "gatt_api.h"
252e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
262e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifndef BA_MAX_INT_NUM
272e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BA_MAX_INT_NUM     4
282e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif
292e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
302e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define BATTERY_LEVEL_SIZE      1
312e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
322e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
332e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachtypedef struct
342e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach{
352e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT8           app_id;
362e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT16          ba_level_hdl;
372e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT16          clt_cfg_hdl;
382e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT16          rpt_ref_hdl;
392e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT16          pres_fmt_hdl;
402e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
412e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    tBA_CBACK       *p_cback;
422e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
432e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT16          pending_handle;
442e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT8           pending_clcb_idx;
452e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT8           pending_evt;
462e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
472e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach}tBA_INST;
482e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
492e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachtypedef struct
502e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach{
512e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    tBA_INST                battery_inst[BA_MAX_INT_NUM];
522e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    UINT8                   inst_id;
532e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach    BOOLEAN                 enabled;
542e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
552e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach}tBATTERY_CB;
562e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
572e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifdef __cplusplus
582e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachextern "C" {
592e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif
602e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
612e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach/* Global GATT data */
622e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#if GATT_DYNAMIC_MEMORY == FALSE
632e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre EisenbachGATT_API extern tBATTERY_CB battery_cb;
642e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#else
652e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre EisenbachGATT_API extern tBATTERY_CB *battery_cb_ptr;
662e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#define battery_cb (*battery_cb_ptr)
672e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif
682e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
692e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
702e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachextern BOOLEAN battery_valid_handle_range(UINT16 handle);
712e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
722e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachextern UINT8 battery_s_write_attr_value(UINT8 clcb_idx, tGATT_WRITE_REQ * p_value,
732e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach                                 tGATT_STATUS *p_status);
742e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbachextern UINT8 battery_s_read_attr_value (UINT8 clcb_idx, UINT16 handle, tGATT_VALUE *p_value, BOOLEAN is_long, tGATT_STATUS* p_status);
752e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
762e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
772e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach
782e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#ifdef __cplusplus
792e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach}
802e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif
812e7fa68bfd9723b7ec7b6b0b128d89f31a2e06eeAndre Eisenbach#endif
82