// ---- auto generated by YInG - the YAC interface generator (Wed, 25/Jul/2018 13:43:38)
#ifndef __YAC__hal1_h__
#define __YAC__hal1_h__

sUI                                          clid_Cursor;
YAC_Template <_Cursor>                         *t_Cursor;
sUI                                          clid_FPS;
YAC_STemplate<_FPS>                            *t_FPS;
sUI                                          clid_Joystick;
YAC_Template <_Joystick>                       *t_Joystick;
sUI                                          clid_Key;
YAC_Template <_Key>                            *t_Key;
sUI                                          clid_Mouse;
YAC_STemplate<_Mouse>                          *t_Mouse;
sUI                                          clid_Viewport;
YAC_STemplate<_Viewport>                       *t_Viewport;

void YAC_CALL YAC_Init_hal1(YAC_Host *_host) {
	// --------------------------------- classes ---------------------------------
	   t_Cursor                   =new YAC_Template <_Cursor>(_host);
	clid_Cursor                   =                t_Cursor->ctemplate.class_ID;
	   t_FPS                      =new YAC_STemplate<_FPS>(_host);
	clid_FPS                      =                t_FPS->ctemplate.class_ID;
	   t_Joystick                 =new YAC_Template <_Joystick>(_host);
	clid_Joystick                 =                t_Joystick->ctemplate.class_ID;
	   t_Key                      =new YAC_Template <_Key>(_host);
	clid_Key                      =                t_Key->ctemplate.class_ID;
	   t_Mouse                    =new YAC_STemplate<_Mouse>(_host);
	clid_Mouse                    =                t_Mouse->ctemplate.class_ID;
	   t_Viewport                 =new YAC_STemplate<_Viewport>(_host);
	clid_Viewport                 =                t_Viewport->ctemplate.class_ID;
	// -------------------------------- functions --------------------------------
	static const sUI   __APIC__SDL_SetClipboard_arg_types         []={3,};
	static const sUI   __APIC__SDL_GetClipboard_arg_types         []={0,};
	static const char *__APIC__SDL_SetClipboard_arg_otypes        []={"",};
	static const char *__APIC__SDL_GetClipboard_arg_otypes        []={0,};
	_host->yacRegisterFunction((void*)__APIC__SDL_SetClipboard, "SDL_SetClipboard", 0, "", 1, __APIC__SDL_SetClipboard_arg_types, __APIC__SDL_SetClipboard_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC__SDL_GetClipboard, "SDL_GetClipboard", 4, "", 0, __APIC__SDL_GetClipboard_arg_types, __APIC__SDL_GetClipboard_arg_otypes, 5);

}
void  YAC_CALL __APIC__SDL_SetClipboard(yacmemptr _args                      ) {SDL_SetClipboard(_args.mem[0].o);}
void  YAC_CALL __APIC__SDL_GetClipboard(YAC_Value *_r                        ) {SDL_GetClipboard(_r);}

void YAC_CALL YAC_Exit_hal1(YAC_Host *_host) {
	delete t_Cursor;
	delete t_FPS;
	delete t_Joystick;
	delete t_Key;
	delete t_Mouse;
	delete t_Viewport;
}

#endif
