From d9c757e16ae06cf48373c39559d9d3b02bc33809 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sun, 18 Aug 2019 21:06:33 +0200 Subject: [PATCH] babl: use an enum to internally differentiate rgb, cmyk or gray type spaces --- babl/babl-icc.c | 4 ++-- babl/babl-space.c | 4 ++-- babl/babl-space.h | 10 +++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/babl/babl-icc.c b/babl/babl-icc.c index 9df1954..e371977 100644 --- a/babl/babl-icc.c +++ b/babl/babl-icc.c @@ -840,9 +840,9 @@ babl_space_from_icc (const char *icc_data, if (!strcmp (color_space.str, "CMYK")) { ret = _babl_space_for_lcms (icc_data, icc_length); - if (ret->space.cmyk.is_cmyk) + if (ret->space.icc_type == BablICCTypeCMYK) return ret; - ret->space.cmyk.is_cmyk = 1; + ret->space.icc_type = BablICCTypeCMYK; ret->space.icc_length = icc_length; ret->space.icc_profile = malloc (icc_length); memcpy (ret->space.icc_profile, icc_data, icc_length); diff --git a/babl/babl-space.c b/babl/babl-space.c index d531017..7a8d7b1 100644 --- a/babl/babl-space.c +++ b/babl/babl-space.c @@ -1232,7 +1232,7 @@ babl_space_match_trc_matrix (const Babl *trc_red, for (i = 0; space_db[i].instance.class_type; i++) { BablSpace *space = &space_db[i]; - if (space->cmyk.is_cmyk == 0 && + if (space->icc_type == BablICCTypeRGB && trc_red == space->trc[0] && trc_green == space->trc[1] && trc_blue == space->trc[2] && @@ -1306,7 +1306,7 @@ babl_space_get (const Babl *babl, int babl_space_is_cmyk (const Babl *space) { - return space?space->space.cmyk.is_cmyk:0; + return space?space->space.icc_type == BablICCTypeCMYK:0; } /* Trademarks: diff --git a/babl/babl-space.h b/babl/babl-space.h index 7a905e2..1d9934a 100644 --- a/babl/babl-space.h +++ b/babl/babl-space.h @@ -33,12 +33,13 @@ BABL_CLASS_DECLARE (space); typedef struct { - int is_cmyk; + //int is_cmyk; #ifdef HAVE_LCMS cmsHPROFILE lcms_profile; cmsHTRANSFORM lcms_to_rgba; cmsHTRANSFORM lcms_from_rgba; #endif + int filler; } BablCMYK; #if 0 // draft datastructures for spectral spaces @@ -89,6 +90,12 @@ typedef struct } BablProcessSpace; #endif +typedef enum { + BablICCTypeRGB = 0, + BablICCTypeGray = 2, + BablICCTypeCMYK = 3, +} BablICCType; + typedef struct { BablInstance instance; @@ -124,6 +131,7 @@ typedef struct */ char *icc_profile; int icc_length; + BablICCType icc_type; BablCMYK cmyk; } BablSpace; -- 2.30.2