#ifndef __OEMFUNC_LIST__
#define __OEMFUNC_LIST__
/*===========================================================================================

FILE            : IKDDIHelper.h

SERVICES        : IKDDIHelper Interface

DESCRIPTION     :

PUBLIC CLASSES  : Not Applicable

INITIALIZATION AND SEQUENCING REQUIREMENTS :

      Copyright ｩ 1999-2006 QUALCOMM Incorporated.
               All Rights Reserved.
            QUALCOMM Proprietary/GTDR

===========================================================================================*/

/*===========================================================================================

                        EDIT HISTORY FOR MODULE

When        Who    what, where, why
----------  -----  --------------------------------------------------------------------------
04/25/05           SetOEMValue()追加対応
12/13/04           新規作成

===========================================================================================*/

/*===========================================================================================
 INCLUDES AND VARIABLE DEFINITIONS
===========================================================================================*/
/*-------------------------------------------------------------------------------------------
   Defines
-------------------------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------------------------
   Include Files
-------------------------------------------------------------------------------------------*/
#include "AEE.h"
#include "AEEInterface.h"

/*-------------------------------------------------------------------------------------------
   Constant Declarations
-------------------------------------------------------------------------------------------*/
#define OEMFUNC_FLASH_BASE  0x1000
#define OEMVALUE_FLASH_BASE 0x2000

/* FLASH1.0 functions */
#define OEMFUNC_BI_UPDATE_FRAME_INTERVAL            OEMFUNC_FLASH_BASE+1
#define OEMFUNC_BI_MALLOC                           OEMFUNC_FLASH_BASE+2
#define OEMFUNC_BI_FREE                             OEMFUNC_FLASH_BASE+3
#define OEMFUNC_BI_GET_MAX_AVAILABLE_PLAYER_MEMORY  OEMFUNC_FLASH_BASE+4
#define OEMFUNC_BI_TRACE                            OEMFUNC_FLASH_BASE+5
#define OEMFUNC_BI_GET_LOCKED_FRAME_BUFFER          OEMFUNC_FLASH_BASE+6
#define OEMFUNC_BI_UNLOCK_FRAME_BUFFER              OEMFUNC_FLASH_BASE+7
#define OEMFUNC_BI_GET_URL                          OEMFUNC_FLASH_BASE+8
#define OEMFUNC_BI_GET_URLSTREAM                    OEMFUNC_FLASH_BASE+9
#define OEMFUNC_BI_DESTROY_URLSTREAM                OEMFUNC_FLASH_BASE+10
#define OEMFUNC_BI_GET_INPUT_TEXT                   OEMFUNC_FLASH_BASE+11
#define OEMFUNC_BI_GET_TIME                         OEMFUNC_FLASH_BASE+12
#define OEMFUNC_BI_GET_APPROX_TIME                  OEMFUNC_FLASH_BASE+13
#define OEMFUNC_BI_CREATE_FONT                      OEMFUNC_FLASH_BASE+14
#define OEMFUNC_BI_DESTROY_FONT                     OEMFUNC_FLASH_BASE+15
#define OEMFUNC_BI_SELECT_FONT                      OEMFUNC_FLASH_BASE+16
#define OEMFUNC_BI_GET_CHARACTER_INFO               OEMFUNC_FLASH_BASE+17
#define OEMFUNC_BI_GET_BITMAP_INFO                  OEMFUNC_FLASH_BASE+18
#define OEMFUNC_BI_BEGIN_TEXT_DRAW                  OEMFUNC_FLASH_BASE+19
#define OEMFUNC_BI_END_TEXT_DRAW                    OEMFUNC_FLASH_BASE+20
#define OEMFUNC_BI_DEVICE_TEXT_OUT                  OEMFUNC_FLASH_BASE+21
#define OEMFUNC_BI_GET_FONT_METRICS                 OEMFUNC_FLASH_BASE+22
#define OEMFUNC_BI_GET_TEXT_WIDTH                   OEMFUNC_FLASH_BASE+23
#define OEMFUNC_BI_NOTIFY_ERROR                     OEMFUNC_FLASH_BASE+24
#define OEMFUNC_BI_PLAY_SOUND                       OEMFUNC_FLASH_BASE+25
#define OEMFUNC_BI_CACHE_SOUND                      OEMFUNC_FLASH_BASE+26
#define OEMFUNC_BI_PLAY_CACHED_SOUND                OEMFUNC_FLASH_BASE+27
#define OEMFUNC_BI_FREE_CACHED_SOUND                OEMFUNC_FLASH_BASE+28
#define OEMFUNC_BI_STOP_SOUND                       OEMFUNC_FLASH_BASE+29
#define OEMFUNC_BI_OPEN_STREAM_SOUND_DEVICE         OEMFUNC_FLASH_BASE+30
#define OEMFUNC_BI_CLOSE_STREAM_SOUND_DEVICE        OEMFUNC_FLASH_BASE+31
#define OEMFUNC_BI_PLAY_STREAM_SOUND_BUFFER         OEMFUNC_FLASH_BASE+32
#define OEMFUNC_BI_CREATE_SOUND_DECOMPRESSOR        OEMFUNC_FLASH_BASE+33
#define OEMFUNC_BI_DESTROY_SOUND_DECOMPRESSOR       OEMFUNC_FLASH_BASE+34
#define OEMFUNC_BI_SETUP_SOUND_DECOMPRESSOR         OEMFUNC_FLASH_BASE+35
#define OEMFUNC_BI_DECOMPRESS_SOUND                 OEMFUNC_FLASH_BASE+36
#define OEMFUNC_BI_START_VIBRATE                    OEMFUNC_FLASH_BASE+37
#define OEMFUNC_BI_STOP_VIBRATE                     OEMFUNC_FLASH_BASE+38
#define OEMFUNC_BI_GET_DEVICE_CAPABILITIES          OEMFUNC_FLASH_BASE+39
#define OEMFUNC_BI_SET_FULL_SCREEN                  OEMFUNC_FLASH_BASE+40
#define OEMFUNC_BI_SET_SOFT_KEYS                    OEMFUNC_FLASH_BASE+41
#define OEMFUNC_BI_RESET_SOFT_KEYS                  OEMFUNC_FLASH_BASE+42
#define OEMFUNC_BI_LAUNCH                           OEMFUNC_FLASH_BASE+43
#define OEMFUNC_BI_QUIT                             OEMFUNC_FLASH_BASE+44
#define OEMFUNC_BI_GET_DATE                         OEMFUNC_FLASH_BASE+45
#define OEMFUNC_BI_GET_LOCALE_LONG_DATE             OEMFUNC_FLASH_BASE+46
#define OEMFUNC_BI_GET_LOCALE_SHORT_DATE            OEMFUNC_FLASH_BASE+47
#define OEMFUNC_BI_GET_LOCALE_TIME                  OEMFUNC_FLASH_BASE+48
#define OEMFUNC_BI_GET_TIME_OF_DAY                  OEMFUNC_FLASH_BASE+49
#define OEMFUNC_BI_GET_TIME_ZONE_OFFSET             OEMFUNC_FLASH_BASE+50
#define OEMFUNC_BI_GET_MAX_VOLUME_LEVEL             OEMFUNC_FLASH_BASE+51
#define OEMFUNC_BI_GET_VOLUME_LEVEL                 OEMFUNC_FLASH_BASE+52
#define OEMFUNC_BI_GET_MAX_BATTERY_LEVEL            OEMFUNC_FLASH_BASE+53
#define OEMFUNC_BI_GET_BATTERY_LEVEL                OEMFUNC_FLASH_BASE+54
#define OEMFUNC_BI_GET_POWER_SOURCE                 OEMFUNC_FLASH_BASE+55
#define OEMFUNC_BI_GET_MAX_SIGNAL_LEVEL             OEMFUNC_FLASH_BASE+56
#define OEMFUNC_BI_GET_SIGNAL_LEVEL                 OEMFUNC_FLASH_BASE+57
#define OEMFUNC_BI_GET_NETWORK_CONNECT_STATUS       OEMFUNC_FLASH_BASE+58
#define OEMFUNC_BI_GET_NETWORK_NAME                 OEMFUNC_FLASH_BASE+59
#define OEMFUNC_BI_GET_NETWORK_REQUEST_STATUS       OEMFUNC_FLASH_BASE+60
#define OEMFUNC_BI_GET_NETWORK_STATUS               OEMFUNC_FLASH_BASE+61
#define OEMFUNC_BI_GET_LANGUAGE                     OEMFUNC_FLASH_BASE+62
#define OEMFUNC_BI_GET_DEVICE_ID                    OEMFUNC_FLASH_BASE+63
#define OEMFUNC_BI_GET_PLATFORM                     OEMFUNC_FLASH_BASE+64
#define OEMFUNC_BI_GET_DEVICE                       OEMFUNC_FLASH_BASE+65
#define OEMFUNC_BI_DO_FS_COMMAND                    OEMFUNC_FLASH_BASE+66
#define OEMFUNC_BI_SAVE_FOCUS                       OEMFUNC_FLASH_BASE+67
#define OEMFUNC_BI_RETRIEVE_FOCUS                   OEMFUNC_FLASH_BASE+68
#define OEMFUNC_BI_GET_CALL_INFO                    OEMFUNC_FLASH_BASE+69


/* FLASH2.0 Inherit from FLASH1.0 functions */
#define OEMFUNC_SI_UPDATE_FRAME_INTERVAL           OEMFUNC_BI_UPDATE_FRAME_INTERVAL
#define OEMFUNC_SI_MALLOC                          OEMFUNC_BI_MALLOC
#define OEMFUNC_SI_FREE                            OEMFUNC_BI_FREE
#define OEMFUNC_SI_GET_MAX_AVAILABLE_PLAYER_MEMORY OEMFUNC_BI_GET_MAX_AVAILABLE_PLAYER_MEMORY
#define OEMFUNC_SI_TRACE                           OEMFUNC_BI_TRACE
#define OEMFUNC_SI_GET_LOCKED_FRAME_BUFFER         OEMFUNC_BI_GET_LOCKED_FRAME_BUFFER
#define OEMFUNC_SI_UNLOCK_FRAME_BUFFER             OEMFUNC_BI_UNLOCK_FRAME_BUFFER
#define OEMFUNC_SI_GET_URL                         OEMFUNC_BI_GET_URL
#define OEMFUNC_SI_GET_INPUT_TEXT                  OEMFUNC_BI_GET_INPUT_TEXT
#define OEMFUNC_SI_GET_TIME                        OEMFUNC_BI_GET_TIME
#define OEMFUNC_SI_GET_APPROX_TIME                 OEMFUNC_BI_GET_APPROX_TIME
#define OEMFUNC_SI_CREATE_FONT                     OEMFUNC_BI_CREATE_FONT
#define OEMFUNC_SI_DESTROY_FONT                    OEMFUNC_BI_DESTROY_FONT
#define OEMFUNC_SI_SELECT_FONT                     OEMFUNC_BI_SELECT_FONT
#define OEMFUNC_SI_GET_CHARACTER_INFO              OEMFUNC_BI_GET_CHARACTER_INFO
#define OEMFUNC_SI_GET_BITMAP_INFO                 OEMFUNC_BI_GET_BITMAP_INFO
#define OEMFUNC_SI_BEGIN_TEXT_DRAW                 OEMFUNC_BI_BEGIN_TEXT_DRAW
#define OEMFUNC_SI_END_TEXT_DRAW                   OEMFUNC_BI_END_TEXT_DRAW
#define OEMFUNC_SI_DEVICE_TEXT_OUT                 OEMFUNC_BI_DEVICE_TEXT_OUT
#define OEMFUNC_SI_GET_FONT_METRICS                OEMFUNC_BI_GET_FONT_METRICS
#define OEMFUNC_SI_GET_TEXT_WIDTH                  OEMFUNC_BI_GET_TEXT_WIDTH
#define OEMFUNC_SI_NOTIFY_ERROR                    OEMFUNC_BI_NOTIFY_ERROR
#define OEMFUNC_SI_PLAY_SOUND                      OEMFUNC_BI_PLAY_SOUND
#define OEMFUNC_SI_STOP_SOUND                      OEMFUNC_BI_STOP_SOUND
#define OEMFUNC_SI_CACHE_SOUND                     OEMFUNC_BI_CACHE_SOUND
#define OEMFUNC_SI_PLAY_CACHED_SOUND               OEMFUNC_BI_PLAY_CACHED_SOUND
#define OEMFUNC_SI_FREE_CACHED_SOUND               OEMFUNC_BI_FREE_CACHED_SOUND
#define OEMFUNC_SI_OPEN_STREAM_SOUND_DEVICE        OEMFUNC_BI_OPEN_STREAM_SOUND_DEVICE
#define OEMFUNC_SI_CLOSE_STREAM_SOUND_DEVICE       OEMFUNC_BI_CLOSE_STREAM_SOUND_DEVICE
#define OEMFUNC_SI_PLAY_STREAM_SOUND_BUFFER        OEMFUNC_BI_PLAY_STREAM_SOUND_BUFFER
#define OEMFUNC_SI_CREATE_SOUND_DECOMPRESSOR       OEMFUNC_BI_CREATE_SOUND_DECOMPRESSOR
#define OEMFUNC_SI_DESTROY_SOUND_DECOMPRESSOR      OEMFUNC_BI_DESTROY_SOUND_DECOMPRESSOR
#define OEMFUNC_SI_SETUP_SOUND_DECOMPRESSOR        OEMFUNC_BI_SETUP_SOUND_DECOMPRESSOR
#define OEMFUNC_SI_DECOMPRESS_SOUND                OEMFUNC_BI_DECOMPRESS_SOUND
#define OEMFUNC_SI_START_VIBRATE                   OEMFUNC_BI_START_VIBRATE
#define OEMFUNC_SI_STOP_VIBRATE                    OEMFUNC_BI_STOP_VIBRATE
#define OEMFUNC_SI_GET_DEVICE_CAPABILITIES         OEMFUNC_BI_GET_DEVICE_CAPABILITIES
#define OEMFUNC_SI_SET_FULL_SCREEN                 OEMFUNC_BI_SET_FULL_SCREEN
#define OEMFUNC_SI_SET_SOFTKEYS                    OEMFUNC_BI_SET_SOFT_KEYS
#define OEMFUNC_SI_RESET_SOFTKEYS                  OEMFUNC_BI_RESET_SOFT_KEYS
#define OEMFUNC_SI_LAUNCH                          OEMFUNC_BI_LAUNCH
#define OEMFUNC_SI_GET_MAX_VOLUME_LEVEL            OEMFUNC_BI_GET_MAX_VOLUME_LEVEL
#define OEMFUNC_SI_GET_VOLUME_LEVEL                OEMFUNC_BI_GET_VOLUME_LEVEL
#define OEMFUNC_SI_GET_MAX_BATTERY_LEVEL           OEMFUNC_BI_GET_MAX_BATTERY_LEVEL
#define OEMFUNC_SI_GET_BATTERY_LEVEL               OEMFUNC_BI_GET_BATTERY_LEVEL
#define OEMFUNC_SI_GET_POWER_SOURCE                OEMFUNC_BI_GET_POWER_SOURCE
#define OEMFUNC_SI_GET_LANGUAGE                    OEMFUNC_BI_GET_LANGUAGE
#define OEMFUNC_SI_GET_DEVICE_ID                   OEMFUNC_BI_GET_DEVICE_ID
#define OEMFUNC_SI_GET_PLATFORM                    OEMFUNC_BI_GET_PLATFORM
#define OEMFUNC_SI_GET_DEVICE                      OEMFUNC_BI_GET_DEVICE
#define OEMFUNC_SI_DO_FS_COMMAND                   OEMFUNC_BI_DO_FS_COMMAND

/* Flash2.0 New functions */
#define OEM_FUNC_SI_CONVERT_CSTRING_TO_UTF16STRING  OEMFUNC_FLASH_BASE+101
#define OEM_FUNC_SI_CONVERT_UTF16STRING_TO_CSTRING  OEMFUNC_FLASH_BASE+102
#define OEM_FUNC_SI_OPEN_URL_STREAM                 OEMFUNC_FLASH_BASE+103
#define OEM_FUNC_SI_LOAD_URL_STREAM_BUFFER          OEMFUNC_FLASH_BASE+104
#define OEM_FUNC_SI_TERMINATE_URL_STREAM            OEMFUNC_FLASH_BASE+105
#define OEM_FUNC_SI_DEVICE_LINEBREAK                OEMFUNC_FLASH_BASE+106
#define OEM_FUNC_SI_NOTIFY_SVG_CONTENT_ERROR        OEMFUNC_FLASH_BASE+107
#define OEM_FUNC_SI_PAUSE_SOUND                     OEMFUNC_FLASH_BASE+108
#define OEM_FUNC_SI_RESUME_SOUND                    OEMFUNC_FLASH_BASE+109
#define OEM_FUNC_SI_GET_IMAGE_INFO                  OEMFUNC_FLASH_BASE+110
#define OEM_FUNC_SI_DECODE_IMAGE                    OEMFUNC_FLASH_BASE+111
#define OEM_FUNC_SI_CREATE_VIDEO                    OEMFUNC_FLASH_BASE+112
#define OEM_FUNC_SI_PLAY_VIDEO                      OEMFUNC_FLASH_BASE+113
#define OEM_FUNC_SI_CLOSE_VIDEO                     OEMFUNC_FLASH_BASE+114
#define OEM_FUNC_SI_STOP_VIDEO                      OEMFUNC_FLASH_BASE+115
#define OEM_FUNC_SI_PAUSE_VIDEO                     OEMFUNC_FLASH_BASE+116
#define OEM_FUNC_SI_RESUME_VIDEO                    OEMFUNC_FLASH_BASE+117
#define OEM_FUNC_SI_GET_VIDEO_METHOD                OEMFUNC_FLASH_BASE+118
#define OEM_FUNC_SI_PROCESS_VIDEO_METHOD            OEMFUNC_FLASH_BASE+119
#define OEM_FUNC_SI_DESTROY_VIDEO                   OEMFUNC_FLASH_BASE+120
#define OEM_FUNC_SI_SET_VIDEO_RECT                  OEMFUNC_FLASH_BASE+121
#define OEM_FUNC_SI_EXTEND_BACKLIGHT_DURATION       OEMFUNC_FLASH_BASE+122
#define OEM_FUNC_SI_GET_SCREEN_INFO                 OEMFUNC_FLASH_BASE+123
#define OEM_FUNC_SI_GET_NUMBER_OF_SOFTKEYS          OEMFUNC_FLASH_BASE+124
#define OEM_FUNC_SI_QUIT_FLASHLITE                  OEMFUNC_FLASH_BASE+125
#define OEM_FUNC_SI_GET_UTC_TIMESTAMP               OEMFUNC_FLASH_BASE+126
#define OEM_FUNC_SI_CONVERT_UTC_TO_LOCAL_TIME       OEMFUNC_FLASH_BASE+127
#define OEM_FUNC_SI_CONVERT_LOCAL_TO_UTC_TIME       OEMFUNC_FLASH_BASE+128
#define OEM_FUNC_SI_FORMAT_DATE                     OEMFUNC_FLASH_BASE+129
#define OEM_FUNC_SI_FORMAT_TIME_OF_DAY              OEMFUNC_FLASH_BASE+130
#define OEM_FUNC_SI_GET_NETWORK_INFO                OEMFUNC_FLASH_BASE+131
#define OEM_FUNC_SI_GET_NETWORK_INFO_STRING         OEMFUNC_FLASH_BASE+132
#define OEM_FUNC_SI_SET_PERSISTENT_DATA             OEMFUNC_FLASH_BASE+133
#define OEM_FUNC_SI_GET_PERSISTENT_DATA_SIZE        OEMFUNC_FLASH_BASE+134
#define OEM_FUNC_SI_GET_PERSISTENT_DATA             OEMFUNC_FLASH_BASE+135
#define OEM_FUNC_SI_GET_MAX_PERSISTENTS_TO_RATE     OEMFUNC_FLASH_BASE+136
#define OEM_FUNC_SI_CANCEL_SHARED_OBJECT_REQUEST    OEMFUNC_FLASH_BASE+137



#define OEMVALUE_FLASH_FRAMEBUFFER                  OEMVALUE_FLASH_BASE+1
#define OEMVALUE_FLASH_FRAMEBUFFER_WIDTH            OEMVALUE_FLASH_BASE+2
#define OEMVALUE_FLASH_FRAMEBUFFER_HEIGHT           OEMVALUE_FLASH_BASE+3

/*-------------------------------------------------------------------------------------------
   Type Declarations
-------------------------------------------------------------------------------------------*/
typedef struct IKDDIHelper IKDDIHelper;

/*-------------------------------------------------------------------------------------------
   Macros Declarations
-------------------------------------------------------------------------------------------*/

/*===========================================================================================
 FUNCTION DECLARATIONS AND INLINE FUNCTION DEFINITIONS
===========================================================================================*/
/*-------------------------------------------------------------------------------------------
   Interface Definitions
-------------------------------------------------------------------------------------------*/
AEEINTERFACE(IKDDIHelper)
{
   INHERIT_IBase(IKDDIHelper);
   void * (* GetOEMFunc) (IKDDIHelper * po, uint32 dwID);
   int    (* SetOEMValue)(IKDDIHelper * po, uint32 dwID, uint32 val);
};

/*-------------------------------------------------------------------------------------------
   Access Macros
-------------------------------------------------------------------------------------------*/
#define IKDDIHELPER_AddRef(p)                 AEEGETPVTBL((p),IKDDIHelper)->AddRef((p))
#define IKDDIHELPER_Release(p)                AEEGETPVTBL((p),IKDDIHelper)->Release((p))
#define IKDDIHELPER_GetOEMFunc(p, dw)         AEEGETPVTBL((p),IKDDIHelper)->GetOEMFunc((p), (dw))
#define IKDDIHELPER_SetOEMValue(p, dw, val)   AEEGETPVTBL((p),IKDDIHelper)->SetOEMValue((p), (dw), (val))

#define GETOEMFUNC(po, dwID)                  IKDDIHELPER_GetOEMFunc(po, dwID)
#define SETOEMVALUE(po, dwID, val)            IKDDIHELPER_SetOEMValue(po, dwID, val)

#endif // __OEMFUNC_LIST__
