OXYGENHUB
◆ main openmsx / src / serial / RS232Device.hh
1009 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
1
#ifndef RS232DEVICE_HH
2
#define RS232DEVICE_HH
3
4
#include "Pluggable.hh"
5
#include "SerialDataInterface.hh"
6
7
namespace openmsx {
8
9
class RS232Device : public Pluggable, public SerialDataInterface
10
{
11
public:
12
	// Pluggable (part)
13
	[[nodiscard]] zstring_view getClass() const final;
14
15
	// input
16
	virtual void signal(EmuTime time) = 0;
17
18
	// Part of SerialDataInterface: the output methods.
19
	void setDataBits(DataBits bits) override;
20
	void setStopBits(StopBits bits) override;
21
	void setParityBit(bool enable, Parity parity) override;
22
23
	// control
24
	[[nodiscard]] virtual std::optional<bool> getCTS(EmuTime time) const;
25
	[[nodiscard]] virtual std::optional<bool> getDSR(EmuTime time) const;
26
	[[nodiscard]] virtual std::optional<bool> getDCD(EmuTime time) const;
27
	[[nodiscard]] virtual std::optional<bool> getRI(EmuTime time) const;
28
	virtual void setDTR(bool status, EmuTime time);
29
	virtual void setRTS(bool status, EmuTime time);
30
31
	// baud rate
32
	virtual void setBaudRate(unsigned baud);
33
};
34
35
} // namespace openmsx
36
37
#endif