From c0fdcd1a10d0eae92fec9e00382b445d669c7428 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 2 Mar 2010 15:41:08 +0100 Subject: Make canvas Glz decoder integration nicer We use a dynamic interface similar to e.g. SpiceImageCache instead of passing both function and opaque --- client/glz_decoder.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'client/glz_decoder.cpp') diff --git a/client/glz_decoder.cpp b/client/glz_decoder.cpp index 0453aaae..30eecc14 100644 --- a/client/glz_decoder.cpp +++ b/client/glz_decoder.cpp @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* Copyright (C) 2009 Red Hat, Inc. @@ -19,12 +20,25 @@ #include "glz_decoder_config.h" #include "glz_decoder.h" +static void op_decode (SpiceGlzDecoder *decoder, + uint8_t *data, + SpicePalette *plt, + void *usr_data) +{ + GlzDecoder* _decoder = static_cast(decoder); + _decoder->decode(data, plt, usr_data); +} + GlzDecoder::GlzDecoder(GlzDecoderWindow &images_window, GlzDecodeHandler &usr_handler, GlzDecoderDebug &debug_calls) : _images_window (images_window) , _usr_handler (usr_handler) , _debug_calls (debug_calls) { + static SpiceGlzDecoderOps decoder_ops = { + op_decode, + }; + ops = &decoder_ops; } GlzDecoder::~GlzDecoder() -- cgit