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

📄 dcw_pb_interface.c

📁 重写的展迅电话本, 重写的展迅电话本, 重写的展迅电话本,
💻 C
📖 第 1 页 / 共 2 页
字号:
                        *iconIdPtr = IMAGE_PHONEBOOK_GROUP_FAMILY;
                        break;
                    case 2:
                        *iconIdPtr = IMAGE_PHONEBOOK_GROUP_FRIEND;
                        break;
                    case 3:
                        *iconIdPtr = IMAGE_PHONEBOOK_GROUP_COLLEAGUE;
                        break;
                    case 4:
                        *iconIdPtr = IMAGE_PHONEBOOK_GROUP_SCHOOLMATE;
                        break;
                    default: 
                        *iconIdPtr = IMAGE_PHONEBOOK_GROUP;
                        break;
                    }
                }
            }
        }
        else
        {
        }
        return TRUE;
    }
    else
    {   /* 不存在包含该电话码的记录 */
        return FALSE;
    }
}
/****************************************************************************
 *  Function name : DCW_PB_getRecordAddrByBcdNum
 *  Description   : 通过一个BCD电话码,查找包含该电话的记录的信息
 *  Param         : *storage    记录所在的存储器,NV 或者 SIM卡
                    *id         在存储器上的存储位置
                    *bcdNum     BCD电话码,InPut
 *  Return        : BOOLEAN     TRUE    查找成功
                                FALSE   查找失败
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
BOOLEAN DCW_PB_getRecordAddrByBcdNum(PHONEBOOK_STORAGE_E *storagePtr,uint16 *idPtr,T_PB_BCD_NUMBER  *bcdNumPtr)
{
    if(DCW_PB_searchNumInNumList(bcdNumPtr,idPtr,storagePtr) == TRUE)
    { 
        /* 短信息模块调用此程序,该模块认为 *id == 0 为无效的ID*/
        *idPtr++;
        return TRUE;       
    }   
    else
    { 
        *idPtr = 0;
        return FALSE;
    }
}
/****************************************************************************
 *  Function name : DCW_PB_getRecordInfoByAddr
 *  Description   : 通过一个记录地址,查找该记录的信息
 *  Param         : *namePtr    记录的名字
                    nameMaxLen  名字的最大长度
                    groupId     该电话在记录重的组别
                    storage     记录所在的存储器,InPut
                    id          在存储器上的存储位置,Input
 *  Return        : BOOLEAN     TRUE    查找成功
                                FALSE   查找失败
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
BOOLEAN DCW_PB_getRecordInfoByAddr(MMI_STRING_T                *namePtr,
                                   uint16                       nameMaxLen,
                                   uint8                       *groupIdPtr,
                                   MMI_IMAGE_ID_T              *iconIdPtr,
                                   PHONEBOOK_STORAGE_E          storage,
                                   uint16                       id)
{    
    /* 短信息模块调用此程序,该模块认为 *id == 0 为无效的ID*/
    if(id == 0)
    {
        return FALSE;
    }
    else
    {
        /* 本模块的id比短信息模块的id小1*/
        id--;
    }

    if(storage == PHONEBOOK_SIM_STORAGE)
    {
        T_PB_SIM_RECORD record;
        
        SCI_ASSERT(id < g_pb.sim.maxRecord);

        if(DCW_PB_ReadOneRecordFromSim(&record,id,PHONEBOOK_SIM_STORAGE) == FALSE)
        {/* 读取失败 */
            return FALSE;
        }
        if(namePtr != PNULL)
        {
            namePtr->is_ucs2 = record.outerName.ucs2;
            namePtr->length  = MIN(nameMaxLen,record.outerName.len);// 判断指针是否为控(SCI_ASSERT)
            SCI_MEMCPY(namePtr->str_ptr,record.outerName.array,namePtr->length);
        }
        return TRUE;
    }
    else if(storage == PHONEBOOK_NV_STORAGE)
    {
        T_PB_NV_RECORD record;
         
        SCI_ASSERT(id < g_pb.nv.maxRecord);

        if(DCW_PB_ReadOneRecordFromNv(&record,id) == FALSE)
        {   /* 读取失败 */
            return FALSE;
        }

        if(namePtr != PNULL)
        {
            namePtr->is_ucs2 = record.outerName.ucs2;
            namePtr->length  = MIN(nameMaxLen,record.outerName.len);
            SCI_MEMCPY(namePtr->str_ptr,record.outerName.array,namePtr->length);
        }
        
        if(groupIdPtr != PNULL)
        {
            *groupIdPtr = record.groupId;
            if(iconIdPtr != PNULL)
            {
                switch(*groupIdPtr)
                {
                case 1:
                    *iconIdPtr = IMAGE_PHONEBOOK_GROUP_FAMILY;
                    break;
                case 2:
                    *iconIdPtr = IMAGE_PHONEBOOK_GROUP_FRIEND;
                    break;
                case 3:
                    *iconIdPtr = IMAGE_PHONEBOOK_GROUP_COLLEAGUE;
                    break;
                case 4:
                    *iconIdPtr = IMAGE_PHONEBOOK_GROUP_SCHOOLMATE;
                    break;
                default:
                    *iconIdPtr = IMAGE_PHONEBOOK_GROUP;
                    break;
                }
            }
        }
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/****************************************************************************
 *  Function name : DCW_PB_GetSelectedListCount
 *  Description   : 得到记录列表的选择条目数
 *  Param         : None
 *  Return        : uint16      选择的条目数
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
uint16 DCW_PB_GetSelectedListCount(void)   
{
    return g_pb.operate.listInfo.selectNumber;
}
/****************************************************************************
 *  Function name : DCW_PB_getRecordInfoByListPos
 *  Description   : 根据已选列表里的位置得到记录的信息
 *  Param         : *name       记录的名字
                    nameMaxLen  名字的最大长度
                    *bcdNum     BCD电话号码
                    *mail       邮件
                    mailMaxLen  邮件的最大长度
                    index       在列表重的位置    
 *  Return        : BOOLEAN     TRUE      查找成功
                                FALSE     查找失败
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
BOOLEAN DCW_PB_getRecordInfoBySelectedIndex(MMI_STRING_T         *namePtr,    
                                            uint16               nameMaxLen,
                                            T_PB_BCD_NUMBER      *bcdNumPtr,
                                            MMI_STRING_T         *mailPtr,
                                            uint16               mailMaxLen,
                                            uint16               index)
{
    T_PB_RECORD_ITEM_ADDR   *recordAddrPtr;

    if(index >= g_pb.operate.listInfo.selectNumber)
    {   /* 位置错误 */
        return FALSE;
    }

    /* 得到记录地址 */
    recordAddrPtr = DCW_PB_getRecordAddr(g_pb.operate.listInfo.selectItemPtr[index]);

    if(recordAddrPtr->type == PHONEBOOK_SIM_STORAGE)
    {
        T_PB_SIM_RECORD *recordPtr;

        recordPtr = &g_pb.sim.recordPtr[recordAddrPtr->pos];

        if(namePtr != PNULL)
        {
            namePtr->is_ucs2 = recordPtr->outerName.ucs2;
            namePtr->length  = MIN(nameMaxLen,recordPtr->outerName.len);
            SCI_MEMCPY(namePtr->str_ptr,recordPtr->outerName.array,namePtr->length);
        }
        if(bcdNumPtr != PNULL)
        {
            *bcdNumPtr = recordPtr->num;
        }
    }
    else
    {
        T_PB_NV_RECORD *recordPtr;

        recordPtr = &g_pb.nv.recordPtr[recordAddrPtr->pos];

        if(namePtr != PNULL)
        {
            namePtr->is_ucs2 = recordPtr->outerName.ucs2;
            namePtr->length  = MIN(nameMaxLen,recordPtr->outerName.len);
            SCI_MEMCPY(namePtr->str_ptr,recordPtr->outerName.array,namePtr->length);
        }
        if(bcdNumPtr != PNULL)
        {
            *bcdNumPtr = recordPtr->num[recordAddrPtr->offset];
        }
        if(mailPtr != PNULL)
        {
            mailPtr->is_ucs2 = recordPtr->outerName.ucs2;
            mailPtr->length  = MIN(mailMaxLen,recordPtr->mail.len);
            SCI_MEMCPY(mailPtr->str_ptr,recordPtr->mail.array,mailPtr->length);
        }
    }
    return TRUE;
}
/****************************************************************************
 *  Function name : DCW_PB_sendByGroup
 *  Description   : 按组群发消息
 *  Param         : None
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_sendByGroup(void)
{
}
/****************************************************************************
 *  Function name : DCW_PB_searchRecord
 *  Description   : 查询记录
 *  Param         : None
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
void DCW_PB_searchRecord(void)
{   /* 由方向键进入电话记录查询,现在无用 */
    if(g_pb.nv.usedRecord != 0 || g_pb.sim.usedRecord != 0)
    {   
        DCW_PB_loadOperateInfo(PB_OPERATE_ORDINARY_SEARCH_E,PB_SUB_OPERATE_NONE_E,PNULL);
        DCW_PB_openWindows(g_pb_ordinarySearchWinTab, PNULL);
        DCW_PB_setBaseWinId(MMK_GetFocusWinId());
    }
    else
    {   /* 没有电话记录 */                   
        DCW_PB_openWindows(PNULL,&g_pb_recordEmptyWinTab);
    }    
}
/****************************************************************************
 *  Function name : DCW_PB_GetNumberTypeFromUint8
 *  Description   : 得到电话号码的类型
 *  Param         : uint8 npi_ton
 *  Return        : MN_NUMBER_TYPE_E    电话号码类型
 *  Author:       : *************
 *  Note          : None
 *****************************************************************************/
