2
# -*- coding: utf-8 -*-
4
# Copyright (c) 2011 Krasimir S. Stefanov
7
# Krasimir S. Stefanov <lokiisyourmaster@gmail.com>
10
# This file belongs in /usr/lib/nautilus/extensions-2.0/python/
29
import gettext as _gettext
30
from locale import getdefaultlocale
32
APP_NAME = "nautilus-v4l-infobar"
34
languages = ( [getdefaultlocale()[0]] or [] )
35
if 'LANGUAGE' in os.environ:
36
languages = os.environ['LANGUAGE'].split(':') + languages
37
elif 'LANG' in os.environ:
38
languages = os.environ['LANG'].split(':') + languages
40
_gettext.bindtextdomain(APP_NAME, os.path.join(sys.prefix, 'share', 'locale'))
41
_gettext.textdomain(APP_NAME)
43
gettext = _gettext.translation(APP_NAME, os.path.join(sys.prefix, 'share', 'locale'), languages=languages, fallback=True)
46
def get_pictures_dir():
47
if 'XDG_CONFIG_HOME' in os.environ:
48
XDG_CONFIG_HOME = os.environ['XDG_CONFIG_HOME']
50
XDG_CONFIG_HOME = os.path.join(os.path.expanduser('~'),'.config')
51
user_dirs = os.path.join(XDG_CONFIG_HOME, 'user-dirs.dirs')
52
if os.path.exists(user_dirs):
53
user_dirs_content = open(user_dirs,'r').read()
54
m = re.search('XDG_PICTURES_DIR="(.*?)"', user_dirs_content)
56
return os.path.expandvars(m.group(1))
62
class NautilusV4L(nautilus.LocationWidgetProvider):
66
def get_widget(self, uri, window):
67
def take_picture(widget = None, path = None):
68
now = datetime.datetime.now()
69
current_time = now.strftime("%Y-%m-%d %H.%M.%S")
70
player = gst.parse_launch ('v4l2src ! ffmpegcolorspace ! pngenc ! filesink location="%s/photo_%s.png"' % (path, current_time))
71
player.set_state(gst.STATE_PLAYING)
73
player.set_state(gst.STATE_NULL)
76
path = urllib.unquote(urlparse.urlparse(uri)[2]) # path
77
XDG_PICTURES_DIR = get_pictures_dir()
78
if XDG_PICTURES_DIR != None and glob.glob('/dev/video[0-999]') != []:
79
if path == XDG_PICTURES_DIR or path.startswith(XDG_PICTURES_DIR):
81
icon = gtk.image_new_from_icon_name('camera-photo', gtk.ICON_SIZE_SMALL_TOOLBAR)
83
button = gtk.Button(_('Take picture with the webcam'))
84
button.connect('clicked', take_picture, path)
85
hbox.pack_start(icon, expand=False, fill=False, padding=4)
86
hbox.pack_end(button, expand=False, fill=False, padding=4)