Oyranos
git-devel
Oyranos is a full featured Color Management System
|
Simple way to hook a display system into a Oyranos device config module. More...
Data Structures | |
struct | oyMonitorHooks3_s |
provide a set of hooks to enable support for a display system More... | |
Typedefs | |
typedef oyMonitor_s *(* | oyGetMonitorFromName_f) (const char *monitor_name) |
create a monitor object More... | |
typedef int(* | oyFreeMonitor_f) (oyMonitor_s **monitor) |
delete a monitor object More... | |
typedef int(* | oySetupMonitorCalibration_f) (oyMonitor_s *monitor, const char *profil_name, const char *profile_data, size_t profile_data_size) |
set all device system specific properties More... | |
typedef int(* | oySetupMonitorProfile_f) (oyMonitor_s *monitor, const char *profil_name, const char *profile_data, size_t profile_data_size) |
set all device system specific properties More... | |
typedef int(* | oyUnsetMonitorProfile_f) (oyMonitor_s *monitor) |
unset all device system specific properties More... | |
typedef int(* | oyGetRectangleFromMonitor_f) (oyMonitor_s *monitor, double *x, double *y, double *width, double *height) |
get area dimensions in pixel More... | |
typedef char *(* | oyGetMonitorProfile_f) (oyMonitor_s *monitor, int flags, size_t *size) |
get a system specific monitor profile More... | |
typedef int(* | oyGetAllMonitorNames_f) (const char *display_name, char ***monitor_names) |
get a list of connected monitors More... | |
typedef int(* | oyGetMonitorInfo_f) (oyMonitor_s *monitor, char **manufacturer, char **mnft, char **model, char **serial, char **vendor, char **device_geometry, char **system_port, char **host, int *week, int *year, int *mnft_id, int *model_id, double *colors, char **edid, size_t *edid_size, int refresh_edid, char **debug_info) |
get various informations about a monitor device More... | |
Simple way to hook a display system into a Oyranos device config module.
The motivation for this API is to interface with Oyranos device configuration module system. The abstraction layer allows to code independently from Oyranos API's with a fairly simple API set. Additionally the resulting code can be used elsewehere independently.
The set of hooks is used by the oyranos_cmm_disp.c module family with some additional headers. As a example take the oyX1 module with its oyranos_monitor_hooks_x11.h header and the implementation in oyranos_monitor_x11.c . The oyX1 CMakeLists.txt section gives more details on how to build the according module in the source tree. Please do not hesitate to contact the developers on gitlab or the mailing list for further help.
typedef int(* oyFreeMonitor_f) (oyMonitor_s **monitor) |
delete a monitor object
Release all resources of the monitor object.
[in] | monitor | object |
typedef int(* oyGetAllMonitorNames_f) (const char *display_name, char ***monitor_names) |
get a list of connected monitors
Function oyGetAllMonitorNames_f
Omit all non active monitors and non connected ports, as Oyranos has no notion of invisible devices.
[in] | display_name | the system specific display name |
[out] | monitor_names | a list of monitor identifier |
typedef oyMonitor_s*(* oyGetMonitorFromName_f) (const char *monitor_name) |
create a monitor object
Almost any other calls of the hook need this object.
[in] | monitor_name | the identifier of the device as returned by oyGetAllMonitorNames_f |
typedef int(* oyGetMonitorInfo_f) (oyMonitor_s *monitor, char **manufacturer, char **mnft, char **model, char **serial, char **vendor, char **device_geometry, char **system_port, char **host, int *week, int *year, int *mnft_id, int *model_id, double *colors, char **edid, size_t *edid_size, int refresh_edid, char **debug_info) |
get various informations about a monitor device
Function oyGetMonitorInfo_f
Get the informations about the device. Some values are host or system specific. If the EDID is available return that and omit all properties which can later be extracted from EDID. The from EDID values are meant to provide a way for system specific replacements in case the EDID is currently not available.
[in] | monitor | object |
[out] | manufacturer | from EDID |
[out] | mnft | the three letter abbeviation from EDID |
[out] | model | from EDID |
[out] | serial | from EDID, This property is very specific to a given device. If nothing else is returned, then generic profiles might not work. |
[out] | vendor | from EDID |
[out] | device_geometry | widthxheight+x_offset+y_offset relative to the main monitor |
[out] | system_port | the system specific port name |
[out] | host | computer name |
[out] | week | from EDID |
[out] | year | from EDID |
[out] | mnft_id | from EDID |
[out] | model_id | from EDID |
[out] | colors | A list of primary color values. They are used to generate a fallback ICC profile. The values shall contain:
|
[out] | edid | The EDID data blob as returned by i2c. |
[out] | edid_size | The edid data blob size. |
[in] | refresh_edid | request a edid refresh |
[in,out] | debug_info | additional text infos |
typedef char*(* oyGetMonitorProfile_f) (oyMonitor_s *monitor, int flags, size_t *size) |
get a system specific monitor profile
Function oyGetMonitorProfile_f
[in] | monitor | object |
[in] | flags | profile selector
|
[out] | size | returned data block size |
typedef int(* oyGetRectangleFromMonitor_f) (oyMonitor_s *monitor, double *x, double *y, double *width, double *height) |
get area dimensions in pixel
Function oyGetRectangleFromMonitor_f
Display devices typical cover a certain pixel area and have offsets to neighbours.
[in] | monitor | object |
[in] | x | x offset |
[in] | y | y offset |
[in] | width | w dimension |
[in] | height | h dimension |
typedef int(* oySetupMonitorCalibration_f) (oyMonitor_s *monitor, const char *profil_name, const char *profile_data, size_t profile_data_size) |
set all device system specific properties
Function oySetupMonitorCalibration_f
The device type might need special setup to make it calibrated. The calibration data is inside the non standard vcgt tag. This VideCardGammaTable (vcgt) is uploaded into the devices gamma ramps.
[in] | monitor | object |
[in] | profle_name | the fopen()able on disk file name |
[in] | profile_data | a memory block containing a ICC profile |
[in] | profile_data_size | the size of profile_data |
typedef int(* oySetupMonitorProfile_f) (oyMonitor_s *monitor, const char *profil_name, const char *profile_data, size_t profile_data_size) |
set all device system specific properties
Function oySetupMonitorProfile_f
The device type might need special setup to get a ICC profile assigned, visible in a device specific manner and transported by means of the device handling protocols and API's. This function is for the device specific setup part two.
[in] | monitor | object |
[in] | profle_name | the fopen()able on disk file name |
[in] | profile_data | a memory block containing a ICC profile |
[in] | profile_data_size | the size of profile_data |
typedef int(* oyUnsetMonitorProfile_f) (oyMonitor_s *monitor) |
unset all device system specific properties
Function oyUnsetMonitorProfile_f
The device type might need special setup to get a ICC profile assigned, visible in a device specific manner and transported by means of the device handling protocols and API's. This function is for the device specific setup cleaning.
[in] | monitor | object |