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

📄 jpim_phonebook.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 4 页
字号:
typedef enum
{
    JPIM_PHB_STATE_IDLE,
    JPIM_PHB_STATE_GET_COUNT,
    JPIM_PHB_STATE_GET_ENTRY,
    JPIM_PHB_STATE_APPEND_ENTRY,
    JPIM_PHB_STATE_UPDATE_ENTRY,
    JPIM_PHB_STATE_DELETE_ENTRY,
    JPIM_PHB_STATE_SEARCH_ENTRY,
    JPIM_PHB_STATE_GET_GROUP_COUNT,
    JPIM_PHB_STATE_GET_GROUP_INFO,
    JPIM_PHB_STATE_SET_GROUP_INFO
} jpim_phb_state_enum;

static kal_int32 jpim_phb_count = 0;
static kal_int32 jpim_phb_result = 0;
static kal_int32 jpim_phb_index = -1;
static kal_int32 jpim_phb_handle = 0xFFFF;

static jpim_phb_state_enum jpim_phb_state = JPIM_PHB_STATE_IDLE;
/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getSupportField
 * DESCRIPTION
 *  This function retrieves the support field of the phonebook database.
 * PARAMETERS
 *  storage     [in]        jpim_phb_storage_enum
 *  size        [in/out]    If *size = 0, will return the size of buffer that  need.
 *                          If *size != 0, will return the real size that we put into buffer
 *  field       [out]       buffer to put supported fields
 * RETURNS
 *  jpim_error_code_enum
 *  JPIM_SIZE_TOO_SMALL - buffer size is too small
 *****************************************************************************/
kal_int32 jpim_phb_getSupportField(kal_int32 storage, kal_int32* size, kal_int32* field)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    const static kal_int32 sim[] = { JPIM_C_FORMATTED_NAME, JPIM_C_TEL };
    const static kal_int32 nsim = sizeof(sim)/sizeof(kal_int32);

    const static kal_int32 phone[] =
        {
            JPIM_C_FORMATTED_NAME,
    #ifdef JSR_75_PIM_EXTRA_BIRTHDAY
            JPIM_C_BIRTHDAY,
    #endif
    #ifdef JSR_75_PIM_EXTRA_INFO
            JPIM_C_ADDR,
            JPIM_C_NOTE,
            JPIM_C_PHOTO,
    #endif
            JPIM_C_EMAIL,
            JPIM_C_ORG,
            JPIM_C_TEL
        };
    const static kal_int32 nphone = sizeof(phone)/sizeof(kal_int32);

    kal_int32 i;

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

#ifdef __MMI_DUAL_SIM_MASTER__
    if (storage == JPIM_PHB_SIM || storage == JPIM_PHB_SIM2)
#else
    if (storage == JPIM_PHB_SIM)
#endif
    {
        if( *size < nsim)
        {
            *size = nsim;
            return JPIM_SIZE_TOO_SMALL;
        }

        *size = nsim;

        for( i = 0 ;i < nsim; i++ )
        {
            field[i] = sim[i];
        }
        return JPIM_SUCCESS;

    }
    else if( storage == JPIM_PHB_NVRAM || storage == JPIM_PHB_STORAGE_BOTH)
    {

        if( *size < nphone)
        {
            *size = nsim;
            return JPIM_SIZE_TOO_SMALL;
        }

        *size = nphone;

        for( i = 0 ;i < nphone; i++ )
        {
            field[i] = phone[i];
        }
        return JPIM_SUCCESS;
    }
    else
    {
        return JPIM_PARA_ERROR;
    }

    return JPIM_ERROR;

}
/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getSupportAttr
 * DESCRIPTION
 *  This function retrieves the support attribute of the phonebook database.
 * PARAMETERS
 *  storage     [in]        jpim_phb_storage_enum
 *  field       [in]
 *  size        [in/out]
 *  attr        [out]
 * RETURNS
 *  jpim_error_code_enum
 *  JPIM_SIZE_TOO_SMALL - buffer size is too small
 *****************************************************************************/
kal_int32  jpim_phb_getSupportAttr(kal_int32 storage, kal_int32 field, kal_int32* size, kal_int32* attr)
{

    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    const static kal_int32 sim[] = { JPIM_C_ATTR_MOBILE};
    const static kal_int32 phone[] = { JPIM_C_ATTR_FAX, JPIM_C_ATTR_HOME,
        JPIM_C_ATTR_MOBILE, JPIM_C_ATTR_WORK, JPIM_C_ATTR_PREFERRED};
    const static kal_int32 nsim = sizeof(sim)/sizeof(kal_int32);
    const static kal_int32 nphone = sizeof(phone)/sizeof(kal_int32);

    kal_int32 i;
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/


#ifdef __MMI_DUAL_SIM_MASTER__
    if (storage == JPIM_PHB_SIM || storage == JPIM_PHB_SIM2)
#else
    if (storage == JPIM_PHB_SIM)
#endif
    {
        if (field == JPIM_C_TEL || field == JPIM_NONE)
        {
            if( *size < nsim )
            {
                *size = nsim;
                return JPIM_SIZE_TOO_SMALL;
            }
            *size = nsim;

            for(i = 0 ;i < nsim; i++)
            {
                attr[i] = sim[i];
            }

            return JPIM_SUCCESS;
        }
    }
    else if( storage == JPIM_PHB_NVRAM || storage == JPIM_PHB_STORAGE_BOTH)
    {
        if(field == JPIM_C_TEL || field == JPIM_NONE)
        {
            if( *size < nphone )
            {
                *size = nphone;
                return JPIM_SIZE_TOO_SMALL;
            }

            *size = nphone;

            for(i = 0 ;i < nphone; i++)
            {
                attr[i] = phone[i];
            }
            return JPIM_SUCCESS;
        }
    }
    else
    {
        *size = 0;
        return JPIM_PARA_ERROR;
    }

    return JPIM_ERROR;

}



