uservar.h 1.75 KB
/**    
    @file     uservar.h
    @date     2009/4/9
    @author   오재경 freefrug@falinux.com  FALinux.Co.,Ltd.
    @brief    사용자가 편집하는 변수를 관리하는 구조체들
              
    
    @modify   
    @todo    
    @bug     
    @remark  
    @warning 
*/
//----------------------------------------------------------------------------


#ifndef _USERVAR_HEADER_
#define _USERVAR_HEADER_


/// 정수형 변수 편집 구조체
typedef struct 
{
	int cur_val;       // 변경되는 값
	int *ptr_org_val;  // 원래의 값
	
	int max;           // 최대값
	int min;           // 최소값
	int step;          // 변화치
	int allow_loop;    // 순환허용여부
	
} user_var_integer_t;


/// @{
/// @brief  uservar.c 가 제공하는 초기화 매크로
//----------------------------------------------------------------------------
#define DECRARE_UVAR_INT( _name_, _cur_val_, _ptr_org_val_, _min_, _max_, _step_, _allow_loop_ ) \
		static user_var_integer_t _name = { \
			.cur_val     = _cur_val_     ,  \
			.ptr_org_val = _ptr_org_val_ ,  \
			.max         = _max_         ,  \
			.min         = _min_         ,  \
			.step        = _step_        ,  \
			.allow_loop  = _allow_loop_  ,  \
		}

/// @}

/// @{
/// @brief  uservar.c 가 제공하는 함수
//----------------------------------------------------------------------------
extern void  uvar_int_ready( user_var_integer_t *uv );           /// 정수형 편집 구조체를 사용할 준비를 한다.
extern void  uvar_int_apply( user_var_integer_t *uv );           /// 정수형 편집 구조체에서 수정된 값을 적용한다.
extern void  uvar_int_add( user_var_integer_t *uv, int offset ); /// 정수형 편집 구조체에서 값을 변경한다.


/// @}


#endif // _USERVAR_HEADER_