From 88bc6ea8e4398fb12429b7ef3b7801cf53546495 Mon Sep 17 00:00:00 2001 From: "matthias.ringwald" Date: Tue, 29 Jun 2010 20:58:45 +0000 Subject: [PATCH] moved private parts of run_loop.h into run_loop_private.h --- TODO.txt | 8 +++-- include/btstack/run_loop.h | 34 +++++++-------------- src/get_version.sh | 2 +- src/run_loop_cocoa.m | 3 ++ src/run_loop_posix.c | 2 ++ src/run_loop_private.h | 60 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 82 insertions(+), 27 deletions(-) create mode 100644 src/run_loop_private.h diff --git a/TODO.txt b/TODO.txt index 4f50b34ea..aed51918e 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,12 +1,16 @@ /* new todo file for BTstack */ 2009-11-08: Release 0.1 +2010-06-20: Release 0.2 - SDP + iOS 4 support NEXT: -- implement SDP - test SDP implementation against Mac/Linux Service Discovery +- HCI CMD packet is limited to 255 bytes payload. SDP records can be larger than that. Options: + - handle SDP records in client library + - provide a way to transer SDP records in segments + - ignore HCI command lenght on socket connection and directly stream data without buffer + - use simple SDP_PACKET for client/server communication -== Release Version 0.2 - move RFCOMM code into BTdaemon - add extern "C" to bstack methods - see: http://stackoverflow.com/questions/376966/using-c-c-static-libraries-from-iphone-objectivec-apps diff --git a/include/btstack/run_loop.h b/include/btstack/run_loop.h index bc6b90fc2..7c35009cd 100644 --- a/include/btstack/run_loop.h +++ b/include/btstack/run_loop.h @@ -43,7 +43,8 @@ typedef enum { RUN_LOOP_POSIX = 1, - RUN_LOOP_COCOA + RUN_LOOP_COCOA, + RUN_LOOP_EMBEDDED } RUN_LOOP_TYPE; typedef struct data_source { @@ -64,28 +65,13 @@ void run_loop_init(RUN_LOOP_TYPE type); // set timer based on current time void run_loop_set_timer(timer_source_t *a, int timeout_in_ms); -// compare timeval or timers - NULL is assumed to be before the Big Bang -int run_loop_timeval_compare(struct timeval *a, struct timeval *b); -int run_loop_timer_compare(timer_source_t *a, timer_source_t *b); +// add/remove data_source +void run_loop_add_data_source(data_source_t *dataSource); +int run_loop_remove_data_source(data_source_t *dataSource); -void run_loop_add_data_source(data_source_t *dataSource); // <-- add DataSource to RunLoop -int run_loop_remove_data_source(data_source_t *dataSource); // <-- remove DataSource from RunLoop +// add/remove timer_source +void run_loop_add_timer(timer_source_t *timer); +int run_loop_remove_timer(timer_source_t *timer); -void run_loop_add_timer(timer_source_t *timer); // <-- add Timer to RunLoop -int run_loop_remove_timer(timer_source_t *timer); // <-- remove Timer from RunLoop - -void run_loop_execute(); // <-- execute configured RunLoop - -void run_loop_timer_dump(); // debug - - -// internal use only -typedef struct { - void (*init)(); - void (*add_data_source)(data_source_t *dataSource); - int (*remove_data_source)(data_source_t *dataSource); - void (*add_timer)(timer_source_t *timer); - int (*remove_timer)(timer_source_t *timer); - void (*execute)(); - void (*dump_timer)(); -} run_loop_t; +// execute configured run_loop +void run_loop_execute(); diff --git a/src/get_version.sh b/src/get_version.sh index c7b1ea2a6..b56ce105b 100755 --- a/src/get_version.sh +++ b/src/get_version.sh @@ -2,7 +2,7 @@ FILE=../include/btstack/version.h REVISION=`svnversion | sed "s/\([0-9]*\).*/\1/"` MAJOR=0 -MINOR=1 +MINOR=2 DATE=`date "+%Y-%m-%d_%H:%M:%S"` printf "// BTstack - version.h\n" > $FILE printf "// - generated by %s\n" $0>> $FILE diff --git a/src/run_loop_cocoa.m b/src/run_loop_cocoa.m index 471575e71..2d03c5a30 100644 --- a/src/run_loop_cocoa.m +++ b/src/run_loop_cocoa.m @@ -37,6 +37,9 @@ #include +#include +#include "run_loop_private.h" + #import #import diff --git a/src/run_loop_posix.c b/src/run_loop_posix.c index 0ff46b788..12a0ff806 100644 --- a/src/run_loop_posix.c +++ b/src/run_loop_posix.c @@ -38,6 +38,8 @@ #include #include +#include "run_loop_private.h" + #include #include #include diff --git a/src/run_loop_private.h b/src/run_loop_private.h new file mode 100644 index 000000000..6ba8b00e3 --- /dev/null +++ b/src/run_loop_private.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2009 by Matthias Ringwald + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY MATTHIAS RINGWALD AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS + * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +/* + * run_loop_private.h + * + * Created by Matthias Ringwald on 6/6/09. + */ + +#pragma once + +#include + +#include + +// compare timeval or timers - NULL is assumed to be before the Big Bang +int run_loop_timeval_compare(struct timeval *a, struct timeval *b); +int run_loop_timer_compare(timer_source_t *a, timer_source_t *b); + +// +void run_loop_timer_dump(); + +// internal use only +typedef struct { + void (*init)(); + void (*add_data_source)(data_source_t *dataSource); + int (*remove_data_source)(data_source_t *dataSource); + void (*add_timer)(timer_source_t *timer); + int (*remove_timer)(timer_source_t *timer); + void (*execute)(); + void (*dump_timer)(); +} run_loop_t;