VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
MediaFileTypes.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
24enum_long(FILETYPE)
25{
26 FILETYPE_UNKNOWN = 0,
27 FILETYPE_SNAPSHOT,
28 FILETYPE_SCRIPT,
29 FILETYPE_CRT,
30 FILETYPE_T64,
31 FILETYPE_P00,
32 FILETYPE_PRG,
33 FILETYPE_FOLDER,
34 FILETYPE_D64,
35 FILETYPE_G64,
36 FILETYPE_TAP,
37 FILETYPE_BASIC_ROM,
38 FILETYPE_CHAR_ROM,
39 FILETYPE_KERNAL_ROM,
40 FILETYPE_VC1541_ROM
41};
42typedef FILETYPE FileType;
43
44struct FileTypeEnum : util::Reflection<FileTypeEnum, FileType> {
45
46 static constexpr long minVal = 0;
47 static constexpr long maxVal = FILETYPE_VC1541_ROM;
48 static bool isValid(auto value) { return value >= minVal && value <= maxVal; }
49
50 static const char *prefix() { return "FILETYPE"; }
51 static const char *key(long value)
52 {
53 switch (value) {
54
55 case FILETYPE_UNKNOWN: return "UNKNOWN";
56 case FILETYPE_SNAPSHOT: return "SNAPSHOT";
57 case FILETYPE_SCRIPT: return "SCRIPT";
58 case FILETYPE_CRT: return "CRT";
59 case FILETYPE_T64: return "T64";
60 case FILETYPE_PRG: return "PRG";
61 case FILETYPE_FOLDER: return "FOLDER";
62 case FILETYPE_P00: return "P00";
63 case FILETYPE_D64: return "D64";
64 case FILETYPE_G64: return "G64";
65 case FILETYPE_TAP: return "TAP";
66 case FILETYPE_BASIC_ROM: return "BASIC_ROM";
67 case FILETYPE_CHAR_ROM: return "CHAR_ROM";
68 case FILETYPE_KERNAL_ROM: return "KERNAL_ROM";
69 case FILETYPE_VC1541_ROM: return "VC1541_ROM";
70 }
71 return "???";
72 }
73};
74
75enum_long(TAP_VERSION)
76{
77 TAP_VERSION_ORIGINAL,
78 TAP_VERSION_ADVANCED
79};
80typedef TAP_VERSION TAPVersion;
81
82struct TAPVersionEnum : util::Reflection<TAPVersionEnum, TAPVersion> {
83
84 static constexpr long minVal = 0;
85 static constexpr long maxVal = TAP_VERSION_ADVANCED;
86 static bool isValid(auto value) { return value >= minVal && value <= maxVal; }
87
88 static const char *prefix() { return "TAP_VERSION"; }
89 static const char *key(long value)
90 {
91 switch (value) {
92
93 case TAP_VERSION_ORIGINAL: return "ORIGINAL";
94 case TAP_VERSION_ADVANCED: return "ADVANCED";
95 default: return "???";
96 }
97 }
98};
99
100enum_long(FILE_ERROR)
101{
102 ERR_FILE_OK,
103
104 // General
105 ERR_FILE_NOT_FOUND,
106 ERR_INVALID_TYPE,
107 ERR_CANT_READ,
108 ERR_CANT_WRITE,
109 ERR_OUT_OF_MEMORY,
110 ERR_UNKNOWN,
111
112 // Snapshots
113 ERR_UNSUPPORTED_SNAPSHOT
114};
115typedef FILE_ERROR FileError;
116
117}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16