Upgrade bluez5_37 :Merge the code from private
[platform/upstream/bluez.git] / profiles / input / hog-lib.h
1 /*
2  *
3  *  BlueZ - Bluetooth protocol stack for Linux
4  *
5  *  Copyright (C) 2014  Intel Corporation. All rights reserved.
6  *
7  *
8  *  This library is free software; you can redistribute it and/or
9  *  modify it under the terms of the GNU Lesser General Public
10  *  License as published by the Free Software Foundation; either
11  *  version 2.1 of the License, or (at your option) any later version.
12  *
13  *  This library is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  *  Lesser General Public License for more details.
17  *
18  *  You should have received a copy of the GNU Lesser General Public
19  *  License along with this library; if not, write to the Free Software
20  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21  *
22  */
23
24 struct bt_hog;
25
26 struct bt_hog *bt_hog_new_default(const char *name, uint16_t vendor,
27                                         uint16_t product, uint16_t version,
28                                         void *primary);
29
30 struct bt_hog *bt_hog_new(int fd, const char *name, uint16_t vendor,
31                                         uint16_t product, uint16_t version,
32                                         void *primary);
33
34 struct bt_hog *bt_hog_ref(struct bt_hog *hog);
35 void bt_hog_unref(struct bt_hog *hog);
36
37 bool bt_hog_attach(struct bt_hog *hog, void *gatt);
38 void bt_hog_detach(struct bt_hog *hog);
39
40 int bt_hog_set_control_point(struct bt_hog *hog, bool suspend);
41 int bt_hog_send_report(struct bt_hog *hog, void *data, size_t size, int type);