Play-/Source/iop/UsbBuzzerDevice.h

58 lines
1.4 KiB
C
Raw Permalink Normal View History

#pragma once
#include "UsbDevice.h"
#include "PadInterface.h"
class CIopBios;
class CPadHandler;
namespace Iop
{
class CBuzzerUsbDevice : public CUsbDevice, public CPadInterface
{
public:
enum
{
DEVICE_ID = 0xBEEF,
CONTROL_PIPE_ID = 0x123,
PIPE_ID = 0x456,
};
CBuzzerUsbDevice(CIopBios&, uint8*);
void SetPadHandler(CPadHandler*);
uint16 GetId() const override;
const char* GetLldName() const override;
2024-06-18 17:00:13 -04:00
void SaveState(CRegisterState&) const override;
2024-07-11 17:34:48 -04:00
void LoadState(const CRegisterState&) override;
2024-06-18 17:00:13 -04:00
void CountTicks(uint32) override;
void OnLldRegistered() override;
uint32 ScanStaticDescriptor(uint32, uint32, uint32) override;
int32 OpenPipe(uint32, uint32) override;
int32 TransferPipe(uint32, uint32, uint32, uint32, uint32, uint32) override;
//CPadInterface
2024-07-11 17:34:48 -04:00
void SetButtonState(unsigned int, PS2::CControllerInfo::BUTTON, bool, uint8*) override;
void SetAxisState(unsigned int, PS2::CControllerInfo::BUTTON, uint8, uint8*) override{};
void GetVibration(unsigned int, uint8& largeMotor, uint8& smallMotor) override{};
private:
CIopBios& m_bios;
uint8* m_ram = nullptr;
CPadHandler* m_padHandler = nullptr;
uint8 m_buttonState = 0;
uint32 m_descriptorMemPtr = 0;
int32 m_nextTransferTicks = 0;
uint32 m_transferBufferPtr = 0;
uint32 m_transferSize = 0;
uint32 m_transferCb = 0;
uint32 m_transferCbArg = 0;
};
}