Initialize an MatrixInterpolator instance from yaml.
- Template Parameters
-
T | Type of data stored in the matrices |
R | Number of rows of the matrices |
C | Number of columns of the matrices |
- Parameters
-
[in] | yaml | The yaml object that contains the map of unsigned integers to matrices |
[in] | key_name | The name of the key in the yaml object |
[in] | matrix_name | The name of the matrix in the yaml object |
The yaml object is expected to be a list of maps. Each map has two or more pairs: one of key_name to the key value (usually color temperature), and one or more of matrix_name to the matrix. This is a bit difficult to explain, so here is an example (in python, as it is easier to parse than yaml): [ { 'ct': 2860, 'ccm': [ 2.12089, -0.52461, -0.59629, -0.85342, 2.80445, -0.95103, -0.26897, -1.14788, 2.41685 ], 'offsets': [ 0, 0, 0 ] },
{ 'ct': 2960, 'ccm': [ 2.26962, -0.54174, -0.72789, -0.77008, 2.60271, -0.83262, -0.26036, -1.51254, 2.77289 ], 'offsets': [ 0, 0, 0 ] },
{ 'ct': 3603, 'ccm': [ 2.18644, -0.66148, -0.52496, -0.77828, 2.69474, -0.91645, -0.25239, -0.83059, 2.08298 ], 'offsets': [ 0, 0, 0 ] }, ]
In this case, key_name would be 'ct', and matrix_name can be either 'ccm' or 'offsets'. This way multiple matrix interpolators can be defined in one set of color temperature ranges in the tuning file, and they can be retrieved separately with the matrix_name parameter.
- Returns
- Zero on success, negative error code otherwise