DemoGod & ScreenSplitr Source Code Released Under GPL


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

  1. No comments yet.
(will not be published)