/**
 	@file	event.h
	@brief ChannelSDK's event header
	@author STB2sw1
	@date 2009.10.06
	*/

#ifndef __EVENT_H__
#define __EVENT_H__

#include "hx_types.h"

#define EVENT_DATA_SIZE		8192 

/**
 *  @brief 코어 내의 이벤트 구조체
 *  cmd - 기본 명령 정의
 *  size, data - 추가적인 정보 저장소와 그 내용 사이즈
 */

struct event_st {
	HX_UINT8 cmd;
	HX_UINT16 size;
	HX_INT8 data[EVENT_DATA_SIZE];
};

/**
 @brief core로 들어오는 event 를 가지고 오는 함수
 @param 	evt -> 받은 데이터를 넘겨주는 위한 포인터
 @return success status
 @see  
 @todo 
 @bug	
*/

HX_STATUS get_event(struct event_st *evt);

/**
 @brief event안의 data에서 데이터를 가져오는 함수
 @param  *data 저장할 메모리 영역, size 최대 저장 사이즈, evt 가지고 올 event pointer
 @return success status
 @see  
 @todo 
 @bug	
*/
HX_STATUS get_event_data(void *data, HX_INT16 size, struct event_st *evt);
int get_event_msg_size(void);

HX_STATUS get_event_char(char *data);
HX_STATUS get_event_short(short *data);
HX_STATUS get_event_int(int *data);
HX_STATUS get_event_long(long *data);
HX_STATUS get_event_string(char *data,int len);
HX_STATUS get_event_bytes(char *data,int len);
#endif //__EVENT_H__

//end of file


