flycast/core/hw/maple/maple_cfg.h

72 lines
1.2 KiB
C

#pragma once
#include "types.h"
#include "maple_devs.h"
enum PlainJoystickButtonId
{
PJBI_B = 1,
PJBI_A = 2,
PJBI_START = 3,
PJBI_DPAD_UP = 4,
PJBI_DPAD_DOWN = 5,
PJBI_DPAD_LEFT = 6,
PJBI_DPAD_RIGHT = 7,
PJBI_Y = 9,
PJBI_X = 10,
PJBI_Count=16
};
enum PlainJoystickAxisId
{
PJAI_X1 = 0,
PJAI_Y1 = 1,
PJAI_X2 = 2,
PJAI_Y2 = 3,
PJAI_Count = 4
};
enum PlainJoystickTriggerId
{
PJTI_L = 0,
PJTI_R = 1,
PJTI_Count = 2
};
struct PlainJoystickState
{
PlainJoystickState()
{
kcode=0xFFFF;
joy[0]=joy[1]=joy[2]=joy[3]=0x80;
trigger[0]=trigger[1]=0;
}
u32 kcode;
u8 joy[PJAI_Count];
u8 trigger[PJTI_Count];
};
struct IMapleConfigMap
{
virtual void SetVibration(u32 value) = 0;
virtual void GetInput(PlainJoystickState* pjs)=0;
virtual void SetImage(void* img)=0;
virtual ~IMapleConfigMap() {}
};
#if DC_PLATFORM == DC_PLATFORM_DREAMCAST
void mcfg_CreateDevicesFromConfig();
void mcfg_CreateController(u32 bus, MapleDeviceType maple_type1, MapleDeviceType maple_type2);
#else
void mcfg_CreateNAOMIJamma();
void mcfg_CreateAtomisWaveControllers();
#endif
void mcfg_DestroyDevices();
void mcfg_SerializeDevices(void **data, unsigned int *total_size);
void mcfg_UnserializeDevices(void **data, unsigned int *total_size);