Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/pygame/camera.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pygame/camera.py')
-rw-r--r--src/pygame/camera.py144
1 files changed, 144 insertions, 0 deletions
diff --git a/src/pygame/camera.py b/src/pygame/camera.py
new file mode 100644
index 0000000..618e012
--- /dev/null
+++ b/src/pygame/camera.py
@@ -0,0 +1,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()
+
+
+