X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fgldecoder.c;h=e11d13c46d51ef0a064415eecf7933b7cb0e6b10;hb=53c5f5f90611ce35d13f7051b26ac482d1336fc5;hp=93a525876c64c4b033bb92cd6f770239fcbc2dd9;hpb=9d1825d591a7261b1cff620ba535d333352984bf;p=gldbg.git diff --git a/source/gldecoder.c b/source/gldecoder.c index 93a5258..e11d13c 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,97 @@ 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