aboutsummaryrefslogtreecommitdiffstats
path: root/src/libgamma_error.py
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2022-07-21 14:53:18 +0200
committerMattias Andrée <maandree@kth.se>2022-07-21 14:53:18 +0200
commit3be28b4e8f75190d30e311f0e69da714cac62cc5 (patch)
tree95374a0ac30802f838e0fee1d7c686b66dd26b11 /src/libgamma_error.py
parentRemove dist (diff)
downloadpylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.gz
pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.bz2
pylibgamma-3be28b4e8f75190d30e311f0e69da714cac62cc5.tar.xz
Change license to ISC, change style, improve makefile1.1.3
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/libgamma_error.py')
-rw-r--r--src/libgamma_error.py476
1 files changed, 0 insertions, 476 deletions
diff --git a/src/libgamma_error.py b/src/libgamma_error.py
deleted file mode 100644
index afefd5e..0000000
--- a/src/libgamma_error.py
+++ /dev/null
@@ -1,476 +0,0 @@
-# -*- python -*-
-'''
-pylibgamma — Python 3 wrapper for libgamma
-Copyright © 2014 Mattias Andrée (maandree@member.fsf.org)
-
-This library 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 3 of the License, or
-(at your option) any later version.
-
-This library 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 library. If not, see <http://www.gnu.org/licenses/>.
-'''
-
-
-
-class LibgammaGroup:
- '''
- Class for `group`
- '''
-
- @property
- def gid(self) -> int:
- '''
- Getter.
-
- Group that the user needs to be a member of if
- `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
- '''
- from libgamma_native_error import libgamma_native_get_group_gid
- return libgamma_native_get_group_gid()
-
- @gid.setter
- def gid(self, value : int):
- '''
- Setter.
-
- Group that the user needs to be a member of if
- `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
- '''
- from libgamma_native_error import libgamma_native_set_group_gid
- libgamma_native_set_group_gid(value)
-
-
- @property
- def name(self) -> str:
- '''
- Getter.
-
- Group that the user needs to be a member of if
- `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned,
- `None` if the name of the group `group.gid`
- cannot be determined.
- '''
- from libgamma_native_error import libgamma_native_get_group_name
- return libgamma_native_get_group_name()
-
- @name.setter
- def name(self, value : str):
- '''
- Setter.
-
- Group that the user needs to be a member of if
- `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned,
- `None` if the name of the group `group.gid`
- cannot be determined.
- '''
- from libgamma_native_error import libgamma_native_set_group_name
- libgamma_native_set_group_name(value)
-
-
-group = LibgammaGroup()
-'''
- Group that the user needs to be a member of if
-`LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned.
-'''
-
-
-def perror(name : str, error_code : int):
- '''
- Prints an error to stderr in a `perror` fashion,
- however this function will not translate the `libgamma`
- errors into human-readable strings, it will simply
- print the name of the error. If the value `error_code`
- is the value of `LIBGAMMA_ERRNO_SET`, `perror` will be
- used to print the current error stored in `errno`.
- If `error_code` is non-negative (an `errno` value`), that
- value will be stored in `errno` and `perror` will be
- used to print it. Additionally, if the `error_code` is
- the value of `LIBGAMMA_DEVICE_REQUIRE_GROUP` the
- required group will be printed with its numerical value
- and, if known, its name.
-
- @param name The text to add at the beginning.
- @param value The error code, may be an `errno` value.
- '''
- from libgamma_native_error import libgamma_native_perror
- libgamma_native_perror(name, error_code)
-
-
-def name_of_error(value : int) -> str:
- '''
- Returns the name of the definition associated with a `libgamma` error code.
-
- @param value The error code.
- @return The name of the definition associated with the error code,
- `None` if the error code does not exist.
- '''
- from libgamma_native_error import libgamma_native_name_of_error
- return libgamma_native_name_of_error(value)
-
-
-def value_of_error(name : str) -> int:
- '''
- Return the value of a `libgamma` error definition refered to by name.
-
- @param name The name of the definition associated with the error code.
- @return The error code, zero if the name is `None`
- or does not refer to a `libgamma` error.
- '''
- from libgamma_native_error import libgamma_native_value_of_error
- return libgamma_native_value_of_error(name)
-
-
-
-LIBGAMMA_ERRNO_SET = -1
-'''
-`errno` has be set with a standard error number
-to indicate the what has gone wrong.
-'''
-
-LIBGAMMA_NO_SUCH_ADJUSTMENT_METHOD = -2
-'''
-The selected adjustment method does not exist
-or has been excluded at compile-time.
-'''
-
-LIBGAMMA_NO_SUCH_SITE = -3
-'''
-The selected site does not exist.
-'''
-
-LIBGAMMA_NO_SUCH_PARTITION = -4
-'''
-The selected partition does not exist.
-'''
-
-LIBGAMMA_NO_SUCH_CRTC = -5
-'''
-The selected CRTC does not exist.
-'''
-
-LIBGAMMA_IMPOSSIBLE_AMOUNT = -6
-'''
-Counter overflowed when counting the number
-of available items.
-'''
-
-LIBGAMMA_CONNECTOR_DISABLED = -7
-'''
-The selected connector is disabled, it does
-not have a CRTC.
-'''
-
-LIBGAMMA_OPEN_CRTC_FAILED = -8
-'''
-The selected CRTC could not be opened,
-reason unknown.
-'''
-
-LIBGAMMA_CRTC_INFO_NOT_SUPPORTED = -9
-'''
-The CRTC information field is not supported
-by the adjustment method.
-'''
-
-LIBGAMMA_GAMMA_RAMP_READ_FAILED = -10
-'''
-Failed to read the current gamma ramps for
-the selected CRTC, reason unknown.
-'''
-
-LIBGAMMA_GAMMA_RAMP_WRITE_FAILED = -11
-'''
-Failed to write the current gamma ramps for
-the selected CRTC, reason unknown.
-'''
-
-LIBGAMMA_GAMMA_RAMP_SIZE_CHANGED = -12
-'''
-The specified ramp sizes does not match the
-ramps sizes returned by the adjustment methods
-in response to the query/command.
-'''
-
-LIBGAMMA_MIXED_GAMMA_RAMP_SIZE = -13
-'''
-The specified ramp sizes are not identical
-which is required by the adjustment method.
-(Only returned in debug mode.)
-'''
-
-LIBGAMMA_WRONG_GAMMA_RAMP_SIZE = -14
-'''
-The specified ramp sizes are not supported
-by the adjustment method.
-(Only returned in debug mode.)
-'''
-
-LIBGAMMA_SINGLETON_GAMMA_RAMP = -15
-'''
-The adjustment method reported that the gamma
-ramps size is 1, or perhaps even zero or negative.
-'''
-
-LIBGAMMA_LIST_CRTCS_FAILED = -16
-'''
-The adjustment method failed to list
-available CRTC:s, reason unknown.
-'''
-
-LIBGAMMA_ACQUIRING_MODE_RESOURCES_FAILED = -17
-'''
-Failed to acquire mode resources from the
-adjustment method.
-'''
-
-LIBGAMMA_NEGATIVE_PARTITION_COUNT = -18
-'''
-The adjustment method reported that a negative
-number of partitions exists in the site.
-'''
-
-LIBGAMMA_NEGATIVE_CRTC_COUNT = -19
-'''
-The adjustment method reported that a negative
-number of CRTC:s exists in the partition.
-'''
-
-LIBGAMMA_DEVICE_RESTRICTED = -20
-'''
-Device cannot be access becauses of
-insufficient permissions.
-'''
-
-LIBGAMMA_DEVICE_ACCESS_FAILED = -21
-'''
-Device cannot be access, reason unknown.
-'''
-
-LIBGAMMA_DEVICE_REQUIRE_GROUP = -22
-'''
-Device cannot be access, membership of the
-`group.gid` (named by `group.name` (can be
-`None`, if so `errno` may have been set to
-tell why)) is required.
-'''
-
-LIBGAMMA_GRAPHICS_CARD_REMOVED = -23
-'''
-The graphics card appear to have been removed.
-'''
-
-LIBGAMMA_STATE_UNKNOWN = -24
-'''
-The state of the requested information is unknown.
-'''
-
-LIBGAMMA_CONNECTOR_UNKNOWN = -25
-'''
-Failed to determine which connector the
-CRTC belongs to.
-'''
-
-LIBGAMMA_CONNECTOR_TYPE_NOT_RECOGNISED = -26
-'''
-The detected connector type is not listed
-in this library and has to be updated.
-'''
-
-LIBGAMMA_SUBPIXEL_ORDER_NOT_RECOGNISED = -27
-'''
-The detected subpixel order is not listed
-in this library and has to be updated.
-'''
-
-LIBGAMMA_EDID_LENGTH_UNSUPPORTED = -28
-'''
-The length of the EDID does not match that
-of any supported EDID structure revision.
-'''
-
-LIBGAMMA_EDID_WRONG_MAGIC_NUMBER = -29
-'''
-The magic number in the EDID does not match
-that of any supported EDID structure revision.
-'''
-
-LIBGAMMA_EDID_REVISION_UNSUPPORTED = -30
-'''
-The EDID structure revision used by the
-monitor is not supported.
-'''
-
-LIBGAMMA_GAMMA_NOT_SPECIFIED = -31
-'''
-The gamma characteristics field in the EDID
-is left unspecified.
-(This could be considered a non-error.)
-'''
-
-LIBGAMMA_EDID_CHECKSUM_ERROR = -32
-'''
-The checksum in the EDID is incorrect, all
-request information has been provided
-by you cannot count on it.
-'''
-
-LIBGAMMA_GAMMA_NOT_SPECIFIED_AND_EDID_CHECKSUM_ERROR = -33
-'''
-Both of the errors `LIBGAMMA_GAMMA_NOT_SPECIFIED`
-and `LIBGAMMA_EDID_CHECKSUM_ERROR` have occurred.
-'''
-
-LIBGAMMA_GAMMA_RAMPS_SIZE_QUERY_FAILED = -34
-'''
-Failed to query the gamma ramps size from the
-adjustment method, reason unknown.
-'''
-
-LIBGAMMA_OPEN_PARTITION_FAILED = -35
-'''
-The selected partition could not be opened,
-reason unknown.
-'''
-
-LIBGAMMA_OPEN_SITE_FAILED = -36
-'''
-The selected site could not be opened,
-reason unknown.
-'''
-
-LIBGAMMA_PROTOCOL_VERSION_QUERY_FAILED = -37
-'''
-Failed to query the adjustment method for
-its protocol version, reason unknown.
-'''
-
-LIBGAMMA_PROTOCOL_VERSION_NOT_SUPPORTED = -38
-'''
-The adjustment method's version of its
-protocol is not supported.
-'''
-
-LIBGAMMA_LIST_PARTITIONS_FAILED = -39
-'''
-The adjustment method failed to list
-available partitions, reason unknown.
-'''
-
-LIBGAMMA_NULL_PARTITION = -40
-'''
-Partition exists by index, but the partition
-at that index does not exist.
-'''
-
-LIBGAMMA_NOT_CONNECTED = -41
-'''
-There is not monitor connected to the
-connector of the selected CRTC.
-'''
-
-LIBGAMMA_REPLY_VALUE_EXTRACTION_FAILED = -42
-'''
-Data extraction from a reply from the
-adjustment method failed, reason unknown.
-'''
-
-LIBGAMMA_EDID_NOT_FOUND = -43
-'''
-No EDID property was found on the output.
-'''
-
-LIBGAMMA_LIST_PROPERTIES_FAILED = -44
-'''
-Failed to list properties on the output,
-reason unknown.
-'''
-
-LIBGAMMA_PROPERTY_VALUE_QUERY_FAILED = -45
-'''
-Failed to query a property's value from
-the output, reason unknown.
-'''
-
-LIBGAMMA_OUTPUT_INFORMATION_QUERY_FAILED = -46
-'''
-A request for information on an output
-failed, reason unknown.
-'''
-
-
-LIBGAMMA_ERROR_MIN = -46
-'''
-The number of the libgamma error with the
-lowest number. If this is lower than the
-number your program thinks it should be sould
-update your program for new errors.
-'''
-
-
-
-class LibgammaError(Exception):
- '''
- libgamma error class.
-
- @variable errno The error code.
- @variable strerror The name of the error.
- '''
-
- def __init__(self, errno : int, strerror : str):
- '''
- Constructor.
-
- @param errno The error code.
- @param strerror The name of the error.
- '''
- self.errno = errno
- self.strerror = strerror
-
- def __str__(self) -> str:
- '''
- Return the name of the error.
-
- @return The name of the error.
- '''
- return self.strerror
-
-
- def __repr__(self) -> str:
- '''
- Create a string representation of the error.
-
- @return A string representation of the error.
- '''
- return 'LibgammaError(%i, %s)' % (self.errno, repr(self.strerror))
-
-
-
-def create_error(error_code : int) -> Exception:
- '''
- Create an exception from an error code.
-
- @param error_code The error code.
- @return :OSError|LibgammaError The error as a throwable object.
- '''
- if error_code == LIBGAMMA_ERRNO_SET:
- import ctypes
- error_code = ctypes.get_errno()
-
- if error_code >= 0:
- import libgamma_native_error as c
- e = OSError()
- e.errno = error_code
- e.strerror = c.strerror(e.errno)
- else:
- strerror = name_of_error(error_code)
- e = LibgammaError(error_code, strerror)
-
- return e
-