CLI_Icon.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:5k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *****************************************************************************/
  10. /*****************************************************************************
  11.  *
  12.  * Filename:
  13.  * ---------
  14.  * CLI_Icon.c
  15.  *
  16.  * Project:
  17.  * --------
  18.  * Nokia Smart Messaging
  19.  *
  20.  * Description:
  21.  * ------------
  22.  * This file implements Nokia Smart CLI Icon.
  23.  *
  24.  * Date :
  25.  * ------
  26.  * 18th May 2005  
  27.  *
  28.  * Author:  
  29.  * --------
  30.  * -------
  31.  * 
  32.  *****************************************************************************/
  33. /**************** START :  INCLUDE SECTION *************************/
  34. #include "MMI_features.h"
  35. #ifdef __MMI_CLI_ICON__
  36. #include "stdC.h"
  37. #include "L4Dr1.h"
  38. #include "ems.h"
  39. #include "CLI_Icon.h"
  40. /**************** END   :  INCLUDE SECTION *************************/
  41. /*************** START  :  DEFINE SECTION *************************/
  42. #define CLI_ICON_HEADER_SIZE  (sizeof(CLI_ICON_HEADER_STRUCT))
  43. /**************** END   :  DEFINE SECTION *************************/
  44. /**************** START :  TYPEDEFS SECTION *************************/
  45. /**************** END   :  TYPEDEFS SECTION ***************************/
  46. /**************** START :  GLOBAL VARIABLES *************************/
  47. extern U8 gPictureMessageError;
  48. extern U16 RemoveZerosInBetween(U8 *pOutBuffer, U8 *pInBuffer, U16 size);
  49. extern EMSData *GetEMSDataForView(EMSData **p, U8 force);
  50. extern void EntryNsmPicturemsg(void);
  51. /**************** END   :  GLOBAL VARIABLES *************************/
  52. /**************** START :  LOCAL FUNCTIONS DECLARATION *************************/
  53. static void mmi_cli_icon_get_header_info(CLI_ICON_HEADER_STRUCT *ota_bmp_header, OTA_DATA_STRUCT *cli_icon_ota_data);
  54. /**************** END   :  LOCAL FUNCTIONS DECLARATION *************************/
  55. /*****************************************************************************
  56.  * FUNCTION
  57.  *  mmi_cli_icon_parse_ota_data
  58.  * DESCRIPTION
  59.  *  Parse CLI Icon OTA data into bmp header and bmp buffer
  60.  * PARAMETERS
  61.  *  void
  62.  * RETURNS
  63.  *  void
  64.  *****************************************************************************/
  65. extern void mmi_cli_icon_parse_ota_data(void)
  66. {
  67.     /*----------------------------------------------------------------*/
  68.     /* Local Variables                                                */
  69.     /*----------------------------------------------------------------*/
  70.     EMSData *pEms = NULL;
  71.     OTA_DATA_STRUCT cli_icon_ota_data = {NULL, 0};
  72.     CLI_ICON_HEADER_STRUCT cli_icon_header = {0};
  73.     U32 temp;
  74.     /*----------------------------------------------------------------*/
  75.     /* Code Body                                                      */
  76.     /*----------------------------------------------------------------*/
  77.     GetEMSDataForView(&pEms, 0);
  78.     cli_icon_ota_data.OTA_data = (U8*) OslMalloc((pEms->textLength >> 1) + 1);
  79.     ASSERT(cli_icon_ota_data.OTA_data != NULL);
  80.     memset(cli_icon_ota_data.OTA_data, 0x00, ((pEms->textLength >> 1) + 1));
  81.     temp = RemoveZerosInBetween(cli_icon_ota_data.OTA_data, pEms->textBuffer, pEms->textLength);
  82.     /* Get OTA ver and BMP header info */
  83.     mmi_cli_icon_get_header_info(&cli_icon_header, &cli_icon_ota_data);
  84.     /* Get BMP Image data */
  85.     mmi_nsm_create_bmp_buffer(&cli_icon_ota_data, &(cli_icon_header.cli_icon_ota_bmp_header));
  86.     gPictureMessageError = 0;   /* Hack : MMI_NSM_PIC_SUCCESS */
  87.     if (cli_icon_ota_data.OTA_data != NULL)
  88.     {
  89.         OslMfree(cli_icon_ota_data.OTA_data);
  90.     }
  91.     /* Hack : CLI Icon is treated as picture message */
  92.     EntryNsmPicturemsg();
  93. }
  94. /*****************************************************************************
  95.  * FUNCTION
  96.  *  mmi_cli_icon_get_header_info
  97.  * DESCRIPTION
  98.  *  Get header info for bmp image
  99.  * PARAMETERS
  100.  *  ota_bmp_header          [IN]        BMP header structure
  101.  *  cli_icon_ota_data       [IN]        Operator logo OTA data structure
  102.  * RETURNS
  103.  *  void
  104.  *****************************************************************************/
  105. static void mmi_cli_icon_get_header_info(CLI_ICON_HEADER_STRUCT *ota_bmp_header, OTA_DATA_STRUCT *cli_icon_ota_data)
  106. {
  107.     /*----------------------------------------------------------------*/
  108.     /* Local Variables                                                */
  109.     /*----------------------------------------------------------------*/
  110.     /*----------------------------------------------------------------*/
  111.     /* Code Body                                                      */
  112.     /*----------------------------------------------------------------*/
  113.     /* Get OTA version */
  114.     mmi_nsm_get_ver_no(&(ota_bmp_header->cli_icon_ota_ver), cli_icon_ota_data);
  115.     /* Get BMP Image header info */
  116.     mmi_nsm_get_ota_bmp_header(&(ota_bmp_header->cli_icon_ota_bmp_header), cli_icon_ota_data);
  117. }
  118. #endif /* __MMI_CLI_ICON__ */