Merge lp:~noskcaj/ubuntu/trusty/pyrocket/new-release into lp:ubuntu/trusty/pyrocket

Proposed by Jackson Doak
Status: Needs review
Proposed branch: lp:~noskcaj/ubuntu/trusty/pyrocket/new-release
Merge into: lp:ubuntu/trusty/pyrocket
Diff against target: 1133 lines (+414/-378)
15 files modified
40-rocketlauncher.rules (+3/-4)
debian/changelog (+10/-0)
debian/compat (+1/-1)
debian/control (+4/-5)
debian/pycompat (+0/-1)
debian/pyrocket.install (+1/-1)
debian/pyrocket.manpages (+1/-0)
debian/pyrocket.xpm (+299/-0)
debian/rules (+6/-9)
pyrocket.xpm (+0/-299)
rocket_backend.py (+36/-3)
rocket_frontend.py (+25/-19)
rocket_joystick.py (+5/-13)
rocket_webcam.py (+21/-21)
setup.py (+2/-2)
To merge this branch: bzr merge lp:~noskcaj/ubuntu/trusty/pyrocket/new-release
Reviewer Review Type Date Requested Status
Daniel Holbach (community) Needs Information
Dmitry Shachnev Abstain
Review via email: mp+195921@code.launchpad.net

Description of the change

Import upstream fix.

To post a comment you must log in.
Revision history for this message
Dmitry Shachnev (mitya57) wrote :

Thanks for your work here.

- When does the source tarball come from? debian/watch is broken, and when I download v0.8.tar.gz from GitHub, it has differences with your branch (i.e. 40-rocketlauncher.rules is missing);
- "LP:#1055778" won't close the bug, you need a space after the colon;
- dh-python is not used unless you build-depend on it (and falls back to "old" dh_python2 provided by python-defaults). See the relevant logic in /usr/bin/dh_python2.

By the way, here is a debian/watch line that works with GitHub:

opts=filenamemangle=s/.*v(.*).tar.gz/pyrocket_$1.orig.tar.gz/ \
http://github.com/stadler/pyrocket/tags .*/archive/v(.*).tar.gz

review: Needs Fixing
Revision history for this message
Jackson Doak (noskcaj) wrote :

I got the tarball from the PPA, then removed the debian/ folder
Everything should say dh-python2

On Wed, Nov 20, 2013 at 9:17 PM, Dmitry Shachnev <email address hidden> wrote:

> The proposal to merge lp:~noskcaj/ubuntu/trusty/pyrocket/new-release into
> lp:ubuntu/pyrocket has been updated.
>
> Status: Needs review => Work in progress
>
> For more details, see:
>
> https://code.launchpad.net/~noskcaj/ubuntu/trusty/pyrocket/new-release/+merge/195921
> --
>
> https://code.launchpad.net/~noskcaj/ubuntu/trusty/pyrocket/new-release/+merge/195921
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>

Revision history for this message
Dmitry Shachnev (mitya57) wrote :

Looks better now, though I cannot sponsor it right now…

review: Abstain
Revision history for this message
Jackson Doak (noskcaj) wrote :

The tarball is at https://launchpad.net/~zarquon42/+archive/ppa/+files/pyrocket_0.8-0ubuntu1.tar.gz , it just needs the debian directory renamed or removed from it.

Revision history for this message
Daniel Holbach (dholbach) wrote :

The patch looks good, can it be forward to the upstream developers please?

Revision history for this message
Daniel Holbach (dholbach) wrote :

Sorry, commented on the wrong MP.

Revision history for this message
Daniel Holbach (dholbach) wrote :
Download full text (5.8 KiB)

Using https://github.com/stadler/pyrocket/archive/v0.8.tar.gz I get the following:

daniel@daydream:~/pyrocket$ LC_ALL=C bzr bd -- -S -sa
Building using working tree
Building package in normal mode
Purging the build dir: /home/daniel/build-area/pyrocket-0.8
Looking for a way to retrieve the upstream tarball
Upstream tarball already exists in build directory, using that
Building the package in /home/daniel/build-area/pyrocket-0.8, using debuild -S -sa
 dpkg-buildpackage -rfakeroot -d -us -uc -S -sa
dpkg-buildpackage: source package pyrocket
dpkg-buildpackage: source version 0.8-0ubuntu1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Jackson Doak <email address hidden>
 dpkg-source --before-build pyrocket-0.8
 fakeroot debian/rules clean
dh clean --with python2
   dh_testdir
   dh_auto_clean
pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions
pyversions: missing debian/pyversions file, fall back to supported versions
running clean
'build/lib.linux-x86_64-2.7' does not exist -- can't clean it
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
   debian/rules override_dh_clean
make[1]: Entering directory `/home/daniel/build-area/pyrocket-0.8'
dh_clean
rm -f pyrocket.6
make[1]: Leaving directory `/home/daniel/build-area/pyrocket-0.8'
 dpkg-source -b pyrocket-0.8
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building pyrocket using existing ./pyrocket_0.8.orig.tar.gz
dpkg-source: warning: ignoring deletion of file find_occurences_of_version_number.sh
dpkg-source: warning: ignoring deletion of file make_source_package.sh
dpkg-source: warning: ignoring deletion of file make_package.sh
dpkg-source: warning: ignoring deletion of file cheeky.xcf
dpkg-source: warning: ignoring deletion of file README.md
dpkg-source: warning: ignoring deletion of file cheeky.png
dpkg-source: warning: ignoring deletion of file clean_source_package.sh
dpkg-source: warning: ignoring deletion of file TODO.txt
dpkg-source: warning: ignoring deletion of directory src
dpkg-source: warning: ignoring deletion of file src/msnmissile.png
dpkg-source: warning: ignoring deletion of file src/40-rocketlauncher.rules
dpkg-source: warning: ignoring deletion of file src/LICENSE
dpkg-source: warning: ignoring deletion of file src/setup.py
dpkg-source: warning: ignoring deletion of file src/rocket_frontend.py
dpkg-source: warning: ignoring deletion of file src/pyrocket
dpkg-source: warning: ignoring deletion of file src/rocket_joystick.py
dpkg-source: warning: ignoring deletion of file src/pyrocket.png
dpkg-source: warning: ignoring deletion of file src/rocket_webcam.py
dpkg-source: warning: ignoring deletion of file src/joystick.svg
dpkg-source: warning: ignoring deletion of file src/rocket_backend.py
dpkg-source: warning: ignoring deletion of directory src/debian
dpkg-source: warning: ignoring deletion of file src/debian/pyrocket.desktop
dpkg-source: warning: ignoring deletion of file src/debian/control
dpkg-source: warning: ignoring deletion of file src/debian/watch
dpkg-source: warning: ignoring deletion of file src/debian/pyrocket....

