~jderose/kazam/settings

« back to all changes in this revision

Viewing changes to kazam/backend/constants.py

  • Committer: David Klasinc
  • Date: 2013-02-28 13:34:31 UTC
  • mfrom: (98.1.285 unstable)
  • Revision ID: bigwhale@lubica.net-20130228133431-40w8rajwtih2wz6m
Merge from unstable version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
# Codecs
24
24
 
25
 
CODEC_VP8 = 0
26
 
CODEC_H264 = 1
27
 
 
 
25
CODEC_RAW = 0
 
26
CODEC_VP8 = 1
 
27
CODEC_H264 = 2
 
28
CODEC_HUFF = 3
 
29
CODEC_JPEG = 4
 
30
 
 
31
#
 
32
# Number, gstreamer element name, string description, file extension, advanced
 
33
#
 
34
 
 
35
CODEC_LIST = [
 
36
              [0, None, 'RAW / AVI', '.avi', True],
 
37
              [1, 'vp8enc', 'VP8 / WEBM', '.webm', False],
 
38
              [2, 'x264enc', 'H264 / MP4', '.mp4', False],
 
39
              [3, 'ffenc_huffyuv', 'HUFFYUV / AVI', '.avi', True],
 
40
              [4, 'ffenc_ljpeg', 'Lossless JPEG / AVI', '.avi', True],
 
41
             ]
28
42
 
29
43
# PulseAudio Error Codes
30
44
PA_LOAD_ERROR = 1
57
71
ACTION_SAVE = 0
58
72
ACTION_EDIT = 1
59
73
 
 
74
# Blink modes and states
 
75
BLINK_STOP = 0
 
76
BLINK_START = 1
 
77
BLINK_SLOW = 2
 
78
BLINK_FAST = 3
 
79
BLINK_STOP_ICON = 4
 
80
BLINK_READY_ICON = 5
 
81
 
 
82
# Main modes
 
83
MODE_SCREENCAST = 0
 
84
MODE_SCREENSHOT = 1
 
85
 
 
86
# Record modes
 
87
MODE_FULL = 0
 
88
MODE_ALL = 1
 
89
MODE_AREA = 2
 
90
MODE_WIN = 3
 
91
MODE_ACTIVE = 4
 
92
MODE_GOD = 666
 
93
 
 
94
import logging
 
95
 
 
96
from gi.repository import Gdk, GdkX11
 
97
 
 
98
class hw:
 
99
    def __init__(self):
 
100
        self.logger = logging.getLogger("Constants")
 
101
        self.logger.debug("Getting hardware specs")
 
102
        self.screens = None
 
103
        self.combined_screen = None
 
104
 
 
105
        self.get_screens()
 
106
 
 
107
    def get_current_screen(self, window = None):
 
108
        try:
 
109
            if window:
 
110
                screen = self.default_screen.get_monitor_at_window(window.get_window())
 
111
            else:
 
112
                disp = GdkX11.X11Display.get_default()
 
113
                dm = Gdk.Display.get_device_manager(disp)
 
114
                pntr_device = dm.get_client_pointer()
 
115
                (src, x, y) = pntr_device.get_position()
 
116
                screen = self.default_screen.get_monitor_at_point(x, y)
 
117
        except:
 
118
           screen = 0
 
119
        return screen
 
120
 
 
121
    def get_screens(self):
 
122
        try:
 
123
            self.logger.debug("Getting Video sources.")
 
124
            self.screens = []
 
125
            self.default_screen = Gdk.Screen.get_default()
 
126
            self.logger.debug("Found {0} monitor(s).".format(self.default_screen.get_n_monitors()))
 
127
 
 
128
            for i in range(self.default_screen.get_n_monitors()):
 
129
                rect = self.default_screen.get_monitor_geometry(i)
 
130
                self.logger.debug("  Monitor {0} - X: {1}, Y: {2}, W: {3}, H: {4}".format(i,
 
131
                                                                                     rect.x,
 
132
                                                                                     rect.y,
 
133
                                                                                     rect.width,
 
134
                                                                                     rect.height))
 
135
                self.screens.append({"x": rect.x,
 
136
                                     "y": rect.y,
 
137
                                     "width": rect.width,
 
138
                                      "height": rect.height})
 
139
 
 
140
            if self.default_screen.get_n_monitors() > 1:
 
141
                self.combined_screen = {"x": 0, "y": 0,
 
142
                                       "width": self.default_screen.get_width(),
 
143
                                       "height": self.default_screen.get_height()}
 
144
                self.logger.debug("  Combined screen - X: 0, Y: 0, W: {0}, H: {1}".format(self.default_screen.get_width(),
 
145
                                                                                          self.default_screen.get_height()))
 
146
            else:
 
147
                self.combined_screen = None
 
148
 
 
149
        except:
 
150
            self.logger.warning("Unable to find any video sources.")
 
151
 
 
152
HW = hw()