Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/camera_plugin.py~146
-rw-r--r--plugins/plugin.py~34
2 files changed, 0 insertions, 180 deletions
diff --git a/plugins/camera_plugin.py~ b/plugins/camera_plugin.py~
deleted file mode 100644
index 6a8d223..0000000
--- a/plugins/camera_plugin.py~
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/usr/bin/env python
-#Copyright (c) 2011 Walter Bender
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-#THE SOFTWARE.
-
-import gst
-import gtk
-from camera.tacamera import Camera
-
-from plugin import Plugin
-from TurtleArt.taconstants import PALETTES, PALETTE_NAMES
-from TurtleArt.talogo import VALUE_BLOCKS, MEDIA_BLOCKS_DICTIONARY
-
-import logging
-_logger = logging.getLogger('turtleart-activity camera plugin')
-
-
-class Camera_plugin(Plugin):
-
- def __init__(self, parent):
- self._parent = parent
- self._status = False
-
- v4l2src = gst.element_factory_make('v4l2src')
- if v4l2src.props.device_name is not None:
-
- if self._parent.running_sugar:
- self._imagepath = get_path(self._parent.activity,
- 'data/turtlepic.png')
- else:
- self._imagepath = '/tmp/turtlepic.png'
- self._camera = Camera(self._imagepath)
-
- self._status = True
-
- def self_test(self):
- print 'reporting Camera status %s' % (str(self._status))
- return self._status
-
- def setup(self):
- if self.self_test():
- PALETTES[PALETTE_NAMES.index('sensor')].append('readcamera')
- PALETTES[PALETTE_NAMES.index('sensor')].append('luminance')
- PALETTES[PALETTE_NAMES.index('sensor')].append('camera')
-
- # TODO: define these blocks in taconstants.py
-
- VALUE_BLOCKS.append('luminance')
- MEDIA_BLOCKS_DICTIONARY['camera'] = self.take_picture
-
- self._parent.lc._def_prim('luminance', 0,
- lambda self: self.read_camera(True))
- self._parent.lc._def_prim('readcamera', 0,
- lambda self: self.read_camera())
-
- def stop(self):
- if self._self_test():
- self._camera.stop_camera_input()
-
- ###
-
- def take_picture(self):
- if self.self_test():
- ''' method called by media block '''
- self._camera.save_camera_input_to_file()
- self._camera.stop_camera_input()
- self._parent.lc.filepath = self._imagepath
-
- def read_camera(self, luminance_only=False):
- """ Read average pixel from camera and push b, g, r to the stack """
- pixbuf = None
- array = None
- w, h = self._parent.lc._w(), self._parent.lc._h()
- if w > 0 and h > 0 and self.self_test():
- try:
- self._video_capture_device = open('/dev/video0', 'rw')
- except:
- self._video_capture_device = None
- _logger.debug('video capture device not available')
-
- if self._video_capture_device is not None:
- self._ag_control = v4l2.v4l2_control(v4l2.V4L2_CID_AUTOGAIN)
- try:
- ioctl(self._video_capture_device, v4l2.VIDIOC_G_CTRL,
- self._ag_control)
- self._ag_control.value = 0 # disable AUTOGAIN
- ioctl(self._video_capture_device, v4l2.VIDIOC_S_CTRL,
- self._ag_control)
- except:
- _logger.debug('AUTOGAIN control not available')
- pass
-
- if self._video_capture_device is not None:
- self._video_capture_device.close()
-
- self._camera.save_camera_input_to_file()
- self._camera.stop_camera_input()
- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(self._imagepath, w, h)
- try:
- array = pixbuf.get_pixels()
- except:
- array = None
-
- if array is not None:
- length = len(array) / 3
- r, g, b, i = 0, 0, 0, 0
- for j in range(length):
- r += ord(array[i])
- i += 1
- g += ord(array[i])
- i += 1
- b += ord(array[i])
- i += 1
- if luminance_only:
- lum = int((r * 0.3 + g * 0.6 + b * 0.1) / length)
- self._parent.lc.update_label_value('luminance', lum)
- return lum
- else:
- self._parent.lc.heap.append(int((b / length)))
- self._parent.lc.heap.append(int((g / length)))
- self._parent.lc.heap.append(int((r / length)))
- else:
- if luminance_only:
- return -1
- else:
- self._parent.lc.heap.append(-1)
- self._parent.lc.heap.append(-1)
- self._parent.lc.heap.append(-1)
-
-
diff --git a/plugins/plugin.py~ b/plugins/plugin.py~
deleted file mode 100644
index 165e341..0000000
--- a/plugins/plugin.py~
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-#Copyright (c) 2011 Walter Bender
-#Copyright (c) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
-
-#Permission is hereby granted, free of charge, to any person obtaining a copy
-#of this software and associated documentation files (the "Software"), to deal
-#in the Software without restriction, including without limitation the rights
-#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-#copies of the Software, and to permit persons to whom the Software is
-#furnished to do so, subject to the following conditions:
-
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-#THE SOFTWARE.
-
-import gobject
-
-
-class Plugin(gobject.GObject):
- def __init__(self):
- gobject.GObject.__init__(self)
-
- def self_test(self):
- raise RuntimeError("You need to define self_test for your plugin.")
-
- def stop(self):
- raise RuntimeError("You need to define stop for your plugin.")