mtk-在手机内存中固化一首歌

来源:互联网 发布:上瘾网络剧腾讯视频 编辑:程序博客网 时间:2024/05/03 01:41

#if 1//daizhx

定义mp3数据

__align(2) static const unsigned char mp3_name1[] = {.............}

#define   MMI_MP3FILE_SUBFIX       ".mp3" // PB备份文件后缀?

#define MP3_NUM  1

S16 Have_Copyed = 0;

#define MP3_name_string L"MUSIC"

void Copy_Mp3To_Nvram(void)

{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
  
 FS_HANDLE fp,fp2;
 
 S8 tmp_str[60] = {0};
 S8 tmp_str2[60] = {0};
      S8 mp3_folder_path[60 * 2] = {0};
      S8 mp3_folder_path2[60 * 2] = {0};
 S8 subfix_str[4+1];
 S8 subfix_name[(4+1) * 2];
 UI_character_type name[260+1];
 
 U32  written;
 S32 fs_ret;
      U64 disk_free_space;
 FS_DiskInfo disk_info;
 U32 audio_len;
     U8 i,j;
 S32 create_result;
kal_prompt_trace(MOD_MMI,"Copy_Mp3To_Nvram"); 
 audio_len=sizeof(mp3_name1);
 
       sprintf(tmp_str, "%c", SRV_FMGR_PUBLIC_DRV);
 mmi_asc_to_ucs2((S8*) mp3_folder_path, (S8*) tmp_str);

 fs_ret = FS_GetDiskInfo((PU16) mp3_folder_path, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);

 memset(tmp_str, 0x00, strlen(tmp_str));
 memset(mp3_folder_path, 0x00, 2*mmi_ucs2strlen(mp3_folder_path));
 
 disk_free_space = 0;

 if (fs_ret >= 0)
   {
        disk_free_space = (U64)disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;
   }
 if((disk_free_space <= audio_len)||(disk_free_space<=10*1024))
 {
  kal_prompt_trace(MOD_MMI,"disk_free_space=%d,audio_len=%d",disk_free_space,audio_len);
  return;
 }

       sprintf(tmp_str2, "%c%s", SRV_FMGR_PUBLIC_DRV, ":\\My Music\\");
     mmi_asc_to_ucs2((S8*) mp3_folder_path2, (S8*) tmp_str2);
     create_result = FS_CreateDir((PU16) mp3_folder_path2);
 kal_prompt_trace(MOD_MMI,"create_result=%d",create_result); 

     if (create_result != FS_NO_ERROR)
 {
         if (create_result == FS_DISK_FULL)
         {
         kal_prompt_trace(MOD_MMI,"FS_DISK_FULL");
             return;    
         }
         else if (create_result == FS_ROOT_DIR_FULL)
         {
         kal_prompt_trace(MOD_MMI,"FS_ROOT_DIR_FULL");
             return;       
         }
  }
 for(i=0;i<MP3_NUM;i++)
 {
  memset(tmp_str, 0x00, strlen(tmp_str));
  memset(mp3_folder_path, 0x00, 2*mmi_ucs2strlen(mp3_folder_path));
  memset(subfix_str, 0x00, strlen(subfix_str));
  memset(subfix_name, 0x00, 2*mmi_ucs2strlen(subfix_name));
  memset(name, 0x00, 2*mmi_ucs2strlen((S8*) name));
      sprintf(tmp_str, "%c%s", SRV_FMGR_PUBLIC_DRV, ":\\My Music\\");
      mmi_asc_to_ucs2((S8*) mp3_folder_path, (S8*) tmp_str);
  sprintf(subfix_str, "%s", MMI_MP3FILE_SUBFIX);
  mmi_asc_to_ucs2((S8*) subfix_name, (S8*) subfix_str);

      if(i==0)
      {
      mmi_ucs2cpy((S8*)name, (S8*)MP3_name_string);
      
      }
  
   
  mmi_ucs2cat((S8*)name, subfix_name);
  mmi_ucs2cat(mp3_folder_path,(S8*) name);

       fp2=FS_Open((PU16)mp3_folder_path,FS_READ_ONLY);
  kal_prompt_trace(MOD_MMI,"fp2=%d",fp2);
        if(fp2< 0)
       {
   if ((fp = FS_Open((PU16)mp3_folder_path, (FS_READ_WRITE | FS_CREATE_ALWAYS))) < FS_NO_ERROR)
         {
            return;
         }
   
        if(i==0)
   {
         FS_Write(fp, (void *)mp3_name1, sizeof(mp3_name1), &written);
    kal_prompt_trace(MOD_MMI,"FS_Write sucess!"); 
        }
        
        FS_Close(fp);
      }
      else
      {

           Have_Copyed=1;
     
    FS_Close(fp2);
      }
 }
}

#endif

在函数mmi_audply_app_pre_entry中加上

#if 1//daizhx insert mp3
 if(Have_Copyed==0)
 {
  Copy_Mp3To_Nvram();
 }
#endif

原创粉丝点击