From d146773efec3e98bc22eb648cdda8cb53b479756 Mon Sep 17 00:00:00 2001 From: Richard Merren Date: Wed, 2 Jun 2010 10:06:51 -0500 Subject: [PATCH] Created debian package components and ensured exceptions have 2.5 compliance. --- oldschool-0.9.0/debian/changelog | 6 + oldschool-0.9.0/debian/compat | 1 + oldschool-0.9.0/debian/control | 59 +++++++++ oldschool-0.9.0/debian/copyright | 32 +++++ oldschool-0.9.0/debian/dirs | 4 + oldschool-0.9.0/debian/files | 1 + oldschool-0.9.0/debian/oldschool/DEBIAN/control | 57 +++++++++ oldschool-0.9.0/debian/oldschool/DEBIAN/md5sums | 8 ++ .../debian/oldschool/opt/oldschool/n900_levels.py | 93 ++++++++++++++ .../debian/oldschool/opt/oldschool/old_school.py | 134 ++++++++++++++++++++ .../oldschool/opt/oldschool/old_school_bg.jpg | Bin 0 -> 12092 bytes .../share/applications/hildon/oldschool.desktop | 12 ++ .../usr/share/doc/oldschool/changelog.Debian.gz | Bin 0 -> 156 bytes .../oldschool/usr/share/doc/oldschool/copyright | 32 +++++ .../icons/hicolor/48x48/hildon/old_school_icon.png | Bin 0 -> 1980 bytes .../hicolor/scalable/hildon/old_school_icon.png | Bin 0 -> 1980 bytes oldschool-0.9.0/debian/rules | 115 +++++++++++++++++ oldschool-0.9.0/src/opt/oldschool/n900_levels.py | 93 ++++++++++++++ oldschool-0.9.0/src/opt/oldschool/old_school.py | 134 ++++++++++++++++++++ .../src/opt/oldschool/old_school_bg.jpg | Bin 0 -> 12092 bytes .../share/applications/hildon/oldschool.desktop | 12 ++ .../icons/hicolor/48x48/hildon/old_school_icon.png | Bin 0 -> 1980 bytes .../hicolor/scalable/hildon/old_school_icon.png | Bin 0 -> 1980 bytes 23 files changed, 793 insertions(+) create mode 100644 oldschool-0.9.0/debian/changelog create mode 100644 oldschool-0.9.0/debian/compat create mode 100644 oldschool-0.9.0/debian/control create mode 100644 oldschool-0.9.0/debian/copyright create mode 100644 oldschool-0.9.0/debian/dirs create mode 100644 oldschool-0.9.0/debian/files create mode 100644 oldschool-0.9.0/debian/oldschool/DEBIAN/control create mode 100644 oldschool-0.9.0/debian/oldschool/DEBIAN/md5sums create mode 100755 oldschool-0.9.0/debian/oldschool/opt/oldschool/n900_levels.py create mode 100755 oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school.py create mode 100644 oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school_bg.jpg create mode 100644 oldschool-0.9.0/debian/oldschool/usr/share/applications/hildon/oldschool.desktop create mode 100644 oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/changelog.Debian.gz create mode 100644 oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/copyright create mode 100644 oldschool-0.9.0/debian/oldschool/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png create mode 100644 oldschool-0.9.0/debian/oldschool/usr/share/icons/hicolor/scalable/hildon/old_school_icon.png create mode 100755 oldschool-0.9.0/debian/rules create mode 100755 oldschool-0.9.0/src/opt/oldschool/n900_levels.py create mode 100755 oldschool-0.9.0/src/opt/oldschool/old_school.py create mode 100644 oldschool-0.9.0/src/opt/oldschool/old_school_bg.jpg create mode 100644 oldschool-0.9.0/src/usr/share/applications/hildon/oldschool.desktop create mode 100644 oldschool-0.9.0/src/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png create mode 100644 oldschool-0.9.0/src/usr/share/icons/hicolor/scalable/hildon/old_school_icon.png delete mode 100644 welcome diff --git a/oldschool-0.9.0/debian/changelog b/oldschool-0.9.0/debian/changelog new file mode 100644 index 0000000..d13ff07 --- /dev/null +++ b/oldschool-0.9.0/debian/changelog @@ -0,0 +1,6 @@ +oldschool (0.9.0-1) unstable; urgency=low + + * Initial release + + -- Richard Merren Wed, 2 Jun 2010 08:30:49 -0500 + diff --git a/oldschool-0.9.0/debian/compat b/oldschool-0.9.0/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/oldschool-0.9.0/debian/compat @@ -0,0 +1 @@ +5 diff --git a/oldschool-0.9.0/debian/control b/oldschool-0.9.0/debian/control new file mode 100644 index 0000000..235a0b1 --- /dev/null +++ b/oldschool-0.9.0/debian/control @@ -0,0 +1,59 @@ +Source: oldschool +Section: user/desktop +Priority: extra +Maintainer: Richard Merren +Build-Depends: debhelper (>= 5) +Standards-Version: 3.7.2 + +Package: oldschool +Architecture: any +Depends: python2.5, python-dbus, python2.5-qt4-core, python2.5-qt4-gui +Description: Downgrade your N900 back to the 1990s. + Shows an old-school style green screen complete with working power and signal-level bars. Touch on QUIT to exit. +XB-Maemo-Icon-26: + begin-base64 644 old_school_icon.png + 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 + ==== diff --git a/oldschool-0.9.0/debian/copyright b/oldschool-0.9.0/debian/copyright new file mode 100644 index 0000000..f34123d --- /dev/null +++ b/oldschool-0.9.0/debian/copyright @@ -0,0 +1,32 @@ +This package was debianized by Richard Merren on +Wed, 2 Jun 2010 08:30:49 -0500. + +It was downloaded from + +Upstream Author: Richard Merren + +Copyright: 2010 Richard Merren + +License: + + This package 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 2 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + +The Debian packaging is (C) 2010, Richard Merren and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. + diff --git a/oldschool-0.9.0/debian/dirs b/oldschool-0.9.0/debian/dirs new file mode 100644 index 0000000..d9efdc7 --- /dev/null +++ b/oldschool-0.9.0/debian/dirs @@ -0,0 +1,4 @@ +opt/oldschool/ +usr/share/applications/hildon/ +usr/share/icons/hicolor/48x48/hildon/ +usr/share/icons/hicolor/scalable/hildon/ diff --git a/oldschool-0.9.0/debian/files b/oldschool-0.9.0/debian/files new file mode 100644 index 0000000..d6f05d5 --- /dev/null +++ b/oldschool-0.9.0/debian/files @@ -0,0 +1 @@ +oldschool_0.9.0-1_i386.deb user/desktop extra diff --git a/oldschool-0.9.0/debian/oldschool/DEBIAN/control b/oldschool-0.9.0/debian/oldschool/DEBIAN/control new file mode 100644 index 0000000..3349697 --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/DEBIAN/control @@ -0,0 +1,57 @@ +Package: oldschool +Version: 0.9.0-1 +Section: user/desktop +Priority: extra +Architecture: i386 +Depends: python2.5, python-dbus, python2.5-qt4-core, python2.5-qt4-gui +Installed-Size: 108 +Maintainer: Richard Merren +Description: Downgrade your N900 back to the 1990s. + Shows an old-school style green screen complete with working power and signal-level bars. Touch on QUIT to exit. +Maemo-Icon-26: + begin-base64 644 old_school_icon.png + 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 + ==== diff --git a/oldschool-0.9.0/debian/oldschool/DEBIAN/md5sums b/oldschool-0.9.0/debian/oldschool/DEBIAN/md5sums new file mode 100644 index 0000000..b221dde --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/DEBIAN/md5sums @@ -0,0 +1,8 @@ +6c9d60d24cd43fa653711dd945b635fe usr/share/doc/oldschool/copyright +793e028d76998a0c6699f74a9114fb62 usr/share/doc/oldschool/changelog.Debian.gz +7802af5834765b65982026079c580c6e usr/share/icons/hicolor/48x48/hildon/old_school_icon.png +7802af5834765b65982026079c580c6e usr/share/icons/hicolor/scalable/hildon/old_school_icon.png +859cb5ab8a1822024f599d68cce259e9 usr/share/applications/hildon/oldschool.desktop +695752da337235ac07b31ee6959052f1 opt/oldschool/old_school.py +766460544b48e4386d55c936763a401e opt/oldschool/old_school_bg.jpg +e54a53bfc36395a242b8a1df00b36a63 opt/oldschool/n900_levels.py diff --git a/oldschool-0.9.0/debian/oldschool/opt/oldschool/n900_levels.py b/oldschool-0.9.0/debian/oldschool/opt/oldschool/n900_levels.py new file mode 100755 index 0000000..04ea8c6 --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/opt/oldschool/n900_levels.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import dbus +from PyQt4 import QtCore + +#Thanks to code from http://qt-mobility.blogspot.com/2010/03/getting-n900-battery-level-via-python-d.html + +class LevelReader(QtCore.QObject): + #Declare signals + battery_change = QtCore.pyqtSignal(int) #Fired when battery level changes + signal_change = QtCore.pyqtSignal(int) #Fired when signal level changes + + #Class level variables + battery_level = -666 #initialize to invalid number + signal_level = -666 #initialize to invalid number + refresh_seconds = 5 #frequency of refresh + timer = QtCore.QTimer() + battery_dev_obj = None + phone_net_intf = None + + def __init__(self): + QtCore.QObject.__init__(self) + + #Need the system bus locally + bus = dbus.SystemBus() + + #Set up battery dbus object interface as class-level variable + try: + hal_obj = bus.get_object('org.freedesktop.Hal','/org/freedesktop/Hal/Manager') + hal = dbus.Interface(hal_obj,'org.freedesktop.Hal.Manager') + uids = hal.FindDeviceByCapability('battery') + self.battery_dev_obj = bus.get_object('org.freedesktop.Hal', uids[0]) + except dbus.DBusException: + print "ERROR: Unable to connect to battery charge dbus object" + self.battery_dev_obj = None + except Exception,e: + print "ERROR: Unknown exception connecting to DBus for battery charge: ", e + self.battery_dev_obj = None + + #Set up signal level dbus interface as class-level variable + try: + phone_net_obj = bus.get_object('com.nokia.phone.net','/com/nokia/phone/net', introspect=False) + self.phone_net_intf = dbus.Interface(self.phone_net_obj,'Phone.Net') + except dbus.DBusException: + print "ERROR: Unable to connect to signal level dbus object" + self.phone_net_intf = None + except Exception,e: + print "ERROR: Unknown exception connecting to DBus for signal level: ", e + self.phone_net_intf = None + + #bind my checks to the timer + QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("check_battery_change()")) + QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("check_signal_change()")) + self.timer.start(5 * self.refresh_seconds) + + # Read the dbus values + + def get_battery_percentage(self): + if self.battery_dev_obj==None: + return 0 + try: + prop_value = self.battery_dev_obj.GetProperty('battery.charge_level.percentage') + int_value = int(prop_value) + return int_value + except dbus.DBusException: + return 0 + + def get_signal_percentage(self): + if self.phone_net_intf==None: + return 0 + try: + dbus_return = self.phone_net_intf.get_signal_strength() + return int(dbus_return[0]) + except dbus.DBusException: + return 0 + + #Declare my Qt Slots for binding with the timer + + @QtCore.pyqtSlot() + def check_battery_change(self): + new_battery_level = self.get_battery_percentage() + if new_battery_level==self.battery_level: + return + self.battery_level = new_battery_level + self.battery_change.emit(new_battery_level) + + @QtCore.pyqtSlot() + def check_signal_change(self): + new_signal_level = self.get_signal_percentage() + if new_signal_level==self.signal_level: + return + self.signal_level = new_signal_level + self.signal_change.emit(new_signal_level) diff --git a/oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school.py b/oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school.py new file mode 100755 index 0000000..4267b16 --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python + +import sys +from PyQt4 import QtGui, QtCore +from n900_levels import LevelReader + +bar_width = 140 +bar_length = 35 +signal_bar_y = 430 +power_bar_y = 15 + +quit_x_min = 700 +quit_x_max = 765 +quit_y_min = 160 +quit_y_max = 335 + +bar_x_1 = 460 +bar_x_2 = 310 +bar_x_3 = 160 +bar_x_4 = 10 + +class Bar(QtGui.QWidget): + def __init__(self, parent, x, y, fill_percent=100, mirror=False): + QtGui.QWidget.__init__(self, parent) + self.resize(bar_width, bar_length) + self.move(x, y) + + label_y = 0 + label_length = bar_length * fill_percent / 100 + if (mirror): + label_y = bar_length - label_length + + self.label = QtGui.QLabel(self) + self.label.resize(bar_width, label_length) + if label_y>0: + self.label.move(0, label_y) + self.label.setStyleSheet("background-color: black") + + +class OldSchoolWidget(QtGui.QWidget): + power_bar = [] + signal_bar = [] + quit_pressed = QtCore.pyqtSignal() + + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + palette = QtGui.QPalette() + palette.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QImage("old_school_bg.jpg"))); + self.setPalette(palette) + + self.power_bar.append(Bar(self, bar_x_1, power_bar_y, 25)) + self.power_bar.append(Bar(self, bar_x_2, power_bar_y, 50)) + self.power_bar.append(Bar(self, bar_x_3, power_bar_y, 75)) + self.power_bar.append(Bar(self, bar_x_4, power_bar_y, 100)) + + self.signal_bar.append(Bar(self, bar_x_1, signal_bar_y, 25, True)) + self.signal_bar.append(Bar(self, bar_x_2, signal_bar_y, 50, True)) + self.signal_bar.append(Bar(self, bar_x_3, signal_bar_y, 75, True)) + self.signal_bar.append(Bar(self, bar_x_4, signal_bar_y, 100, True)) + + def mousePressEvent(self, ev): + click_position = QtCore.QPoint(ev.pos()) + x = click_position.x() + y = click_position.y() + if (x>=quit_x_min and x <=quit_x_max and y>=quit_y_min and y<=quit_y_max): + self.quit_pressed.emit() + + def percent_to_bars(self, percent): + if percent<=20: + return 0 + if percent <=40: + return 1 + if percent <=60: + return 2 + if percent <=80: + return 3 + return 4 + + def set_signal(self, value): + for index in range(1, 4): + bar = self.signal_bar[index] + if value>index: + bar.show() + else: + bar.hide() + + @QtCore.pyqtSlot(int) + def set_signal_percent(self, percentage): + bar_count = self.percent_to_bars(percentage) + self.set_signal(bar_count) + + def set_power(self, value): + for index in range(1, 4): + bar = self.power_bar[index] + if value>index: + bar.show() + else: + bar.hide() + + @QtCore.pyqtSlot(int) + def set_power_percent(self, percentage): + bar_count = self.percent_to_bars(percentage) + self.set_power(bar_count) + +def do_normal(): + app = QtGui.QApplication(sys.argv) + old_school = OldSchoolWidget() + old_school.showFullScreen() + QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()')) + level_reader = LevelReader() + QtCore.QObject.connect(level_reader, QtCore.SIGNAL("battery_change(int)") , old_school, QtCore.SLOT("set_power_percent(int)")) + QtCore.QObject.connect(level_reader, QtCore.SIGNAL("signal_change(int)") , old_school, QtCore.SLOT("set_signal_percent(int)")) + level_reader.check_battery_change() + level_reader.check_signal_change() + sys.exit(app.exec_()) + +def do_test_gui(): + app = QtGui.QApplication(sys.argv) + old_school = OldSchoolWidget() + old_school.resize(800, 480) + old_school.show() + QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()')) + old_school.set_signal_percent(75) + old_school.set_power_percent(30) + sys.exit(app.exec_()) + +if __name__ == "__main__": + args = sys.argv + if len(args)>1: + if args[1]=="test_gui": + do_test_gui() + quit() + do_normal() + diff --git a/oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school_bg.jpg b/oldschool-0.9.0/debian/oldschool/opt/oldschool/old_school_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21cc105a2b2208ab7fc5ca7fb38cbada6b252b5c GIT binary patch literal 12092 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 literal 0 HcmV?d00001 diff --git a/oldschool-0.9.0/debian/oldschool/usr/share/applications/hildon/oldschool.desktop b/oldschool-0.9.0/debian/oldschool/usr/share/applications/hildon/oldschool.desktop new file mode 100644 index 0000000..c9b79b0 --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/usr/share/applications/hildon/oldschool.desktop @@ -0,0 +1,12 @@ + [Desktop Entry] + Version=1.0.0 + Encoding=UTF-8 + Name=Old School + Comment=Downgrade your phone to the 1990s + Exec=/opt/oldschool/old_school.py + Icon=old_school_icon + X-Icon-path=/usr/share/icons + X-Window-Icon=old_school_icon + Type=Application + StartupWMClass=OldSchool + diff --git a/oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/changelog.Debian.gz b/oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/changelog.Debian.gz new file mode 100644 index 0000000000000000000000000000000000000000..f6787f7d7f1aa3550cef7874515879e29e984660 GIT binary patch literal 156 zcmV;N0Av3jiwForT?R}717m1mZf9j|Z)Ywl~ZEDKK*@q{%nNH5xDcP1X^6GprwXD+kQp;x`U<-ky0N; KdzuT20000cghiJC literal 0 HcmV?d00001 diff --git a/oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/copyright b/oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/copyright new file mode 100644 index 0000000..f34123d --- /dev/null +++ b/oldschool-0.9.0/debian/oldschool/usr/share/doc/oldschool/copyright @@ -0,0 +1,32 @@ +This package was debianized by Richard Merren on +Wed, 2 Jun 2010 08:30:49 -0500. + +It was downloaded from + +Upstream Author: Richard Merren + +Copyright: 2010 Richard Merren + +License: + + This package 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 2 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + +The Debian packaging is (C) 2010, Richard Merren and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. + diff --git a/oldschool-0.9.0/debian/oldschool/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png b/oldschool-0.9.0/debian/oldschool/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f336abdc97fc65da28bff2e8a22829309591e22 GIT binary patch literal 1980 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 oldschool.1 + + #touch $@ + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + #commented out by rbm + #-$(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/oldschool. + #commented out by rbm + #$(MAKE) DESTDIR=$(CURDIR)/debian/oldschool install + mkdir -p "$(CURDIR)/debian/oldschool/" + + mkdir -p "$(CURDIR)/debian/oldschool/opt/oldschool/" + cp -a "src/opt/oldschool/n900_levels.py" "$(CURDIR)/debian/oldschool/opt/oldschool/n900_levels.py" + mkdir -p "$(CURDIR)/debian/oldschool/opt/oldschool/" + cp -a "src/opt/oldschool/old_school.py" "$(CURDIR)/debian/oldschool/opt/oldschool/old_school.py" + mkdir -p "$(CURDIR)/debian/oldschool/opt/oldschool/" + cp -a "src/opt/oldschool/old_school_bg.jpg" "$(CURDIR)/debian/oldschool/opt/oldschool/old_school_bg.jpg" + mkdir -p "$(CURDIR)/debian/oldschool/usr/share/applications/hildon/" + cp -a "src/usr/share/applications/hildon/oldschool.desktop" "$(CURDIR)/debian/oldschool/usr/share/applications/hildon/oldschool.desktop" + mkdir -p "$(CURDIR)/debian/oldschool/usr/share/icons/hicolor/scalable/hildon/" + cp -a "src/usr/share/icons/hicolor/scalable/hildon/old_school_icon.png" "$(CURDIR)/debian/oldschool/usr/share/icons/hicolor/scalable/hildon/old_school_icon.png" + mkdir -p "$(CURDIR)/debian/oldschool/usr/share/icons/hicolor/48x48/hildon/" + cp -a "src/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png" "$(CURDIR)/debian/oldschool/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png" + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_perl +# dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/oldschool-0.9.0/src/opt/oldschool/n900_levels.py b/oldschool-0.9.0/src/opt/oldschool/n900_levels.py new file mode 100755 index 0000000..04ea8c6 --- /dev/null +++ b/oldschool-0.9.0/src/opt/oldschool/n900_levels.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import dbus +from PyQt4 import QtCore + +#Thanks to code from http://qt-mobility.blogspot.com/2010/03/getting-n900-battery-level-via-python-d.html + +class LevelReader(QtCore.QObject): + #Declare signals + battery_change = QtCore.pyqtSignal(int) #Fired when battery level changes + signal_change = QtCore.pyqtSignal(int) #Fired when signal level changes + + #Class level variables + battery_level = -666 #initialize to invalid number + signal_level = -666 #initialize to invalid number + refresh_seconds = 5 #frequency of refresh + timer = QtCore.QTimer() + battery_dev_obj = None + phone_net_intf = None + + def __init__(self): + QtCore.QObject.__init__(self) + + #Need the system bus locally + bus = dbus.SystemBus() + + #Set up battery dbus object interface as class-level variable + try: + hal_obj = bus.get_object('org.freedesktop.Hal','/org/freedesktop/Hal/Manager') + hal = dbus.Interface(hal_obj,'org.freedesktop.Hal.Manager') + uids = hal.FindDeviceByCapability('battery') + self.battery_dev_obj = bus.get_object('org.freedesktop.Hal', uids[0]) + except dbus.DBusException: + print "ERROR: Unable to connect to battery charge dbus object" + self.battery_dev_obj = None + except Exception,e: + print "ERROR: Unknown exception connecting to DBus for battery charge: ", e + self.battery_dev_obj = None + + #Set up signal level dbus interface as class-level variable + try: + phone_net_obj = bus.get_object('com.nokia.phone.net','/com/nokia/phone/net', introspect=False) + self.phone_net_intf = dbus.Interface(self.phone_net_obj,'Phone.Net') + except dbus.DBusException: + print "ERROR: Unable to connect to signal level dbus object" + self.phone_net_intf = None + except Exception,e: + print "ERROR: Unknown exception connecting to DBus for signal level: ", e + self.phone_net_intf = None + + #bind my checks to the timer + QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("check_battery_change()")) + QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("check_signal_change()")) + self.timer.start(5 * self.refresh_seconds) + + # Read the dbus values + + def get_battery_percentage(self): + if self.battery_dev_obj==None: + return 0 + try: + prop_value = self.battery_dev_obj.GetProperty('battery.charge_level.percentage') + int_value = int(prop_value) + return int_value + except dbus.DBusException: + return 0 + + def get_signal_percentage(self): + if self.phone_net_intf==None: + return 0 + try: + dbus_return = self.phone_net_intf.get_signal_strength() + return int(dbus_return[0]) + except dbus.DBusException: + return 0 + + #Declare my Qt Slots for binding with the timer + + @QtCore.pyqtSlot() + def check_battery_change(self): + new_battery_level = self.get_battery_percentage() + if new_battery_level==self.battery_level: + return + self.battery_level = new_battery_level + self.battery_change.emit(new_battery_level) + + @QtCore.pyqtSlot() + def check_signal_change(self): + new_signal_level = self.get_signal_percentage() + if new_signal_level==self.signal_level: + return + self.signal_level = new_signal_level + self.signal_change.emit(new_signal_level) diff --git a/oldschool-0.9.0/src/opt/oldschool/old_school.py b/oldschool-0.9.0/src/opt/oldschool/old_school.py new file mode 100755 index 0000000..4267b16 --- /dev/null +++ b/oldschool-0.9.0/src/opt/oldschool/old_school.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python + +import sys +from PyQt4 import QtGui, QtCore +from n900_levels import LevelReader + +bar_width = 140 +bar_length = 35 +signal_bar_y = 430 +power_bar_y = 15 + +quit_x_min = 700 +quit_x_max = 765 +quit_y_min = 160 +quit_y_max = 335 + +bar_x_1 = 460 +bar_x_2 = 310 +bar_x_3 = 160 +bar_x_4 = 10 + +class Bar(QtGui.QWidget): + def __init__(self, parent, x, y, fill_percent=100, mirror=False): + QtGui.QWidget.__init__(self, parent) + self.resize(bar_width, bar_length) + self.move(x, y) + + label_y = 0 + label_length = bar_length * fill_percent / 100 + if (mirror): + label_y = bar_length - label_length + + self.label = QtGui.QLabel(self) + self.label.resize(bar_width, label_length) + if label_y>0: + self.label.move(0, label_y) + self.label.setStyleSheet("background-color: black") + + +class OldSchoolWidget(QtGui.QWidget): + power_bar = [] + signal_bar = [] + quit_pressed = QtCore.pyqtSignal() + + def __init__(self, parent=None): + QtGui.QWidget.__init__(self, parent) + palette = QtGui.QPalette() + palette.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QImage("old_school_bg.jpg"))); + self.setPalette(palette) + + self.power_bar.append(Bar(self, bar_x_1, power_bar_y, 25)) + self.power_bar.append(Bar(self, bar_x_2, power_bar_y, 50)) + self.power_bar.append(Bar(self, bar_x_3, power_bar_y, 75)) + self.power_bar.append(Bar(self, bar_x_4, power_bar_y, 100)) + + self.signal_bar.append(Bar(self, bar_x_1, signal_bar_y, 25, True)) + self.signal_bar.append(Bar(self, bar_x_2, signal_bar_y, 50, True)) + self.signal_bar.append(Bar(self, bar_x_3, signal_bar_y, 75, True)) + self.signal_bar.append(Bar(self, bar_x_4, signal_bar_y, 100, True)) + + def mousePressEvent(self, ev): + click_position = QtCore.QPoint(ev.pos()) + x = click_position.x() + y = click_position.y() + if (x>=quit_x_min and x <=quit_x_max and y>=quit_y_min and y<=quit_y_max): + self.quit_pressed.emit() + + def percent_to_bars(self, percent): + if percent<=20: + return 0 + if percent <=40: + return 1 + if percent <=60: + return 2 + if percent <=80: + return 3 + return 4 + + def set_signal(self, value): + for index in range(1, 4): + bar = self.signal_bar[index] + if value>index: + bar.show() + else: + bar.hide() + + @QtCore.pyqtSlot(int) + def set_signal_percent(self, percentage): + bar_count = self.percent_to_bars(percentage) + self.set_signal(bar_count) + + def set_power(self, value): + for index in range(1, 4): + bar = self.power_bar[index] + if value>index: + bar.show() + else: + bar.hide() + + @QtCore.pyqtSlot(int) + def set_power_percent(self, percentage): + bar_count = self.percent_to_bars(percentage) + self.set_power(bar_count) + +def do_normal(): + app = QtGui.QApplication(sys.argv) + old_school = OldSchoolWidget() + old_school.showFullScreen() + QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()')) + level_reader = LevelReader() + QtCore.QObject.connect(level_reader, QtCore.SIGNAL("battery_change(int)") , old_school, QtCore.SLOT("set_power_percent(int)")) + QtCore.QObject.connect(level_reader, QtCore.SIGNAL("signal_change(int)") , old_school, QtCore.SLOT("set_signal_percent(int)")) + level_reader.check_battery_change() + level_reader.check_signal_change() + sys.exit(app.exec_()) + +def do_test_gui(): + app = QtGui.QApplication(sys.argv) + old_school = OldSchoolWidget() + old_school.resize(800, 480) + old_school.show() + QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()')) + old_school.set_signal_percent(75) + old_school.set_power_percent(30) + sys.exit(app.exec_()) + +if __name__ == "__main__": + args = sys.argv + if len(args)>1: + if args[1]=="test_gui": + do_test_gui() + quit() + do_normal() + diff --git a/oldschool-0.9.0/src/opt/oldschool/old_school_bg.jpg b/oldschool-0.9.0/src/opt/oldschool/old_school_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21cc105a2b2208ab7fc5ca7fb38cbada6b252b5c GIT binary patch literal 12092 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 literal 0 HcmV?d00001 diff --git a/oldschool-0.9.0/src/usr/share/applications/hildon/oldschool.desktop b/oldschool-0.9.0/src/usr/share/applications/hildon/oldschool.desktop new file mode 100644 index 0000000..c9b79b0 --- /dev/null +++ b/oldschool-0.9.0/src/usr/share/applications/hildon/oldschool.desktop @@ -0,0 +1,12 @@ + [Desktop Entry] + Version=1.0.0 + Encoding=UTF-8 + Name=Old School + Comment=Downgrade your phone to the 1990s + Exec=/opt/oldschool/old_school.py + Icon=old_school_icon + X-Icon-path=/usr/share/icons + X-Window-Icon=old_school_icon + Type=Application + StartupWMClass=OldSchool + diff --git a/oldschool-0.9.0/src/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png b/oldschool-0.9.0/src/usr/share/icons/hicolor/48x48/hildon/old_school_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f336abdc97fc65da28bff2e8a22829309591e22 GIT binary patch literal 1980 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