Merge pull request #1706 from dumganhar/iss1590-jpeg-fix-mm

fixed #1590: JPEG and File fixes and CocosDenshion fix for marmalade.
This commit is contained in:
James Chen 2012-12-03 19:10:14 -08:00
commit ed86e2967f
4 changed files with 357 additions and 158 deletions

View File

@ -86,10 +86,10 @@ namespace CocosDenshion
s_pEngine=0;
}
for( SoundFxMap::iterator it = g_pSoundFxMap->begin(); it!=g_pSoundFxMap->end(); it++ ) {
if( it->second.data != 0 ) free( it->second.data ) ;
}
if( g_pSoundFxMap ) {
for( SoundFxMap::iterator it = g_pSoundFxMap->begin(); it!=g_pSoundFxMap->end(); it++ )
if( it->second.data != 0 ) free( it->second.data ) ;
delete g_pSoundFxMap ;
g_pSoundFxMap = 0 ;
}

View File

@ -555,7 +555,7 @@ bool CCImage::initWithImageData(void * pData,
bool bRet = false;
do
{
CC_BREAK_IF(! pData || nDataLen <= 0);
CC_BREAK_IF(! pData || nDataLen <= 0);
if (kFmtPng == eFmt)
{
@ -622,7 +622,7 @@ bool CCImage::initWithImageData(void * pData,
}
}
}
} while (0);
} while (0);
return bRet;
}
@ -630,99 +630,84 @@ bool CCImage::_initWithJpgData(void * data, int nSize)
{
IW_CALLSTACK("CCImage::_initWithJpgData");
bool bRet = false;
/* these are standard libjpeg structures for reading(decompression) */
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
/* libjpeg data structure for storing one row, that is, scanline of an image */
JSAMPROW row_pointer[1] = {0};
unsigned long location = 0;
unsigned int i = 0;
s3eFile* pFile = s3eFileOpenFromMemory(data, nSize);
IwAssert(GAME, pFile);
jpeg_decompress_struct cinfo;
bzero(&cinfo, sizeof(cinfo));
JSAMPARRAY buffer; /* Output row buffer */
int row_stride; /* physical row width in output buffer */
jpeg_source_mgr srcmgr;
srcmgr.bytes_in_buffer = nSize;
srcmgr.next_input_byte = (JOCTET*) data;
srcmgr.init_source = CCImageHelper::JPEGInitSource;
srcmgr.fill_input_buffer = CCImageHelper::JPEGFillInputBuffer;
srcmgr.skip_input_data = CCImageHelper::JPEGSkipInputData;
srcmgr.resync_to_restart = jpeg_resync_to_restart;
srcmgr.term_source = CCImageHelper::JPEGTermSource;
jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
cinfo.src = &srcmgr;
jpeg_read_header(&cinfo, TRUE);
jpeg_start_decompress(&cinfo);
/* JSAMPLEs per row in output buffer */
row_stride = cinfo.output_width * cinfo.output_components;
/* Make a one-row-high sample array that will go away when done with image */
buffer = (*cinfo.mem->alloc_sarray)
((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
int copy_rows = (int)cinfo.output_height;
int copy_width = (int)cinfo.output_width;
if (copy_width < 0 || copy_rows < 0)
bool bRet = false;
do
{
printf("jpeg is fully off screen\n");
return bRet;
}
int startx=0;
int starty=0;
int bytesPerPix = 4;
m_pData = new unsigned char[copy_rows * copy_width * bytesPerPix];
memset(m_pData,0, copy_rows * copy_width * bytesPerPix);
// init image info
m_bPreMulti = false;
m_bHasAlpha = false;
m_nHeight = copy_rows;
m_nWidth = copy_width;
m_nBitsPerComponent = bytesPerPix;
unsigned char *dst = m_pData;
unsigned char *pData = m_pData;
/* here we set up the standard libjpeg error handler */
cinfo.err = jpeg_std_error( &jerr );
while (cinfo.output_scanline < cinfo.output_height)// count through the image
{
/* jpeg_read_scanlines expects an array of pointers to scanlines.
* Here the array is only one element long, but you could ask for
* more than one scanline at a time if that's more convenient.
*/
(void) jpeg_read_scanlines(&cinfo, buffer, 1);
/* setup decompression process and source, then read JPEG header */
jpeg_create_decompress( &cinfo );
if (starty-- <= 0)// count down from start
{
if (copy_rows-- > 0)
jpeg_source_mgr srcmgr;
srcmgr.bytes_in_buffer = nSize;
srcmgr.next_input_byte = (JOCTET*) data;
srcmgr.init_source = CCImageHelper::JPEGInitSource;
srcmgr.fill_input_buffer = CCImageHelper::JPEGFillInputBuffer;
srcmgr.skip_input_data = CCImageHelper::JPEGSkipInputData;
srcmgr.resync_to_restart = jpeg_resync_to_restart;
srcmgr.term_source = CCImageHelper::JPEGTermSource;
cinfo.src = &srcmgr;
// jpeg_mem_src( &cinfo, (unsigned char *) data, nSize );
/* reading the image header which contains image information */
jpeg_read_header( &cinfo, true );
// we only support RGB or grayscale
if (cinfo.jpeg_color_space != JCS_RGB)
{
if (cinfo.jpeg_color_space == JCS_GRAYSCALE || cinfo.jpeg_color_space == JCS_YCbCr)
{
for (int xx=startx; xx < copy_width; xx++)
{
uint8 r = buffer[0][xx*3+0];
uint8 b = buffer[0][xx*3+1];
uint8 g = buffer[0][xx*3+2];
*dst++ = r;
*dst++ = b;
*dst++ = g;
*dst++ = 255;
}
}
cinfo.out_color_space = JCS_RGB;
}
}
else
{
break;
}
}
(void) jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
/* Start decompression jpeg here */
jpeg_start_decompress( &cinfo );
printf("jpeg display done\n");
/* init image info */
m_nWidth = (short)(cinfo.image_width);
m_nHeight = (short)(cinfo.image_height);
m_bHasAlpha = false;
m_bPreMulti = false;
m_nBitsPerComponent = 8;
row_pointer[0] = new unsigned char[cinfo.output_width*cinfo.output_components];
CC_BREAK_IF(! row_pointer[0]);
bRet = true;
m_pData = new unsigned char[cinfo.output_width*cinfo.output_height*cinfo.output_components];
CC_BREAK_IF(! m_pData);
/* now actually read the jpeg into the raw buffer */
/* read one scan line at a time */
while( cinfo.output_scanline < cinfo.image_height )
{
jpeg_read_scanlines( &cinfo, row_pointer, 1 );
for( i=0; i<cinfo.image_width*cinfo.output_components;i++)
{
m_pData[location++] = row_pointer[0][i];
}
}
jpeg_finish_decompress( &cinfo );
jpeg_destroy_decompress(&cinfo);
/* wrap up decompression, destroy objects, free pointers and close open files */
bRet = true;
} while (0);
CC_SAFE_DELETE_ARRAY(row_pointer[0]);
return bRet;
}

View File

@ -0,0 +1,107 @@
# Settings ICF file automatically generated by S3E development environment
AccelEnabled = Type=bool, Default="true", Value = "true"
AudioAAC = Type=bool, Default="false", Value = "false"
AudioAACPlus = Type=bool, Default="false", Value = "false"
AudioMIDI = Type=bool, Default="true", Value = "true"
AudioMP3 = Type=bool, Default="true", Value = "true"
AudioPCM = Type=bool, Default="true", Value = "true"
AudioQCP = Type=bool, Default="false", Value = "false"
AudioVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
BacklightTimeout = Type=int, Min=0.000000, Max=120000.000000, Default="10000", Value = "10000"
CompassEnabled = Type=bool, Default="true", Value = "true"
ContactsFromAddrBook = Type=bool, Default="false", Value = "false"
DeviceAdvanceSoftkeyPosition = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Left", Value = "Bottom Left"
DeviceArch = Type=string, Allowed="<Use Native Architecture>" "ARM4T" "ARM4" "ARM5T" "ARM5TE" "ARM5TEJ" "ARM6" "ARM6K" "ARM6T2" "ARM6Z" "X86" "PPC" "AMD64" "ARM7", Default="<Use Native Architecture>", Value = "<Use Native Architecture>"
DeviceBackSoftkeyPosition = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Right", Value = "Bottom Right"
DeviceBatteryLevel = Type=int, Min=0.000000, Max=100.000000, Default="50", Value = "50"
DeviceClass = Type=string, Allowed="UNKNOWN" "SYMBIAN_GENERIC" "SYMBIAN_SERIES60" "SYMBIAN_SERIES60_EMULATOR" "SYMBIAN_UIQ" "SYMBIAN_UIQ_EMULATOR" "BREW_GENERIC" "BREW_QCIF_3D" "BREW_QCIF_25G" "BREW_SQCIF_256" "BREW_QVGA_3G" "WINDOWS_GENERIC" "WINMOBILE_GENERIC" "WINMOBILE_SP" "WINMOBILE_PPC" "LINUX_GENERIC" "LINUX_DESKTOP" "LINUX_EMBED" "WIPI_GENERIC" "NDS_GENERIC" "ARM_SEMIH_GENERIC" "NULCUES_GENERIC" "NGI_GENERIC", Default="WINDOWS_GENERIC", Value = "WINDOWS_GENERIC"
DeviceFPU = Type=string, Allowed="None" "VFP Present", Default="VFP Present", Value = "VFP Present"
DeviceFreeRAM = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
DeviceIDInt = Type=int, Default="0", Value = "0"
DeviceIDString = Type=string, Default="", Value = ""
DeviceIMSI = Type=string, Default="SIMULATOR_IMSI", Value = "SIMULATOR_IMSI"
DeviceLSKIsBack = Type=bool, Default="false", Value = "false"
DeviceLanguage = Type=string, Allowed="UNKNOWN" "ENGLISH" "FRENCH" "GERMAN" "SPANISH" "ITALIAN" "PORTUGUESE" "DUTCH" "TURKISH" "CROATIAN" "CZECH" "DANISH" "FINNISH" "HUNGARIAN" "NORWEGIAN" "POLISH" "RUSSIAN" "SERBIAN" "SLOVAK" "SLOVENIAN" "SWEDISH" "UKRAINIAN" "GREEK" "JAPANESE" "SIMPL_CHINESE" "TRAD_CHINESE" "KOREAN" "ICELANDIC" "FLEMISH" "THAI" "AFRIKAANS" "ALBANIAN" "AMHARIC" "ARABIC" "ARMENIAN" "AZERBAIJANI" "TAGALOG" "BELARUSSIAN" "BENGALI" "BULGARIAN" "BURMESE" "CATALAN" "ESTONIAN" "FARSI" "GAELIC" "GEORGIAN" "GUJARATI" "HEBREW" "HINDI" "INDONESIAN" "IRISH" "KANNADA" "KAZAKH" "KHMER" "LAO" "LATVIAN" "LITHUANIAN" "MACEDONIAN" "MALAY" "MALAYALAM" "MARATHI" "MOLDOVIAN" "MONGOLIAN" "PUNJABI" "ROMANIAN" "SINHALESE" "SOMALI" "SWAHILI" "TAJIK" "TAMIL" "TELUGU" "TIBETAN" "TIGRINYA" "TURKMEN" "URDU" "UZBEK" "VIETNAMESE" "WELSH" "ZULU" "<Use Native Language>", Default="<Use Native Language>", Value = "<Use Native Language>"
DeviceMainsPower = Type=bool, Default="false", Value = "false"
DeviceName = Type=string, Default="My Computer", Value = "My Computer"
DeviceOS = Type=string, Allowed="NONE" "SYMBIAN" "BREW" "WINDOWS" "WINMOBILE" "LINUX" "WIPI" "NDS" "ARM_SEMIH" "NUCLEUS" "NGI" "WINCE" "SHARPEMP" "OSX" "IPHONE" "UIQ" "PS3" "X360" "BADA" "ANDROID" "WEBOS" "QNX", Default="NONE", Value = "NONE"
DeviceOSVersion = Type=string, Default="", Value = ""
DeviceOSVersionNumber = Type=int, Default="0", Value = "0"
DevicePhoneNumber = Type=string, Default="0044123456789", Value = "0044123456789"
DeviceTimezone = Type=string, Default="SYSTEM", Value = "SYSTEM"
DeviceTotalRAM = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
DeviceUniqueID = Type=string, Default="SIMULATOR_ID", Value = "SIMULATOR_ID"
DeviceUniqueIDInt = Type=int, Default="01234567890", Value = "01234567890"
FileTotalStorageSize = Type=int, Min=0.000000, Max=2147483648.000000, Default="67108864", Value = "67108864"
FileUseSeparateRomRam = Type=bool, Default="true", Value = "true"
FileUseTotalStorageSize = Type=bool, Default="false", Value = "false"
GLAPI = Type=string, Allowed="None" "GLES 1.0 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.1 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.0 Common Profile from Imagination POWERVR(TM)" "GLES 1.1 Common Profile from Imagination POWERVR(TM)" "GLES 2.0 from Imagination POWERVR(TM)" "Obey [S3E] SysGlesVersion .icf setting" "GLES 1.1 Common Profile from Qualcomm Snapdragon(TM)" "GLES 2.0 from Qualcomm Snapdragon(TM)" "GLES 2.0 ANGLE", Default="Obey [S3E] SysGlesVersion .icf setting", Value = "Obey [S3E] SysGlesVersion .icf setting"
GLDontUseHiddenWindow = Type=bool, Default="false", Value = "false"
GLTerminateOnSuspend = Type=bool, Default="false", Value = "false"
GLUsePVRVFrame = Type=bool, Default="false", Value = "false"
KeyboardHasAlpha = Type=bool, Default="true", Value = "true"
KeyboardHasDirection = Type=bool, Default="true", Value = "true"
KeyboardHasKeypad = Type=bool, Default="true", Value = "true"
KeyboardNumpadRotation = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
LicenseExpiryDate = Type=int, Min=0.000000, Max=999999995904.000000, Default="0", Value = "0"
LicenseMinutesRemaining = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
LicenseStatus = Type=string, Allowed="EXPIRED" "DEMO" "USECOUNT" "EXPIRYDATE" "EXPIRYMINSUSE" "PURCHASE" "SUBSCRIPTION" "UPGRADE" "NONCOMMERCIAL", Default="NONCOMMERCIAL", Value = "NONCOMMERCIAL"
LicenseUsesRemaining = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
LocationAltitude = Type=float, Min=-2000.000000, Max=100000.000000, Default="60.0", Value = "60.0"
LocationAvailable = Type=bool, Default="true", Value = "true"
LocationHeading = Type=float, Min=0.000000, Max=359.000000, Default="0.0", Value = "0.0"
LocationHorizontalAccuracy = Type=float, Min=0.000000, Max=100000.000000, Default="20.0", Value = "20.0"
LocationLatitude = Type=float, Min=-90.000000, Max=90.000000, Default="51.511791", Value = "51.511791"
LocationLongitude = Type=float, Min=-180.000000, Max=180.000000, Default="-0.191084", Value = "-0.191084"
LocationSpeed = Type=float, Min=0.000000, Max=10000.000000, Default="0", Value = "0"
LocationVerticalAccuracy = Type=float, Min=0.000000, Max=100000.000000, Default="100.0", Value = "100.0"
MacOSSimulatorCustomSettings = Type=string, Default="", Value = ""
MacOSSimulatorDevices_ANDROID = Type=string, Allowed="Samsung Galaxy S:480x800:512" "HTC Sensation XL:480x800:768" "Samsung Galaxy Note:800x1280:1024" "Motorola Droid Razr:540x960:1024" "Kindle Fire:1024x600:512" "Samsung Galaxy Tab:1024x600:512", Default="Samsung Galaxy S:480x800:512", Value = "Samsung Galaxy S:480x800:512"
MacOSSimulatorDevices_IPHONE = Type=string, Allowed="iPhone 3GS:320x480:256" "iPhone 4:640x960:512" "iPad 2:768x1024:512", Default="iPhone 3GS:320x480:256", Value = "iPhone 3GS:320x480:256"
MacOSSimulatorPlatforms = Type=string, Allowed="IPHONE" "ANDROID", Default="IPHONE", Value = "IPHONE"
MacOSSimulatorUseCustomSettings = Type=bool, Default="true", Value = "true"
MemoryPoison = Type=bool, Default="true", Value = "true"
MemoryPoisonAlloc = Type=int, Min=0.000000, Max=255.000000, Default="170", Value = "170"
MemoryPoisonFree = Type=int, Min=0.000000, Max=255.000000, Default="221", Value = "221"
MemoryPoisonInit = Type=int, Min=0.000000, Max=255.000000, Default="204", Value = "204"
PointerAvailable = Type=bool, Default="true", Value = "true"
PointerMultiSimulationMode = Type=bool, Default="false", Value = "false"
PointerMultiTouchAvailable = Type=bool, Default="false", Value = "false"
PointerStylusType = Type=string, Allowed="INVALID" "STYLUS" "FINGER", Default="INVALID", Value = "INVALID"
PointerType = Type=string, Allowed="INVALID" "MOUSE" "STYLUS", Default="MOUSE", Value = "MOUSE"
SMSEnabled = Type=bool, Default="true", Value = "true"
SMSReceiveEnabled = Type=bool, Default="true", Value = "true"
SocketDNSDelay = Type=int, Min=0.000000, Max=30000.000000, Default="0", Value = "0"
SocketHTTPProxy = Type=string, Default="", Value = ""
SocketHostName = Type=string, Default="", Value = ""
SocketNetworkAvailable = Type=bool, Default="true", Value = "true"
SocketNetworkLoss = Type=bool, Default="false", Value = "false"
SocketNetworkType = Type=string, Allowed="NONE" "UNKNOWN" "LAN" "WLAN" "GPRS" "UMTS" "EVDO" "CDMA2000" "HSDPA" "WIMAX" "BLUETOOTH" "EDGE" "CDMA" "IDEN" "LTE" "EHRPD" "HSPAPLUS", Default="LAN", Value = "LAN"
SocketRecvLimit = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
SocketSendLimit = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
SoundEnabled = Type=bool, Default="true", Value = "true"
SoundRecordEnabled = Type=bool, Default="true", Value = "true"
SoundSampleRate = Type=int, Allowed="8192" "11025" "16000" "22050" "44100", Default="22050", Value = "22050"
SoundStereo = Type=bool, Default="true", Value = "true"
SoundVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
SurfaceDisableWhenGLIsActive = Type=bool, Default="false", Value = "false"
SurfaceDoubleBuffer = Type=bool, Default="false", Value = "false"
SurfaceHeight = Type=int, Min=128.000000, Max=4096.000000, Default="480", Value = "320"
SurfacePitch = Type=int, Min=0.000000, Max=8192.000000, Default="0", Value = "0"
SurfacePixelType = Type=string, Allowed="RGB444" "RGB555" "RGB565" "RGB666" "RGB888" "BGR444" "BGR555" "BGR565" "BGR666" "BGR888", Default="RGB565", Value = "RGB565"
SurfacePredefinedResolution = Type=string, Allowed="176x200" "176x208" "240x320 (QVGA Portrait)" "240x400" "320x240 (QVGA Landscape)" "320x400" "320x480 (iPhone Portrait)" "400x240" "480x320 (iPhone Landscape)" "360x640 (qHD Portrait)" "640x360 (qHD Landscape)" "480x640 (VGA Portrait)" "480x800 (WVGA Portrait)" "640x480 (VGA Landscape)" "800x400" "800x480 (WVGA Landscape)" "640x960 (iPhone 4 Portrait)" "960x640 (iPhone 4 Landscape)" "1024x600 (Playbook Landscape)" "600x1024 (Playbook Portrait)" "768x1024 (iPad Portrait)" "1024x768 (iPad Landscape)" "2048x1536 (iPad Retina Landscape)" "1536x2048 (iPad Retina Portrait)", Default="320x480 (iPhone Portrait)", Value = "176x200"
SurfaceRotation = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
SurfaceUnalign = Type=bool, Default="true", Value = "true"
SurfaceUseMultiBuffers = Type=bool, Default="true", Value = "true"
SurfaceWidth = Type=int, Min=128.000000, Max=4096.000000, Default="320", Value = "480"
SymbianSoundLatency = Type=int, Min=20.000000, Max=1400.000000, Default="120", Value = "120"
ThreadEnabled = Type=bool, Default="true", Value = "true"
TimerAccuracy = Type=int, Min=0.000000, Max=1000.000000, Default="0", Value = "0"
TimerHiRes = Type=bool, Default="false", Value = "false"
TimerLocaltimeOffsetHours = Type=string, Allowed="-12" "-11" "-10" "-9" "-8" "-7" "-6" "-5" "-4" "-3" "-2" "-1" "0" "+1" "+2" "+3" "+4" "+5" "+6" "+7" "+8" "+9" "+10" "+11" "+12" "+13" "SYSTEM", Default="SYSTEM", Value = "SYSTEM"
VibraEnabled = Type=bool, Default="true", Value = "true"
Video3GPP = Type=bool, Default="false", Value = "false"
VideoJPEG = Type=bool, Default="true", Value = "true"
VideoMPEG4 = Type=bool, Default="true", Value = "true"
VideoVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"

View File

@ -0,0 +1,107 @@
# Settings ICF file automatically generated by S3E development environment
AccelEnabled = Type=bool, Default="true", Value = "true"
AudioAAC = Type=bool, Default="false", Value = "false"
AudioAACPlus = Type=bool, Default="false", Value = "false"
AudioMIDI = Type=bool, Default="true", Value = "true"
AudioMP3 = Type=bool, Default="true", Value = "true"
AudioPCM = Type=bool, Default="true", Value = "true"
AudioQCP = Type=bool, Default="false", Value = "false"
AudioVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
BacklightTimeout = Type=int, Min=0.000000, Max=120000.000000, Default="10000", Value = "10000"
CompassEnabled = Type=bool, Default="true", Value = "true"
ContactsFromAddrBook = Type=bool, Default="false", Value = "false"
DeviceAdvanceSoftkeyPosition = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Left", Value = "Bottom Left"
DeviceArch = Type=string, Allowed="<Use Native Architecture>" "ARM4T" "ARM4" "ARM5T" "ARM5TE" "ARM5TEJ" "ARM6" "ARM6K" "ARM6T2" "ARM6Z" "X86" "PPC" "AMD64" "ARM7", Default="<Use Native Architecture>", Value = "<Use Native Architecture>"
DeviceBackSoftkeyPosition = Type=string, Allowed="Bottom Left" "Bottom Right" "Top Right" "Top Left", Default="Bottom Right", Value = "Bottom Right"
DeviceBatteryLevel = Type=int, Min=0.000000, Max=100.000000, Default="50", Value = "50"
DeviceClass = Type=string, Allowed="UNKNOWN" "SYMBIAN_GENERIC" "SYMBIAN_SERIES60" "SYMBIAN_SERIES60_EMULATOR" "SYMBIAN_UIQ" "SYMBIAN_UIQ_EMULATOR" "BREW_GENERIC" "BREW_QCIF_3D" "BREW_QCIF_25G" "BREW_SQCIF_256" "BREW_QVGA_3G" "WINDOWS_GENERIC" "WINMOBILE_GENERIC" "WINMOBILE_SP" "WINMOBILE_PPC" "LINUX_GENERIC" "LINUX_DESKTOP" "LINUX_EMBED" "WIPI_GENERIC" "NDS_GENERIC" "ARM_SEMIH_GENERIC" "NULCUES_GENERIC" "NGI_GENERIC", Default="WINDOWS_GENERIC", Value = "WINDOWS_GENERIC"
DeviceFPU = Type=string, Allowed="None" "VFP Present", Default="VFP Present", Value = "VFP Present"
DeviceFreeRAM = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
DeviceIDInt = Type=int, Default="0", Value = "0"
DeviceIDString = Type=string, Default="", Value = ""
DeviceIMSI = Type=string, Default="SIMULATOR_IMSI", Value = "SIMULATOR_IMSI"
DeviceLSKIsBack = Type=bool, Default="false", Value = "false"
DeviceLanguage = Type=string, Allowed="UNKNOWN" "ENGLISH" "FRENCH" "GERMAN" "SPANISH" "ITALIAN" "PORTUGUESE" "DUTCH" "TURKISH" "CROATIAN" "CZECH" "DANISH" "FINNISH" "HUNGARIAN" "NORWEGIAN" "POLISH" "RUSSIAN" "SERBIAN" "SLOVAK" "SLOVENIAN" "SWEDISH" "UKRAINIAN" "GREEK" "JAPANESE" "SIMPL_CHINESE" "TRAD_CHINESE" "KOREAN" "ICELANDIC" "FLEMISH" "THAI" "AFRIKAANS" "ALBANIAN" "AMHARIC" "ARABIC" "ARMENIAN" "AZERBAIJANI" "TAGALOG" "BELARUSSIAN" "BENGALI" "BULGARIAN" "BURMESE" "CATALAN" "ESTONIAN" "FARSI" "GAELIC" "GEORGIAN" "GUJARATI" "HEBREW" "HINDI" "INDONESIAN" "IRISH" "KANNADA" "KAZAKH" "KHMER" "LAO" "LATVIAN" "LITHUANIAN" "MACEDONIAN" "MALAY" "MALAYALAM" "MARATHI" "MOLDOVIAN" "MONGOLIAN" "PUNJABI" "ROMANIAN" "SINHALESE" "SOMALI" "SWAHILI" "TAJIK" "TAMIL" "TELUGU" "TIBETAN" "TIGRINYA" "TURKMEN" "URDU" "UZBEK" "VIETNAMESE" "WELSH" "ZULU" "<Use Native Language>", Default="<Use Native Language>", Value = "<Use Native Language>"
DeviceMainsPower = Type=bool, Default="false", Value = "false"
DeviceName = Type=string, Default="My Computer", Value = "My Computer"
DeviceOS = Type=string, Allowed="NONE" "SYMBIAN" "BREW" "WINDOWS" "WINMOBILE" "LINUX" "WIPI" "NDS" "ARM_SEMIH" "NUCLEUS" "NGI" "WINCE" "SHARPEMP" "OSX" "IPHONE" "UIQ" "PS3" "X360" "BADA" "ANDROID" "WEBOS" "QNX", Default="NONE", Value = "NONE"
DeviceOSVersion = Type=string, Default="", Value = ""
DeviceOSVersionNumber = Type=int, Default="0", Value = "0"
DevicePhoneNumber = Type=string, Default="0044123456789", Value = "0044123456789"
DeviceTimezone = Type=string, Default="SYSTEM", Value = "SYSTEM"
DeviceTotalRAM = Type=int, Min=0.000000, Max=2097151.000000, Default="1048576", Value = "1048576"
DeviceUniqueID = Type=string, Default="SIMULATOR_ID", Value = "SIMULATOR_ID"
DeviceUniqueIDInt = Type=int, Default="01234567890", Value = "01234567890"
FileTotalStorageSize = Type=int, Min=0.000000, Max=2147483648.000000, Default="67108864", Value = "67108864"
FileUseSeparateRomRam = Type=bool, Default="true", Value = "true"
FileUseTotalStorageSize = Type=bool, Default="false", Value = "false"
GLAPI = Type=string, Allowed="None" "GLES 1.0 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.1 Common-Lite Profile from Imagination POWERVR(TM)" "GLES 1.0 Common Profile from Imagination POWERVR(TM)" "GLES 1.1 Common Profile from Imagination POWERVR(TM)" "GLES 2.0 from Imagination POWERVR(TM)" "Obey [S3E] SysGlesVersion .icf setting" "GLES 1.1 Common Profile from Qualcomm Snapdragon(TM)" "GLES 2.0 from Qualcomm Snapdragon(TM)" "GLES 2.0 ANGLE", Default="Obey [S3E] SysGlesVersion .icf setting", Value = "Obey [S3E] SysGlesVersion .icf setting"
GLDontUseHiddenWindow = Type=bool, Default="false", Value = "false"
GLTerminateOnSuspend = Type=bool, Default="false", Value = "false"
GLUsePVRVFrame = Type=bool, Default="false", Value = "false"
KeyboardHasAlpha = Type=bool, Default="true", Value = "true"
KeyboardHasDirection = Type=bool, Default="true", Value = "true"
KeyboardHasKeypad = Type=bool, Default="true", Value = "true"
KeyboardNumpadRotation = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
LicenseExpiryDate = Type=int, Min=0.000000, Max=999999995904.000000, Default="0", Value = "0"
LicenseMinutesRemaining = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
LicenseStatus = Type=string, Allowed="EXPIRED" "DEMO" "USECOUNT" "EXPIRYDATE" "EXPIRYMINSUSE" "PURCHASE" "SUBSCRIPTION" "UPGRADE" "NONCOMMERCIAL", Default="NONCOMMERCIAL", Value = "NONCOMMERCIAL"
LicenseUsesRemaining = Type=int, Min=0.000000, Max=10000000.000000, Default="0", Value = "0"
LocationAltitude = Type=float, Min=-2000.000000, Max=100000.000000, Default="60.0", Value = "60.0"
LocationAvailable = Type=bool, Default="true", Value = "true"
LocationHeading = Type=float, Min=0.000000, Max=359.000000, Default="0.0", Value = "0.0"
LocationHorizontalAccuracy = Type=float, Min=0.000000, Max=100000.000000, Default="20.0", Value = "20.0"
LocationLatitude = Type=float, Min=-90.000000, Max=90.000000, Default="51.511791", Value = "51.511791"
LocationLongitude = Type=float, Min=-180.000000, Max=180.000000, Default="-0.191084", Value = "-0.191084"
LocationSpeed = Type=float, Min=0.000000, Max=10000.000000, Default="0", Value = "0"
LocationVerticalAccuracy = Type=float, Min=0.000000, Max=100000.000000, Default="100.0", Value = "100.0"
MacOSSimulatorCustomSettings = Type=string, Default="", Value = ""
MacOSSimulatorDevices_ANDROID = Type=string, Allowed="Samsung Galaxy S:480x800:512" "HTC Sensation XL:480x800:768" "Samsung Galaxy Note:800x1280:1024" "Motorola Droid Razr:540x960:1024" "Kindle Fire:1024x600:512" "Samsung Galaxy Tab:1024x600:512", Default="Samsung Galaxy S:480x800:512", Value = "Samsung Galaxy S:480x800:512"
MacOSSimulatorDevices_IPHONE = Type=string, Allowed="iPhone 3GS:320x480:256" "iPhone 4:640x960:512" "iPad 2:768x1024:512", Default="iPhone 3GS:320x480:256", Value = "iPhone 3GS:320x480:256"
MacOSSimulatorPlatforms = Type=string, Allowed="IPHONE" "ANDROID", Default="IPHONE", Value = "IPHONE"
MacOSSimulatorUseCustomSettings = Type=bool, Default="true", Value = "true"
MemoryPoison = Type=bool, Default="true", Value = "true"
MemoryPoisonAlloc = Type=int, Min=0.000000, Max=255.000000, Default="170", Value = "170"
MemoryPoisonFree = Type=int, Min=0.000000, Max=255.000000, Default="221", Value = "221"
MemoryPoisonInit = Type=int, Min=0.000000, Max=255.000000, Default="204", Value = "204"
PointerAvailable = Type=bool, Default="true", Value = "true"
PointerMultiSimulationMode = Type=bool, Default="false", Value = "false"
PointerMultiTouchAvailable = Type=bool, Default="false", Value = "false"
PointerStylusType = Type=string, Allowed="INVALID" "STYLUS" "FINGER", Default="INVALID", Value = "INVALID"
PointerType = Type=string, Allowed="INVALID" "MOUSE" "STYLUS", Default="MOUSE", Value = "MOUSE"
SMSEnabled = Type=bool, Default="true", Value = "true"
SMSReceiveEnabled = Type=bool, Default="true", Value = "true"
SocketDNSDelay = Type=int, Min=0.000000, Max=30000.000000, Default="0", Value = "0"
SocketHTTPProxy = Type=string, Default="", Value = ""
SocketHostName = Type=string, Default="", Value = ""
SocketNetworkAvailable = Type=bool, Default="true", Value = "true"
SocketNetworkLoss = Type=bool, Default="false", Value = "false"
SocketNetworkType = Type=string, Allowed="NONE" "UNKNOWN" "LAN" "WLAN" "GPRS" "UMTS" "EVDO" "CDMA2000" "HSDPA" "WIMAX" "BLUETOOTH" "EDGE" "CDMA" "IDEN" "LTE" "EHRPD" "HSPAPLUS", Default="LAN", Value = "LAN"
SocketRecvLimit = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
SocketSendLimit = Type=int, Min=0.000000, Max=1000000.000000, Default="0", Value = "0"
SoundEnabled = Type=bool, Default="true", Value = "true"
SoundRecordEnabled = Type=bool, Default="true", Value = "true"
SoundSampleRate = Type=int, Allowed="8192" "11025" "16000" "22050" "44100", Default="22050", Value = "22050"
SoundStereo = Type=bool, Default="true", Value = "true"
SoundVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"
SurfaceDisableWhenGLIsActive = Type=bool, Default="false", Value = "false"
SurfaceDoubleBuffer = Type=bool, Default="false", Value = "false"
SurfaceHeight = Type=int, Min=128.000000, Max=4096.000000, Default="480", Value = "320"
SurfacePitch = Type=int, Min=0.000000, Max=8192.000000, Default="0", Value = "0"
SurfacePixelType = Type=string, Allowed="RGB444" "RGB555" "RGB565" "RGB666" "RGB888" "BGR444" "BGR555" "BGR565" "BGR666" "BGR888", Default="RGB565", Value = "RGB565"
SurfacePredefinedResolution = Type=string, Allowed="176x200" "176x208" "240x320 (QVGA Portrait)" "240x400" "320x240 (QVGA Landscape)" "320x400" "320x480 (iPhone Portrait)" "400x240" "480x320 (iPhone Landscape)" "360x640 (qHD Portrait)" "640x360 (qHD Landscape)" "480x640 (VGA Portrait)" "480x800 (WVGA Portrait)" "640x480 (VGA Landscape)" "800x400" "800x480 (WVGA Landscape)" "640x960 (iPhone 4 Portrait)" "960x640 (iPhone 4 Landscape)" "1024x600 (Playbook Landscape)" "600x1024 (Playbook Portrait)" "768x1024 (iPad Portrait)" "1024x768 (iPad Landscape)" "2048x1536 (iPad Retina Landscape)" "1536x2048 (iPad Retina Portrait)", Default="320x480 (iPhone Portrait)", Value = "176x200"
SurfaceRotation = Type=string, Allowed="Rot0" "Rot90" "Rot180" "Rot270", Default="Rot0", Value = "Rot0"
SurfaceUnalign = Type=bool, Default="true", Value = "true"
SurfaceUseMultiBuffers = Type=bool, Default="true", Value = "true"
SurfaceWidth = Type=int, Min=128.000000, Max=4096.000000, Default="320", Value = "480"
SymbianSoundLatency = Type=int, Min=20.000000, Max=1400.000000, Default="120", Value = "120"
ThreadEnabled = Type=bool, Default="true", Value = "true"
TimerAccuracy = Type=int, Min=0.000000, Max=1000.000000, Default="0", Value = "0"
TimerHiRes = Type=bool, Default="false", Value = "false"
TimerLocaltimeOffsetHours = Type=string, Allowed="-12" "-11" "-10" "-9" "-8" "-7" "-6" "-5" "-4" "-3" "-2" "-1" "0" "+1" "+2" "+3" "+4" "+5" "+6" "+7" "+8" "+9" "+10" "+11" "+12" "+13" "SYSTEM", Default="SYSTEM", Value = "SYSTEM"
VibraEnabled = Type=bool, Default="true", Value = "true"
Video3GPP = Type=bool, Default="false", Value = "false"
VideoJPEG = Type=bool, Default="true", Value = "true"
VideoMPEG4 = Type=bool, Default="true", Value = "true"
VideoVolumeDefault = Type=int, Min=0.000000, Max=256.000000, Default="256", Value = "256"