xref: /btstack/src/classic/goep_server.h (revision b3911ea7cce4ddb065966bf4224627bf113a5cfd)
1*b3911ea7SMilanka Ringwald /*
2*b3911ea7SMilanka Ringwald  * Copyright (C) 2022 BlueKitchen GmbH
3*b3911ea7SMilanka Ringwald  *
4*b3911ea7SMilanka Ringwald  * Redistribution and use in source and binary forms, with or without
5*b3911ea7SMilanka Ringwald  * modification, are permitted provided that the following conditions
6*b3911ea7SMilanka Ringwald  * are met:
7*b3911ea7SMilanka Ringwald  *
8*b3911ea7SMilanka Ringwald  * 1. Redistributions of source code must retain the above copyright
9*b3911ea7SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer.
10*b3911ea7SMilanka Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11*b3911ea7SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer in the
12*b3911ea7SMilanka Ringwald  *    documentation and/or other materials provided with the distribution.
13*b3911ea7SMilanka Ringwald  * 3. Neither the name of the copyright holders nor the names of
14*b3911ea7SMilanka Ringwald  *    contributors may be used to endorse or promote products derived
15*b3911ea7SMilanka Ringwald  *    from this software without specific prior written permission.
16*b3911ea7SMilanka Ringwald  * 4. Any redistribution, use, or modification is done solely for
17*b3911ea7SMilanka Ringwald  *    personal benefit and not for any commercial purpose or for
18*b3911ea7SMilanka Ringwald  *    monetary gain.
19*b3911ea7SMilanka Ringwald  *
20*b3911ea7SMilanka Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21*b3911ea7SMilanka Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*b3911ea7SMilanka Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*b3911ea7SMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN
24*b3911ea7SMilanka Ringwald  * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25*b3911ea7SMilanka Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26*b3911ea7SMilanka Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27*b3911ea7SMilanka Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28*b3911ea7SMilanka Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29*b3911ea7SMilanka Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30*b3911ea7SMilanka Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31*b3911ea7SMilanka Ringwald  * SUCH DAMAGE.
32*b3911ea7SMilanka Ringwald  *
33*b3911ea7SMilanka Ringwald  * Please inquire about commercial licensing options at
34*b3911ea7SMilanka Ringwald  * [email protected]
35*b3911ea7SMilanka Ringwald  *
36*b3911ea7SMilanka Ringwald  */
37*b3911ea7SMilanka Ringwald 
38*b3911ea7SMilanka Ringwald #ifndef GOEP_SERVER_H
39*b3911ea7SMilanka Ringwald #define GOEP_SERVER_H
40*b3911ea7SMilanka Ringwald 
41*b3911ea7SMilanka Ringwald #if defined __cplusplus
42*b3911ea7SMilanka Ringwald extern "C" {
43*b3911ea7SMilanka Ringwald #endif
44*b3911ea7SMilanka Ringwald 
45*b3911ea7SMilanka Ringwald #include "btstack_config.h"
46*b3911ea7SMilanka Ringwald #include <stdint.h>
47*b3911ea7SMilanka Ringwald 
48*b3911ea7SMilanka Ringwald /* API_START */
49*b3911ea7SMilanka Ringwald 
50*b3911ea7SMilanka Ringwald typedef enum {
51*b3911ea7SMilanka Ringwald     GOEP_SERVER_IDLE,
52*b3911ea7SMilanka Ringwald     GOEP_SERVER_W4_RFCOMM_CONNECTED,
53*b3911ea7SMilanka Ringwald     GOEP_SERVER_RFCOMM_CONNECTED
54*b3911ea7SMilanka Ringwald } goep_server_state_t;
55*b3911ea7SMilanka Ringwald 
56*b3911ea7SMilanka Ringwald typedef enum {
57*b3911ea7SMilanka Ringwald     GOEP_L2CAP_CONNECTION = 0,
58*b3911ea7SMilanka Ringwald     GOEP_RFCOMM_CONNECTION
59*b3911ea7SMilanka Ringwald } goep_connection_type_t;
60*b3911ea7SMilanka Ringwald 
61*b3911ea7SMilanka Ringwald typedef struct {
62*b3911ea7SMilanka Ringwald     // linked list - assert: first field
63*b3911ea7SMilanka Ringwald     btstack_linked_item_t    item;
64*b3911ea7SMilanka Ringwald 
65*b3911ea7SMilanka Ringwald     btstack_packet_handler_t callback;
66*b3911ea7SMilanka Ringwald     uint8_t  rfcomm_channel;
67*b3911ea7SMilanka Ringwald     uint16_t l2cap_psm;
68*b3911ea7SMilanka Ringwald } goep_server_service_t;
69*b3911ea7SMilanka Ringwald 
70*b3911ea7SMilanka Ringwald // type
71*b3911ea7SMilanka Ringwald typedef struct {
72*b3911ea7SMilanka Ringwald     // linked list - assert: first field
73*b3911ea7SMilanka Ringwald     btstack_linked_item_t    item;
74*b3911ea7SMilanka Ringwald     uint16_t bearer_cid;
75*b3911ea7SMilanka Ringwald     uint16_t goep_cid;
76*b3911ea7SMilanka Ringwald     goep_connection_type_t  type;
77*b3911ea7SMilanka Ringwald     goep_server_service_t * service;
78*b3911ea7SMilanka Ringwald     goep_server_state_t     state;
79*b3911ea7SMilanka Ringwald } goep_server_connection_t;
80*b3911ea7SMilanka Ringwald /* API_END */
81*b3911ea7SMilanka Ringwald 
82*b3911ea7SMilanka Ringwald #if defined __cplusplus
83*b3911ea7SMilanka Ringwald }
84*b3911ea7SMilanka Ringwald #endif
85*b3911ea7SMilanka Ringwald #endif
86