/*
5 * Authors: see git history
7 * Copyright (C) 2017 Authors
8 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
10#ifndef SEEN_COLORS_CMS_SYSTEM_H
11#define SEEN_COLORS_CMS_SYSTEM_H
21using DirPaths = std::vector<std::pair<std::string, bool>>;
45 std::vector<std::shared_ptr<Profile>>
getProfiles()
const;
46 const std::shared_ptr<Profile> &
getProfile(std::string
const &
name)
const;
84 char const *
what() const noexcept
override {
return _msg.c_str(); }
char const * what() const noexcept override
CmsError(std::string &&msg)
Inkscape::PrefObserver _prefs_observer
void addDirectoryPath(std::string path, bool is_user)
Replace all generated profile paths with this single path, useful for testing.
void operator=(System const &)=delete
const std::shared_ptr< Profile > & getProfile(std::string const &name) const
Return the profile object which is matched by the given name, id or path.
void clearDirectoryPaths()
Remove all directory paths that might have been generated (useful for refreshing)
System(System const &)=delete
std::vector< std::shared_ptr< Profile > > getDisplayProfiles() const
Returns a list of profiles that can apply to the display (display), sorted by their internal names.
std::vector< std::shared_ptr< Profile > > getOutputProfiles() const
Return vector of profiles which can be used for cms output.
std::vector< std::shared_ptr< Profile > > getProfiles() const
Returns a list of profiles sorted by their internal names.
void addProfile(std::shared_ptr< Profile > profile)
const std::shared_ptr< Profile > & getDisplayProfile(bool &updated)
Get the user set display profile, if set.
std::shared_ptr< Profile > _display_profile
DirPaths const & getDirectoryPaths()
Create list of all directories where ICC profiles are expected to be found.
const std::shared_ptr< Transform > & getDisplayTransform()
Get the color managed trasform for the screen.
std::vector< std::shared_ptr< Profile > > _profiles
std::shared_ptr< Transform > _display_transform
void refreshProfiles()
Search for system ICC profile files and add them to list.
std::vector< std::pair< std::string, bool > > DirPaths
std::unique_ptr< Preferences::PreferencesObserver > PrefObserver
Singleton class to access the preferences file in a convenient way.