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

📄 jpim_phonebook.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 4 页
字号:
 *  start_index     [IN]
 *  pattern         [IN]
 * RETURNS
 *  jpim_error_code_enum
 *****************************************************************************/

kal_int32 jpim_phb_searchEntry(
            mmi_phb_handler_entry_struct *entry,
            kal_uint8 storage,
            kal_uint8 search_type,
            kal_uint16 start_index,
            kal_uint8 group,
            kal_char *pattern)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 event_group;
    mmi_phb_handler_search_entry_req_struct *p;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SEARCHENTRY);

    p = (mmi_phb_handler_search_entry_req_struct*)
        construct_local_para(sizeof(mmi_phb_handler_search_entry_req_struct), TD_CTRL);

    p->entry_ptr = entry;
    p->sort_type = MMI_PHB_BY_NAME;
    p->storage = jpim_transfer_phb_storage(storage);
    p->search_type = jpim_transfer_phb_sort(search_type);
    p->group = 0;
    p->start_index = start_index;
    app_ucs2_strcpy((kal_int8*)p->pattern, (kal_int8*)pattern);

    jpim_phb_result = MMI_PHB_JAVA_ERROR;
    jpim_phb_state = JPIM_PHB_STATE_SEARCH_ENTRY;
    jpim_phb_index = 0;

    if (jpim_check_vm_state(0))
    {
        jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_SEARCH_ENTRY_REQ);
        kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SEARCH_ENTRY, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
        entry->sort_index = jpim_phb_index;
    }
    else
    {
        free_local_para((local_para_struct*) p);
    }

    return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}


/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getGroupCount
 * DESCRIPTION
 *  This function retrieves the number of group on handset.
 * PARAMETERS
 *  storage         [IN]
 * RETURNS
 *  Number of groups
 *****************************************************************************/
kal_int32 jpim_phb_getGroupCount(kal_uint8 storage)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 event_group;
    mmi_phb_handler_get_group_info_req_struct *p;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    p = (mmi_phb_handler_get_group_info_req_struct*)
        construct_local_para(sizeof(mmi_phb_handler_get_group_info_req_struct), TD_CTRL);

    p->storage = storage;
    p->max_group = 0;
    p->group_ptr = NULL;

    jpim_phb_result = MMI_PHB_JAVA_ERROR;
    jpim_phb_state = JPIM_PHB_STATE_GET_GROUP_COUNT;
    jpim_phb_count = 0;

    if (jpim_check_vm_state(0))
    {
        jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_REQ);
        kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
    }
    else
    {
        free_local_para((local_para_struct*) p);
    }

    if (jpim_phb_result != MMI_PHB_JAVA_SUCCESS)
    {
        return 0;
    }
    else
    {
        return jpim_phb_count;
    }
}


/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getGroupInfo
 * DESCRIPTION
 *  This function retrieves all the group names in the phonebook database.
 * PARAMETERS
 *  storage         [IN]
 *  max_group       [IN/OUT]
 *  group_ptr       [OUT]
 * RETURNS
 *  Number of groups
 *****************************************************************************/
kal_int32 jpim_phb_getGroupInfo(kal_uint8 storage, kal_uint8 *max_group, mmi_phb_handler_group_struct *group_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 event_group;
    mmi_phb_handler_get_group_info_req_struct *p;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GETGROUPINFO);

    p = (mmi_phb_handler_get_group_info_req_struct*)
        construct_local_para(sizeof(mmi_phb_handler_get_group_info_req_struct), TD_CTRL);

    p->max_group = *max_group;
    p->group_ptr = group_ptr;
    p->storage = storage;

    jpim_phb_result = MMI_PHB_JAVA_ERROR;
    jpim_phb_state = JPIM_PHB_STATE_GET_GROUP_INFO;
    jpim_phb_count = 0;

    if (jpim_check_vm_state(0))
    {
        jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_REQ);
        kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
    }
    else
    {
        free_local_para((local_para_struct*) p);
    }

    if (jpim_phb_result != MMI_PHB_JAVA_SUCCESS)
    {
        *max_group = 0;
    }
    else
    {
        *max_group = jpim_phb_count;
    }
    return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}


/*****************************************************************************
 * FUNCTION
 *  jpim_phb_setGroupInfo
 * DESCRIPTION
 *
 * PARAMETERS
 *  group_id        [IN]
 *  group_ptr       [IN]
 * RETURNS
 *
 *****************************************************************************/
kal_int32 jpim_phb_setGroupInfo(kal_uint8 group_id, mmi_phb_handler_group_struct *group_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 event_group;
    mmi_phb_handler_set_group_info_req_struct *p;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SETGROUPINFO);

    p = (mmi_phb_handler_set_group_info_req_struct*)
        construct_local_para(sizeof(mmi_phb_handler_set_group_info_req_struct), TD_CTRL);

    p->group_id = group_id;
    p->group_ptr = group_ptr;

    jpim_phb_result = MMI_PHB_JAVA_ERROR;
    jpim_phb_state = JPIM_PHB_STATE_SET_GROUP_INFO;

    if (jpim_check_vm_state(1))
    {
        jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_SET_GROUP_INFO_REQ);
        kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
    }
    else
    {
        free_local_para((local_para_struct*) p);
    }

    return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}


