diff options
author | Richard Hughes <richard@hughsie.com> | 2013-03-24 19:54:37 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2013-03-25 20:36:20 +0000 |
commit | d7072beeab5e972811dfe61171c8ae847d515f1b (patch) | |
tree | a0612967e79dedf556b23d873b2205bf158489a0 /contrib | |
parent | 369a8410450d399d9d8e2b6fd86bfc97970800d5 (diff) | |
download | colord-d7072beeab5e972811dfe61171c8ae847d515f1b.tar.gz |
trivial: Use CdIcc in the session helper
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/session-helper/cd-main.c | 91 |
1 files changed, 36 insertions, 55 deletions
diff --git a/contrib/session-helper/cd-main.c b/contrib/session-helper/cd-main.c index 04d8b5f..8ab36fd 100644 --- a/contrib/session-helper/cd-main.c +++ b/contrib/session-helper/cd-main.c @@ -1100,12 +1100,11 @@ static gboolean cd_main_set_profile_metadata (CdMainPrivate *priv, GError **error) { CdIcc *icc; - cmsHANDLE dict_md = NULL; - cmsHPROFILE lcms_profile = NULL; gboolean ret; gchar *brightness_str = NULL; gchar *profile_fn = NULL; gchar *profile_path = NULL; + GError *error_local = NULL; GFile *file = NULL; /* get profile */ @@ -1124,76 +1123,58 @@ cd_main_set_profile_metadata (CdMainPrivate *priv, GError **error) error); if (!ret) goto out; - lcms_profile = cd_icc_get_handle (icc); /* add DICT data */ - dict_md = cmsDictAlloc (NULL); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_CMF_PRODUCT, - "colord"); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_CMF_BINARY, - "colord-session"); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_CMF_VERSION, - PACKAGE_VERSION); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_DATA_SOURCE, - CD_PROFILE_METADATA_DATA_SOURCE_CALIB); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_LICENSE, - "CC0"); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_QUALITY, - cd_profile_quality_to_string (priv->quality)); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_MAPPING_DEVICE_ID, - cd_device_get_id (priv->device)); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_MEASUREMENT_DEVICE, - cd_sensor_kind_to_string (cd_sensor_get_kind (priv->sensor))); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_CMF_PRODUCT, + "colord"); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_CMF_BINARY, + "colord-session"); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_CMF_VERSION, + PACKAGE_VERSION); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_DATA_SOURCE, + CD_PROFILE_METADATA_DATA_SOURCE_CALIB); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_LICENSE, + "CC0"); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_QUALITY, + cd_profile_quality_to_string (priv->quality)); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_MAPPING_DEVICE_ID, + cd_device_get_id (priv->device)); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_MEASUREMENT_DEVICE, + cd_sensor_kind_to_string (cd_sensor_get_kind (priv->sensor))); if (priv->screen_brightness > 0) { brightness_str = g_strdup_printf ("%u", priv->screen_brightness); - _cmsDictAddEntryAscii (dict_md, - CD_PROFILE_METADATA_SCREEN_BRIGHTNESS, - brightness_str); + cd_icc_add_metadata (icc, + CD_PROFILE_METADATA_SCREEN_BRIGHTNESS, + brightness_str); g_free (brightness_str); } - ret = cmsWriteTag (lcms_profile, cmsSigMetaTag, dict_md); - if (!ret) { - g_set_error_literal (error, - CD_SESSION_ERROR, - CD_SESSION_ERROR_FAILED_TO_SAVE_PROFILE, - "cannot initialize dict tag"); - goto out; - } - - /* write profile id */ - ret = cmsMD5computeID (lcms_profile); - if (!ret) { - g_set_error (error, - CD_SESSION_ERROR, - CD_SESSION_ERROR_INTERNAL, - "failed to compute profile id for %s", - profile_path); - goto out; - } /* save file */ - ret = cmsSaveProfileToFile (lcms_profile, profile_path); + ret = cd_icc_save_file (icc, + file, + CD_ICC_SAVE_FLAGS_NONE, + priv->cancellable, + &error_local); if (!ret) { g_set_error (error, CD_SESSION_ERROR, CD_SESSION_ERROR_FAILED_TO_SAVE_PROFILE, - "failed to save profile to %s", - profile_path); + "failed to save profile to %s: %s", + profile_path, error_local->message); + g_error_free (error_local); goto out; } out: g_free (profile_fn); g_free (profile_path); - if (dict_md != NULL) - cmsDictFree (dict_md); if (icc != NULL) g_object_unref (icc); if (file != NULL) |