/***************************************************************************

	inptport.c

	Input port emulation

***************************************************************************/

#ifndef	INPTPORT_H
#define INPTPORT_H

enum
{
	NEOGEO_A = 4,
	NEOGEO_B,
	NEOGEO_C,
	NEOGEO_D,
	NEOGEO_BUTTON_MAX,
};

enum
{
	P1_UP = 0,	// 0
	P1_DOWN,	// 1
	P1_LEFT,	// 2
	P1_RIGHT,	// 3
	P1_BUTTONA,	// 4
	P1_BUTTONB,	// 5
	P1_BUTTONC,	// 6
	P1_BUTTOND,	// 7
	P1_START,	// 8
	P1_SELECT,	// 9
	P1_AF_A,	// 10
	P1_AF_B,	// 11
	P1_AF_C,	// 12
	P1_AF_D,	// 13
	P1_AB,		// 14
	P1_AC,		// 15
	P1_AD,		// 16
	P1_BC,		// 17
	P1_BD,		// 18
	P1_CD,		// 19
	P1_ABC,		// 20
	P1_ABD,		// 21
	P1_ACD,		// 22
	P1_BCD,		// 23
	P1_ABCD,	// 24
	SHOWMENU,	// 25
	SNAPSHOT,	// 26
	SWPLAYER,	// 27
	MAX_INPUTS
};

extern int neogeo_input_port;
extern int input_map[MAX_INPUTS];
extern int af_interval;

void input_init(void);
void input_shutdown(void);
void update_autofire(void);
void update_inputport(void);

u8 read_inputport1(void);
u8 read_inputport2(void);
u8 read_inputport3(void);

#ifdef SAVE_STATE
void state_save_inputport(u8 *state_buf);
void state_load_inputport(u8 *state_buf);
#endif

#endif /* INPTPORT_H */
