1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef TIA_LATCHED_INPUT
19#define TIA_LATCHED_INPUT
20
21#include "bspf.hxx"
22#include "Serializable.hxx"
23
24class LatchedInput : public Serializable
25{
26 public:
27 LatchedInput();
28
29 public:
30
31 void reset();
32
33 void vblank(uInt8 value);
34 bool vblankLatched() const { return myModeLatched; }
35
36 uInt8 inpt(bool pinState);
37
38 /**
39 Serializable methods (see that class for more information).
40 */
41 bool save(Serializer& out) const override;
42 bool load(Serializer& in) override;
43
44 private:
45 bool myModeLatched;
46 uInt8 myLatchedValue;
47
48 private:
49 LatchedInput(const LatchedInput&) = delete;
50 LatchedInput(LatchedInput&&) = delete;
51 LatchedInput& operator=(const LatchedInput&) = delete;
52 LatchedInput& operator=(LatchedInput&&) = delete;
53};
54
55#endif // TIA_LATCHED_INPUT
56