Files
DbNesEmulator/nescorelib/emu/ports.cpp
2018-12-16 22:19:06 +01:00

54 lines
892 B
C++

#include "ports.h"
// Qt includes
#include <QDataStream>
Ports::Ports(NesEmulator &emu) :
m_emu(emu)
{
}
void Ports::update()
{
for(auto &input : m_inputs)
if(input)
input->update();
}
void Ports::updatePorts()
{
const auto getData = [this](int index){ return m_inputs[index] ? m_inputs[index]->getData() : 0; };
m_port0 = getData(2) << 8 | getData(0) | 0x01010000;
m_port1 = getData(3) << 8 | getData(1) | 0x02020000;
}
void Ports::portWriteState(QDataStream &dataStream) const
{
dataStream << m_port0 << m_port1;
}
void Ports::portReadState(QDataStream &dataStream)
{
dataStream >> m_port0 >> m_port1;
}
quint32 Ports::port0() const
{
return m_port0;
}
void Ports::setPort0(quint32 port0)
{
m_port0 = port0;
}
quint32 Ports::port1() const
{
return m_port1;
}
void Ports::setPort1(quint32 port1)
{
m_port1 = port1;
}