2024-06-10 17:53:31 -04:00
|
|
|
#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
|
|
|
|
2024-06-10 17:53:31 -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;
|
2024-06-10 17:53:31 -04:00
|
|
|
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;
|
|
|
|
};
|
|
|
|
}
|