Read more...

review: Needs Fixing
Revision history for this message
Dmitry Shachnev (mitya57) wrote :

Daniel: Jackson used a repacked tarball from someone's PPA, not the GitHub one.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Was there a good reason for it?

Revision history for this message
Jackson Doak (noskcaj) wrote :

I used the tarball from upstream's PPA, then removed the debian/ folder
from it. Should i change the bzr branch to use the github tarball?

On Thu, Dec 19, 2013 at 2:25 AM, Daniel Holbach
<email address hidden>wrote:

> Was there a good reason for it?
> --
>
> https://code.launchpad.net/~noskcaj/ubuntu/trusty/pyrocket/new-release/+merge/195921
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>

Revision history for this message
Daniel Holbach (dholbach) wrote :

We always try to use what is the most official tarball, so there are less chances of Debian and Ubuntu getting out of sync, etc. What are the differences of the two?

Revision history for this message
Jackson Doak (noskcaj) wrote :

Debian doesn't have this anyway, but it appears the difference in tarballs
is some extra config files, plus a huge .xcf file. Should we just leave
this as the smaller version, or do we need the extra files?

On Fri, Dec 20, 2013 at 12:05 AM, Daniel Holbach
<email address hidden>wrote:

> We always try to use what is the most official tarball, so there are less
> chances of Debian and Ubuntu getting out of sync, etc. What are the
> differences of the two?
> --
>
> https://code.launchpad.net/~noskcaj/ubuntu/trusty/pyrocket/new-release/+merge/195921
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>

Revision history for this message
Daniel Holbach (dholbach) wrote :

I have no idea. Somebody who packaged it or upstream would know.

review: Needs Information

Unmerged revisions

10. By Jackson Doak

changelog fixes

9. By Jackson Doak

Bump standards-version to 3.9.5

8. By Jackson Doak

revert to .xpm pixmap

7. By Jackson Doak

Fix dh_clean override

6. By Jackson Doak

* Convert to dh, dh-python, and debhelper 9
* Create pyrocket.manpages

5. By Jackson Doak