MN_NUMBER_TYPE_E DCW_PB_GetNumberTypeFromUint8(uint8 npi_ton)
{
    return ((MN_NUMBER_TYPE_E)(npi_ton >> 4));
}
/****************************************************************************
 *  Function name : DCW_PB_GetNumberPlanFromUint8
 *  Description   : 得到电话号码的PLAN
 *  Param         : uint8   npi_ton
 *  Return        : MN_NUMBER_PLAN_E    电话号码PLAN
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
MN_NUMBER_PLAN_E DCW_PB_GetNumberPlanFromUint8(uint8 npi_ton)
{
    return ((MN_NUMBER_PLAN_E)(npi_ton & 0x0F));
}
/****************************************************************************
 *  Function name : DCW_PB_getPhoneNumberMaxLen
 *  Description   : 得到电话号码的长度
 *  Param         : None
 *  Return        : None
 *  Author:       : *************
 *  Note          : None 
 *****************************************************************************/
uint8 DCW_PB_getPhoneNumberMaxLen(void)
{
    return DCW_PB_NUMBER_MAX_LEN;
}

BOOLEAN DCW_PB_isSimEmpty(void)
{
    if(g_pb.sim.usedRecord == 0)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

BOOLEAN DCW_PB_isNvEmpty(void)
{
    if(g_pb.nv.usedRecord == 0)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

BOOLEAN DCW_PB_isSimFull(void)
{
    if(g_pb.sim.usedRecord == g_pb.sim.maxRecord)
    {
        return TRUE;
    } 
    else
    {
        return FALSE;
    }
}

BOOLEAN DCW_PB_isNvFull(void)
{
    if(g_pb.nv.usedRecord == g_pb.nv.maxRecord)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

BOOLEAN DCW_PB_isEmpty(void)
{
    return (DCW_PB_isSimEmpty()) && (DCW_PB_isNvEmpty());
}

BOOLEAN DCW_PB_isFull(void)
{
    return (DCW_PB_isSimFull()) && (DCW_PB_isNvFull());
}

#endif

⌨️ 快捷键说明

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