DemoGod & ScreenSplitr Source Code Released Under GPL
Posted by c0diq in DemoGod, ScreenSplitr on September 17th, 2009
Since I can’t find the time to continue working on these two projects, and a lot of people are asking for new features, I have decided to release the source code of DemoGod and ScreenSplitr to the public. I have decided to use the GPL license. I believe that by helping the community, the community can help back and maybe provide bug fixes, patches, suggestions.
A few things about ScreenSplitr:
ScreenSplitr is a background app that takes screenshots as fast as it can and display them on a TV screen using an AV Cable or send the frames as a mjpeg stream over WiFi. To find the stream on the network, an application such as Safari or DemoGod leverages Bonjour. The http url advertised is http://iphonename.local.:8099/content/home.html. After 3 secs, the javascript on that page redirects to http://iphonename.local.:8099/screensplitr. This triggers the alert on the iPhone to ask for permission. The user has 30-40 secs to respond before the alert is automatically dismissed. Upon accepting, ScreenSplitr starts sending a stream of frames as mjpeg which Safari displays as fast as possible. (Note if you manually copy the url http://iphonename.local.:8099/screensplitr into Firefox or IE, it should work too).
ScreenSplitr supports rotations meaning that if you tilt the iPhone, ScreenSplitr will detect it and adjust the output by rotating the images on the fly.
Additionally, ScreenSplitr can serve a flash based vnc client (based on FlashLight-VNC). That’s what happens when you click on the “Experimental” link on the home page before it switches automatically. ScreenSplitr serves a custom templatized crossdomain socket policy file as well to allow the flash player to connect back to the iPhone on the Veency port (5900). The url is http://iphoneip:8099/content/viewer/FLViewer_t.html.
(Note: ScreenSplitr also embeds an applet based vnc client but it’s not as good so it’s currently dormant but you can reach it at http://iphoneip:8099/content/viewier/VncViewer.html)
A few things about DemoGod:
DemoGod is based on iPhoney which is using Webkit to render any html page. DemoGod renders a local html page and uses Bonjour to look for ScreenSplitr instances on the network. When it finds one, it uses the discovered url to display the iPhone name with a link to http://iphonename.local.:8099/screensplitr.
Lately, I have tried to support Veency inside DemoGod but it seems that Webkit keeps crashing when trying to load the Flash plugin. If someone wants to help with it, just try to click on the Veency link in parentheses next to the iphone name.
The source code can be found on github here and here.
Enjoy and contribute back!
-s
DemoGod with iPhone remote control support
Posted by c0diq in DemoGod, ScreenSplitr on August 18th, 2009
Tonight, I was able to get DemoGod to control the iPhone remotely. It will require a quick update to ScreenSplitr though. I have yet to finalize how I will let users decide the “viewer mode only” vs “remote control”. The remote control will be based on vnc. Most precisely, it will require installing the Veency package on Cydia. For the viewer part, I have 2 solutions between Flashlight-VNC and TightVNC Java Applet. Both work, TightVNC seems a bit faster. I am thinking I will provide an option for users to choose which one they prefer.
Here’s a quick video I made using Screenjelly. Obviously there are a few issues left to be resolved.
ScreenSplitr never quitting fix for 2.2.1
Posted by c0diq in ScreenSplitr on June 30th, 2009
I have many complaints about ScreenSplitr 3.0 not quitting on firmware 2.2. Since I don’t have a 2.2 iphone anymore I had to borrow K. 3G which was still running 2.2.1. I asked her to do a simple backup but before I knew it, she happily agreed to please iTunes and upgrade her iphone to the latest! Nice. Stuck with a 2G and a 3G running 3.0. After 2 hours of screwing around, I was able to downgrade it back to 2.2.1. Unfortunately now it has the 3.0 baseband update, so I hope I can still jailbreak it with ultrasn0w.
In any case, after more time trying to build and run ScreenSplitr 3.0 on the 2.2.1, I found out that on 2.2.1 if the app terminates while resuming, the OS happily restarts it because it thinks that it was resuming while it was terminating and that what the user wanted was really to restart it! This doesn’t happen on 3.0 of course.
The fix is to delay the suspension on resume by 2 secs. phew
I have informed BigBoss of the fix. Now we have to wait for it to be published. Look for version 1.1.0-16 on cydia.
Now back to upgrading 3G 2.2.1 to 3.0 and jailbreak/unlock it.