xref: /btstack/src/btstack_stdin.h (revision ccaa09ba3e3ce58dfc0e4abc2383a8d78f5d8153)
1*ccaa09baSMatthias Ringwald /*
2*ccaa09baSMatthias Ringwald  * Copyright (C) 2014 BlueKitchen GmbH
3*ccaa09baSMatthias Ringwald  *
4*ccaa09baSMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
5*ccaa09baSMatthias Ringwald  * modification, are permitted provided that the following conditions
6*ccaa09baSMatthias Ringwald  * are met:
7*ccaa09baSMatthias Ringwald  *
8*ccaa09baSMatthias Ringwald  * 1. Redistributions of source code must retain the above copyright
9*ccaa09baSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
10*ccaa09baSMatthias Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11*ccaa09baSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
12*ccaa09baSMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
13*ccaa09baSMatthias Ringwald  * 3. Neither the name of the copyright holders nor the names of
14*ccaa09baSMatthias Ringwald  *    contributors may be used to endorse or promote products derived
15*ccaa09baSMatthias Ringwald  *    from this software without specific prior written permission.
16*ccaa09baSMatthias Ringwald  * 4. Any redistribution, use, or modification is done solely for
17*ccaa09baSMatthias Ringwald  *    personal benefit and not for any commercial purpose or for
18*ccaa09baSMatthias Ringwald  *    monetary gain.
19*ccaa09baSMatthias Ringwald  *
20*ccaa09baSMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21*ccaa09baSMatthias Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*ccaa09baSMatthias Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*ccaa09baSMatthias Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24*ccaa09baSMatthias Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25*ccaa09baSMatthias Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26*ccaa09baSMatthias Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27*ccaa09baSMatthias Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28*ccaa09baSMatthias Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29*ccaa09baSMatthias Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30*ccaa09baSMatthias Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31*ccaa09baSMatthias Ringwald  * SUCH DAMAGE.
32*ccaa09baSMatthias Ringwald  *
33*ccaa09baSMatthias Ringwald  * Please inquire about commercial licensing options at
34*ccaa09baSMatthias Ringwald  * [email protected]
35*ccaa09baSMatthias Ringwald  *
36*ccaa09baSMatthias Ringwald  */
37*ccaa09baSMatthias Ringwald 
38*ccaa09baSMatthias Ringwald #ifndef __STDIN_SUPPORT_H
39*ccaa09baSMatthias Ringwald #define __STDIN_SUPPORT_H
40*ccaa09baSMatthias Ringwald 
41*ccaa09baSMatthias Ringwald #include "btstack_run_loop.h"
42*ccaa09baSMatthias Ringwald 
43*ccaa09baSMatthias Ringwald #if defined __cplusplus
44*ccaa09baSMatthias Ringwald extern "C" {
45*ccaa09baSMatthias Ringwald #endif
46*ccaa09baSMatthias Ringwald 
47*ccaa09baSMatthias Ringwald // setup handler for command line interface
48*ccaa09baSMatthias Ringwald void btstack_stdin_setup(void (*stdin_handler)(btstack_data_source_t *_ds, btstack_data_source_callback_type_t callback_type));
49*ccaa09baSMatthias Ringwald 
50*ccaa09baSMatthias Ringwald // read single byte after data source callback was triggered
51*ccaa09baSMatthias Ringwald char btstack_stdin_read(void);
52*ccaa09baSMatthias Ringwald 
53*ccaa09baSMatthias Ringwald // gets called by main.c
54*ccaa09baSMatthias Ringwald void btstack_stdin_reset(void);
55*ccaa09baSMatthias Ringwald 
56*ccaa09baSMatthias Ringwald #if defined __cplusplus
57*ccaa09baSMatthias Ringwald }
58*ccaa09baSMatthias Ringwald #endif
59*ccaa09baSMatthias Ringwald 
60*ccaa09baSMatthias Ringwald #endif
61