Merge lp:~noskcaj/ubuntu/trusty/pyrocket/new-release into lp:ubuntu/trusty/pyrocket
- Trusty (14.04)
- new-release
- Merge into trusty
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel Holbach (community) | Needs Information | ||
Dmitry Shachnev | Abstain | ||
Review via email: mp+195921@code.launchpad.net |
Commit message
Description of the change
Import upstream fix.
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:/
> --
>
> https:/
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>
Dmitry Shachnev (mitya57) wrote : | # |
Looks better now, though I cannot sponsor it right now…
Jackson Doak (noskcaj) wrote : | # |
The tarball is at https:/
Daniel Holbach (dholbach) wrote : | # |
The patch looks good, can it be forward to the upstream developers please?
Daniel Holbach (dholbach) wrote : | # |
Sorry, commented on the wrong MP.
Daniel Holbach (dholbach) wrote : | # |
Using https:/
daniel@
Building using working tree
Building package in normal mode
Purging the build dir: /home/daniel/
Looking for a way to retrieve the upstream tarball
Upstream tarball already exists in build directory, using that
Building the package in /home/daniel/
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/
'build/
'build/scripts-2.7' does not exist -- can't clean it
debian/rules override_dh_clean
make[1]: Entering directory `/home/
dh_clean
rm -f pyrocket.6
make[1]: Leaving directory `/home/
dpkg-source -b pyrocket-0.8
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building pyrocket using existing ./pyrocket_
dpkg-source: warning: ignoring deletion of file find_occurences
dpkg-source: warning: ignoring deletion of file make_source_
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_
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-
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_
dpkg-source: warning: ignoring deletion of file src/pyrocket
dpkg-source: warning: ignoring deletion of file src/rocket_
dpkg-source: warning: ignoring deletion of file src/pyrocket.png
dpkg-source: warning: ignoring deletion of file src/rocket_
dpkg-source: warning: ignoring deletion of file src/joystick.svg
dpkg-source: warning: ignoring deletion of file src/rocket_
dpkg-source: warning: ignoring deletion of directory src/debian
dpkg-source: warning: ignoring deletion of file src/debian/
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/
Dmitry Shachnev (mitya57) wrote : | # |
Daniel: Jackson used a repacked tarball from someone's PPA, not the GitHub one.
Daniel Holbach (dholbach) wrote : | # |
Was there a good reason for it?
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:/
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>
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?
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:/
> You are the owner of lp:~noskcaj/ubuntu/trusty/pyrocket/new-release.
>
Daniel Holbach (dholbach) wrote : | # |
I have no idea. Somebody who packaged it or upstream would know.
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
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' |
415 | Binary 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' |
417 | Binary 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' |
419 | Binary 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' |
421 | Binary 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"])] |
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-rocketlaunch er.rules is missing); dh_python2.
- "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/
By the way, here is a debian/watch line that works with GitHub:
opts=filenamema ngle=s/ .*v(.*) .tar.gz/ pyrocket_ $1.orig. tar.gz/ \ github. com/stadler/ pyrocket/ tags .*/archive/ v(.*).tar. gz
http://