Skip to content

Commit

Permalink
Camerra Hack Initial Import
Browse files Browse the repository at this point in the history
  • Loading branch information
thp committed Jan 12, 2012
0 parents commit 1de2ff6
Show file tree
Hide file tree
Showing 14 changed files with 1,015 additions and 0 deletions.
674 changes: 674 additions & 0 deletions COPYING

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

Harmattan Camerra Hack
----------------------

See http://thp.io/2012/camerra/ for more information.

Binary file added camerra-instructions.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions camerra.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[Desktop Entry]
Type=Application
Name=CamerraH
Icon=/opt/camerra/camerra.png
Exec=python /usr/bin/camerra.py
Binary file added camerra.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
74 changes: 74 additions & 0 deletions camerra.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@

#
# Ye Olde Camerra Hack - Another fine Harmattan Hack Powered by Python(tm)!
# 2012-01-12; Thomas Perl <thp.io/about>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This package is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# On Debian systems, the complete text of the GNU General
# Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
#


from QmSystem import *
from PySide.QtGui import *
from PySide.QtDeclarative import *

import sys
import subprocess
import re
import time

app = QApplication(sys.argv)
keys = QmKeys()
last_time = time.time()

WAIT_BETWEEN_CLICKS = 3
WINID_REGEX = r'_NET_ACTIVE_WINDOW\(WINDOW\): window id # (0x[0-9a-f]*)'
CAMERA_REGEX = r'WM_CLASS\(STRING\) = "camera-ui"'

def camera_app_on_top():
# Is the window of the camera app currently on top or some other app?
root = subprocess.Popen(['xprop', '-root'], stdout=subprocess.PIPE)
stdout, stderr = root.communicate()
win_id = re.search(WINID_REGEX, stdout).group(1)

win_info = subprocess.Popen(['xprop', '-id', win_id],
stdout=subprocess.PIPE)
stdout, stderr = win_info.communicate()

return re.search(CAMERA_REGEX, stdout) is not None

def keyEvent(key, state):
# Callback for QmKeys key events
global last_time

if time.time() - last_time < WAIT_BETWEEN_CLICKS:
# Avoid hammering the cam app when Vol+ is being kept pressed
return

if key == state == 2 and camera_app_on_top():
last_time = time.time()
p = subprocess.Popen(['xresponse', '-d', '820x240,820x240', '-w', '1'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.wait()

keys.keyEvent.connect(keyEvent)

view = QDeclarativeView()
view.setSource('/opt/camerra/camerra.qml')
view.showFullScreen()

app.exec_()

29 changes: 29 additions & 0 deletions camerra.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

import QtQuick 1.1
import com.nokia.meego 1.0

PageStackWindow {
initialPage: Page {
Text {
anchors.centerIn: parent
width: parent.width * .8
font.pixelSize: 20
text: '<p style="text-align: center;">
<b>Ye Olde Camerra Hack!</b><br><br>
While this application is running, you can<br>
use the <b>Volume +</b> button on your N9<br>
to capture photos in the camera application.<br>
<br><br>
http://thp.io/2012/camerra/
</p>'
}

Image {
anchors {
horizontalCenter: parent.horizontalCenter
bottom: parent.bottom
}
source: 'camerra-instructions.png'
}
}
}
5 changes: 5 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
camerra (1.0.0) harmattan; urgency=low

* Initial release of the Camerra Hack.

-- Thomas Perl <m@thp.io> Thu, 12 Jan 2012 14:43:03 +0100
1 change: 1 addition & 0 deletions debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8
159 changes: 159 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
Source: camerra
Section: user/desktop
Priority: extra
Maintainer: Thomas Perl <m@thp.io>
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.2
Homepage: http://thp.io/2012/camerra/

Package: camerra
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-qmsystem, python-pyside.qtgui, python-pyside.qtdeclarative, x11-utils, xresponse
Description: Use "Volume +" as Camera Shutter button
When this application is running, it will monitor the
state of your "Volume +" hardware key and (when the
camera application is running in the foreground) on
press click on the on-screen shutter button.
Cool for self-portraits (N950 photo wall *hint,hint*).
XSBC-Maemo-Display-Name: Camerra Hack
XSBC-Maemo-Icon-26: iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqd
U3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAo
uGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIV
SOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5U
yBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFS
LALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4Klf
cIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44
P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z
2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD
/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9
CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAA
vOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgE
tbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKA
pCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPR
dDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3
dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4Yjqx
kFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCs
IJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAv
U4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlr
GXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1Sr
VQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0h
FsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4N
znstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7T
Y+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRo
o9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNis
yeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQ
G1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7
fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wj
m7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYw
bcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4F
YAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVa
G/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7
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

29 changes: 29 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Format: http://dep.debian.net/deps/dep5
Upstream-Name: camerra
Source: http://thp.io/2012/camerra/

Files: *
Copyright: 2012 Thomas Perl <m@thp.io>
License: GPL-3.0+

Files: debian/*
Copyright: 2012 Thomas Perl <m@thp.io>
License: GPL-3.0+

License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

13 changes: 13 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
dh $@
1 change: 1 addition & 0 deletions debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (native)
19 changes: 19 additions & 0 deletions makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

# Ye Olde Camerra Hack (http://thp.io/2012/camerra/)
# Copyright (c) 2012 Thomas Perl <thp.io/about>

APP_NAME = camerra

all:
true

install:
mkdir -p $(DESTDIR)/opt/$(APP_NAME)/
cp *.qml *.png $(DESTDIR)/opt/$(APP_NAME)/
mkdir -p $(DESTDIR)/usr/bin/
cp $(APP_NAME).py $(DESTDIR)/usr/bin/
mkdir -p $(DESTDIR)/usr/share/applications/
cp $(APP_NAME).desktop $(DESTDIR)/usr/share/applications/

.PHONY: all install

0 comments on commit 1de2ff6

Please sign in to comment.