diff options
Diffstat (limited to 'src/dicache.h')
-rw-r--r-- | src/dicache.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/dicache.h b/src/dicache.h index c78d0953..51d67de2 100644 --- a/src/dicache.h +++ b/src/dicache.h @@ -10,6 +10,10 @@ extern "C" { #include "image.hh" #include "cache.h" +/* Symbolic name to request the last version of an image */ +#define DIC_Last -1 + + /* These will reflect the entry's "state" */ typedef enum { DIC_Empty, /* Just created the entry */ @@ -27,7 +31,6 @@ struct _DICacheEntry { uint_t width, height; /* As taken from image data */ DilloImgType type; /* Image type */ uchar_t *cmap; /* Color map */ - uchar_t *linebuf; /* Decompressed RGB buffer for one line */ void *v_imgbuf; /* Void pointer to an Imgbuf object */ uint_t TotalSize; /* Amount of memory the image takes up */ int Y; /* Current decoding row */ @@ -37,23 +40,29 @@ struct _DICacheEntry { int RefCount; /* Reference Counter */ int version; /* Version number, used for different versions of the same URL image */ + + CA_Callback_t Decoder; /* Client function */ + void *DecoderData; /* Client function data */ + uint_t DecodedSize; /* Size of already decoded data */ + DICacheEntry *next; /* Link to the next "newer" version */ }; void a_Dicache_init (void); -DICacheEntry *a_Dicache_get_entry(const DilloUrl *Url); +DICacheEntry *a_Dicache_get_entry(const DilloUrl *Url, int version); DICacheEntry *a_Dicache_add_entry(const DilloUrl *Url); void a_Dicache_callback(int Op, CacheClient_t *Client); +void a_Dicache_callback2(int Op, CacheClient_t *Client); void a_Dicache_set_parms(DilloUrl *url, int version, DilloImage *Image, uint_t width, uint_t height, DilloImgType type); void a_Dicache_set_cmap(DilloUrl *url, int version, DilloImage *Image, const uchar_t *cmap, uint_t num_colors, int num_colors_max, int bg_index); -void a_Dicache_new_scan(DilloImage *image, const DilloUrl *url, int version); +void a_Dicache_new_scan(const DilloUrl *url, int version); void a_Dicache_write(DilloImage *Image, DilloUrl *url, int version, const uchar_t *buf, uint_t Y); void a_Dicache_close(DilloUrl *url, int version, CacheClient_t *Client); |