X-Git-Url: http://git.tdb.fi/?p=gldbg.git;a=blobdiff_plain;f=source%2Fgldecoder.c;h=85d089d2034af846d3d7c990db52db680d40ea66;hp=93a525876c64c4b033bb92cd6f770239fcbc2dd9;hb=0cdc7b50b0e7758a1660c94be664a810504a88f4;hpb=9d1825d591a7261b1cff620ba535d333352984bf diff --git a/source/gldecoder.c b/source/gldecoder.c index 93a5258..85d089d 100644 --- a/source/gldecoder.c +++ b/source/gldecoder.c @@ -10,6 +10,10 @@ Distributed under the GPL #include "functions.h" #include "gldecoder.h" +static unsigned read_short(short *, const char *); +static unsigned read_int(int *, const char *); +static int decode_func(GlDecoder *, short, const char *); + GlDecoder *gldecoder_new(void *user_data, void (*destroy)(void *)) { GlDecoder *dec; @@ -29,72 +33,94 @@ void gldecoder_delete(GlDecoder *dec) free(dec); } -unsigned read_char(char *v, const char *data, unsigned len) +int gldecoder_decode(GlDecoder *dec, const char *data, unsigned len) +{ + unsigned pos = 0; + int pktlen; + short func; + int ret; + + if(len