📄 dcw_pb_interface.c
字号:
*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 + -