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