aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/EmDevice.h
blob: 4e876cc63425d30c6d3db73b826b8054a62bd3ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* -*- mode: C++; tab-width: 4 -*- */
/* ===================================================================== *\
	Copyright (c) 1999-2001 Palm, Inc. or its subsidiaries.
	All rights reserved.

	This file is part of the Palm OS Emulator.

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.
\* ===================================================================== */

#ifndef EmDevice_h
#define EmDevice_h

#include <vector>				// vector
#include <utility>				// pair
#include <string>				// string

class EmCPU;
class EmFileRef;
class EmRegs;
class EmSession;
struct DeviceInfo;

class EmROMReader;

class EmDevice;
typedef vector<EmDevice>	EmDeviceList;


class EmDevice
{
	public:
								EmDevice			(void);
								EmDevice			(const char*);
								EmDevice			(const string&);
								EmDevice			(const EmDevice&);
								~EmDevice			(void);

		bool					operator==			(const EmDevice&) const;
		bool					operator!=			(const EmDevice&) const;

		Bool					Supported			(void) const;

		Bool					Supports68328		(void) const;
		Bool					Supports68EZ328		(void) const;
		Bool					Supports68VZ328		(void) const;
		Bool					Supports68SZ328		(void) const;
		Bool					SupportsARM			(void) const;

		Bool					PrismPlatinumEdgeHack	(void) const;
		Bool					EdgeHack				(void) const;

		Bool					SupportsROM			(const EmFileRef&) const;
		Bool					SupportsROM			(const EmROMReader&) const;

		EmCPU*					CreateCPU			(EmSession*) const;
		void					CreateRegs			(void) const;

		Bool					HasFlash			(void) const;

		RAMSizeType				MinRAMSize			(void) const;

		long					HardwareID			(void) const;
		long					HardwareSubID		(void) const;

		string					GetMenuString		(void) const;
		string					GetIDString			(void) const;
		vector<string>			GetIDStrings		(void) const;

	public:
		static EmDeviceList		GetDeviceList		(void);

	private:
								EmDevice			(int);
		const DeviceInfo*		GetDeviceInfo		(void) const;
		int						GetDeviceID			(const char*) const;

		int						fDeviceID;
};

#endif	/* EmDevice_h */