Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/pygame/camera.py
blob: 618e012ddb6087f37cd934d9eb9cfb7df7063cb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144

_is_init = 0



def init():
    global list_cameras, Camera, colorspace, _is_init


    import os,sys

    use_opencv = False
    use_vidcapture = False
    use__camera = True


    if sys.platform == 'win32':
        use_vidcapture = True

    elif "linux" in sys.platform:
        use__camera = True

    else:
        use_opencv = True



    # see if we have any user specified defaults in environments.
    camera_env = os.environ.get("PYGAME_CAMERA", "")
    if camera_env == "opencv":
        use_opencv = True
    if camera_env == "vidcapture":
        use_vidcapture = True



    # select the camera module to import here.

    # the _camera module has some code which can be reused by other modules.
    #  it will also be the default one.
    import _camera
    colorspace = _camera.colorspace

    if use__camera:
        list_cameras = _camera.list_cameras
        Camera = _camera.Camera

    if use_opencv:
        try:
            import _camera_opencv_highgui
        except:
            _camera_opencv_highgui = None

        if _camera_opencv_highgui:
            _camera_opencv_highgui.init()

            list_cameras = _camera_opencv_highgui.list_cameras
            Camera = _camera_opencv_highgui.Camera

    if use_vidcapture:
        try:
            import _camera_vidcapture
        except:
            _camera_vidcapture = None

        if _camera_vidcapture:
            _camera_vidcapture.init()
            list_cameras = _camera_vidcapture.list_cameras
            Camera = _camera_vidcapture.Camera



    _is_init = 1
    pass


def quit():
    global _is_init
    _is_init = 0
    pass
 

def _check_init():
    global _is_init
    if not _is_init:
        raise ValueError("Need to call camera.init() before using.")

def list_cameras():
    """
    """
    _check_init()
    raise NotImplementedError()


class Camera:

    def __init__(self, device =0, size = (320, 200), mode = "RGB"):
        """
        """
        _check_init()
        raise NotImplementedError()

    def set_resolution(self, width, height):
        """Sets the capture resolution. (without dialog)
        """
        pass

    def start(self):
        """
        """

    def stop(self):
        """
        """

    def get_buffer(self):
        """
        """

    def set_controls(self, **kwargs):
        """
        """

    def get_image(self, dest_surf = None):
        """
        """

    def get_surface(self, dest_surf = None):
        """
        """



if __name__ == "__main__":

    # try and use this camera stuff with the pygame camera example.
    import pygame.examples.camera

    #pygame.camera.Camera = Camera
    #pygame.camera.list_cameras = list_cameras
    pygame.examples.camera.main()