mutter/src/backends/meta-color-profile.h
Jonas Ådahl 062abe01b3 color: Generate and store ICC profiles from EDID or EFI
Just as gsd-color does, generate color profiles. This can either be done
from EFI, if available and the color device is associated with a built
in panel, or from the EDID. If no source for a profile is found, none is
created.

The ICC profiles are also stored on disk so that they can be read by
e.g. colord. The on disk stored profiles will only be used for storing,
not reading the profiles, as the autogenerated ones will no matter what
always be loaded to verify the on disk profiles are up to date. If a on
disk profile is not, it will be replaced. This is so that fixes or
improvements to the profile generation will be made available despite
having run an older version earlier.

After generating, add some metadata about the generated file itself
needed by colord, i.e. file MD5 checksum and the file path.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2164>
2022-09-01 16:54:04 +02:00

48 lines
1.7 KiB
C

/*
* Copyright (C) 2021 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef META_COLOR_PROFILE_H
#define META_COLOR_PROFILE_H
#include <colord.h>
#include <glib-object.h>
#include <stdint.h>
#include "backends/meta-backend-types.h"
#include "core/util-private.h"
#define META_TYPE_COLOR_PROFILE (meta_color_profile_get_type ())
G_DECLARE_FINAL_TYPE (MetaColorProfile, meta_color_profile,
META, COLOR_PROFILE,
GObject)
MetaColorProfile * meta_color_profile_new_from_icc (MetaColorManager *color_manager,
CdIcc *icc,
GBytes *raw_bytes);
gboolean meta_color_profile_equals_bytes (MetaColorProfile *color_profile,
GBytes *bytes);
const uint8_t * meta_color_profile_get_data (MetaColorProfile *color_profile);
size_t meta_color_profile_get_data_size (MetaColorProfile *color_profile);
META_EXPORT_TEST
CdIcc * meta_color_profile_get_cd_icc (MetaColorProfile *color_profile);
#endif /* META_COLOR_PROFILE_H */