[NTLK] Einstein running on iPhone

Matthias Melcher mm at matthiasm.com
Wed Sep 15 16:12:07 EDT 2010


On 15.09.2010, at 20:54, Steven Frank wrote:

> Unbelievably fantastic.
> 
> I'm a Cocoa developer -- I want to help.  What do you need most?
> 
> Steven

You are heaven-sent ;-). Please download the entire project from einstein.googlecode.com via SVN to get the latest release. I am sure that I have made a lot of mistakes in the files that start with "iEinstein..." (app/iEinstein/Classes/...)  and "TIOS..." 
(app/Emulator/Screen/..., IIRC).

There are a few warnings, and this one I don't know how to solve:

/Users/matt/dev/Einstein/_Build_/Xcode3/../../app/iEinstein/Classes/iEinsteinViewController.mm:240: warning: 'UIView' may not respond to '-SetScreenManager:'

It would be great if you could send me a "diff" file of the changes, or even arrange SVN access with Paul.

Thanks,

 - Matthias


Some larger tasks, if you feel like it:

 - Lockups: 
    Let Einstein run for a while (or even after launching it, go back to the home page, then relaunch Einstein) and it will eventually look up (5 minutes?!). No more screen iput is possible. This may be a very simple oversight, but could also be a problem with threads locking each other. I have not looked into that yet.

 - reacting to external events: 
    right now, Einstein does not know when the power is switched of or the user changes back to the home screen. It should probably react though by calling the Newton power on and power off functions.

 - Preferences:
    It would be nice to have preferences in the iPhone settings pane that can soft or hard reset Einstein, take values to scale the view. Choosing RAM size, and a different machine type may be neat.

 - Network:
    I have not checked yet if any of the networking stuff will compile

 - ROM upload:
    Currently iEinstein makes the ROM part of the bundle at compile time. This violates the ROM license. There is a mechanism to upload arbitrary data to the iPhone from an application. We will need some startup screen that gives instructions on how to transfer a ROM file to the iPhone.

- Screen rotation and scaling:
   There is no screen size other than 320x480 yet. It would be nice to have the Newton UI auto-rotate (only if it can be disabled in the preferences). There should be a screen scaling value, maybe even a two-finger interactive scale and scroll?

 - Package upload and install:
    There should be an interface for installing packages. This could also be done via preferences. I want to avoid any UI other than the Newton UI as soon as the ROM is installed... .

 - Sound support:
    TCoreAudioSoundManager should be copied into TIOSSoundManager and then fixed to work without the "Component" interface. Einstein and iPhone volume control should be coupled.

 - Emulation speed.... .

 - and of course look out for FIXME and TODO comments ;-)


More information about the NewtonTalk mailing list