FreeCalypso > hg > gsm-codec-lib
diff libtest/binreader.c @ 10:820d88b97924
libtest: implement binary file reader
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 19 Nov 2022 23:57:42 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtest/binreader.c Sat Nov 19 23:57:42 2022 +0000 @@ -0,0 +1,29 @@ +/* + * Here we implement our binfile_read_frame() function. + */ + +#include <stdio.h> +#include <stdint.h> +#include "binreader.h" + +int binfile_read_frame(FILE *binf, uint8_t *frame) +{ + int cc, morelen; + + cc = fread(frame, 1, 1, binf); + if (cc != 1) + return 0; + if (frame[0] == 0xBF) + morelen = 1; + else if ((frame[0] & 0xF0) == 0xC0) + morelen = 30; + else if ((frame[0] & 0xF0) == 0xD0) + morelen = 32; + else + return -1; + cc = fread(frame+1, 1, morelen, binf); + if (cc == morelen) + return 1; + else + return -2; +}