FreeCalypso > hg > gsm-codec-lib
diff libgsmhr1/sid_detect.c @ 494:aaf4dec8bee0
libgsmhr1: implement perfect SID detection
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 Jun 2024 23:14:19 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgsmhr1/sid_detect.c Mon Jun 17 23:14:19 2024 +0000 @@ -0,0 +1,22 @@ +/* + * The function in this module implements detection of perfect, error-free + * HRv1 SID frames in TS 101 318 raw packed format. If SID is detected, + * the return value is 2: the code for valid SID per GSM 06.41. + */ + +#include <stdint.h> +#include <string.h> +#include "tw_gsmhr.h" + +int gsmhr_ts101318_is_perfect_sid(const uint8_t *payload) +{ + static const uint8_t all_ff_bytes[9] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF}; + + if ((payload[4] & 0x7F) != 0x7F) + return 0; + if (memcmp(payload + 5, all_ff_bytes, 9) == 0) + return 2; + else + return 0; +}