⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfw_ffs.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    {
        ConfigFLASHSMSReset();          //hxl add for avoid fread fail error 2002-11-25
        return ffs_fread(str,&FFS_SMSData,sizeof(FFS_SMSData));
    }
}
#if 0
void FlashSmsInitialise(void)
{
    FFS_SMSData = ALDefaultFlashSMS;
}
effs_t flash_Smswrite()
{ //write_flag = DATA;
    //return ffs_fwrite("/mmi/FlashSmsData",  &FFS_SMSData, sizeof(FFS_SMSData));
    ffsfileCmd.ffsfile[SmsFileIdx].pdir=FFSFILE_SMS_PATH;
    ffsfileCmd.ffsfile[SmsFileIdx].pdata=&FFS_SMSData;
    ffsfileCmd.ffsfile[SmsFileIdx].size=sizeof(FFS_SMSData);
    ffsfileCmd.ffsfile[SmsFileIdx].writeStatus=1;
    return 0;

}
effs_t flash_Smsread()
{
    FlashSmsInitialise();   //hxl add for avoid fread fail error 2002-11-25
    return ffs_fread(FFSFILE_SMS_PATH,  &FFS_SMSData, sizeof(FFS_SMSData));
}
#endif


/*---------------------end windy added for flash sms-----------------------------*/

/*------------------------------phonebook default data struct and function------------------*/
static const FlashPBotherdata ALDefaultOtherConfigPhbk=
{  
    {{"",""},{"",""},{"",""},{"",""},{"",""},{"",""},{"",""},{"",""},{"",""}},
    {{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0}}
};

