blob: 187f1a6321573e2566b572d703f2980f6f4f517d [file] [log] [blame]
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Provides the Chromaticity class with methods for parsing chromaticity info.
Chromaticity info is stored in bytes 19h-22h of the base EDID.
Chromaticity object processes the 10-bit CIE xy coordinates: RGBW.
"""
class Chromaticity(object):
"""Class for parsing chromaticity section of base EDID."""
def __init__(self, edid):
"""Creates a Chromaticity object.
Args:
edid: The edid (in list form).
"""
self._edid = edid
@property
def red_x(self):
"""Fetches 10-bit CIE Red X coordinate.
Returns:
An integer representing the Red X coordinate.
"""
return (self._edid[0x1B] << 2) + ((self._edid[0x19] >> 6) & 0x03)
@property
def red_y(self):
"""Fetches 10-bit CIE Red Y coordinate.
Returns:
An integer representing the Red Y coordinate.
"""
return (self._edid[0x1C] << 2) + ((self._edid[0x19] >> 4) & 0x03)
@property
def grn_x(self):
"""Fetches 10-bit CIE Green X coordinate.
Returns:
An integer representing the Green X coordinate.
"""
return (self._edid[0x1D] << 2) + ((self._edid[0x19] >> 2) & 0x03)
@property
def grn_y(self):
"""Fetches 10-bit CIE Green Y coordinate.
Returns:
An integer representing the Green Y coordinate.
"""
return (self._edid[0x1E] << 2) + (self._edid[0x19] & 0x03)
@property
def blue_x(self):
"""Fetches 10-bit CIE Blue X coordinate.
Returns:
An integer representing the Blue X coordinate.
"""
return (self._edid[0x1F] << 2) + ((self._edid[0x1A] >> 6) & 0x03)
@property
def blue_y(self):
"""Fetches 10-bit CIE Blue Y coordinate.
Returns:
An integer representing the Blue Y coordinate.
"""
return (self._edid[0x20] << 2) + ((self._edid[0x1A] >> 4) & 0x03)
@property
def wht_x(self):
"""Fetches 10-bit CIE White X coordinate.
Returns:
An integer representing the White X coordinate.
"""
return (self._edid[0x21] << 2) + ((self._edid[0x1A] >> 2) & 0x03)
@property
def wht_y(self):
"""Fetches 10-bit CIE White Y coordinate.
Returns:
An integer representing the White Y coordinate.
"""
return (self._edid[0x22] << 2) + (self._edid[0x1A] & 0x03)