18#include "SubComponent.h"
22class Paddle final :
public SubComponent,
public Inspectable<PaddleInfo> {
24 Descriptions descriptions = {
27 .description =
"Paddle in Port 1"
31 .description =
"Paddle in Port 2"
35 ConfigOptions options = {
44 PaddleConfig config = { };
59 Paddle(C64 &ref, ControlPort& pref);
61 Paddle& operator= (
const Paddle& other) {
75 template <
class T>
void serialize(T& worker) {
77 if (isResetter(worker))
return;
79 void operator << (SerChecker &worker)
override { serialize(worker); }
80 void operator << (SerCounter &worker)
override { serialize(worker); }
81 void operator << (SerResetter &worker)
override;
82 void operator << (SerReader &worker)
override;
83 void operator << (SerWriter &worker)
override { serialize(worker); }
92 const Descriptions &getDescriptions()
const override {
return descriptions; }
96 void _dump(Category category, std::ostream& os)
const override;
97 void _reset(
bool hard)
override;
106 void cacheInfo(PaddleInfo &result)
const override;
115 const PaddleConfig &getConfig()
const {
return config; }
116 const ConfigOptions &getOptions()
const override {
return options; }
117 i64 getOption(Option opt)
const override;
118 void checkOption(Option opt, i64 value)
override;
119 void setOption(Option opt, i64 value)
override;
129 void setButton(isize nr,
bool value);
132 void setPosXY(isize nr,
double x,
double y);
133 void setPosDxDy(isize nr,
double x,
double y);
136 u8 readControlPort()
const;
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
@ OPT_PADDLE_ORIENTATION
Paddle value mapping scheme.
Definition OptionTypes.h:167