From c7b92184dfbd391b9e302a3722a32b41823317d9 Mon Sep 17 00:00:00 2001 From: James Zern Date: Sat, 13 Apr 2013 10:38:09 -0700 Subject: [PATCH] don't forward declare enums doing so is not part of ISO C; removes some pedantic warnings Change-Id: I739ad8c5cacc133e2546e9f45c0db9d92fb93d7e (cherry picked from commit 96e948d7b034d916e959b68e7151405f8a309eaa) --- src/webp/decode.h | 16 ++++++++-------- src/webp/demux.h | 16 ++++++++-------- src/webp/encode.h | 28 ++++++++++++++-------------- src/webp/mux.h | 16 ++++++++-------- src/webp/mux_types.h | 18 +++++++++--------- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/webp/decode.h b/src/webp/decode.h index f8a852ca..fc2a83ab 100644 --- a/src/webp/decode.h +++ b/src/webp/decode.h @@ -20,13 +20,13 @@ extern "C" { #define WEBP_DECODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b) +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum VP8StatusCode VP8StatusCode; +// typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; typedef struct WebPRGBABuffer WebPRGBABuffer; typedef struct WebPYUVABuffer WebPYUVABuffer; typedef struct WebPDecBuffer WebPDecBuffer; -#if !(defined(__cplusplus) || defined(c_plusplus)) -typedef enum VP8StatusCode VP8StatusCode; -typedef enum WEBP_CSP_MODE WEBP_CSP_MODE; -#endif typedef struct WebPIDecoder WebPIDecoder; typedef struct WebPBitstreamFeatures WebPBitstreamFeatures; typedef struct WebPDecoderOptions WebPDecoderOptions; @@ -138,7 +138,7 @@ WEBP_EXTERN(uint8_t*) WebPDecodeYUVInto( // RGBA-4444: [b3 b2 b1 b0 a3 a2 a1 a0], [r3 r2 r1 r0 g3 g2 g1 g0], ... // RGB-565: [g2 g1 g0 b4 b3 b2 b1 b0], [r4 r3 r2 r1 r0 g5 g4 g3], ... -enum WEBP_CSP_MODE { +typedef enum WEBP_CSP_MODE { MODE_RGB = 0, MODE_RGBA = 1, MODE_BGR = 2, MODE_BGRA = 3, MODE_ARGB = 4, MODE_RGBA_4444 = 5, @@ -151,7 +151,7 @@ enum WEBP_CSP_MODE { // YUV modes must come after RGB ones. MODE_YUV = 11, MODE_YUVA = 12, // yuv 4:2:0 MODE_LAST = 13 -}; +} WEBP_CSP_MODE; // Some useful macros: static WEBP_INLINE int WebPIsPremultipliedMode(WEBP_CSP_MODE mode) { @@ -220,7 +220,7 @@ WEBP_EXTERN(void) WebPFreeDecBuffer(WebPDecBuffer* buffer); //------------------------------------------------------------------------------ // Enumeration of the status codes -enum VP8StatusCode { +typedef enum VP8StatusCode { VP8_STATUS_OK = 0, VP8_STATUS_OUT_OF_MEMORY, VP8_STATUS_INVALID_PARAM, @@ -229,7 +229,7 @@ enum VP8StatusCode { VP8_STATUS_SUSPENDED, VP8_STATUS_USER_ABORT, VP8_STATUS_NOT_ENOUGH_DATA -}; +} VP8StatusCode; //------------------------------------------------------------------------------ // Incremental decoding diff --git a/src/webp/demux.h b/src/webp/demux.h index cfb4fdfe..2006b94f 100644 --- a/src/webp/demux.h +++ b/src/webp/demux.h @@ -53,11 +53,11 @@ extern "C" { #define WEBP_DEMUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b) +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPDemuxState WebPDemuxState; +// typedef enum WebPFormatFeature WebPFormatFeature; typedef struct WebPDemuxer WebPDemuxer; -#if !(defined(__cplusplus) || defined(c_plusplus)) -typedef enum WebPDemuxState WebPDemuxState; -typedef enum WebPFormatFeature WebPFormatFeature; -#endif typedef struct WebPIterator WebPIterator; typedef struct WebPChunkIterator WebPChunkIterator; @@ -70,11 +70,11 @@ WEBP_EXTERN(int) WebPGetDemuxVersion(void); //------------------------------------------------------------------------------ // Life of a Demux object -enum WebPDemuxState { +typedef enum WebPDemuxState { WEBP_DEMUX_PARSING_HEADER, // Not enough data to parse full header. WEBP_DEMUX_PARSED_HEADER, // Header parsing complete, data may be available. WEBP_DEMUX_DONE // Entire file has been parsed. -}; +} WebPDemuxState; // Internal, version-checked, entry point WEBP_EXTERN(WebPDemuxer*) WebPDemuxInternal( @@ -100,7 +100,7 @@ WEBP_EXTERN(void) WebPDemuxDelete(WebPDemuxer* dmux); //------------------------------------------------------------------------------ // Data/information extraction. -enum WebPFormatFeature { +typedef enum WebPFormatFeature { WEBP_FF_FORMAT_FLAGS, // Extended format flags present in the 'VP8X' chunk. WEBP_FF_CANVAS_WIDTH, WEBP_FF_CANVAS_HEIGHT, @@ -110,7 +110,7 @@ enum WebPFormatFeature { // In case of a partial demux, this is the number of // frames seen so far, with the last frame possibly // being partial. -}; +} WebPFormatFeature; // Get the 'feature' value from the 'dmux'. // NOTE: values are only valid if WebPDemux() was used or WebPDemuxPartial() diff --git a/src/webp/encode.h b/src/webp/encode.h index ad20fa1d..d635fcf0 100644 --- a/src/webp/encode.h +++ b/src/webp/encode.h @@ -20,12 +20,12 @@ extern "C" { #define WEBP_ENCODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b) -#if !(defined(__cplusplus) || defined(c_plusplus)) -typedef enum WebPImageHint WebPImageHint; -typedef enum WebPEncCSP WebPEncCSP; -typedef enum WebPPreset WebPPreset; -typedef enum WebPEncodingError WebPEncodingError; -#endif +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPImageHint WebPImageHint; +// typedef enum WebPEncCSP WebPEncCSP; +// typedef enum WebPPreset WebPPreset; +// typedef enum WebPEncodingError WebPEncodingError; typedef struct WebPConfig WebPConfig; typedef struct WebPPicture WebPPicture; // main structure for I/O typedef struct WebPAuxStats WebPAuxStats; @@ -77,13 +77,13 @@ WEBP_EXTERN(size_t) WebPEncodeLosslessBGRA(const uint8_t* bgra, // Coding parameters // Image characteristics hint for the underlying encoder. -enum WebPImageHint { +typedef enum WebPImageHint { WEBP_HINT_DEFAULT = 0, // default preset. WEBP_HINT_PICTURE, // digital picture, like portrait, inner shot WEBP_HINT_PHOTO, // outdoor photograph, with natural lighting WEBP_HINT_GRAPH, // Discrete tone image (graph, map-tile etc). WEBP_HINT_LAST -}; +} WebPImageHint; // Compression parameters. struct WebPConfig { @@ -133,14 +133,14 @@ struct WebPConfig { // Enumerate some predefined settings for WebPConfig, depending on the type // of source picture. These presets are used when calling WebPConfigPreset(). -enum WebPPreset { +typedef enum WebPPreset { WEBP_PRESET_DEFAULT = 0, // default preset. WEBP_PRESET_PICTURE, // digital picture, like portrait, inner shot WEBP_PRESET_PHOTO, // outdoor photograph, with natural lighting WEBP_PRESET_DRAWING, // hand or line drawing, with high-contrast details WEBP_PRESET_ICON, // small-sized colorful images WEBP_PRESET_TEXT // text-like -}; +} WebPPreset; // Internal, version-checked, entry point WEBP_EXTERN(int) WebPConfigInitInternal(WebPConfig*, WebPPreset, float, int); @@ -230,7 +230,7 @@ WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, typedef int (*WebPProgressHook)(int percent, const WebPPicture* picture); // Color spaces. -enum WebPEncCSP { +typedef enum WebPEncCSP { // chroma sampling WEBP_YUV420 = 0, // 4:2:0 WEBP_YUV422 = 1, // 4:2:2 @@ -243,10 +243,10 @@ enum WebPEncCSP { WEBP_YUV444A = 6, WEBP_YUV400A = 7, // grayscale + alpha WEBP_CSP_ALPHA_BIT = 4 // bit that is set if alpha is present -}; +} WebPEncCSP; // Encoding error conditions. -enum WebPEncodingError { +typedef enum WebPEncodingError { VP8_ENC_OK = 0, VP8_ENC_ERROR_OUT_OF_MEMORY, // memory error allocating objects VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY, // memory error while flushing bits @@ -259,7 +259,7 @@ enum WebPEncodingError { VP8_ENC_ERROR_FILE_TOO_BIG, // file is bigger than 4G VP8_ENC_ERROR_USER_ABORT, // abort request by user VP8_ENC_ERROR_LAST // list terminator. always last. -}; +} WebPEncodingError; // maximum width/height allowed (inclusive), in pixels #define WEBP_MAX_DIMENSION 16383 diff --git a/src/webp/mux.h b/src/webp/mux.h index 85a89227..f869a2dc 100644 --- a/src/webp/mux.h +++ b/src/webp/mux.h @@ -53,26 +53,26 @@ extern "C" { #define WEBP_MUX_ABI_VERSION 0x0100 // MAJOR(8b) + MINOR(8b) +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPMuxError WebPMuxError; +// typedef enum WebPChunkId WebPChunkId; typedef struct WebPMux WebPMux; // main opaque object. -#if !(defined(__cplusplus) || defined(c_plusplus)) -typedef enum WebPMuxError WebPMuxError; -typedef enum WebPChunkId WebPChunkId; -#endif typedef struct WebPMuxFrameInfo WebPMuxFrameInfo; typedef struct WebPMuxAnimParams WebPMuxAnimParams; // Error codes -enum WebPMuxError { +typedef enum WebPMuxError { WEBP_MUX_OK = 1, WEBP_MUX_NOT_FOUND = 0, WEBP_MUX_INVALID_ARGUMENT = -1, WEBP_MUX_BAD_DATA = -2, WEBP_MUX_MEMORY_ERROR = -3, WEBP_MUX_NOT_ENOUGH_DATA = -4 -}; +} WebPMuxError; // IDs for different types of chunks. -enum WebPChunkId { +typedef enum WebPChunkId { WEBP_CHUNK_VP8X, // VP8X WEBP_CHUNK_ICCP, // ICCP WEBP_CHUNK_ANIM, // ANIM @@ -84,7 +84,7 @@ enum WebPChunkId { WEBP_CHUNK_XMP, // XMP WEBP_CHUNK_UNKNOWN, // Other chunks. WEBP_CHUNK_NIL -}; +} WebPChunkId; //------------------------------------------------------------------------------ diff --git a/src/webp/mux_types.h b/src/webp/mux_types.h index 4006a540..7bad0004 100644 --- a/src/webp/mux_types.h +++ b/src/webp/mux_types.h @@ -20,31 +20,31 @@ extern "C" { #endif -#if !(defined(__cplusplus) || defined(c_plusplus)) -typedef enum WebPFeatureFlags WebPFeatureFlags; -typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; -#endif +// Note: forward declaring enumerations is not allowed in (strict) C and C++, +// the types are left here for reference. +// typedef enum WebPFeatureFlags WebPFeatureFlags; +// typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; +typedef struct WebPData WebPData; // VP8X Feature Flags. -enum WebPFeatureFlags { +typedef enum WebPFeatureFlags { FRAGMENTS_FLAG = 0x00000001, ANIMATION_FLAG = 0x00000002, XMP_FLAG = 0x00000004, EXIF_FLAG = 0x00000008, ALPHA_FLAG = 0x00000010, ICCP_FLAG = 0x00000020 -}; +} WebPFeatureFlags; // Dispose method (animation only). Indicates how the area used by the current // frame is to be treated before rendering the next frame on the canvas. -enum WebPMuxAnimDispose { +typedef enum WebPMuxAnimDispose { WEBP_MUX_DISPOSE_NONE, // Do not dispose. WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color. -}; +} WebPMuxAnimDispose; // Data type used to describe 'raw' data, e.g., chunk data // (ICC profile, metadata) and WebP compressed image data. -typedef struct WebPData WebPData; struct WebPData { const uint8_t* bytes; size_t size;