mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Merge pull request #8056 from JosJuice/more-enums-to-constexpr
Turn more enum constants into constexpr
This commit is contained in:
commit
e7bc86881d
@ -59,29 +59,49 @@ constexpr u64 BUFFER_TRANSFER_RATE = 32 * 1024 * 1024;
|
||||
|
||||
namespace DVDInterface
|
||||
{
|
||||
// "low" error codes
|
||||
constexpr u32 ERROR_READY = 0x0000000; // Ready.
|
||||
constexpr u32 ERROR_COVER_L = 0x01000000; // Cover is opened.
|
||||
constexpr u32 ERROR_CHANGE_DISK = 0x02000000; // Disk change.
|
||||
constexpr u32 ERROR_NO_DISK = 0x03000000; // No disk.
|
||||
constexpr u32 ERROR_MOTOR_STOP_L = 0x04000000; // Motor stop.
|
||||
constexpr u32 ERROR_NO_DISKID_L = 0x05000000; // Disk ID not read.
|
||||
|
||||
// "high" error codes
|
||||
constexpr u32 ERROR_NONE = 0x000000; // No error.
|
||||
constexpr u32 ERROR_MOTOR_STOP_H = 0x020400; // Motor stopped.
|
||||
constexpr u32 ERROR_NO_DISKID_H = 0x020401; // Disk ID not read.
|
||||
constexpr u32 ERROR_COVER_H = 0x023a00; // Medium not present / Cover opened.
|
||||
constexpr u32 ERROR_SEEK_NDONE = 0x030200; // No seek complete.
|
||||
constexpr u32 ERROR_READ = 0x031100; // Unrecovered read error.
|
||||
constexpr u32 ERROR_PROTOCOL = 0x040800; // Transfer protocol error.
|
||||
constexpr u32 ERROR_INV_CMD = 0x052000; // Invalid command operation code.
|
||||
constexpr u32 ERROR_AUDIO_BUF = 0x052001; // Audio Buffer not set.
|
||||
constexpr u32 ERROR_BLOCK_OOB = 0x052100; // Logical block address out of bounds.
|
||||
constexpr u32 ERROR_INV_FIELD = 0x052400; // Invalid field in command packet.
|
||||
constexpr u32 ERROR_INV_AUDIO = 0x052401; // Invalid audio command.
|
||||
constexpr u32 ERROR_INV_PERIOD = 0x052402; // Configuration out of permitted period.
|
||||
constexpr u32 ERROR_END_USR_AREA = 0x056300; // End of user area encountered on this track.
|
||||
constexpr u32 ERROR_MEDIUM = 0x062800; // Medium may have changed.
|
||||
constexpr u32 ERROR_MEDIUM_REQ = 0x0b5a01; // Operator medium removal request.
|
||||
|
||||
// internal hardware addresses
|
||||
enum
|
||||
{
|
||||
DI_STATUS_REGISTER = 0x00,
|
||||
DI_COVER_REGISTER = 0x04,
|
||||
DI_COMMAND_0 = 0x08,
|
||||
DI_COMMAND_1 = 0x0C,
|
||||
DI_COMMAND_2 = 0x10,
|
||||
DI_DMA_ADDRESS_REGISTER = 0x14,
|
||||
DI_DMA_LENGTH_REGISTER = 0x18,
|
||||
DI_DMA_CONTROL_REGISTER = 0x1C,
|
||||
DI_IMMEDIATE_DATA_BUFFER = 0x20,
|
||||
DI_CONFIG_REGISTER = 0x24
|
||||
};
|
||||
constexpr u32 DI_STATUS_REGISTER = 0x00;
|
||||
constexpr u32 DI_COVER_REGISTER = 0x04;
|
||||
constexpr u32 DI_COMMAND_0 = 0x08;
|
||||
constexpr u32 DI_COMMAND_1 = 0x0C;
|
||||
constexpr u32 DI_COMMAND_2 = 0x10;
|
||||
constexpr u32 DI_DMA_ADDRESS_REGISTER = 0x14;
|
||||
constexpr u32 DI_DMA_LENGTH_REGISTER = 0x18;
|
||||
constexpr u32 DI_DMA_CONTROL_REGISTER = 0x1C;
|
||||
constexpr u32 DI_IMMEDIATE_DATA_BUFFER = 0x20;
|
||||
constexpr u32 DI_CONFIG_REGISTER = 0x24;
|
||||
|
||||
// debug commands which may be ORd
|
||||
enum
|
||||
{
|
||||
STOP_DRIVE = 0,
|
||||
START_DRIVE = 0x100,
|
||||
ACCEPT_COPY = 0x4000,
|
||||
DISC_CHECK = 0x8000,
|
||||
};
|
||||
constexpr u32 STOP_DRIVE = 0;
|
||||
constexpr u32 START_DRIVE = 0x100;
|
||||
constexpr u32 ACCEPT_COPY = 0x4000;
|
||||
constexpr u32 DISC_CHECK = 0x8000;
|
||||
|
||||
// DI Status Register
|
||||
union UDISR
|
||||
|
@ -24,36 +24,6 @@ class Mapping;
|
||||
|
||||
namespace DVDInterface
|
||||
{
|
||||
// Not sure about endianness here. I'll just name them like this...
|
||||
enum DIErrorLow
|
||||
{
|
||||
ERROR_READY = 0x00000000, // Ready.
|
||||
ERROR_COVER_L = 0x01000000, // Cover is opened.
|
||||
ERROR_CHANGE_DISK = 0x02000000, // Disk change.
|
||||
ERROR_NO_DISK = 0x03000000, // No disk.
|
||||
ERROR_MOTOR_STOP_L = 0x04000000, // Motor stop.
|
||||
ERROR_NO_DISKID_L = 0x05000000 // Disk ID not read.
|
||||
};
|
||||
enum DIErrorHigh
|
||||
{
|
||||
ERROR_NONE = 0x000000, // No error.
|
||||
ERROR_MOTOR_STOP_H = 0x020400, // Motor stopped.
|
||||
ERROR_NO_DISKID_H = 0x020401, // Disk ID not read.
|
||||
ERROR_COVER_H = 0x023a00, // Medium not present / Cover opened.
|
||||
ERROR_SEEK_NDONE = 0x030200, // No seek complete.
|
||||
ERROR_READ = 0x031100, // Unrecovered read error.
|
||||
ERROR_PROTOCOL = 0x040800, // Transfer protocol error.
|
||||
ERROR_INV_CMD = 0x052000, // Invalid command operation code.
|
||||
ERROR_AUDIO_BUF = 0x052001, // Audio Buffer not set.
|
||||
ERROR_BLOCK_OOB = 0x052100, // Logical block address out of bounds.
|
||||
ERROR_INV_FIELD = 0x052400, // Invalid field in command packet.
|
||||
ERROR_INV_AUDIO = 0x052401, // Invalid audio command.
|
||||
ERROR_INV_PERIOD = 0x052402, // Configuration out of permitted period.
|
||||
ERROR_END_USR_AREA = 0x056300, // End of user area encountered on this track.
|
||||
ERROR_MEDIUM = 0x062800, // Medium may have changed.
|
||||
ERROR_MEDIUM_REQ = 0x0b5a01 // Operator medium removal request.
|
||||
};
|
||||
|
||||
enum DICommand
|
||||
{
|
||||
DVDLowInquiry = 0x12,
|
||||
|
@ -88,47 +88,43 @@ public:
|
||||
|
||||
ControllerEmu::ControlGroup* GetGroup(ClassicGroup group);
|
||||
|
||||
enum
|
||||
{
|
||||
PAD_RIGHT = 0x80,
|
||||
PAD_DOWN = 0x40,
|
||||
TRIGGER_L = 0x20,
|
||||
BUTTON_MINUS = 0x10,
|
||||
BUTTON_HOME = 0x08,
|
||||
BUTTON_PLUS = 0x04,
|
||||
TRIGGER_R = 0x02,
|
||||
NOTHING = 0x01,
|
||||
BUTTON_ZL = 0x8000,
|
||||
BUTTON_B = 0x4000,
|
||||
BUTTON_Y = 0x2000,
|
||||
BUTTON_A = 0x1000,
|
||||
BUTTON_X = 0x0800,
|
||||
BUTTON_ZR = 0x0400,
|
||||
PAD_LEFT = 0x0200,
|
||||
PAD_UP = 0x0100,
|
||||
};
|
||||
static constexpr u16 PAD_RIGHT = 0x80;
|
||||
static constexpr u16 PAD_DOWN = 0x40;
|
||||
static constexpr u16 TRIGGER_L = 0x20;
|
||||
static constexpr u16 BUTTON_MINUS = 0x10;
|
||||
static constexpr u16 BUTTON_HOME = 0x08;
|
||||
static constexpr u16 BUTTON_PLUS = 0x04;
|
||||
static constexpr u16 TRIGGER_R = 0x02;
|
||||
static constexpr u16 NOTHING = 0x01;
|
||||
static constexpr u16 BUTTON_ZL = 0x8000;
|
||||
static constexpr u16 BUTTON_B = 0x4000;
|
||||
static constexpr u16 BUTTON_Y = 0x2000;
|
||||
static constexpr u16 BUTTON_A = 0x1000;
|
||||
static constexpr u16 BUTTON_X = 0x0800;
|
||||
static constexpr u16 BUTTON_ZR = 0x0400;
|
||||
static constexpr u16 PAD_LEFT = 0x0200;
|
||||
static constexpr u16 PAD_UP = 0x0100;
|
||||
|
||||
enum
|
||||
{
|
||||
CAL_STICK_CENTER = 0x80,
|
||||
CAL_STICK_RANGE = 0x7f,
|
||||
CAL_STICK_BITS = 8,
|
||||
static constexpr u8 CAL_STICK_CENTER = 0x80;
|
||||
static constexpr u8 CAL_STICK_RANGE = 0x7f;
|
||||
static constexpr int CAL_STICK_BITS = 8;
|
||||
|
||||
LEFT_STICK_BITS = 6,
|
||||
LEFT_STICK_CENTER_X = CAL_STICK_CENTER >> (CAL_STICK_BITS - LEFT_STICK_BITS),
|
||||
LEFT_STICK_CENTER_Y = CAL_STICK_CENTER >> (CAL_STICK_BITS - LEFT_STICK_BITS),
|
||||
LEFT_STICK_RADIUS = CAL_STICK_RANGE >> (CAL_STICK_BITS - LEFT_STICK_BITS),
|
||||
static constexpr int LEFT_STICK_BITS = 6;
|
||||
static constexpr u8 LEFT_STICK_CENTER_X = CAL_STICK_CENTER >> (CAL_STICK_BITS - LEFT_STICK_BITS);
|
||||
static constexpr u8 LEFT_STICK_CENTER_Y = CAL_STICK_CENTER >> (CAL_STICK_BITS - LEFT_STICK_BITS);
|
||||
static constexpr u8 LEFT_STICK_RADIUS = CAL_STICK_RANGE >> (CAL_STICK_BITS - LEFT_STICK_BITS);
|
||||
|
||||
RIGHT_STICK_BITS = 5,
|
||||
RIGHT_STICK_CENTER_X = CAL_STICK_CENTER >> (CAL_STICK_BITS - RIGHT_STICK_BITS),
|
||||
RIGHT_STICK_CENTER_Y = CAL_STICK_CENTER >> (CAL_STICK_BITS - RIGHT_STICK_BITS),
|
||||
RIGHT_STICK_RADIUS = CAL_STICK_RANGE >> (CAL_STICK_BITS - RIGHT_STICK_BITS),
|
||||
static constexpr int RIGHT_STICK_BITS = 5;
|
||||
static constexpr u8 RIGHT_STICK_CENTER_X = CAL_STICK_CENTER >>
|
||||
(CAL_STICK_BITS - RIGHT_STICK_BITS);
|
||||
static constexpr u8 RIGHT_STICK_CENTER_Y = CAL_STICK_CENTER >>
|
||||
(CAL_STICK_BITS - RIGHT_STICK_BITS);
|
||||
static constexpr u8 RIGHT_STICK_RADIUS = CAL_STICK_RANGE >> (CAL_STICK_BITS - RIGHT_STICK_BITS);
|
||||
|
||||
LEFT_TRIGGER_RANGE = 0x1F,
|
||||
RIGHT_TRIGGER_RANGE = 0x1F,
|
||||
};
|
||||
static constexpr u8 LEFT_TRIGGER_RANGE = 0x1F;
|
||||
static constexpr u8 RIGHT_TRIGGER_RANGE = 0x1F;
|
||||
|
||||
static const u8 STICK_GATE_RADIUS = 0x16;
|
||||
static constexpr u8 STICK_GATE_RADIUS = 0x16;
|
||||
|
||||
private:
|
||||
ControllerEmu::Buttons* m_buttons;
|
||||
|
@ -67,8 +67,8 @@ public:
|
||||
{
|
||||
None = 0b1111111,
|
||||
Bass = 0b1011011,
|
||||
// TODO: Implement HiHat.
|
||||
// HiHat = 0b0011011,
|
||||
// TODO: Implement HiHatPedal.
|
||||
// HiHatPedal = 0b0011011,
|
||||
Red = 0b1011001,
|
||||
Yellow = 0b1010001,
|
||||
Blue = 0b1001111,
|
||||
@ -86,25 +86,18 @@ public:
|
||||
|
||||
void DoState(PointerWrap& p) override;
|
||||
|
||||
enum : u8
|
||||
{
|
||||
BUTTON_PLUS = 0x04,
|
||||
BUTTON_MINUS = 0x10,
|
||||
// FYI: The low/high bits of the button byte are "random" when velocity data is present.
|
||||
// static constexpr u8 HAVE_VELOCITY_DATA = 0b10000001;
|
||||
static constexpr u8 BUTTON_PLUS = 0x04;
|
||||
static constexpr u8 BUTTON_MINUS = 0x10;
|
||||
|
||||
// FYI: The low/high bits of the button byte are "random" when velocity data is present.
|
||||
// HAVE_VELOCITY_DATA = 0b10000001,
|
||||
};
|
||||
|
||||
enum : u8
|
||||
{
|
||||
// FYI: HiHat sets no bits here.
|
||||
PAD_BASS = 0x04,
|
||||
PAD_BLUE = 0x08,
|
||||
PAD_GREEN = 0x10,
|
||||
PAD_YELLOW = 0x20,
|
||||
PAD_RED = 0x40,
|
||||
PAD_ORANGE = 0x80,
|
||||
};
|
||||
// FYI: The hi-hat pedal sets no bits here.
|
||||
static constexpr u8 PAD_BASS = 0x04;
|
||||
static constexpr u8 PAD_BLUE = 0x08;
|
||||
static constexpr u8 PAD_GREEN = 0x10;
|
||||
static constexpr u8 PAD_YELLOW = 0x20;
|
||||
static constexpr u8 PAD_RED = 0x40;
|
||||
static constexpr u8 PAD_ORANGE = 0x80;
|
||||
|
||||
// Note: My hardware's octagon stick produced the complete range of values (0 - 0x3f)
|
||||
// It also had perfect center values of 0x20 with absolutely no "play".
|
||||
|
@ -57,19 +57,16 @@ public:
|
||||
|
||||
ControllerEmu::ControlGroup* GetGroup(GuitarGroup group);
|
||||
|
||||
enum
|
||||
{
|
||||
BUTTON_PLUS = 0x04,
|
||||
BUTTON_MINUS = 0x10,
|
||||
BAR_DOWN = 0x40,
|
||||
static constexpr u16 BUTTON_PLUS = 0x04;
|
||||
static constexpr u16 BUTTON_MINUS = 0x10;
|
||||
static constexpr u16 BAR_DOWN = 0x40;
|
||||
|
||||
BAR_UP = 0x0100,
|
||||
FRET_YELLOW = 0x0800,
|
||||
FRET_GREEN = 0x1000,
|
||||
FRET_BLUE = 0x2000,
|
||||
FRET_RED = 0x4000,
|
||||
FRET_ORANGE = 0x8000,
|
||||
};
|
||||
static constexpr u16 BAR_UP = 0x0100;
|
||||
static constexpr u16 FRET_YELLOW = 0x0800;
|
||||
static constexpr u16 FRET_GREEN = 0x1000;
|
||||
static constexpr u16 FRET_BLUE = 0x2000;
|
||||
static constexpr u16 FRET_RED = 0x4000;
|
||||
static constexpr u16 FRET_ORANGE = 0x8000;
|
||||
|
||||
static const u8 STICK_CENTER = 0x20;
|
||||
static const u8 STICK_RADIUS = 0x1f;
|
||||
|
@ -78,24 +78,15 @@ public:
|
||||
|
||||
ControllerEmu::ControlGroup* GetGroup(NunchukGroup group);
|
||||
|
||||
enum
|
||||
{
|
||||
BUTTON_C = 0x02,
|
||||
BUTTON_Z = 0x01,
|
||||
};
|
||||
static constexpr u8 BUTTON_C = 0x02;
|
||||
static constexpr u8 BUTTON_Z = 0x01;
|
||||
|
||||
enum
|
||||
{
|
||||
ACCEL_ZERO_G = 0x80,
|
||||
ACCEL_ONE_G = 0xB3,
|
||||
};
|
||||
static constexpr u8 ACCEL_ZERO_G = 0x80;
|
||||
static constexpr u8 ACCEL_ONE_G = 0xB3;
|
||||
|
||||
enum
|
||||
{
|
||||
STICK_CENTER = 0x80,
|
||||
STICK_RADIUS = 0x7F,
|
||||
STICK_GATE_RADIUS = 0x52,
|
||||
};
|
||||
static constexpr u8 STICK_CENTER = 0x80;
|
||||
static constexpr u8 STICK_RADIUS = 0x7F;
|
||||
static constexpr u8 STICK_GATE_RADIUS = 0x52;
|
||||
|
||||
void LoadDefaults(const ControllerInterface& ciface) override;
|
||||
|
||||
|
@ -63,21 +63,18 @@ public:
|
||||
|
||||
ControllerEmu::ControlGroup* GetGroup(TurntableGroup group);
|
||||
|
||||
enum
|
||||
{
|
||||
BUTTON_EUPHORIA = 0x1000,
|
||||
static constexpr u16 BUTTON_EUPHORIA = 0x1000;
|
||||
|
||||
BUTTON_L_GREEN = 0x0800,
|
||||
BUTTON_L_RED = 0x20,
|
||||
BUTTON_L_BLUE = 0x8000,
|
||||
static constexpr u16 BUTTON_L_GREEN = 0x0800;
|
||||
static constexpr u16 BUTTON_L_RED = 0x20;
|
||||
static constexpr u16 BUTTON_L_BLUE = 0x8000;
|
||||
|
||||
BUTTON_R_GREEN = 0x2000,
|
||||
BUTTON_R_RED = 0x02,
|
||||
BUTTON_R_BLUE = 0x0400,
|
||||
static constexpr u16 BUTTON_R_GREEN = 0x2000;
|
||||
static constexpr u16 BUTTON_R_RED = 0x02;
|
||||
static constexpr u16 BUTTON_R_BLUE = 0x0400;
|
||||
|
||||
BUTTON_MINUS = 0x10,
|
||||
BUTTON_PLUS = 0x04,
|
||||
};
|
||||
static constexpr u16 BUTTON_MINUS = 0x10;
|
||||
static constexpr u16 BUTTON_PLUS = 0x04;
|
||||
|
||||
static constexpr int STICK_BIT_COUNT = 6;
|
||||
static constexpr u8 STICK_CENTER = (1 << STICK_BIT_COUNT) / 2;
|
||||
|
@ -83,27 +83,21 @@ void UpdateCalibrationDataChecksum(T& data, int cksum_bytes)
|
||||
class Wiimote : public ControllerEmu::EmulatedController
|
||||
{
|
||||
public:
|
||||
enum : u8
|
||||
{
|
||||
ACCEL_ZERO_G = 0x80,
|
||||
ACCEL_ONE_G = 0x9A,
|
||||
};
|
||||
static constexpr u8 ACCEL_ZERO_G = 0x80;
|
||||
static constexpr u8 ACCEL_ONE_G = 0x9A;
|
||||
|
||||
enum : u16
|
||||
{
|
||||
PAD_LEFT = 0x01,
|
||||
PAD_RIGHT = 0x02,
|
||||
PAD_DOWN = 0x04,
|
||||
PAD_UP = 0x08,
|
||||
BUTTON_PLUS = 0x10,
|
||||
static constexpr u16 PAD_LEFT = 0x01;
|
||||
static constexpr u16 PAD_RIGHT = 0x02;
|
||||
static constexpr u16 PAD_DOWN = 0x04;
|
||||
static constexpr u16 PAD_UP = 0x08;
|
||||
static constexpr u16 BUTTON_PLUS = 0x10;
|
||||
|
||||
BUTTON_TWO = 0x0100,
|
||||
BUTTON_ONE = 0x0200,
|
||||
BUTTON_B = 0x0400,
|
||||
BUTTON_A = 0x0800,
|
||||
BUTTON_MINUS = 0x1000,
|
||||
BUTTON_HOME = 0x8000,
|
||||
};
|
||||
static constexpr u16 BUTTON_TWO = 0x0100;
|
||||
static constexpr u16 BUTTON_ONE = 0x0200;
|
||||
static constexpr u16 BUTTON_B = 0x0400;
|
||||
static constexpr u16 BUTTON_A = 0x0800;
|
||||
static constexpr u16 BUTTON_MINUS = 0x1000;
|
||||
static constexpr u16 BUTTON_HOME = 0x8000;
|
||||
|
||||
explicit Wiimote(unsigned int index);
|
||||
|
||||
|
@ -31,29 +31,20 @@ using Report = std::vector<u8>;
|
||||
constexpr u32 WIIMOTE_DEFAULT_TIMEOUT = 1000;
|
||||
|
||||
// Communication channels
|
||||
enum WiimoteChannel
|
||||
{
|
||||
WC_OUTPUT = 0x11,
|
||||
WC_INPUT = 0x13,
|
||||
};
|
||||
constexpr u8 WC_OUTPUT = 0x11;
|
||||
constexpr u8 WC_INPUT = 0x13;
|
||||
|
||||
// The 4 most significant bits of the first byte of an outgoing command must be
|
||||
// 0x50 if sending on the command channel and 0xA0 if sending on the interrupt
|
||||
// channel. On Mac and Linux we use interrupt channel; on Windows, command.
|
||||
enum WiimoteReport
|
||||
{
|
||||
#ifdef _WIN32
|
||||
WR_SET_REPORT = 0x50
|
||||
constexpr u8 WR_SET_REPORT = 0x50;
|
||||
#else
|
||||
WR_SET_REPORT = 0xA0
|
||||
constexpr u8 WR_SET_REPORT = 0xA0;
|
||||
#endif
|
||||
};
|
||||
|
||||
enum WiimoteBT
|
||||
{
|
||||
BT_INPUT = 0x01,
|
||||
BT_OUTPUT = 0x02
|
||||
};
|
||||
constexpr u8 BT_INPUT = 0x01;
|
||||
constexpr u8 BT_OUTPUT = 0x02;
|
||||
|
||||
class Wiimote
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user