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. #1 written by Marky Mark September 30th, 2009 at 07:16

    I’m confused, where can I get ScreenSplitr? Will it be good enough to watch movies, or would there be a delay?

    Thanks
    M

    RE Q
  2. #2 written by bob September 30th, 2009 at 20:57

    Get ScreenSplitr from Cydia.

    RE Q
  3. #3 written by jose olmedo October 4th, 2009 at 17:59

    god

    RE Q
  4. #4 written by Robert October 7th, 2009 at 19:51

    the screen freezes when you open a app and no pic on iphone. this is on iphone 3g 3.1 eta of an update?

    RE Q
  5. #5 written by Robert October 7th, 2009 at 19:52

    just to be clear this is while viewing on a tv. I’m really wanting to veiw gps maps on a bigger screen in my car.

    RE Q
  6. #6 written by symeon October 20th, 2009 at 12:41

    Hi , can you please fix this error:
    Unable to call svn command “svn –non-interactive –config-dir /tmp”
    from the WebSVN?
    We cannot download the source code, thanks in advanced!

    RE Q
  7. #7 written by end October 24th, 2009 at 12:43

    If I leave ScreenSplitr on, but I don’t have a video cable connected, does it use up CPU or memory resources?

    RE Q
  8. #8 written by matt November 8th, 2009 at 09:17

    The demogod app does not rotate when rotating iPhone…this is a long shot but do you know what could be the problem? Cheers, matt.

    RE Q
  9. #9 written by c0diq November 8th, 2009 at 09:32

    It does but it’s manual right now – Alt-T on the Mac.

    RE Q
  10. #10 written by Sylvain November 8th, 2009 at 09:38

    No barely anything. I detect when a cable gets connected and output only then.

    RE Q
  11. #11 written by matt November 9th, 2009 at 15:26

    O.K. great thank you, the command T key actually works to get it tilted.

    RE Q
  12. #12 written by Daniel November 10th, 2009 at 22:05

    If rotation is disabled in SBSettings (in portrait or landscape mode), apps will stop rotating, however the display with ScreenSplitr continues to rotate. I’m presuming rotation is hooked at a lower level…
    Would it be possible to allow locking in a particular orientation through any means at all?

    And/or can someone give me a extremely brief nutshell on how to compile this? (which platform and can I use the toolchain for iPhoneOS in Cydia or do I need to install the SDK?)

    RE Q
  13. #13 written by Daniel November 10th, 2009 at 22:59

    Actually looks pretty easy to do what I want, just need to know how to compile it…

    In ScreenSplitrScreenView.mm,
    rather than
    int orientation = [self getOrientation];

    hardcode it to kOrientationHorizontalLeft. (All I need is for it to lock in landscape mode, orientation of picture in landscape doesn’t matter)

    Is there anyone willing to compile me a version like this please? Or help point me in the right direction…

    RE Q
  14. #14 written by Daniel November 11th, 2009 at 16:30

    Also, trying to download a tar of the source, the following error occurs:

    Unable to call svn command “svn –non-interactive –config-dir /tmp”

    RE Q
  15. #15 written by Davejt November 14th, 2009 at 03:01

    I am guessing the screenspltr development is now closed as I cannot find any reference to how to install the app from the svn siteand then install it on an ipod touch – confused! Help welcomed

    RE Q
  16. #16 written by Sylvain November 15th, 2009 at 22:59

    Edit Makefile and replace IP with your iphone IP. Then type:
    $ make install_restart
    $ make install

    Your iphone will respring and ScreenSplitr icon will show up on your springboard.

    RE Q
  17. #17 written by Davejt November 16th, 2009 at 14:42

    Thanks for the reply…
    I don’t have a phone just a touch so which ip would i use – can I do it with a computer to computer network with my Macbook pro?

    Also I have never done any command line stuff on a Mac (moved from PC to mac and loving it) – what would I need to download (all files or some files or what and what would I use to execute the command line commands eg is this done in X11? New to this so take me through it if you have the time.

    RE Q
  18. #18 written by jr November 16th, 2009 at 18:43

    will it work on the itouch?

    RE Q
  19. #19 written by Jerry November 20th, 2009 at 02:52

    Is there any way of increasing the frame rate of screensplitr so i can watch the sling app on a bigger screen??

    Thanks Jerry

    RE Q
  20. #20 written by Patrick November 30th, 2009 at 12:35

    I’m not able to find it on Cydia. Was it removed? I’ve searched for it everywhere, but all I can find are articles talking about how awesome the program is, which just teases me.

    Any help?

    patrick

    RE Q
  21. #21 written by miljan December 15th, 2009 at 18:35

    please help me i can’t instal the demogod… i coretli download but i don’t no have to instaled… i extrack file but i don have intal or corect program ho can instal that… please help me!

    RE Q
  22. #22 written by ccp035 December 20th, 2009 at 19:42

    When I try to use demogod it tells me it is searching and it never displays my phone? How do I get it to find my phone?

    RE Q
  23. #23 written by panda December 21st, 2009 at 20:15

    just curious,
    does demogod work on windows thoo?
    i have that winRAR file thing to open stuff,
    sorry im not all that good with this kinda stuff,
    but i wanna usee demogod,
    thanks :]

    RE Q
  24. #24 written by c0diq December 28th, 2009 at 10:45

    panda: No DemoGod only works on Mac

    RE Q
  25. #25 written by ykrsdn January 12th, 2010 at 16:53

    I wanted to compile this app for someone as an Ad Hoc build, but it seems that a whole busload of files are missing from the project.

    Is there a way to compile this and run it as a normal app from within xcode?

    RE Q
  26. #26 written by Roxanne Darling January 26th, 2010 at 16:11

    To DaveJT, #15 an d Patrick, #20 – The Screensplitr app is visible in the Cydia app *on the iPhone* once you have jailbreak’d your phone and have it installed. (I too tried to download it from the web…) I just used Blackra1n, which gives a prompt to then install Cydia on the iPhone. Once that is installed, you can browse hundreds of apps, including Screensplitr. Once that is installed, open the Demigod app. I had to boot it twice, and now it works beautifully and looks gorgeous on screen!

    RE Q
  27. #27 written by roshi April 2nd, 2010 at 08:38

    Hi,
    love this app.
    Actually I’m using it to make presentations using a pdf viewer.
    Something that would make your app even better would be the possibility to select if I want the horizontal/vertical screen selection automatic or manual.
    That is TV output: automatic/horizontal/vertical.

    Why? Because using the universal dock and the remote control I have to tilt the iPhone to get the correct horizontal display out of my presentation.

    How about that small change?
    I would do it, but I’m sure you’re so much better at it, it will take you a second.

    RE Q
  28. #28 written by kolton remund April 10th, 2010 at 21:49

    do you have to have Wifi??

    RE Q
  29. #29 written by Marco May 3rd, 2010 at 13:00

    Wehn will demo god appear for Windows? Please. Its a great programm ;-(

    RE Q
  30. #30 written by Siggi July 2nd, 2010 at 00:55

    @Marco probably never. But windows sucks anyways, you should get rid of that shit sitting on your desk right now and get a Mac. If you can’t afford one, you can get used ones for half the price.

    RE Q

SetPageWidth