VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
MouseTypes.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2// This file is part of VirtualC64
3//
4// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5// This FILE is dual-licensed. You are free to choose between:
6//
7// - The GNU General Public License v3 (or any later version)
8// - The Mozilla Public License v2
9//
10// SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0
11// -----------------------------------------------------------------------------
13
14#pragma once
15
16#include "Reflection.h"
17
18namespace vc64 {
19
20//
21// Enumerations
22//
23
34typedef MOUSE_MODEL MouseModel;
35
36struct MouseModelEnum : util::Reflection<MouseModelEnum, MouseModel> {
37
38 static constexpr long minVal = 0;
39 static constexpr long maxVal = MOUSE_PADDLE_XY;
40 static bool isValid(auto value) { return value >= minVal && value <= maxVal; }
41
42 static const char *prefix() { return "MOUSE"; }
43 static const char *key(long value)
44 {
45 switch (value) {
46
47 case MOUSE_C1350: return "C1350";
48 case MOUSE_C1351: return "C1351";
49 case MOUSE_NEOS: return "NEOS";
50 case MOUSE_PADDLE_X: return "PADDLE_X";
51 case MOUSE_PADDLE_Y: return "PADDLE_Y";
52 case MOUSE_PADDLE_XY: return "PADDLE_XY";
53 }
54 return "???";
55 }
56};
57
58//
59// Structures
60//
61
62typedef struct
63{
64 MouseModel model;
65 bool shakeDetection;
66 isize velocity;
67}
68MouseConfig;
69
70}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
MOUSE_MODEL
Mouse model.
Definition MouseTypes.h:26
@ MOUSE_C1350
Joystick mouse (Commodore)
Definition MouseTypes.h:27
@ MOUSE_PADDLE_XY
Paddle (POTX + POTX)
Definition MouseTypes.h:32
@ MOUSE_C1351
Analog mouse (Commodore)
Definition MouseTypes.h:28
@ MOUSE_PADDLE_Y
Paddle (POTY)
Definition MouseTypes.h:31
@ MOUSE_NEOS
Analog mouse (Neos)
Definition MouseTypes.h:29
@ MOUSE_PADDLE_X
Paddle (POTX)
Definition MouseTypes.h:30