Orientation Problems

I have been having multiple orientation issues. Looking for the best fix.

Simple Sample Code:

bool MyScene::init()
{
    if ( !CCLayer::init() )
    {
        return false;
    }

    screenSize = CCDirector::sharedDirector()->getWinSizeInPixels();

    sprite = cocos2d::CCSprite::spriteWithFile("target.png");
    sprite->setPosition (cocos2d::CCPoint(screenSize.width/2,screenSize.height/2));
    this->addChild(sprite);

    this->setIsTouchEnabled(true);

    return true;
}

void MyScene::ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event) {
    CCTouch* touch = (CCTouch*)( touches->anyObject() );
    CCPoint location = touch->locationInView(touch->view());
    location = CCDirector::sharedDirector()->convertToGL(location);

    sprite->runAction(cocos2d::CCMoveTo::actionWithDuration(0.25,location));
}

if app.icf is unmodified:
touch in portrait:android = good
touch in landLeft:android = y is offset (touch is always below y by ~200 pixels)
touch in landRight:android = y is offset (touch is always below y by ~200 pixels)
touch in portrait:iphone = good
touch in landLeft:iphone = touch is rotated 90 degrees to the left (if touch is at 0,0, then target will be at 320,0)
touch in landRight:iphone = confused, but i think its mapping to the same rect landLeft was. (if touch is 0,0, then target will be at 480-320,320)
touch in portraitInverse:iphone = touch is opposite of target (if touch is 50,50, then target will be at 320-50,480-50)
all coordinates are in perspective to the way I am holding the device

I can set app.icf
[s3e]
fixDeviceOrientation=1
but it will still have the portraitInverse:iphone issue
(Application is supposed to at least be in portrait, landscape would be nice but I’m willing to settle)

Also, I have set deviceOrientation to kCCDeviceOrientationPortrait.

So here are my questions:
1a) Is there a way to detect orientation
1b) If not, is there a way to properly detect coordinates
1c) If not, is there a way to fully prevent all rotation
2) Any plans to integrate autorotation?
3) Any other fixes or suggestions?

I have been able to deal with orientation previously using Marmalade, so I know there is a solution, but I am unsure of how cocos2d connects to certain aspects of Marmalade, so I’m clueless as to where to begin.