/*****************************************************************************
 * FUNCTION
 *  jpim_phb_handler
 * DESCRIPTION
 *
 * PARAMETERS
 *  ilm_ptr     [?]     [?]
 * RETURNS
 *
 *****************************************************************************/
kal_bool jpim_phb_handler(ilm_struct *ilm_ptr)
{

    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (ilm_ptr->msg_id)
    {
        case MSG_ID_MMI_PHB_JAVA_GET_ENTRY_RSP:
        {
            mmi_phb_handler_get_entry_rsp_struct *p = (mmi_phb_handler_get_entry_rsp_struct*) ilm_ptr->local_para_ptr;

            if (jpim_phb_state == JPIM_PHB_STATE_GET_COUNT)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_COUNT_RSP);

                jpim_phb_result = p->result;
                jpim_phb_count = p->count;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GETCOUNT, KAL_OR);
            }
            else if (jpim_phb_state == JPIM_PHB_STATE_GET_ENTRY)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_ENTRY_RSP);

                jpim_phb_result = p->result;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_FETCH_INDEX, KAL_OR);
            }
            else
            {
                ASSERT(0);
            }
            jpim_phb_state = JPIM_PHB_STATE_IDLE;
            break;
        }
        case MSG_ID_MMI_PHB_JAVA_SET_ENTRY_RSP:
        {
            mmi_phb_handler_set_entry_rsp_struct *p = (mmi_phb_handler_set_entry_rsp_struct*) ilm_ptr->local_para_ptr;

            if (jpim_phb_state == JPIM_PHB_STATE_APPEND_ENTRY)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_APPEND_ENTRY_RSP);
                jpim_phb_result = p->result;
                jpim_phb_handle = p->store_index;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_APPEND_ENTRY, KAL_OR);
            }
            else if (jpim_phb_state == JPIM_PHB_STATE_UPDATE_ENTRY)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_UPDATE_ENTRY_RSP);
                jpim_phb_result = p->result;
                jpim_phb_handle = p->store_index;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_UPDATE_ENTRY, KAL_OR);
            }
            else if (jpim_phb_state == JPIM_PHB_STATE_DELETE_ENTRY)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_DELETE_ENTRY_RSP);
                jpim_phb_result = p->result;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_DELETE_ENTRY, KAL_OR);
            }
            else
            {
                ASSERT(0);
            }
            jpim_phb_state = JPIM_PHB_STATE_IDLE;
            break;
        }
        case MSG_ID_MMI_PHB_JAVA_SEARCH_ENTRY_RSP:
        {
            mmi_phb_handler_search_entry_rsp_struct *p =
                (mmi_phb_handler_search_entry_rsp_struct*) ilm_ptr->local_para_ptr;

            if (jpim_phb_state == JPIM_PHB_STATE_SEARCH_ENTRY)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SEARCH_ENTRY_RSP);
                jpim_phb_result = p->result;
                jpim_phb_index = p->index;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SEARCH_ENTRY, KAL_OR);
            }
            else
            {
                ASSERT(0);
            }
            jpim_phb_state = JPIM_PHB_STATE_IDLE;
            break;
        }
        case MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_RSP:
        {
            mmi_phb_handler_get_group_info_rsp_struct *p =
                (mmi_phb_handler_get_group_info_rsp_struct*) ilm_ptr->local_para_ptr;

            if (jpim_phb_state == JPIM_PHB_STATE_GET_GROUP_INFO)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_GROUP_INFO_RSP);
                jpim_phb_result = p->result;
                jpim_phb_count = p->count;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR);
            }
            else if(jpim_phb_state == JPIM_PHB_STATE_GET_GROUP_COUNT)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_GROUP_INFO_RSP);
                jpim_phb_result = p->result;
                jpim_phb_count = p->count;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR);
            }
            else
            {
                ASSERT(0);
            }
            jpim_phb_state = JPIM_PHB_STATE_IDLE;
            break;
        }
        case MSG_ID_MMI_PHB_JAVA_SET_GROUP_INFO_RSP:
        {
            mmi_phb_handler_set_group_info_rsp_struct *p =
                (mmi_phb_handler_set_group_info_rsp_struct*) ilm_ptr->local_para_ptr;

            if (jpim_phb_state == JPIM_PHB_STATE_SET_GROUP_INFO)
            {
                JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SET_GROUP_INFO);
                jpim_phb_result = p->result;
                kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SET_GROUP_INFO, KAL_OR);
            }
            else
            {
                ASSERT(0);
            }
            jpim_phb_state = JPIM_PHB_STATE_IDLE;
            break;
        }

        default:
            return KAL_FALSE;
    }

    return KAL_TRUE;
}
#endif

⌨️ 快捷键说明

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