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

📄 aud_vm.c

📁 最新MTK手机软件源码
💻 C
📖 第 1 页 / 共 5 页
字号:


/*****************************************************************************
 * FUNCTION
 *  aud_vm_record_callback
 * DESCRIPTION
 *  
 * PARAMETERS
 *  event       [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vm_record_callback(Media_Event event)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    aud_vm_read_data_ind_struct *ind_p = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ind_p = (aud_vm_read_data_ind_struct*) construct_local_para(sizeof(aud_vm_read_data_ind_struct), TD_CTRL);

    ind_p->event = (kal_uint8) event;

    aud_send_ilm(MOD_MED, MSG_ID_AUD_VM_READ_DATA_IND, ind_p, NULL);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_check_existing_file_name
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  
 *****************************************************************************/
kal_bool aud_vm_check_existing_file_name(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint16 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < aud_context_p->vm_info.num_of_vm && i < MAX_NUM_OF_VM_FILE; i++)
    {
        if (kal_wstrcmp(file_name, aud_context_p->vm_info.file_name_list[i]) == 0)
        {
            return KAL_TRUE;
        }
    }
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_new_file_name
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vm_new_file_name(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    t_rtc rtc_time;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    RTC_GetTime(&rtc_time);
#ifdef _WIN32
    rtc_time.rtc_year = 123;
    rtc_time.rtc_mon = 3;
    rtc_time.rtc_day = 6;
    rtc_time.rtc_hour = 12;
    rtc_time.rtc_min = 34;
    rtc_time.rtc_sec = 56;
#endif /* _WIN32 */ 
    kal_wsprintf(
        file_name,
        "%02d%02d%02d%02da.vm",
        rtc_time.rtc_mon,
        rtc_time.rtc_day,
        rtc_time.rtc_hour,
        rtc_time.rtc_min);
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_increase_file_name
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vm_increase_file_name(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    file_count++;
    if (file_count >= MAX_NUM_OF_VM_FILE)
    {
        file_count = 0;
    }

    file_name[RANDOM_POS] = (kal_wchar) (file_count + 'a');
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_get_current_file_name
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vm_get_current_file_name(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    file_count = 0;
    aud_vm_new_file_name(file_name);
    while (aud_vm_check_existing_file_name(file_name))
    {
        aud_vm_increase_file_name(file_name);
    }
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_change_file_name
 * DESCRIPTION
 *  
 * PARAMETERS
 *  old_name        [?]     
 *  new_name        [?]     
 * RETURNS
 *  
 *****************************************************************************/
kal_uint8 aud_vm_change_file_name(kal_wchar *old_name, kal_wchar *new_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint16 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < aud_context_p->vm_info.num_of_vm; i++)
    {
        if (kal_wstrcmp(old_name, aud_context_p->vm_info.file_name_list[i]) == 0)
        {
            kal_wchar full_name_1[FULL_NAME_LEN];
            kal_wchar full_name_2[FULL_NAME_LEN];

            kal_wsprintf(full_name_1, "%w\\%w", VM_DIR, old_name);
            kal_wsprintf(full_name_2, "%w\\%w", VM_DIR, new_name);
            if (FS_Rename(full_name_1, full_name_2) == FS_NO_ERROR)
            {
                kal_mem_cpy(aud_context_p->vm_info.file_name_list[i], new_name, MAX_VM_FILE_NAME * ENCODE_BYTE);
                return MED_RES_OK;
            }
            else
            {
                return MED_RES_FAIL;
            }
        }
    }
    return MED_RES_FAIL;
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_remove_file_from_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  
 *****************************************************************************/
kal_uint8 aud_vm_remove_file_from_list(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint16 i = 0, j = 0;
    kal_int32 result;
    kal_wchar *file_name_p;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    while (i < aud_context_p->vm_info.num_of_vm)
    {
        if (kal_wstrcmp(file_name, aud_context_p->vm_info.file_name_list[i]) == 0)
        {
            kal_wchar full_name[FULL_NAME_LEN];

            kal_wsprintf(full_name, "%w\\%w", VM_DIR, file_name);
            result = FS_Delete(full_name);
            if (result == FS_NO_ERROR)
            {
                file_name_p = aud_context_p->vm_info.file_name_list[i];
                for (j = i + 1; j < aud_context_p->vm_info.num_of_vm; j++)
                {
                    aud_context_p->vm_info.file_name_list[j - 1] = aud_context_p->vm_info.file_name_list[j];
                }
                aud_context_p->vm_info.file_name_list[aud_context_p->vm_info.num_of_vm] = file_name_p;
                aud_context_p->vm_info.num_of_vm--;
                aud_context_p->disc_full = KAL_FALSE;
                return MED_RES_OK;
            }
            else
            {
                return MED_RES_FAIL;
            }
        }
        i++;
    }
    return MED_RES_OPEN_FILE_FAIL;
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_remove_all_file_from_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  
 *****************************************************************************/
kal_uint8 aud_vm_remove_all_file_from_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint16 i;
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < aud_context_p->vm_info.num_of_vm && i < MAX_NUM_OF_VM_FILE; i++)
    {
        kal_wchar full_name[FULL_NAME_LEN];

        kal_wsprintf(full_name, "%w\\%w", VM_DIR, aud_context_p->vm_info.file_name_list[i]);
        result = FS_Delete(full_name);
        if (result != FS_NO_ERROR)
        {
            kal_print("[AUD][VM]Delete non-existing file.");
        }
    }

    aud_context_p->vm_info.num_of_vm = 0;
    aud_context_p->disc_full = KAL_FALSE;
    return MED_RES_OK;
}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_add_file_to_list
 * DESCRIPTION
 *  
 * PARAMETERS
 *  file_name       [?]     
 * RETURNS
 *  
 *****************************************************************************/
kal_bool aud_vm_add_file_to_list(kal_wchar *file_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (aud_context_p->vm_info.num_of_vm < MAX_NUM_OF_VM_FILE &&
        aud_context_p->vm_info.file_name_list[aud_context_p->vm_info.num_of_vm] != NULL)
    {
        kal_mem_cpy(
            aud_context_p->vm_info.file_name_list[aud_context_p->vm_info.num_of_vm],
            file_name,
            MAX_VM_FILE_NAME * ENCODE_BYTE);
        aud_context_p->vm_info.num_of_vm++;
        return KAL_TRUE;
    }
    else
    {
        return KAL_FALSE;
    }
}


/*****************************************************************************
 * FUNCTION
 *  aud_check_free_space
 * DESCRIPTION
 *  
 * PARAMETERS
 *  drive_name      [?]     
 * RETURNS
 *  
 *****************************************************************************/
kal_bool aud_check_free_space(kal_wchar *drive_name)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    FS_DiskInfo disk_info;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    FS_GetDiskInfo(drive_name, &disk_info, FS_DI_FREE_SPACE);
    if (disk_info.FreeClusters > 0)
    {
        return KAL_TRUE;
    }
    else
    {
        return KAL_FALSE;
    }

}


/*****************************************************************************
 * FUNCTION
 *  aud_vm_record_req_hdlr
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void aud_vm_record_req_hdlr(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint8 cnf_result;

⌨️ 快捷键说明

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