diff options
Diffstat (limited to 'include/vcl')
-rw-r--r-- | include/vcl/alpha.hxx | 2 | ||||
-rw-r--r-- | include/vcl/animate.hxx | 4 | ||||
-rw-r--r-- | include/vcl/bitmap.hxx | 3 | ||||
-rw-r--r-- | include/vcl/bitmapex.hxx | 2 | ||||
-rw-r--r-- | include/vcl/checksum.hxx | 92 | ||||
-rw-r--r-- | include/vcl/gdimtf.hxx | 2 | ||||
-rw-r--r-- | include/vcl/graph.hxx | 4 |
7 files changed, 101 insertions, 8 deletions
diff --git a/include/vcl/alpha.hxx b/include/vcl/alpha.hxx index ec89be425e12..89b6996f18e5 100644 --- a/include/vcl/alpha.hxx +++ b/include/vcl/alpha.hxx @@ -52,7 +52,7 @@ public: Size GetSizePixel() const { return Bitmap::GetSizePixel(); } sal_uLong GetSizeBytes() const { return Bitmap::GetSizeBytes(); } - sal_uLong GetChecksum() const { return Bitmap::GetChecksum(); } + BitmapChecksum GetChecksum() const { return Bitmap::GetChecksum(); } Bitmap GetBitmap() const; diff --git a/include/vcl/animate.hxx b/include/vcl/animate.hxx index 1f2a6b8b3920..db62836225b9 100644 --- a/include/vcl/animate.hxx +++ b/include/vcl/animate.hxx @@ -97,7 +97,7 @@ struct VCL_DLLPUBLIC AnimationBitmap rAnimBmp.aBmpEx.IsEqual( aBmpEx ) ); } - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; }; struct AInfo @@ -173,7 +173,7 @@ public: void Replace( const AnimationBitmap& rNewAnimationBmp, sal_uInt16 nAnimation ); sal_uLong GetSizeBytes() const; - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; public: diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx index a9f2146280c7..e9800a02b864 100644 --- a/include/vcl/bitmap.hxx +++ b/include/vcl/bitmap.hxx @@ -24,6 +24,7 @@ #include <tools/color.hxx> #include <tools/link.hxx> #include <tools/solar.h> +#include <vcl/checksum.hxx> #include <vcl/dllapi.h> #include <vcl/mapmod.hxx> #include <vcl/region.hxx> @@ -386,7 +387,7 @@ public: */ bool GetSystemData( BitmapSystemData& rData ) const; - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; Bitmap CreateDisplayBitmap( OutputDevice* pDisplay ); Bitmap GetColorTransformedBitmap() const; diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx index 096e2a050905..d609d8944532 100644 --- a/include/vcl/bitmapex.hxx +++ b/include/vcl/bitmapex.hxx @@ -96,7 +96,7 @@ public: sal_uInt16 GetBitCount() const { return aBitmap.GetBitCount(); } sal_uLong GetSizeBytes() const; - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; public: diff --git a/include/vcl/checksum.hxx b/include/vcl/checksum.hxx new file mode 100644 index 000000000000..7e1076fb3139 --- /dev/null +++ b/include/vcl/checksum.hxx @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +#ifndef INCLUDED_VCL_INC_CHECKSUM_HXX +#define INCLUDED_VCL_INC_CHECKSUM_HXX + +#include <sal/config.h> +#include <sal/types.h> +#include <tools/solar.h> +#include <vcl/dllapi.h> + +#include <boost/preprocessor/arithmetic/inc.hpp> +#include <boost/preprocessor/arithmetic/mul.hpp> +#include <boost/preprocessor/repetition/repeat_from_to.hpp> + +#define BITMAP_CHECKSUM_SIZE 8 +#define BITMAP_CHECKSUM_BITS BOOST_PP_MUL(BITMAP_CHECKSUM_SIZE, 8) + +typedef sal_uInt64 BitmapChecksum; +typedef sal_uInt8 BitmapChecksumOctetArray[BITMAP_CHECKSUM_SIZE]; + +#define BITMAP_CHECKSUM_SET_OCTET(z, i, unused) \ +p[i] = (sal_uInt8)(n >> BOOST_PP_MUL(8, i)); + + +inline void BCToBCOA( BitmapChecksum n , BitmapChecksumOctetArray p ) +{ + BOOST_PP_REPEAT(BITMAP_CHECKSUM_SIZE , BITMAP_CHECKSUM_SET_OCTET, unused) +} + +#ifdef __cplusplus +extern "C" { +#endif + +/*======================================================================== + * + * vcl_crc64 interface. + * + *======================================================================*/ +/** Evaluate CRC64 over given data. + + This function evaluates the CRC polynomial 0xEDB88320. + + @param Crc [in] CRC64 over previous data or zero. + @param Data [in] data buffer. + @param DatLen [in] data buffer length. + @return new CRC64 value. + */ +VCL_DLLPUBLIC sal_uInt64 SAL_CALL vcl_crc64 ( + sal_uInt64 Crc, + const void *Data, sal_uInt32 DatLen +) SAL_THROW_EXTERN_C(); + + + +VCL_DLLPUBLIC const sal_uInt64* vcl_get_crc64_table(); + + +#ifdef __cplusplus +} +#endif + +inline BitmapChecksum vcl_get_checksum ( + BitmapChecksum Checksum, + const void *Data, + sal_uInt32 DatLen +) +{ + return (BitmapChecksum)(vcl_crc64( Checksum, Data, DatLen )); +} + + +#endif // INCLUDED_VCL_INC_CHECKSUM_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/gdimtf.hxx b/include/vcl/gdimtf.hxx index 8baa116eea95..28075dcf1607 100644 --- a/include/vcl/gdimtf.hxx +++ b/include/vcl/gdimtf.hxx @@ -198,7 +198,7 @@ public: void SetHookHdl( const Link<>& rLink ) { aHookHdlLink = rLink; } const Link<>& GetHookHdl() const { return aHookHdlLink; } - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; sal_uLong GetSizeBytes() const; // Methods for reading and writing the new formats; diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx index 778c6719c4c7..929daf8ee1fb 100644 --- a/include/vcl/graph.hxx +++ b/include/vcl/graph.hxx @@ -161,9 +161,9 @@ public: void SetAnimationNotifyHdl( const Link<>& rLink ); Link<> GetAnimationNotifyHdl() const; - sal_uLong GetAnimationLoopCount() const; + sal_uLong GetAnimationLoopCount() const; - sal_uLong GetChecksum() const; + BitmapChecksum GetChecksum() const; public: |