JPEG and File fixes

* Fixes to JPEG loader
* Fixes to image loader to load tiff and unknown formats properly
This commit is contained in:
Mat Hopwood 2012-11-29 19:54:42 +00:00 committed by James Chen
parent 9f168faeb0
commit 3b2eea2541
3 changed files with 354 additions and 155 deletions

View File

@ -552,77 +552,77 @@ bool CCImage::initWithImageData(void * pData,
int nHeight,
int nBitsPerComponent)
{
bool bRet = false;
do
{
CC_BREAK_IF(! pData || nDataLen <= 0);
if (kFmtPng == eFmt)
{
bRet = _initWithPngData(pData, nDataLen);
break;
}
else if (kFmtJpg == eFmt)
{
bRet = _initWithJpgData(pData, nDataLen);
break;
}
else if (kFmtTiff == eFmt)
{
bRet = _initWithTiffData(pData, nDataLen);
break;
}
else if (kFmtRawData == eFmt)
{
bRet = _initWithRawData(pData, nDataLen, nWidth, nHeight, nBitsPerComponent);
break;
}
else
{
// if it is a png file buffer.
if (nDataLen > 8)
{
unsigned char* pHead = (unsigned char*)pData;
if ( pHead[0] == 0x89
&& pHead[1] == 0x50
&& pHead[2] == 0x4E
&& pHead[3] == 0x47
&& pHead[4] == 0x0D
&& pHead[5] == 0x0A
&& pHead[6] == 0x1A
&& pHead[7] == 0x0A)
{
bRet = _initWithPngData(pData, nDataLen);
break;
}
}
// if it is a tiff file buffer.
if (nDataLen > 2)
{
unsigned char* pHead = (unsigned char*)pData;
if ( (pHead[0] == 0x49 && pHead[1] == 0x49)
|| (pHead[0] == 0x4d && pHead[1] == 0x4d)
)
{
bRet = _initWithTiffData(pData, nDataLen);
break;
}
}
// if it is a jpeg file buffer.
if (nDataLen > 2)
{
unsigned char* pHead = (unsigned char*)pData;
if ( pHead[0] == 0xff
&& pHead[1] == 0xd8)
{
bRet = _initWithJpgData(pData, nDataLen);
break;
}
}
}
} while (0);
bool bRet = false;
do
{
CC_BREAK_IF(! pData || nDataLen <= 0);
if (kFmtPng == eFmt)
{
bRet = _initWithPngData(pData, nDataLen);
break;
}
else if (kFmtJpg == eFmt)
{
bRet = _initWithJpgData(pData, nDataLen);
break;
}
else if (kFmtTiff == eFmt)
{
bRet = _initWithTiffData(pData, nDataLen);
break;
}
else if (kFmtRawData == eFmt)
{
bRet = _initWithRawData(pData, nDataLen, nWidth, nHeight, nBitsPerComponent);
break;
}
else
{
// if it is a png file buffer.
if (nDataLen > 8)
{
unsigned char* pHead = (unsigned char*)pData;
if ( pHead[0] == 0x89
&& pHead[1] == 0x50
&& pHead[2] == 0x4E
&& pHead[3] == 0x47
&& pHead[4] == 0x0D
&& pHead[5] == 0x0A
&& pHead[6] == 0x1A
&& pHead[7] == 0x0A)
{
bRet = _initWithPngData(pData, nDataLen);
break;
}
}
// if it is a tiff file buffer.
if (nDataLen > 2)
{
unsigned char* pHead = (unsigned char*)pData;
if ( (pHead[0] == 0x49 && pHead[1] == 0x49)
|| (pHead[0] == 0x4d && pHead[1] == 0x4d)
)
{
bRet = _initWithTiffData(pData, nDataLen);
break;
}
}
// if it is a jpeg file buffer.
if (nDataLen > 2)
{
unsigned char* pHead = (unsigned char*)pData;
if ( pHead[0] == 0xff
&& pHead[1] == 0xd8)
{
bRet = _initWithJpgData(pData, nDataLen);
break;
}
}
}
} 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"