New upstream release from https://github.com/stadler/pyrocket
LP:#1055778

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '40-rocketlauncher.rules'
2--- 40-rocketlauncher.rules 2008-12-30 19:29:33 +0000
3+++ 40-rocketlauncher.rules 2013-11-20 21:01:57 +0000
4@@ -1,4 +1,3 @@
5-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", SYSFS{idVendor}=="1941", SYSFS{idProduct}=="8021", GROUP="plugdev", MODE="0660"
6-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", SYSFS{idVendor}=="0a81", SYSFS{idProduct}=="0701", GROUP="plugdev", MODE="0660"
7-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ACTION=="add", SYSFS{idVendor}=="1130", SYSFS{idProduct}=="0202", GROUP="plugdev", MODE="0660"
8-
9+SUBSYSTEM=="usb", ATTRS{idVendor}=="1941", ATTRS{idProduct}=="8021", GROUP="plugdev", MODE="0660"
10+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", GROUP="plugdev", MODE="0660"
11+SUBSYSTEM=="usb", ATTRS{idVendor}=="1130", ATTRS{idProduct}=="0202", GROUP="plugdev", MODE="0660"
12\ No newline at end of file
13
14=== modified file 'debian/changelog'
15--- debian/changelog 2010-05-23 19:56:33 +0000
16+++ debian/changelog 2013-11-20 21:01:57 +0000
17@@ -1,3 +1,13 @@
18+pyrocket (0.8-0ubuntu1) trusty; urgency=low
19+
20+ * New upstream release from https://github.com/stadler/pyrocket
21+ LP: #1055778
22+ * Convert to dh, dh-python2, and debhelper 9
23+ * Create pyrocket.manpages
24+ * Bump standards-version to 3.9.5
25+
26+ -- Jackson Doak <noskcaj@ubuntu.com> Wed, 20 Nov 2013 19:10:21 +1100
27+
28 pyrocket (0.6-0ubuntu3) maverick; urgency=low
29
30 * debain/watch: Update for code.google.com (LP: #583719)
31
32=== modified file 'debian/compat'
33--- debian/compat 2008-12-30 19:29:33 +0000
34+++ debian/compat 2013-11-20 21:01:57 +0000
35@@ -1,1 +1,1 @@
36-5
37+9
38\ No newline at end of file
39
40=== modified file 'debian/control'
41--- debian/control 2010-05-23 19:56:33 +0000
42+++ debian/control 2013-11-20 21:01:57 +0000
43@@ -1,12 +1,11 @@
44 Source: pyrocket
45 Section: electronics
46 Priority: optional
47-Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
48+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
49 XSBC-Original-Maintainer: Karl Ostmo <kostmo@gmail.com>
50-Standards-Version: 3.8.4
51-Build-Depends: debhelper (>= 5), python, cdbs (>= 0.4.49)
52-Build-Depends-Indep: perl, python-support (>= 0.5.3)
53-XB-Python-Version: ${python:Versions}
54+Standards-Version: 3.9.5
55+Build-Depends: debhelper (>= 9), python
56+Build-Depends-Indep: perl
57 Homepage: http://pyrocket.googlecode.com/
58
59 Package: pyrocket
60
61=== removed file 'debian/pycompat'
62--- debian/pycompat 2008-12-30 19:29:33 +0000
63+++ debian/pycompat 1970-01-01 00:00:00 +0000
64@@ -1,1 +0,0 @@
65-2
66
67=== modified file 'debian/pyrocket.install'
68--- debian/pyrocket.install 2009-01-16 15:01:27 +0000
69+++ debian/pyrocket.install 2013-11-20 21:01:57 +0000
70@@ -1,3 +1,3 @@
71 40-rocketlauncher.rules /lib/udev/rules.d
72-pyrocket.xpm /usr/share/pixmaps
73+debian/pyrocket.xpm /usr/share/pixmaps
74 debian/pyrocket.desktop /usr/share/applications
75
76=== added file 'debian/pyrocket.manpages'
77--- debian/pyrocket.manpages 1970-01-01 00:00:00 +0000
78+++ debian/pyrocket.manpages 2013-11-20 21:01:57 +0000
79@@ -0,0 +1,1 @@
80+pyrocket.6
81\ No newline at end of file
82
83=== added file 'debian/pyrocket.xpm'
84--- debian/pyrocket.xpm 1970-01-01 00:00:00 +0000
85+++ debian/pyrocket.xpm 2013-11-20 21:01:57 +0000
86@@ -0,0 +1,299 @@
87+/* XPM */
88+static char * pyrocket_icon_xpm[] = {
89+"31 32 264 2",
90+" c None",
91+". c #39291F",
92+"+ c #94837F",
93+"@ c #060504",
94+"# c #0E0E0B",
95+"$ c #414339",
96+"% c #FF3B1E",
97+"& c #FE6A31",
98+"* c #FFCE61",
99+"= c #FFFF8F",
100+"- c #FFFF9E",
101+"; c #FFFFB9",
102+"> c #91854C",
103+", c #2F201A",
104+"' c #786866",
105+") c #372F24",
106+"! c #18150F",
107+"~ c #1A1A11",
108+"{ c #253024",
109+"] c #332521",
110+"^ c #30251E",
111+"/ c #1C120E",
112+"( c #120B08",
113+"_ c #1F0E0D",
114+": c #CA933E",
115+"< c #FEB84F",
116+"[ c #FFCA5D",
117+"} c #FFF786",
118+"| c #FFFFA8",
119+"1 c #FFFF95",
120+"2 c #FFFF99",
121+"3 c #C4B969",
122+"4 c #5A463F",
123+"5 c #957F7B",
124+"6 c #221D16",
125+"7 c #171410",
126+"8 c #040302",
127+"9 c #010000",
128+"0 c #000000",
129+"a c #0A100A",
130+"b c #050302",
131+"c c #100808",
132+"d c #020000",
133+"e c #040303",
134+"f c #3C2323",
135+"g c #F14B2E",
136+"h c #FF7F45",
137+"i c #FFAD4E",
138+"j c #FDC142",
139+"k c #FFFC7C",
140+"l c #FFFFAC",
141+"m c #FFFF9C",
142+"n c #6B5839",
143+"o c #4D3C3A",
144+"p c #8E7B7B",
145+"q c #14110D",
146+"r c #17140F",
147+"s c #030202",
148+"t c #050403",
149+"u c #0B0705",
150+"v c #010101",
151+"w c #010300",
152+"x c #020701",
153+"y c #030B02",
154+"z c #0D130A",
155+"A c #0D0707",
156+"B c #160D0D",
157+"C c #020101",
158+"D c #040101",
159+"E c #130807",
160+"F c #40250D",
161+"G c #FEB150",
162+"H c #FFD262",
163+"I c #FFF876",
164+"J c #FFFFA7",
165+"K c #FFFFAE",
166+"L c #FFFE86",
167+"M c #8E7B2D",
168+"N c #483825",
169+"O c #52423E",
170+"P c #050303",
171+"Q c #040604",
172+"R c #010501",
173+"S c #000300",
174+"T c #000200",
175+"U c #0D100C",
176+"V c #181112",
177+"W c #0A0707",
178+"X c #3F3537",
179+"Y c #765737",
180+"Z c #FFB14F",
181+"` c #FF9349",
182+" . c #FDB25E",
183+".. c #FBE24B",
184+"+. c #FDDF49",
185+"@. c #FEF651",
186+"#. c #FFF855",
187+"$. c #000100",
188+"%. c #1A1718",
189+"&. c #050405",
190+"*. c #0E120F",
191+"=. c #241D1F",
192+"-. c #141011",
193+";. c #050304",
194+">. c #370D0A",
195+",. c #902A23",
196+"'. c #A74C29",
197+"). c #F84D1A",
198+"!. c #FC4628",
199+"~. c #14100D",
200+"{. c #0E1914",
201+"]. c #0B0F0C",
202+"^. c #0E0809",
203+"/. c #0C0607",
204+"(. c #0B0706",
205+"_. c #140E0C",
206+":. c #150E0B",
207+"<. c #050A08",
208+"[. c #09100D",
209+"}. c #0E0E0D",
210+"|. c #392B2A",
211+"1. c #54423E",
212+"2. c #020303",
213+"3. c #030201",
214+"4. c #24261E",
215+"5. c #4A4940",
216+"6. c #030203",
217+"7. c #060706",
218+"8. c #080A09",
219+"9. c #1D1A14",
220+"0. c #0D0B09",
221+"a. c #040404",
222+"b. c #2A2424",
223+"c. c #342522",
224+"d. c #2F201E",
225+"e. c #3F302C",
226+"f. c #030302",
227+"g. c #1F191A",
228+"h. c #393233",
229+"i. c #3C2C2B",
230+"j. c #392927",
231+"k. c #342422",
232+"l. c #010301",
233+"m. c #08120C",
234+"n. c #18201B",
235+"o. c #2D2826",
236+"p. c #030101",
237+"q. c #312829",
238+"r. c #3D3532",
239+"s. c #3A423A",
240+"t. c #3C4039",
241+"u. c #090704",
242+"v. c #2D282A",
243+"w. c #020D06",
244+"x. c #1B3B2A",
245+"y. c #718377",
246+"z. c #504B49",
247+"A. c #1B0E0E",
248+"B. c #27181C",
249+"C. c #545253",
250+"D. c #85A596",
251+"E. c #5F8D77",
252+"F. c #57514A",
253+"G. c #5B4641",
254+"H. c #969788",
255+"I. c #000701",
256+"J. c #042713",
257+"K. c #0D3A24",
258+"L. c #262B28",
259+"M. c #0E0607",
260+"N. c #3E3239",
261+"O. c #8B8291",
262+"P. c #ECF2F3",
263+"Q. c #65907F",
264+"R. c #6A6561",
265+"S. c #3A2728",
266+"T. c #6E7367",
267+"U. c #020203",
268+"V. c #0C0C0D",
269+"W. c #022511",
270+"X. c #0A3722",
271+"Y. c #18211D",
272+"Z. c #060102",
273+"`. c #2B1E22",
274+" + c #746D79",
275+".+ c #DFE7E9",
276+"++ c #5D8978",
277+"@+ c #5B5A57",
278+"#+ c #412F30",
279+"$+ c #726F64",
280+"%+ c #1D170E",
281+"&+ c #020202",
282+"*+ c #060505",
283+"=+ c #010903",
284+"-+ c #04180A",
285+";+ c #0B2918",
286+">+ c #212D25",
287+",+ c #1A1415",
288+"'+ c #090405",
289+")+ c #191214",
290+"!+ c #415C51",
291+"~+ c #557A6C",
292+"{+ c #446E5A",
293+"]+ c #46433E",
294+"^+ c #54413E",
295+"/+ c #7D7369",
296+"(+ c #010100",
297+"_+ c #010702",
298+":+ c #011708",
299+"<+ c #062A17",
300+"[+ c #20201F",
301+"}+ c #0C090A",
302+"|+ c #170F10",
303+"1+ c #516A63",
304+"2+ c #A1B3B2",
305+"3+ c #6C9082",
306+"4+ c #303532",
307+"5+ c #28191C",
308+"6+ c #423335",
309+"7+ c #747B6A",
310+"8+ c #000F03",
311+"9+ c #02230F",
312+"0+ c #0C0D0D",
313+"a+ c #191012",
314+"b+ c #456057",
315+"c+ c #86A19E",
316+"d+ c #5A8476",
317+"e+ c #252E2A",
318+"f+ c #1C0D0F",
319+"g+ c #312224",
320+"h+ c #6D7966",
321+"i+ c #211910",
322+"j+ c #000E03",
323+"k+ c #02210E",
324+"l+ c #0E0F0E",
325+"m+ c #170E0E",
326+"n+ c #385046",
327+"o+ c #718785",
328+"p+ c #48695D",
329+"q+ c #202421",
330+"r+ c #241515",
331+"s+ c #3D2D2E",
332+"t+ c #686758",
333+"u+ c #0C0907",
334+"v+ c #040201",
335+"w+ c #1A1414",
336+"x+ c #080505",
337+"y+ c #110A0B",
338+"z+ c #352D34",
339+"A+ c #93838D",
340+"B+ c #5F545E",
341+"C+ c #2A1F23",
342+"D+ c #211313",
343+"E+ c #251818",
344+"F+ c #261411",
345+"G+ c #502F28",
346+"H+ c #000001",
347+"I+ c #090406",
348+"J+ c #292229",
349+"K+ c #5C515E",
350+"L+ c #403844",
351+"M+ c #181016",
352+"N+ c #110808",
353+"O+ c #13090B",
354+" ",
355+" ",
356+" ",
357+" ",
358+" . + ",
359+" @ # $ % & * = - ; > , ' ",
360+" ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 ",
361+" 6 7 8 9 0 a b c d 9 e f g h i j k l m n o p ",
362+" q r s t u v w x y z A B C D E F G H I J | K L M N O ",
363+" 0 0 0 0 P Q R S T U V W 9 C X Y Z ` ...+.@.#. ",
364+" $.0 0 0 %.&.0 0 $.*.=.-.0 0 ;.>.,.'.).!. ",
365+" ~.0 0 0 0 0 v 0 0 0 {.].^./.(._.:. ",
366+" 0 0 0 0 0 0 0 0 0 <.[.}.|.1. ",
367+" e 0 0 0 v 0 2.0 0 0 3.4.5. ",
368+" t 0 6.0 0 7.8.9. ",
369+" 0.0 s a.0 b.c.d.e. ",
370+" f.0 0 g.0 h.i.j.k. ",
371+" l.m.n.o.p.q.r.s.t. ",
372+" u.v.0 w.x.y.z.A.B.C.D.E.F.G.H. ",
373+" v %.0 I.J.K.L.M.N.O.P.Q.R.S.T. ",
374+" U.V.0 I.W.X.Y.Z.`. +.+++@+#+$+ ",
375+" %+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+ ",
376+" (+0 0 _+:+<+[+}+p.|+1+2+3+4+5+6+7+ ",
377+" 0 0 0 $.8+9+0+0 0 a+b+c+d+e+f+g+h+ ",
378+" i+0 0 0 T j+k+l+e p.m+n+o+p+q+r+s+t+ ",
379+"u+v+0 0 0 0 0 8 w+x+p.y+z+A+B+C+D+E+F+G+ ",
380+" 0 0 0 0 0 0 0 0 H+0 I+J+K+L+M+N+O+ ",
381+" ",
382+" ",
383+" ",
384+" ",
385+" "};
386
387=== modified file 'debian/rules'
388--- debian/rules 2008-12-30 19:29:33 +0000
389+++ debian/rules 2013-11-20 21:01:57 +0000
390@@ -1,15 +1,12 @@
391 #!/usr/bin/make -f
392
393-DEB_PYTHON_SYSTEM=pysupport
394-
395-
396-include /usr/share/cdbs/1/rules/debhelper.mk
397-include /usr/share/cdbs/1/class/python-distutils.mk
398-
399-build/pyrocket::
400+override_dh_auto_build:
401 pod2man --section=6 --release=$(VERSION) --center "" debian/pyrocket.pod > pyrocket.6
402+ dh_auto_build
403
404-cleanbuilddir/pyrocket::
405+override_dh_clean:
406+ dh_clean
407 rm -f pyrocket.6
408
409-DEB_INSTALL_MANPAGES_pyrocket = pyrocket.6
410+%:
411+ dh $@ --with python2
412
413=== added directory 'icons'
414=== added file 'icons/128.png'
415Binary files icons/128.png 1970-01-01 00:00:00 +0000 and icons/128.png 2013-11-20 21:01:57 +0000 differ
416=== added file 'icons/32.png'
417Binary files icons/32.png 1970-01-01 00:00:00 +0000 and icons/32.png 2013-11-20 21:01:57 +0000 differ
418=== added file 'icons/48.png'
419Binary files icons/48.png 1970-01-01 00:00:00 +0000 and icons/48.png 2013-11-20 21:01:57 +0000 differ
420=== added file 'icons/72.png'
421Binary files icons/72.png 1970-01-01 00:00:00 +0000 and icons/72.png 2013-11-20 21:01:57 +0000 differ
422=== removed file 'pyrocket.xpm'
423--- pyrocket.xpm 2008-12-30 19:29:33 +0000
424+++ pyrocket.xpm 1970-01-01 00:00:00 +0000
425@@ -1,299 +0,0 @@
426-/* XPM */
427-static char * pyrocket_icon_xpm[] = {
428-"31 32 264 2",
429-" c None",
430-". c #39291F",
431-"+ c #94837F",
432-"@ c #060504",
433-"# c #0E0E0B",
434-"$ c #414339",
435-"% c #FF3B1E",
436-"& c #FE6A31",
437-"* c #FFCE61",
438-"= c #FFFF8F",
439-"- c #FFFF9E",
440-"; c #FFFFB9",
441-"> c #91854C",
442-", c #2F201A",
443-"' c #786866",
444-") c #372F24",
445-"! c #18150F",
446-"~ c #1A1A11",
447-"{ c #253024",
448-"] c #332521",
449-"^ c #30251E",
450-"/ c #1C120E",
451-"( c #120B08",
452-"_ c #1F0E0D",
453-": c #CA933E",
454-"< c #FEB84F",
455-"[ c #FFCA5D",
456-"} c #FFF786",
457-"| c #FFFFA8",
458-"1 c #FFFF95",
459-"2 c #FFFF99",
460-"3 c #C4B969",
461-"4 c #5A463F",
462-"5 c #957F7B",
463-"6 c #221D16",
464-"7 c #171410",
465-"8 c #040302",
466-"9 c #010000",
467-"0 c #000000",
468-"a c #0A100A",
469-"b c #050302",
470-"c c #100808",
471-"d c #020000",
472-"e c #040303",
473-"f c #3C2323",
474-"g c #F14B2E",
475-"h c #FF7F45",
476-"i c #FFAD4E",
477-"j c #FDC142",
478-"k c #FFFC7C",
479-"l c #FFFFAC",
480-"m c #FFFF9C",
481-"n c #6B5839",
482-"o c #4D3C3A",
483-"p c #8E7B7B",
484-"q c #14110D",
485-"r c #17140F",
486-"s c #030202",
487-"t c #050403",
488-"u c #0B0705",
489-"v c #010101",
490-"w c #010300",
491-"x c #020701",
492-"y c #030B02",
493-"z c #0D130A",
494-"A c #0D0707",
495-"B c #160D0D",
496-"C c #020101",
497-"D c #040101",
498-"E c #130807",
499-"F c #40250D",
500-"G c #FEB150",
501-"H c #FFD262",
502-"I c #FFF876",
503-"J c #FFFFA7",
504-"K c #FFFFAE",
505-"L c #FFFE86",
506-"M c #8E7B2D",
507-"N c #483825",
508-"O c #52423E",
509-"P c #050303",
510-"Q c #040604",
511-"R c #010501",
512-"S c #000300",
513-"T c #000200",
514-"U c #0D100C",
515-"V c #181112",
516-"W c #0A0707",
517-"X c #3F3537",
518-"Y c #765737",
519-"Z c #FFB14F",
520-"` c #FF9349",
521-" . c #FDB25E",
522-".. c #FBE24B",
523-"+. c #FDDF49",
524-"@. c #FEF651",
525-"#. c #FFF855",
526-"$. c #000100",
527-"%. c #1A1718",
528-"&. c #050405",
529-"*. c #0E120F",
530-"=. c #241D1F",
531-"-. c #141011",
532-";. c #050304",
533-">. c #370D0A",
534-",. c #902A23",
535-"'. c #A74C29",
536-"). c #F84D1A",
537-"!. c #FC4628",
538-"~. c #14100D",
539-"{. c #0E1914",
540-"]. c #0B0F0C",
541-"^. c #0E0809",
542-"/. c #0C0607",
543-"(. c #0B0706",
544-"_. c #140E0C",
545-":. c #150E0B",
546-"<. c #050A08",
547-"[. c #09100D",
548-"}. c #0E0E0D",
549-"|. c #392B2A",
550-"1. c #54423E",
551-"2. c #020303",
552-"3. c #030201",
553-"4. c #24261E",
554-"5. c #4A4940",
555-"6. c #030203",
556-"7. c #060706",
557-"8. c #080A09",
558-"9. c #1D1A14",
559-"0. c #0D0B09",
560-"a. c #040404",
561-"b. c #2A2424",
562-"c. c #342522",
563-"d. c #2F201E",
564-"e. c #3F302C",
565-"f. c #030302",
566-"g. c #1F191A",
567-"h. c #393233",
568-"i. c #3C2C2B",
569-"j. c #392927",
570-"k. c #342422",
571-"l. c #010301",
572-"m. c #08120C",
573-"n. c #18201B",
574-"o. c #2D2826",
575-"p. c #030101",
576-"q. c #312829",
577-"r. c #3D3532",
578-"s. c #3A423A",
579-"t. c #3C4039",
580-"u. c #090704",
581-"v. c #2D282A",
582-"w. c #020D06",
583-"x. c #1B3B2A",
584-"y. c #718377",
585-"z. c #504B49",
586-"A. c #1B0E0E",
587-"B. c #27181C",
588-"C. c #545253",
589-"D. c #85A596",
590-"E. c #5F8D77",
591-"F. c #57514A",
592-"G. c #5B4641",
593-"H. c #969788",
594-"I. c #000701",
595-"J. c #042713",
596-"K. c #0D3A24",
597-"L. c #262B28",
598-"M. c #0E0607",
599-"N. c #3E3239",
600-"O. c #8B8291",
601-"P. c #ECF2F3",
602-"Q. c #65907F",
603-"R. c #6A6561",
604-"S. c #3A2728",
605-"T. c #6E7367",
606-"U. c #020203",
607-"V. c #0C0C0D",
608-"W. c #022511",
609-"X. c #0A3722",
610-"Y. c #18211D",
611-"Z. c #060102",
612-"`. c #2B1E22",
613-" + c #746D79",
614-".+ c #DFE7E9",
615-"++ c #5D8978",
616-"@+ c #5B5A57",
617-"#+ c #412F30",
618-"$+ c #726F64",
619-"%+ c #1D170E",
620-"&+ c #020202",
621-"*+ c #060505",
622-"=+ c #010903",
623-"-+ c #04180A",
624-";+ c #0B2918",
625-">+ c #212D25",
626-",+ c #1A1415",
627-"'+ c #090405",
628-")+ c #191214",
629-"!+ c #415C51",
630-"~+ c #557A6C",
631-"{+ c #446E5A",
632-"]+ c #46433E",
633-"^+ c #54413E",
634-"/+ c #7D7369",
635-"(+ c #010100",
636-"_+ c #010702",
637-":+ c #011708",
638-"<+ c #062A17",
639-"[+ c #20201F",
640-"}+ c #0C090A",
641-"|+ c #170F10",
642-"1+ c #516A63",
643-"2+ c #A1B3B2",
644-"3+ c #6C9082",
645-"4+ c #303532",
646-"5+ c #28191C",
647-"6+ c #423335",
648-"7+ c #747B6A",
649-"8+ c #000F03",
650-"9+ c #02230F",
651-"0+ c #0C0D0D",
652-"a+ c #191012",
653-"b+ c #456057",
654-"c+ c #86A19E",
655-"d+ c #5A8476",
656-"e+ c #252E2A",
657-"f+ c #1C0D0F",
658-"g+ c #312224",
659-"h+ c #6D7966",
660-"i+ c #211910",
661-"j+ c #000E03",
662-"k+ c #02210E",
663-"l+ c #0E0F0E",
664-"m+ c #170E0E",
665-"n+ c #385046",
666-"o+ c #718785",
667-"p+ c #48695D",
668-"q+ c #202421",
669-"r+ c #241515",
670-"s+ c #3D2D2E",
671-"t+ c #686758",
672-"u+ c #0C0907",
673-"v+ c #040201",
674-"w+ c #1A1414",
675-"x+ c #080505",
676-"y+ c #110A0B",
677-"z+ c #352D34",
678-"A+ c #93838D",
679-"B+ c #5F545E",
680-"C+ c #2A1F23",
681-"D+ c #211313",
682-"E+ c #251818",
683-"F+ c #261411",
684-"G+ c #502F28",
685-"H+ c #000001",
686-"I+ c #090406",
687-"J+ c #292229",
688-"K+ c #5C515E",
689-"L+ c #403844",
690-"M+ c #181016",
691-"N+ c #110808",
692-"O+ c #13090B",
693-" ",
694-" ",
695-" ",
696-" ",
697-" . + ",
698-" @ # $ % & * = - ; > , ' ",
699-" ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 ",
700-" 6 7 8 9 0 a b c d 9 e f g h i j k l m n o p ",
701-" q r s t u v w x y z A B C D E F G H I J | K L M N O ",
702-" 0 0 0 0 P Q R S T U V W 9 C X Y Z ` ...+.@.#. ",
703-" $.0 0 0 %.&.0 0 $.*.=.-.0 0 ;.>.,.'.).!. ",
704-" ~.0 0 0 0 0 v 0 0 0 {.].^./.(._.:. ",
705-" 0 0 0 0 0 0 0 0 0 <.[.}.|.1. ",
706-" e 0 0 0 v 0 2.0 0 0 3.4.5. ",
707-" t 0 6.0 0 7.8.9. ",
708-" 0.0 s a.0 b.c.d.e. ",
709-" f.0 0 g.0 h.i.j.k. ",
710-" l.m.n.o.p.q.r.s.t. ",
711-" u.v.0 w.x.y.z.A.B.C.D.E.F.G.H. ",
712-" v %.0 I.J.K.L.M.N.O.P.Q.R.S.T. ",
713-" U.V.0 I.W.X.Y.Z.`. +.+++@+#+$+ ",
714-" %+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+ ",
715-" (+0 0 _+:+<+[+}+p.|+1+2+3+4+5+6+7+ ",
716-" 0 0 0 $.8+9+0+0 0 a+b+c+d+e+f+g+h+ ",
717-" i+0 0 0 T j+k+l+e p.m+n+o+p+q+r+s+t+ ",
718-"u+v+0 0 0 0 0 8 w+x+p.y+z+A+B+C+D+E+F+G+ ",
719-" 0 0 0 0 0 0 0 0 H+0 I+J+K+L+M+N+O+ ",
720-" ",
721-" ",
722-" ",
723-" ",
724-" "};
725
726=== modified file 'rocket_backend.py'
727--- rocket_backend.py 2008-12-30 19:29:33 +0000
728+++ rocket_backend.py 2013-11-20 21:01:57 +0000
729@@ -5,9 +5,9 @@
730
731 class RocketManager:
732
733- vendor_product_ids = [(0x1941, 0x8021), (0x0a81, 0x0701), (0x0a81, 0xff01), (0x1130, 0x0202)]
734- launcher_types = ["Original", "Webcam", "Wireless", "Striker II"]
735- housing_colors = ["green", "blue", "silver", "black"]
736+ vendor_product_ids = [(0x1941, 0x8021), (0x0a81, 0x0701), (0x0a81, 0xff01), (0x1130, 0x0202), (0x2123,0x1010)]
737+ launcher_types = ["Original", "Webcam", "Wireless", "Striker II", "OIC Webcam"]
738+ housing_colors = ["green", "blue", "silver", "black", "gray"]
739
740 def __init__(self):
741 self.launchers = []
742@@ -18,6 +18,8 @@
743
744 device_found = False
745
746+
747+
748 for bus in usb.busses():
749 for dev in bus.devices:
750 for i, (cheeky_vendor_id, cheeky_product_id) in enumerate(self.vendor_product_ids):
751@@ -35,6 +37,8 @@
752 return '''The '''+self.launcher_types[i]+''' ('''+self.housing_colors[i]+''') Rocket Launcher is not yet supported. Try the '''+self.launcher_types[0]+''' or '''+self.launcher_types[1]+''' one.'''
753 elif i == 3:
754 launcher = BlackRocketLauncher()
755+ elif i == 4:
756+ launcher = GrayRocketLauncher()
757
758 return_code = launcher.acquire( dev )
759 if not return_code:
760@@ -56,9 +60,11 @@
761 the new permissions from the .rules file.'''
762
763
764+
765 if not device_found:
766 return 'No USB Rocket Launcher appears\nto be connected.'
767
768+
769 # ============================================
770 # ============================================
771
772@@ -237,3 +243,30 @@
773
774 return self.previous_limit_switch_states
775
776+
777+
778+# ============================================
779+# ============================================
780+
781+class GrayRocketLauncher(BlueRocketLauncher):
782+
783+ striker_commands = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40]
784+ has_laser = False
785+
786+ # -----------------------------
787+ def issue_command(self, command_index):
788+
789+ signal = self.striker_commands[command_index]
790+
791+ try:
792+ self.handle.controlMsg(0x21,0x09, [0x02, signal, 0x00,0x00,0x00,0x00,0x00,0x00])
793+
794+ except usb.USBError:
795+ pass
796+
797+ # -----------------------------
798+ def check_limits(self):
799+
800+ return self.previous_limit_switch_states
801+
802+
803
804=== modified file 'rocket_frontend.py'
805--- rocket_frontend.py 2008-12-30 19:29:33 +0000
806+++ rocket_frontend.py 2013-11-20 21:01:57 +0000
807@@ -11,10 +11,10 @@
808 from rocket_webcam import VideoWindow
809 from rocket_joystick import StatefulJoystick
810
811-class RocketWindow(StatefulJoystick):
812+class RocketWindow:
813
814 appname = "pyrocket"
815- version = "0.6"
816+ version = "0.7"
817 local_share_dir = "/usr/share/"
818
819 keymap = [65364, 65362, 65361, 65363]
820@@ -30,6 +30,9 @@
821
822 def __init__(self, run_installed=True):
823
824+ self.joystick_state = StatefulJoystick()
825+# self.joystick_state = None
826+
827 self.run_installed = run_installed
828
829 self.img_path = ""
830@@ -107,14 +110,6 @@
831
832 top_menu.append( help_menu )
833
834-
835-
836-
837-
838-
839-
840-
841-
842 # ----------------------------
843
844 self.video = VideoWindow()
845@@ -123,8 +118,6 @@
846
847 # ----------------------------
848
849-
850-
851 self.joystick_hbox = gtk.HBox(False, 5)
852 vbox.pack_start(self.joystick_hbox, False, False)
853
854@@ -139,6 +132,18 @@
855
856 self.joystick_hbox.set_no_show_all(True)
857
858+
859+ if self.joystick_state:
860+ if not self.joystick_state.joystick_init():
861+ self.status_message_list.append("Try connecting a Joystick!")
862+ else:
863+ self.joystick_hbox.set_no_show_all(False) # huh?
864+ self.joystick_hbox.show_all()
865+ self.joystick_name_label.set_text( self.joystick_state.joystick_object.get_name() )
866+ print 'Joystick has %d axes and %d buttons' %(self.joystick_state.num_axes, self.joystick_state.num_buttons)
867+
868+
869+
870 # ----------------------------
871 control_hbox = gtk.HBox(False, 5)
872 vbox.pack_start(control_hbox, False, False)
873@@ -206,13 +211,13 @@
874 self.connect_everything()
875 self.cb_select_new_launcher(self.laucher_id)
876
877- StatefulJoystick.__init__(self)
878-
879
880 self.status_message_index = 1
881 self.last_message_id = None
882 self.cycle_status_message()
883
884+ gobject.idle_add( self.limit_checker_loop )
885+
886 # ===============================
887
888 def cb_toggle_show_camera(self, widget):
889@@ -233,6 +238,7 @@
890 def cb_about_dialog(self, widget):
891
892 about_dialog = gtk.AboutDialog()
893+ about_dialog.set_transient_for(self.window)
894 about_dialog.set_version( self.version )
895 about_dialog.set_logo( gtk.gdk.pixbuf_new_from_file(self.img_path + "msnmissile.png") )
896 about_dialog.set_copyright(u"\u00A92008 Karl Ostmo")
897@@ -297,7 +303,7 @@
898 self.last_message_id = self.status_bar.push(0, new_msg_text)
899
900 if not saved_id is None:
901- self.status_bar.remove(saved_id, (self.status_message_index-1) % len(self.status_message_list) + 1)
902+ self.status_bar.remove_message(saved_id, (self.status_message_index-1) % len(self.status_message_list) + 1)
903 self.status_message_index += 1
904 gobject.timeout_add( self.status_message_timeout, self.cycle_status_message)
905
906@@ -465,10 +471,10 @@
907
908 # Terminate cylinder charging based on radio state
909 grp = self.stop_charge.get_group()
910- if grp[0].get_active():
911+ if len(grp) > 0 and grp[0].get_active():
912 if prev_fire_state and not next_fire_state:
913 launcher.stop_movement()
914- elif grp[1].get_active():
915+ elif len(grp) > 1 and grp[1].get_active():
916 if not prev_fire_state and next_fire_state:
917 launcher.stop_movement()
918
919@@ -496,8 +502,8 @@
920 if self.video:
921 self.video.stop_capture()
922
923- if self.joystick_object:
924- self.joystick_object.quit()
925+ if self.joystick_state and self.joystick_state.joystick_object:
926+ self.joystick_state.joystick_object.quit()
927
928
929 for launcher in self.rocket_controller.launchers:
930
931=== modified file 'rocket_joystick.py'
932--- rocket_joystick.py 2008-12-30 19:29:33 +0000
933+++ rocket_joystick.py 2013-11-20 21:01:57 +0000
934@@ -1,5 +1,5 @@
935 #!/usr/bin/python
936-from opencv import cv, highgui
937+import cv
938
939 from pygtk import require
940 require('2.0')
941@@ -7,9 +7,7 @@
942
943
944 import pygame
945-import pygame.display
946-import pygame.joystick
947-from pygame.locals import *
948+#from pygame.locals import *
949
950 # ==================================
951
952@@ -28,9 +26,6 @@
953 self.joystick_debug = False
954 self.joystick_object = None
955
956- self.joystick_init()
957- gobject.idle_add( self.limit_checker_loop )
958-
959 # ===============================
960
961 def joystick_init(self):
962@@ -43,8 +38,7 @@
963 joystick_count = pygame.joystick.get_count() # get number of joysticks
964 print('%d joystick(s) connected' %joystick_count)
965 if not joystick_count:
966- self.status_message_list.append("Try connecting a Joystick!")
967- return
968+ return False
969
970 self.joystick_object = pygame.joystick.Joystick(0)
971 self.joystick_object.init()
972@@ -53,10 +47,6 @@
973 self.num_buttons = self.joystick_object.get_numbuttons()
974
975
976- self.joystick_hbox.set_no_show_all(False)
977- self.joystick_hbox.show_all()
978- self.joystick_name_label.set_text( self.joystick_object.get_name() )
979- print 'Joystick has %d axes and %d buttons' %(self.num_axes, self.num_buttons)
980
981 self.prev_button_array = [0]*self.num_buttons
982 self.prev_movement_state = [0, 0]
983@@ -64,6 +54,8 @@
984
985 gobject.idle_add( self.joystick_event_loop )
986
987+ return True
988+
989 # ===============================
990
991 def joystick_event_loop(self):
992
993=== modified file 'rocket_webcam.py'
994--- rocket_webcam.py 2008-12-30 19:29:33 +0000
995+++ rocket_webcam.py 2013-11-20 21:01:57 +0000
996@@ -1,5 +1,5 @@
997 #!/usr/bin/python
998-from opencv import cv, highgui
999+import cv
1000
1001 from pygtk import require
1002 require('2.0')
1003@@ -68,16 +68,16 @@
1004
1005 if not self.capture:
1006
1007- self.capture = highgui.cvCreateCameraCapture (device)
1008+ self.capture = cv.CreateCameraCapture (device)
1009
1010- highgui.cvSetCaptureProperty(self.capture, highgui.CV_CAP_PROP_FRAME_WIDTH, video_dimensions[0])
1011- highgui.cvSetCaptureProperty(self.capture, highgui.CV_CAP_PROP_FRAME_HEIGHT, video_dimensions[1])
1012+ cv.SetCaptureProperty(self.capture, cv.CV_CAP_PROP_FRAME_WIDTH, video_dimensions[0])
1013+ cv.SetCaptureProperty(self.capture, cv.CV_CAP_PROP_FRAME_HEIGHT, video_dimensions[1])
1014
1015 # -----------------------------------
1016
1017 def stop_capture(self):
1018 if self.capture:
1019- cv.cvReleaseCapture( self.capture )
1020+ del(self.capture)
1021
1022 self.capture = None
1023
1024@@ -85,24 +85,24 @@
1025
1026 def initialize_video(self):
1027
1028- webcam_frame = highgui.cvQueryFrame( self.capture )
1029+ webcam_frame = cv.QueryFrame( self.capture )
1030
1031 if not webcam_frame:
1032 print "Frame acquisition failed."
1033 return False
1034
1035 self.webcam_pixbuf = gtk.gdk.pixbuf_new_from_data(
1036- webcam_frame.imageData,
1037+ webcam_frame.tostring(),
1038 gtk.gdk.COLORSPACE_RGB,
1039 False,
1040 8,
1041 webcam_frame.width,
1042 webcam_frame.height,
1043- webcam_frame.widthStep)
1044+ webcam_frame.width * 3)
1045 self.video_image.set_from_pixbuf(self.webcam_pixbuf)
1046
1047
1048- self.display_frame = cv.cvCreateImage( cv.cvSize(webcam_frame.width, webcam_frame.height), cv.IPL_DEPTH_8U, 3)
1049+ self.display_frame = cv.CreateImage( (webcam_frame.width, webcam_frame.height), cv.IPL_DEPTH_8U, 3)
1050
1051 return True
1052
1053@@ -118,26 +118,26 @@
1054 def run(self):
1055
1056 if self.capture:
1057- webcam_frame = highgui.cvQueryFrame( self.capture )
1058+ webcam_frame = cv.QueryFrame( self.capture )
1059 else:
1060 print "Capture failed!"
1061 return
1062
1063 if self.inverted_video.get_active():
1064- highgui.cvConvertImage(webcam_frame, webcam_frame, highgui.CV_CVTIMG_FLIP)
1065- highgui.cvConvertImage(webcam_frame, self.display_frame, highgui.CV_CVTIMG_SWAP_RB)
1066+ cv.ConvertImage(webcam_frame, webcam_frame, cv.CV_CVTIMG_FLIP)
1067+ cv.ConvertImage(webcam_frame, self.display_frame, cv.CV_CVTIMG_SWAP_RB)
1068
1069
1070
1071
1072 if False:
1073 # PROCESS WEBCAM FRAME HERE...
1074- inputImage = cv.cvCreateImage(cv.cvGetSize(webcam_frame), cv.IPL_DEPTH_8U, 1)
1075- cv.cvCvtColor(webcam_frame, inputImage, cv.CV_RGB2GRAY);
1076-
1077- cv.cvThreshold(inputImage, inputImage, 128, 255, cv.CV_THRESH_BINARY)
1078-
1079- mysize = cv.cvGetSize(webcam_frame)
1080+ inputImage = cv.CreateImage((webcam_frame), cv.IPL_DEPTH_8U, 1)
1081+ cv.CvtColor(webcam_frame, inputImage, cv.CV_RGB2GRAY);
1082+
1083+ cv.Threshold(inputImage, inputImage, 128, 255, cv.CV_THRESH_BINARY)
1084+
1085+ mysize = cv.GetSize(webcam_frame)
1086 height = mysize.height
1087 width = mysize.width
1088
1089@@ -150,19 +150,19 @@
1090
1091 print "Sum:", mysum
1092
1093- cv.cvMerge( inputImage, inputImage, inputImage, None, self.display_frame )
1094+ cv.Merge( inputImage, inputImage, inputImage, None, self.display_frame )
1095
1096
1097
1098
1099 incoming_pixbuf = gtk.gdk.pixbuf_new_from_data(
1100- self.display_frame.imageData,
1101+ self.display_frame.tostring(),
1102 gtk.gdk.COLORSPACE_RGB,
1103 False,
1104 8,
1105 self.display_frame.width,
1106 self.display_frame.height,
1107- self.display_frame.widthStep)
1108+ self.display_frame.width * 3)
1109 incoming_pixbuf.copy_area(0, 0, self.display_frame.width, self.display_frame.height, self.webcam_pixbuf, 0, 0)
1110
1111 self.video_image.queue_draw()
1112
1113=== modified file 'setup.py'
1114--- setup.py 2008-12-30 19:29:33 +0000
1115+++ setup.py 2013-11-20 21:01:57 +0000
1116@@ -10,7 +10,7 @@
1117 long_description="""pyrocket is used to operate USB foam dart launchers. It supports many models,
1118 and for some, has considerably more functionality than the drivers provided by
1119 the manufacturer. One may find it useful as a starting point for controlling
1120-other USB devices, or just for waging cubicle warfare.
1121+other USB devices, or simply for waging cubicle warfare.
1122
1123 pyrocket automatically detects the launcher(s) and a joystick, and a video
1124 window is provided for webcam-enabled devices. pyrocket currently supports the
1125@@ -21,7 +21,7 @@
1126 author_email="kostmo@gmail.com",
1127 url="http://pyrocket.googlecode.com/",
1128 # version=RocketWindow.version
1129- version="0.6",
1130+ version="0.7",
1131 py_modules=["rocket_backend", "rocket_frontend", "rocket_webcam", "rocket_joystick"],
1132 scripts=["pyrocket"],
1133 # data_files=[(RocketWindow.img_path, ["joystick.svg", "pyrocket.png"])]

Subscribers

People subscribed via source and target branches

to all changes: