summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2013-03-24 19:54:37 +0000
committerRichard Hughes <richard@hughsie.com>2013-03-25 20:36:20 +0000
commitd7072beeab5e972811dfe61171c8ae847d515f1b (patch)
treea0612967e79dedf556b23d873b2205bf158489a0 /contrib
parent369a8410450d399d9d8e2b6fd86bfc97970800d5 (diff)
downloadcolord-d7072beeab5e972811dfe61171c8ae847d515f1b.tar.gz
trivial: Use CdIcc in the session helper
Diffstat (limited to 'contrib')
-rw-r--r--contrib/session-helper/cd-main.c91
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)