/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getIndexByHandle
 * DESCRIPTION
 *  This function can transfer the item handle to index by specific sort type.
 * PARAMETERS
 *  sort_type       [in]    jpim_phb_sort_type_enum
 *  storage         [in]    jpim_phb_storage_enum
 *  handle          [in]
 * RETURNS
 *  0~ 0xfffe -- the index value
 *  0xffff -- error
 *****************************************************************************/
kal_int32 jpim_phb_getIndexByHandle(kal_uint8 sort_type,kal_uint8 storage, kal_uint16 handle)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return mmi_phb_java_util_get_index_by_store_index(
            (U8)jpim_transfer_phb_sort(sort_type),
            (U8)jpim_transfer_phb_storage(storage),
            (U16)handle);
}
/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getHandleByIndex
 * DESCRIPTION
 *  This function can transfer the item sort index to handle
 * PARAMETERS
 *  sort_type       [in]    jpim_phb_sort_type_enum
 *  storage         [in]    jpim_phb_storage_enum
 *  index           [in]
 * RETURNS
 *  0~ 0xfffe -- the handle value
 *  0xffff -- error
 *****************************************************************************/
kal_int32 jpim_phb_getHandleByIndex(kal_uint8 sort_type,kal_uint8 storage, kal_uint16 index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return mmi_phb_java_util_get_store_index_by_sort_index(
            (U8)jpim_transfer_phb_sort(sort_type),
            (U8)jpim_transfer_phb_storage(storage),
            (U16)index);
}

/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getName
 * DESCRIPTION
 *
 * PARAMETERS
 *  void
 * RETURNS
 *
 *****************************************************************************/
kal_wchar* jpim_phb_getName(kal_int32 storage)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

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

    switch(storage)
    {
#ifdef __MMI_DUAL_SIM_MASTER__
        case JPIM_PHB_SIM:
            return (kal_wchar*) GetString(STRING_MTPNP_SIM1);
        case JPIM_PHB_SIM2:
            return (kal_wchar*) GetString(STRING_MTPNP_SIM2);
#else
        case JPIM_PHB_SIM:
            return (kal_wchar*) GetString(STR_STORAGE_SIM);
#endif
        case JPIM_PHB_NVRAM:
            return (kal_wchar*) GetString(STR_STORAGE_PHONE);
        default:
            return (kal_wchar*) GetString(STR_SCR_PBOOK_CAPTION);
    }

    return NULL;
}


/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getFieldLabel
 * DESCRIPTION
 *
 * PARAMETERS
 *  field       [IN]
 * RETURNS
 *
 *****************************************************************************/
kal_wchar *jpim_phb_getFieldLabel(kal_int32 field)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG_1(TRACE_GROUP_2, JPIM_PHB_GETFIELDLABEL, field);

    switch (field)
    {
        case JPIM_C_BIRTHDAY:
            return (kal_wchar*) GetString(STR_ID_PHB_BIRTHDAY);
        case JPIM_C_EMAIL:
            return (kal_wchar*) GetString(STR_EMAIL_ADRESS);
        case JPIM_C_FORMATTED_ADDR:
            return (kal_wchar*) GetString(STR_ID_PHB_ADDRESS);
        case JPIM_C_FORMATTED_NAME:
            return (kal_wchar*) GetString(STR_ID_PHB_NAME);
        case JPIM_C_NICKNAME:
            return (kal_wchar*) GetString(STR_ID_PHB_SNE);
        case JPIM_C_NOTE:
            return (kal_wchar*) GetString(STR_ID_PHB_NOTE);
        case JPIM_C_ORG:
            return (kal_wchar*) GetString(STR_COMPNAY_NAME);
        case JPIM_C_TEL:
            return (kal_wchar*) GetString(STR_ID_PHB_MOBILE_NUMBER);
        case JPIM_C_TITLE:
            return (kal_wchar*) GetString(STR_ID_PHB_TITLE);
        case JPIM_C_URL:
            return (kal_wchar*) GetString(STR_ID_PHB_URL);
        case JPIM_C_ADDR:
            return (kal_wchar*) GetString(STR_ID_PHB_ADDRESS);
        case JPIM_C_PHOTO:
            return (kal_wchar*) GetString(STR_ASSOCIATE_PICTURE);
        default:
            return NULL;
    }
}
/*****************************************************************************
 * FUNCTION
 *  jpim_phb_getFieldLabel
 * DESCRIPTION
 *
 * PARAMETERS
 *  field       [IN]
 * RETURNS
 *
 *****************************************************************************/
kal_wchar *jpim_phb_getFieldEleLabel(kal_int32 field, kal_int32 index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG_1(TRACE_GROUP_2, JPIM_PHB_GETFIELDLABEL, field);

⌨️ 快捷键说明

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