static const FlashPBdata ALDefaultConfigPhbk=
{
    {{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//05
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//10
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//15
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//20
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//25
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//30
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//35
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//40
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//45
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//50
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//55
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//60
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//65
        {"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},{"","","","","",0x0F},//70
        {"","","","","",0x0F},{"","","","","",0x0F},//72
    }  
};

/* glowing: add the record time from 20 seconds to 30 seconds, cut down
   VM_file from 10 to 6 */

/*
static const FlashVMdata ALDefaultConfigVM=
{
  {{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},//05   
   {"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0}}//10  
};

char vm_name[VM_file][5]={"vm01","vm02","vm03","vm04","vm05",
                          "vm06","vm07","vm08","vm09","vm10"};
*/


static const FlashVMdata ALDefaultConfigVM=
{
    {{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},{"",0,0,0,0,0,0},//05   
        {"",0,0,0,0,0,0}}//6  
};

char vm_name[VM_file][5]={"vm01","vm02","vm03","vm04","vm05",
    "vm06"};

/* 2004/04/22 sunsj modify */
char PBTable[PHB_PBTable][15]={"PhoneRecord1","PhoneRecord2","PhoneRecord3"};

FlashVMdata            FFS_VMData;
FlashPBdata             FFS_PBData;
FlashPBotherdata         FFS_PBOtherData;
T_MFW_PHB_INDEX       l_phb_index[ALL_NUMBER_LIST];
UINT8 SimNumber[ALL_SIM_LIST][PHB_number_len/2+1];
int                     NVMTotal,SIMTotal,PHBKTotal;
U8                     SIMLoadingPhbk;
U8              NVMLoadingPhbk=TRUE;//hxl add for update nvm list data 2002-10-21
T_MFW_PHB_SORT_INDEX l_phb_sort_index[ALL_NUMBER_LIST];
T_MFW_PHB_TABLE       CurrentTable;
T_EntryEvent            phonebookstatus;
int                     Copyidx;

static MfwHnd ffscheck=0;       //Bob added 02/17
int ffs_status=0;       //Bob added 02/17	
void FfsCheckEvent();
void ConfigVMReset(void)
{
    FFS_VMData=ALDefaultConfigVM;
}

int flash_VMwrite(const char *filename) 
{ 
    char str[20]="/voicememory/";
    strcat(str,filename);  
    MmiTrace("flash_VMwrite");

    //return ffs_fwrite(str,&FFS_VMData,sizeof(FFS_VMData));
    ffsfileCmd.ffsfile[VMFileIdx].pdir=FFSFILE_VM_PATH;
    ffsfileCmd.ffsfile[VMFileIdx].pdata=&FFS_VMData;
    ffsfileCmd.ffsfile[VMFileIdx].size=sizeof(FFS_VMData);
    ffsfileCmd.ffsfile[VMFileIdx].writeStatus=1;
    //if time is stop
    return 0;

}

int  flash_VMread(const char *filename)
{
    char str[20]="/voicememory/";  
    strcat(str,filename);
    if( flash_CheckStat(str)<0 ) return 0;
    else
    {
        ConfigVMReset();        //hxl add for avoid fread fail error 2002-11-25
        return ffs_fread(str,&FFS_VMData,sizeof(FFS_VMData));
    }
}

static const ffsgamedata defaulffs_gamedata=
{
    /*
{20000, 20000, 20000, 15000},
{
    {IconDifficult,   0             },
    {IconAudio  ,  40             },
    {IconLeft   ,  KCD_MNULEFT   },
    {IconRight  ,  KCD_MNURIGHT },
    {IconDown  ,  KCD_MNUDOWN },
    {IconUp    ,  KCD_MNUUP    },
    {IconFire   ,  KCD_OK        },
    {IconExit   ,  KCD_HUP       },
    {IconDefault ,  0xff          },
},
*/
#if 0
    {
        {IconAudio  , 40},
        {IconLeft   ,  KCD_MNULEFT},
        {IconRight  ,  KCD_MNURIGHT},
        {IconDown  ,  KCD_MNUDOWN},
        {IconChange,  KCD_OK},
        {IconPause,   KCD_CALL},
        {IconExit   ,  KCD_HUP},
        {IconDefault ,  0xff},
    },
    {
        {IconAudio  ,  40},
        {IconLeft   ,  KCD_MNULEFT},
        {IconRight  ,  KCD_MNURIGHT},
        {IconDown  ,  KCD_MNUDOWN},
        {IconUp    ,  KCD_MNUUP},
        {IconRestart ,  KCD_CALL},
        {IconRegret ,  KCD_RIGHT},
        {IconExit   ,  KCD_HUP},
        {IconDefault ,  0xff},
    },
#endif
    //{1880,1000,1000,100,0,},
    {500,400,300,0,0,},//russia score
    {//bocmap save
        {1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,4,1,1,1,1,1,1,
            1,1,1,1,1,2,1,1,1,1,1,1,
            1,1,1,1,1,3,2,3,4,1,1,1,
            1,1,1,4,2,3,5,1,1,1,1,1,
            1,1,1,1,1,1,3,1,1,1,1,1,
            1,1,1,1,1,1,4,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,1,1},
        2,
        0
    },
 /*2004/0515,talcon modify*/
 {0,0,0,0,0,},//snake score
};

ffsgamedata ffs_gamedata;

void ConfigGameInit(void)
{
    memcpy(&ffs_gamedata,&defaulffs_gamedata,sizeof(ffsgamedata));
}

int flash_Gamewrite(void)   
{ 
    MmiTrace("flash_Gamewrite");

    ffsfileCmd.ffsfile[GameFileIdx].pdir=FFSFILE_GAME_PATH;
    ffsfileCmd.ffsfile[GameFileIdx].pdata=&ffs_gamedata;
    ffsfileCmd.ffsfile[GameFileIdx].size=sizeof(ffsgamedata);
    ffsfileCmd.ffsfile[GameFileIdx].writeStatus=1;
    return 0;

}

int  flash_Gameread(void)
{
	if(ffsfileCmd.ffsfile[GameFileIdx].writeStatus==1)
		return 0;
    ConfigGameInit();       //hxl add for avoid fread fail error 2002-11-25
    return ffs_fread(FFSFILE_GAME_PATH,&ffs_gamedata,sizeof(ffsgamedata));
}

void ConfigPhbkReset(void)
{
    FFS_PBData=ALDefaultConfigPhbk;
}

void ConfigPhbkOtherReset(void)
{
    FFS_PBOtherData=ALDefaultOtherConfigPhbk;
}

effs_t flash_PBwrite(const char *filename)  
{ 
    char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
    int       idx=0;
    char *path=0;
    strcat(str,filename);  
    MmiTrace("flash_PBwrite");

    return ffs_fwrite(str,&FFS_PBData,sizeof(FFS_PBData)); 
#if 0
    switch( filename[9] )   //"PhoneBook7"
    {
    case 0x31:
        idx=PHB1FileIdx;
        path=FFSFILE_PHB1_PATH;
        break;
    case 0x32:
        idx=PHB2FileIdx;
        path=FFSFILE_PHB2_PATH;
        break;
    case 0x33:
        idx=PHB3FileIdx;
        path=FFSFILE_PHB3_PATH;
        break;
    case 0x34:
        idx=PHB4FileIdx;
        path=FFSFILE_PHB4_PATH;
        break;
    case 0x35:
        idx=PHB5FileIdx;
        path=FFSFILE_PHB5_PATH;
        break;
    case 0x36:
        idx=PHB6FileIdx;
        path=FFSFILE_PHB6_PATH;
        break;
    case 0x37:
        idx=PHB7FileIdx;
        path=FFSFILE_PHB7_PATH;
        break;
    default:
        break;
    }

    ffsfileCmd.ffsfile[idx].pdir=path;
    ffsfileCmd.ffsfile[idx].pdata=&FFS_PBData;
    ffsfileCmd.ffsfile[idx].size=sizeof(FFS_PBData);
    ffsfileCmd.ffsfile[idx].writeStatus=1;
    //if time is stop
    return 0;

#endif
}

int  flash_PBread(const char *filename)
{
    char str[20]="/bmi/";     /* 2004/04/22 sunsj modify */
    strcat(str,filename);
    if( flash_CheckStat(str)<0 )
        return 0;
    else
    {
        ConfigPhbkReset();          //hxl add for avoid fread fail error 2002-11-25
        return ffs_fread(str,&FFS_PBData,sizeof(FFS_PBData));
    }
}

effs_t flash_PBOtherWrite(const char *filename) 
{ 
    char str[20]="/bmi/"; /* 2004/04/22 sunsj modify */
    strcat(str,filename);  
    MmiTrace("flash_PBOtherWrite");

    //return ffs_fwrite(str,&FFS_PBOtherData,sizeof(FFS_PBOtherData));  
    ffsfileCmd.ffsfile[PBOFileIdx].pdir=FFSFILE_PBO_PATH;
    ffsfileCmd.ffsfile[PBOFileIdx].pdata=&FFS_PBOtherData;
    ffsfileCmd.ffsfile[PBOFileIdx].size=sizeof(FFS_PBOtherData);
    ffsfileCmd.ffsfile[PBOFileIdx].writeStatus=1;
    //if time is stop
    return 0;

}

effs_t flash_PBOtherRead(const char *filename)
{
    char str[20]="/bmi/";     /* 2004/04/22 sunsj modify */
    strcat(str,filename);
    if( flash_CheckStat(str)<0 )
        return 0;
    else
    {
        ConfigPhbkOtherReset(); //hxl add for avoid fread fail error 2002-11-25
        return ffs_fread(str,&FFS_PBOtherData,sizeof(FFS_PBOtherData));
    }
}

#if 0
effs_t flash_PBupdate(const char *filename)
{ 
    char str[20]="/bmi/";     /* 2004/04/22 sunsj modify */
    strcat(str,filename);

    if( write_flag==DATA )
    {
        write_flag=NO_DATA;
        return ffs_fwrite(str,&FFS_PBData,sizeof(FFS_PBData));
    }
    else return EFFS_OK;
}
#endif

effs_t flash_PBmkdir(const char *pathname)
{
    return ffs_mkdir(pathname);
}

effs_t flash_Opendir(const char *pathname)
{
    struct dir_s dir;

    return ffs_opendir(pathname,&dir);
}

effs_t flash_CheckStat(const char *name)
{
    struct stat_s stat;

    return ffs_stat(name,&stat);
}

USHORT GetShortNumber(const char * numstr)
{
    USHORT ShortNum;
    char    Result[22];  /* 2003/12/22 sunsj modify */
    int      i,len;
    char tempstr[22]="";    /* 2003/12/22 sunsj modify */
    ShortNum=0x0000;
    /* 2003/12/22 sunsj initialize temp buffer */
    memset(tempstr, 0x00, sizeof(char)*22);
    if( numstr[0]=='+' )
        memcpy(tempstr,&numstr[3],18);
    else if( numstr[0]=='0'&&numstr[1]=='0' )
        memcpy(tempstr,&numstr[4],17);
    else memcpy(tempstr,numstr,21);
    len=strlen(tempstr)-1;
    for( i=len;i>=0;i-- )
        Result[len-i]=tempstr[i];
    Result[len-i]='\0';

    for( i=0;i<7;i=i+2 )
    {
        switch( i )
        {
        case 0: if( strlen(Result)-1>=i ) ShortNum=ShortNum+(Result[i]-48);
            else ShortNum=ShortNum+0x0F;       
            break;
        case 2: if( strlen(Result)-1>=i ) ShortNum=(ShortNum<<4)+(Result[i]-48);
            else ShortNum=(ShortNum<<4)+0x0F;      
            break;
        case 4: if( strlen(Result)-1>=i ) ShortNum=(ShortNum<<4)+(Result[i]-48);
            else ShortNum=(ShortNum<<4)+0x0F;      
            break;
        case 6: if( strlen(Result)-1>=i ) ShortNum=(ShortNum<<4)+(Result[i]-48);
            else ShortNum=(ShortNum<<4)+0x0F;      
            break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -