dsmApi.h 5.52 KB
#ifdef __MMI_DSM_NEW__

#ifndef __DSM_API_H__
#define __DSM_API_H__

#ifndef NULL
#define NULL 0
#endif

typedef unsigned char U8;
typedef int int32;
typedef unsigned int uint32;
typedef unsigned char uint8;
typedef unsigned char kal_uint8;
typedef unsigned short int kal_uint16;
typedef unsigned char BOOL;

typedef unsigned long int gunichar;
typedef char   gchar;
typedef unsigned int    guint;
typedef unsigned char   guchar;
typedef unsigned short  gushort;
typedef unsigned long   gulong;
typedef unsigned int    guint;

#define	VOID	void

#ifndef MAX
#define MAX(x, y)           (((x) > (y))?(x):(y))
#endif

#ifndef MIN
#define MIN(x, y)           (((x) < (y))?(x):(y))
#endif

#ifndef ABS
#define ABS(x)              (((x)<0) ? -(x) : (x))
#endif

#ifndef DIV
#define DIV(x, y)		((x) / (y))
#endif

#ifndef MOD
#define MOD(x, y)		((x) % (y))
#endif

typedef enum DSM_HTTP_TYPE
{
	DSM_HTTP_TYPE_CMNET,
	DSM_HTTP_TYPE_CMWAP,
}DSM_HTTP_TYPE;

typedef enum
{
	DSM_SOC_SUCCESS           = 0,     /* success */
	DSM_SOC_ERROR             = -1,    /* error */
	DSM_SOC_WOULDBLOCK        = -2,    /* not done yet */
}dsm_socket_state;

typedef enum
{
	DSM_SOC_STATE_CONNECTING,
	DSM_SOC_STATE_CONNECTED,
	DSM_SOC_STATE_CLOSED,
	DSM_SOC_STATE_CONNECT_FALIED = -1,
	DSM_SOC_STATE_CONNECT_TIME_OUT = -2
}dsm_socket_connect_state;

#define DSM_SIM_NONE       (0)
#define DSM_SIM_CARD1   (1<<0)
#define DSM_SIM_CARD2   (1<<1)
#define DSM_SIM_CARD3    (1<<2)
#define DSM_SIM_CARD4   (1<<3)
#define DSM_SIM_WIFI   (1<<5)

/*
* 初始化SIM信息
*/
typedef void(*init_sim_info_cb)(int ret);
void dsm_init_sim_card_info(init_sim_info_cb cb);

/*
* 获取活动的SIM卡
*/
unsigned int dsm_get_action_sim();

/*
* 获取活动的SIM卡IMSI号
*/
char *dsm_get_action_sim_imsi();

/*
* 获取活动的SIM卡IMEI号
*/
char *dsm_get_action_sim_imei();

void dsm_get_manufactory(char *manufactory,int bufLen);

void dsm_get_type(char *type,int bufLen);

/*
* 获取活动的SIM卡plmn号
*/
char *dsm_get_action_sim_plmn(unsigned int *output_len);

/*
* 屏幕宽
*/
int dsm_get_screen_width();

/*
* 屏幕高
*/
int dsm_get_screen_height();


typedef void(*init_nwk_account_cb)(int ret);
/*
* 设置程序的网络账号
*/
BOOL dsm_init_nwk_account(DSM_HTTP_TYPE conntype,init_nwk_account_cb cb);

/*
* 释放程序的网络账号
*/
void dsm_free_nwk_account();

/*
* 创建一个socket
*/
signed char dsm_socket_create();


typedef unsigned char(*socket_connect_cb)(dsm_socket_connect_state state,int socId);
/*
* socket 连接
*/
int dsm_socket_connect(int s, int ip, unsigned short port,socket_connect_cb cb);

/*
* socket 接收
*/
int dsm_socket_recv(int s, const char *buf, int len);

/*
* socket 发送
*/
int dsm_socket_send(int s, const char *buf, int len);

/*
* socket 关闭
*/
int dsm_socket_close(int s);


typedef int(*dsm_dsn_cb)(int result);
/*
* 获取域名IP
*/
int dsm_get_host_by_name(const char *name, dsm_dsn_cb cb);


//////////////////////////////////////////////////

typedef void(*sh_timer_cb)(void *p);

#define DSM_MAX_TIMER_COUNT   (20)

/*
* 创建一个timer
*/
int dsm_create_timerId();

/*
*删除一个timer
*/
void dsm_delete_timer(int timerId);

/*
*停止一个timer
*/
void dsm_stop_timer(int timerId);

/*
*启动一个timer
*/
void dsm_start_timer(int timerId,unsigned int delay,sh_timer_cb cb,void *userData);


/****************************************************
*					内存相关							*
*****************************************************/
void *dsm_malloc(unsigned int size);

void dsm_free(char **pptr);


/****************************************************
*					短信相关							*
*****************************************************/

/*
* 发送短信
*/
typedef void(*send_sms_cb)(int ret,void *userData);
int dsm_send_sms(char *pNumber,char *pContent, int active_sim,send_sms_cb cb,void *userData);

void dsm_sms_remove(unsigned short msg_id);


/****************************************************
*					文件相关							*
*****************************************************/
#define DSM_FILE_RDONLY     1 //以只读的方式打开文件。
#define DSM_FILE_WRONLY     2 //以只写的方式打开文件。
#define DSM_FILE_RDWR       4 //以读写的方式打开文件。
#define DSM_FILE_CREATE     8 //如果文件不存在,创建该文件。
#define DSM_FILE_SHARD      16
#define DSM_FILE_COMMITTED  32

enum
{
   DSM_SEEK_SET,
   DSM_SEEK_CUR,
   DSM_SEEK_END
};

#define DSM_IS_FILE     1      //文件
#define DSM_IS_DIR      2      //目录
#define DSM_IS_INVALID  8  //无效(非文件、非目录)

void dsm_init_file_drv();
int dsm_file_create_dir(const char *dir,char isHidden);
int dsm_file_open(const char* filename,unsigned int mode);
int dsm_file_write(int f,void *p,unsigned int l);
int dsm_file_read(int f,void *p,unsigned int l);
int dsm_file_seek(int f,int pos,int method);
int dsm_file_close(int f);
int dsm_get_file_size(const char* filename);
int dsm_get_file_info(const char* filename);
int dsm_file_remove(const char* filename);

/*
* 背光灯是否开启
*/
char dsm_is_back_light_on();

/*
* 获取系统时间
*/
typedef struct dsm_mytimeSt
{
    short nYear;
    char nMonth;
    char nDay;
    char nHour;
    char nMin;
    char nSec;
    char DayIndex; /* 0=Sunday */
} dsm_mytime;

void dsm_get_date_time(dsm_mytime *ptime);

/*
* 闹钟相关
*/
typedef enum
{
    DSM_REMINDER_NOTIFY_INIT,   //初始化(开机)
    DSM_REMINDER_NOTIFY_EXPIRY, // 事件触发
    DSM_REMINDER_NOTIFY_REINIT, // 重新初始化(比如:重置时间)
} dsm_reminder_notify_enum;
/*
* 闹钟事件回调
*/
void dsm_evt_cb(dsm_reminder_notify_enum status,unsigned int usr_data);

/*
* 适配层接口
*/
int dsm_event_set(const dsm_mytime *expiry_time,unsigned int usr_data);
int dsm_event_cance(unsigned int usr_data);


#endif // __DSM_API_H__

#endif // __MOSOFT_VVCAT_SUPPORT__