diff options
author | Richard Hughes <richard@hughsie.com> | 2012-06-03 14:39:57 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2012-06-03 14:40:31 +0100 |
commit | 33dbcf2d7035f08f33e4649d076e3ea0cc6bcfcd (patch) | |
tree | b5dcef9b4ffe1f49df9e3fc4224cec31bc1f1098 | |
parent | 4b65c9ac4a33eb20e451c996aab64c65789307a9 (diff) | |
download | gnome-settings-daemon-33dbcf2d7035f08f33e4649d076e3ea0cc6bcfcd.tar.gz |
color: Add the extra profile metadata as used by Oyranos
-rw-r--r-- | plugins/color/gsd-color-manager.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c index 2d3a0cd0..cd584eab 100644 --- a/plugins/color/gsd-color-manager.c +++ b/plugins/color/gsd-color-manager.c @@ -555,6 +555,8 @@ gcm_apply_create_icc_profile_for_edid (GsdColorManager *manager, cmsToneCurve *transfer_curve[3] = { NULL, NULL, NULL }; const gchar *data; gboolean ret = FALSE; + gchar *str; + gfloat edid_gamma; gfloat localgamma; #ifdef HAVE_NEW_LCMS cmsHANDLE dict = NULL; @@ -691,6 +693,32 @@ gcm_apply_create_icc_profile_for_edid (GsdColorManager *manager, data = gcm_edid_get_vendor_name (edid); if (data != NULL) _cmsDictAddEntryAscii (dict, "EDID_manufacturer", data); + edid_gamma = gcm_edid_get_gamma (edid); + if (edid_gamma > 0.0 && edid_gamma < 10.0) { + str = g_strdup_printf ("%f", edid_gamma); + _cmsDictAddEntryAscii (dict, "EDID_gamma", str); + g_free (str); + } + + /* also add the primaries */ + str = g_strdup_printf ("%f", chroma.Red.x); + _cmsDictAddEntryAscii (dict, "EDID_red_x", str); + g_free (str); + str = g_strdup_printf ("%f", chroma.Red.y); + _cmsDictAddEntryAscii (dict, "EDID_red_y", str); + g_free (str); + str = g_strdup_printf ("%f", chroma.Green.x); + _cmsDictAddEntryAscii (dict, "EDID_green_x", str); + g_free (str); + str = g_strdup_printf ("%f", chroma.Green.y); + _cmsDictAddEntryAscii (dict, "EDID_green_y", str); + g_free (str); + str = g_strdup_printf ("%f", chroma.Blue.x); + _cmsDictAddEntryAscii (dict, "EDID_blue_x", str); + g_free (str); + str = g_strdup_printf ("%f", chroma.Blue.y); + _cmsDictAddEntryAscii (dict, "EDID_blue_y", str); + g_free (str); /* write new tag */ ret = cmsWriteTag (lcms_profile, cmsSigMetaTag, dict); |