openMSX
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
openmsx::JoyTap Class Reference

This device is plugged in into the joy-ports and consolidates several other joysticks plugged into it. More...

#include <JoyTap.hh>

Inheritance diagram for openmsx::JoyTap:
Inheritance graph
[legend]
Collaboration diagram for openmsx::JoyTap:
Collaboration graph
[legend]

Public Member Functions

 JoyTap (PluggingController &pluggingController, std::string name)
 
std::string_view getName () const override
 Name used to identify this pluggable.
 
std::string_view getDescription () const override
 Description for this pluggable.
 
void plugHelper (Connector &connector, EmuTime::param time) override
 
void unplugHelper (EmuTime::param time) override
 
uint8_t read (EmuTime::param time) override
 Read from the joystick device.
 
void write (uint8_t value, EmuTime::param time) override
 Write a value to the joystick device.
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 
- Public Member Functions inherited from openmsx::JoystickDevice
std::string_view getClass () const final
 A pluggable belongs to a certain class.
 
- Public Member Functions inherited from openmsx::Pluggable
virtual ~Pluggable ()=default
 
void plug (Connector &connector, EmuTime::param time)
 This method is called when this pluggable is inserted in a connector.
 
void unplug (EmuTime::param time)
 This method is called when this pluggable is removed from a connector.
 
ConnectorgetConnector () const
 Get the connector this Pluggable is plugged into.
 
bool isPluggedIn () const
 Returns true if this pluggable is currently plugged into a connector.
 

Protected Member Functions

void createPorts (std::string_view description, EmuTime::param time)
 
- Protected Member Functions inherited from openmsx::Pluggable
 Pluggable ()
 
void setConnector (Connector *conn)
 

Protected Attributes

std::array< std::optional< JoystickPort >, 4 > slaves
 
PluggingControllerpluggingController
 

Additional Inherited Members

- Static Public Attributes inherited from openmsx::JoystickDevice
static constexpr uint8_t JOY_UP = 0x01
 
static constexpr uint8_t JOY_DOWN = 0x02
 
static constexpr uint8_t JOY_LEFT = 0x04
 
static constexpr uint8_t JOY_RIGHT = 0x08
 
static constexpr uint8_t JOY_BUTTONA = 0x10
 
static constexpr uint8_t JOY_BUTTONB = 0x20
 
static constexpr uint8_t RD_PIN1 = 0x01
 
static constexpr uint8_t RD_PIN2 = 0x02
 
static constexpr uint8_t RD_PIN3 = 0x04
 
static constexpr uint8_t RD_PIN4 = 0x08
 
static constexpr uint8_t RD_PIN6 = 0x10
 
static constexpr uint8_t RD_PIN7 = 0x20
 
static constexpr uint8_t WR_PIN6 = 0x01
 
static constexpr uint8_t WR_PIN7 = 0x02
 
static constexpr uint8_t WR_PIN8 = 0x04
 

Detailed Description

This device is plugged in into the joy-ports and consolidates several other joysticks plugged into it.

This JoyTap simply ANDs all the joystick outputs, acting as a simple wiring of all digital joysticks into one connector. This is the base class for the NinjaTap device and the FNano2 multiplayer extension, who basically have other read and write methods

Definition at line 22 of file JoyTap.hh.

Constructor & Destructor Documentation

◆ JoyTap()

openmsx::JoyTap::JoyTap ( PluggingController pluggingController,
std::string  name 
)

Definition at line 11 of file JoyTap.cc.

Member Function Documentation

◆ createPorts()

void openmsx::JoyTap::createPorts ( std::string_view  description,
EmuTime::param  time 
)
protected

Definition at line 17 of file JoyTap.cc.

References enumerate(), pluggingController, slaves, and strCat().

Referenced by plugHelper(), and openmsx::NinjaTap::plugHelper().

◆ getDescription()

std::string_view openmsx::JoyTap::getDescription ( ) const
overridevirtual

Description for this pluggable.

Implements openmsx::Pluggable.

Reimplemented in openmsx::NinjaTap.

Definition at line 28 of file JoyTap.cc.

◆ getName()

std::string_view openmsx::JoyTap::getName ( ) const
overridevirtual

Name used to identify this pluggable.

Reimplemented from openmsx::Pluggable.

Definition at line 33 of file JoyTap.cc.

◆ plugHelper()

void openmsx::JoyTap::plugHelper ( Connector connector,
EmuTime::param  time 
)
overridevirtual

Implements openmsx::Pluggable.

Reimplemented in openmsx::NinjaTap.

Definition at line 38 of file JoyTap.cc.

References createPorts().

Referenced by serialize().

◆ read()

uint8_t openmsx::JoyTap::read ( EmuTime::param  time)
overridevirtual

Read from the joystick device.

The bits in the read byte have following meaning: 7 6 5 4 3 2 1 0 | xx | xx | BUTTON_B | BUTTON_A | RIGHT | LEFT | DOWN | UP | | xx | xx | pin7 | pin6 | pin4 | pin3 | pin2 | pin1|

Implements openmsx::JoystickDevice.

Reimplemented in openmsx::NinjaTap.

Definition at line 51 of file JoyTap.cc.

References slaves.

◆ serialize()

template<typename Archive >
void openmsx::JoyTap::serialize ( Archive &  ar,
unsigned  version 
)

◆ unplugHelper()

void openmsx::JoyTap::unplugHelper ( EmuTime::param  time)
overridevirtual

Implements openmsx::Pluggable.

Definition at line 43 of file JoyTap.cc.

References slaves.

◆ write()

void openmsx::JoyTap::write ( uint8_t  value,
EmuTime::param  time 
)
overridevirtual

Write a value to the joystick device.

The bits in the written byte have following meaning: 7 6 5 4 3 2 1 0 | xx | xx | xx | xx | xx | pin8 | pin7 | pin6 | As an optimization, this method might not be called when the new value is the same as the previous one.

Implements openmsx::JoystickDevice.

Reimplemented in openmsx::NinjaTap.

Definition at line 60 of file JoyTap.cc.

References slaves.

Member Data Documentation

◆ pluggingController

PluggingController& openmsx::JoyTap::pluggingController
protected

Definition at line 45 of file JoyTap.hh.

Referenced by createPorts(), and serialize().

◆ slaves

std::array<std::optional<JoystickPort>, 4> openmsx::JoyTap::slaves
protected

Definition at line 44 of file JoyTap.hh.

Referenced by createPorts(), read(), serialize(), unplugHelper(), write(), and openmsx::NinjaTap::write().


The documentation for this class was generated from the following files: