diff options
Diffstat (limited to '')
-rw-r--r-- | src/libgammaman.py | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/libgammaman.py b/src/libgammaman.py deleted file mode 100644 index ceb6573..0000000 --- a/src/libgammaman.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright © 2014, 2015, 2016, 2017 Mattias Andrée (maandree@kth.se) -# -# This program 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 program 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 program. If not, see <http://www.gnu.org/licenses/>. - -# This module is responsible for keeping track of resources for -# the monitor module. - -import libgamma - - -cache = {} -''' -Resource cache -''' - - -def get_method(name): - ''' - Translate an adjustment method name into an ID - - @param name:str? The adjustment method's name - @return :int The adjustment method's ID - ''' - method = { 'randr' : libgamma.LIBGAMMA_METHOD_X_RANDR - , 'vidmode' : libgamma.LIBGAMMA_METHOD_X_VIDMODE - , 'drm' : libgamma.LIBGAMMA_METHOD_LINUX_DRM - , 'w32gdi' : libgamma.LIBGAMMA_METHOD_W32_GDI - , 'quartz' : libgamma.LIBGAMMA_METHOD_QUARTZ_CORE_GRAPHICS - , 'dummy' : libgamma.LIBGAMMA_METHOD_DUMMY - , None : None - } - method = method[name] if name in method else None - if name is None: - method = libgamma.list_methods(0)[0] - elif method is None: - raise Exception('Invalid method: %s' % name) - elif not libgamma.is_method_available(method): - raise Exception('Invalid method: %s' % name) - return method - - -def get_display(display, method): - ''' - Get a display - - @param display:str? The display ID - @param method:int The adjustment method - @return :libgamma.Display Display object - ''' - if display is None: - display = libgamma.method_default_site(method) - if method not in cache: - cache[method] = {} - cache_displays = cache[method] - if display not in cache_displays: - site = libgamma.Site(method, display) - cache_displays[display] = site - site.cache_screens = {} - return cache_displays[display] - - -def get_screen(screen, display, method): - ''' - Get a screen - - @param screen:int The screen index - @param display:str? The display ID - @param method:int The adjustment method - @return :libgamma.Screen Screen object - ''' - display = get_display(display, method) - cache_screens = display.cache_screens - if screen not in cache_screens: - partition = libgamma.Partition(display, screen) - cache_screens[screen] = partition - partition.cache_crtcs = {} - return cache_screens[screen] - - -def get_crtc(crtc, screen, display, method): - ''' - Get a CRTC - - @param crtc:int The CRTC index - @param screen:int The screen index - @param display:str? The display ID - @param method:int The adjustment method - @return :libgamma.CRTC CRTC object - ''' - screen = get_screen(screen, display, method) - cache_crtcs = screen.cache_crtcs - if crtc not in cache_crtcs: - monitor = libgamma.CRTC(screen, crtc) - cache_crtcs[crtc] = monitor - (monitor.info, _) = monitor.information(~0) - return cache_crtcs[crtc] - - -def close(): - ''' - Release all resources - ''' - global cache - del cache - cache = {} - |