#define ADD_APPLICATION_STRING(stringId, string) /
RES_PRINT_INFO("ADD STRING/t(%s [%d]).../n", __FILE__, __LINE__); /
SetString(stringId, string, #stringId, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_STRING2(stringId, string, display) /
RES_PRINT_INFO("ADD STRING2/t(%s [%d]).../n", __FILE__, __LINE__); /
SetStringWithDisplay(stringId, string, display, #stringId, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_STRING3(stringId, tmp, string, display) /
RES_PRINT_INFO("ADD STRING3/t(%s [%d]).../n", __FILE__, __LINE__); /
SetStringWithDisplay(stringId, string, display, tmp, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_IMAGE(ImageId, ImgFileName) /
RES_PRINT_INFO("ADD IMAGE/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImage(ImageId, ImgFileName, #ImageId, RES_IMAGE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_IMAGE2(ImageId, filename, display) /
RES_PRINT_INFO("ADD IMAGE2/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImageWithBuffer(ImageId, filename, display, #ImageId, RES_IMAGE, FALSE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_IMAGE3(ImageId, filename, display) /
RES_PRINT_INFO("ADD IMAGE3/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImageWithBuffer(ImageId, filename, display, #ImageId, RES_IMAGE, TRUE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_IMAGE4(ImageId, tmp, path, filename, display, isMB) /
RES_PRINT_INFO("ADD IMAGE4/t(%s [%d]).../n", __FILE__, __LINE__); /
{char fullpath[150]; sprintf(fullpath, "%s%s", path, filename); /
SetImageWithBuffer(ImageId, fullpath, display, tmp, RES_IMAGE, isMB, __FILE__);} /
RES_PRINT_INFO("/tdone./n");
#define ADD_NFB_IMAGE(args) /
RES_PRINT_INFO("ADD NFB IMAGE/t(%s [%d]).../n", __FILE__, __LINE__); /
SetNFBImage(args); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MEDIA(ImageId, ImgFileName) /
RES_PRINT_INFO("ADD MEDIA/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImage(ImageId,ImgFileName,#ImageId, RES_MEDIA, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MEDIA2(ImageId, filename, display) /
RES_PRINT_INFO("ADD MEDIA2/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImageWithBuffer(ImageId, filename, display, #ImageId, RES_MEDIA, FALSE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MEDIA3(ImageId, filename, display) /
RES_PRINT_INFO("ADD MEDIA3/t(%s [%d]).../n", __FILE__, __LINE__); /
SetImageWithBuffer(ImageId, filename, display, #ImageId, RES_MEDIA, TRUE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MEDIA4(ImageId, tmp, path, filename, display, isMB) /
RES_PRINT_INFO("ADD MEDIA4/t(%s [%d]).../n", __FILE__, __LINE__); /
{char fullpath[150]; sprintf(fullpath, "%s%s", path, filename); /
SetImageWithBuffer(ImageId, fullpath, display, tmp, RES_MEDIA, isMB, __FILE__);} /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_AUDIO2(AudioId, filename, display) /
RES_PRINT_INFO("ADD AUDIO2/t(%s [%d]).../n", __FILE__, __LINE__); /
SetAudioWithBuffer(AudioId, filename, display, #AudioId, RES_AUDIO, FALSE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_AUDIO3(AudioId, filename, display) /
RES_PRINT_INFO("ADD AUDIO3/t(%s [%d]).../n", __FILE__, __LINE__); /
SetAudioWithBuffer(AudioId, filename, display, #AudioId, RES_AUDIO, TRUE, __FILE__); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MENUITEM(args) /
RES_PRINT_INFO("ADD MENUITEM/t(%s [%d]).../n", __FILE__, __LINE__); /
SetMenuItem args; /
strcpy(g_resmenu_filename, __FILE__); /
PrintMenuItems(#args); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION_MENUITEM2(args) /
RES_PRINT_INFO("ADD MENUITEM2/t(%s [%d]).../n", __FILE__, __LINE__); /
SetMenuItem2 args; /
strcpy(g_resmenu_filename, __FILE__); /
PrintMenuItems2(#args); /
RES_PRINT_INFO("/tdone./n");
#define ADD_APPLICATION(nId, pName, nMinId, nMaxId) /
AddApp(nId, pName, nMinId, nMaxId);
#define RESOURCE_ID_OUT_OF_RANGE_HANDLER() /
do { /
RES_PRINT_INFO("[ResGen error] Use more resource IDs than pre-defined range. (%s [%d])/n", __FILE__, __LINE__); /
} while (0)
#######################################################################
#define RES_PRINT_INFO(f, a...) printf(f, ##a); fflush(stdout);
_CRTIMP int __cdecl printf (const char*, ...);
_CRTIMP int __cdecl fflush (FILE*);
#ifdef __MTK_TARGET__
#define printf CAN_NOT_USE_PRINTF
#endif
#######################################################################
void SetString(U16 StrId, S8 *String1, S8 *enum_value, S8 *resfile)
{
SetStringWithDisplay(StrId, String1, String1, enum_value, resfile);
}
void SetStringWithDisplay(U16 nStrId, S8 *pString1, S8 *pDisplay1, S8 *enum_value, S8 *resfile)
{
S8 *pString = NULL;
S8 *pEnum_value = NULL;
g_ressize = 1; //strlen(pString1);
#ifdef _POPULATE_RES_C
if (strstr(pString1, "/n") == NULL)
{
RESPRTONERECORD(fpStringResourceUsage, nStrId, pString1, enum_value, resfile);
}
else
{
RESPRTONERECORD(fpStringResourceUsage, nStrId, "N/A", enum_value, resfile);
}
#endif
if (*pString1 == '/0')
{
pString = malloc(4);
*pString = 20;
*(pString + 1) = '/0';
*(pString + 2) = '/0';
*(pString + 3) = '/0';
}
else
{
pString = malloc((strlen(pString1) + 1) * 2);
AnsiiToUnicodeString(pString, pString1);
}
pEnum_value = malloc((strlen(enum_value) + 1) * 2);
AnsiiToUnicodeString(pEnum_value, enum_value);
// if(CurrMaxStringId >= MAX_STRING_IDS) return;
// if (gpStringMapRes[nStrId]==(U16)-1)
if (StrIsPopulate[nStrId] == 0)
{
CurrMaxStringId++;
StrIsPopulate[nStrId] = 1;
StrEnum[nStrId] = pEnum_value;
Str[nStrId] = pString;
}
else
{
fprintf(RepeatIDListFile, "%d/t%s/t/t%s/n", nStrId, enum_value, "String");
}
}
#######################################################################
void SetImage(U16 ImgId, S8 *filename, S8 *enum_value, U32 res_type, S8 *resfile)
{
SetImageWithBuffer(ImgId, filename, "", enum_value, res_type, FALSE, resfile);
}
void SetImageWithBuffer(U16 nImgId, S8 *filename, S8 *pDisplayName, S8 *enum_value, U32 res_type, BOOL imgFlag, S8 *resfile)
{
U16 i;
U16 found = 0;
S16 nStrlen;
ResourceInfo sInfo;
U16 nType;
S8 upperFileName[MAX_FILENAME_LEN];
unsigned short *pCurrMaxImageId;
unsigned short *pCurrMaxImageNum;
IMAGENAME_LIST *pImageNameList;
CUSTOM_IMAGE_MAP *pImageIdMap;
if (imgFlag == TRUE)
{
ExtImageFlag = EXT_IMAGE;
pCurrMaxImageId = &CurrMaxImageIdEXT;
pCurrMaxImageNum = &CurrMaxImageNumEXT;
pImageNameList = ImageNameListEXT;
pImageIdMap = ImageIdMapEXT;
#ifdef __MMI_RESOURCE_ENFB_SUPPORT__
#ifdef MULTIPLE_BINARY_FILES
disableENFB = 1;
#endif
#endif
}
else
{
ExtImageFlag = SYSTEM_IMAGE;
pCurrMaxImageId = &CurrMaxImageId;
pCurrMaxImageNum = &CurrMaxImageNum;
pImageNameList = ImageNameList;
pImageIdMap = ImageIdMap;
}
if (*pCurrMaxImageId >= MAX_IMAGE_IDS_SIZE)
{
return;
}
fprintf(OutputImgIDFile, "file name%d = %s /n", image_idx++, filename);
if (strlen(filename) >= MAX_FILENAME_LEN)
{
filename[MAX_FILENAME_LEN - 1] = '/0';
}
if (!(strcmp(filename, "")))
{
strcpy(filename_buffer, NOIMAGE_FILENAMEBUFFER);
}
nStrlen = strlen(filename);
while (nStrlen >= 0)
{
upperFileName[nStrlen] = toupper(filename[nStrlen]);
--nStrlen;
}
if (pImageIdMap[nImgId].nImageNum != (U16)-1)
{
switch (res_type)
{
case RES_IMAGE:
fprintf(RepeatIDListFile, "%d/t%s/t/t%s/n", nImgId, enum_value, "Image");
break;
case RES_MEDIA:
fprintf(RepeatIDListFile, "%d/t%s/t/t%s/n", nImgId, enum_value, "Media");
break;
default:
printf("Non supported resource type!/n");
}
return;
}
for (i = 0; i < *pCurrMaxImageNum; i++)
{
if (!strcmp(pImageNameList[i].filename, upperFileName))
{
found = 1;
break;
}
}
g_ressize = 0;
g_real_filename = filename;
if (found)
{
pImageIdMap[nImgId].nImageNum = i;
(*pCurrMaxImageId)++;
#ifdef __MMI_RESOURCE_ENFB_SUPPORT__//100206 ENFB support
if ((disableENFB == 0) && (ENFBAssociatedIDFlag == MMI_TRUE))
{
if (IfItemExistENFBAssociatedID(upperFileName, res_type))//already in other associated group
{
AddENFBAssociatedIDItem(nImgId, upperFileName, res_type);
}
else
{
fprintf(RepeatIDListFile, "/n/n!!!!!!!!!!!!%d/t%s/t/t%s!!!!!!!!!!!!!/n/n", nImgId, enum_value, upperFileName);
}
}
#endif
#if defined(_POPULATE_RES_C) && !defined(PRODUCTION_RELEASE)
{
S8 str1[MAX_IMAGE_NAMES_SIZE];
S8 str2[MAX_IMAGE_NAMES_SIZE];
U32 i, j;
strcpy(str1, filename);
for (j = 0; j < strlen(str1); j++)
{
str1[j] = toupper(str1[j]);
}
for (i = 0; i < g_resimg_count; i++)
{
strcpy(str2, g_resimg_table[i].filename);
for (j = 0; j < strlen(str1); j++)
{
str2[j] = toupper(str2[j]);
}
if (strcmp(str1, str2) == 0)
{
g_ressize = g_resimg_table[i].size;
g_real_filename = g_resimg_table[i].real_filename;
break;
}
}
}
RESPRTONERECORD(fpImageResourceUsage, nImgId, g_real_filename, enum_value, resfile);
#endif
}
else
{
if (Iload(upperFileName, &nType))
{
strcpy(pImageNameList[*pCurrMaxImageNum].filename, upperFileName);
pImageIdMap[nImgId].nImageNum = *pCurrMaxImageNum;
(*pCurrMaxImageNum)++;
(*pCurrMaxImageId)++;
#ifdef __MMI_RESOURCE_ENFB_SUPPORT__
if ((disableENFB == 0) && (ENFBAssociatedIDFlag == MMI_TRUE))
{
if (ENFBAssociatedIDAdded == MMI_TRUE)//already in other associated group
{
AddENFBAssociatedIDItem(nImgId, upperFileName, res_type);
ENFBAssociatedIDAdded = MMI_FALSE;
}
}
#endif
#if defined(_POPULATE_RES_C) && !defined(PRODUCTION_RELEASE)
g_resimg_table[g_resimg_count].size = g_ressize;
strcpy(g_resimg_table[g_resimg_count].filename, filename);
strcpy(g_resimg_table[g_resimg_count].real_filename, g_real_filename);
g_resimg_count ++;
RESPRTONERECORD(fpImageResourceUsage, nImgId, g_real_filename, enum_value, resfile);
#endif
}
else
{
if (toolFlag)
{
resultFailFlag = 1;
}
strcpy(ImageNameList[CurrMaxImageNum].filename, DEFAULT_FILEBUFFER);
ImageIdMap[nImgId].nImageNum = CurrMaxImageNum;
CurrMaxImageNum++;
CurrMaxImageId++;
}
}
sInfo.pDisplayValue = pDisplayName;
sInfo.pValue = upperFileName;
#ifdef __MMI_RESOURCE_ENFB_SUPPORT__
disableENFB = 0;
#endif
}