1 #ifndef DOSBOX_EMU_H
2 #define DOSBOX_EMU_H
3
4
5 #include "dosbox.h"
6 #if defined(_MSC_VER) && (_MSC_VER <= 1500)
7 #include <SDL.h>
8 #else
9 #include <stdint.h>
10 #endif
11 #include <math.h>
12 #include <float.h>
13 #include <stdlib.h>
14 #include <memory.h>
15
16 #if C_DEBUG
17 #include <stdio.h>
18 #include <stdarg.h>
19 #endif
20
21 #ifndef M_PI
22 #define M_PI 3.14159265358979323846
23 #endif
24
25 typedef Bit16s stream_sample_t;
26
27 typedef Bit8u u8;
28 typedef Bit32u u32;
29
30 class device_t;
31 struct machine_config;
32
33 #define NAME( _ASDF_ ) 0
34 #define BIT( _INPUT_, _BIT_ ) ( ( _INPUT_) >> (_BIT_)) & 1
35
36 #define ATTR_UNUSED
37 #define DECLARE_READ8_MEMBER(name) u8 name( int, int)
38 #define DECLARE_WRITE8_MEMBER(name) void name( int, int, u8 data)
39 #define READ8_MEMBER(name) u8 name( int, int)
40 #define WRITE8_MEMBER(name) void name( int offset, int space, u8 data)
41
42 #define DECLARE_DEVICE_TYPE(Type, Class) \
43 extern const device_type Type; \
44 class Class;
45
46 #define DEFINE_DEVICE_TYPE(Type, Class, ShortName, FullName) \
47 const device_type Type = 0;
48
49
50 class device_sound_interface {
51 public:
52 struct sound_stream {
updatesound_stream53 void update() {
54 }
55 };
56 sound_stream temp;
57
stream_alloc(int whatever,int channels,int size)58 sound_stream* stream_alloc(int whatever, int channels, int size) {
59 return &temp;
60 };
61
62
63 virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) = 0;
64
device_sound_interface(const machine_config & mconfig,device_t & _device)65 device_sound_interface(const machine_config &mconfig, device_t& _device) {
66 }
67
68 };
69
70 struct attotime {
71 int whatever;
72
from_hzattotime73 static attotime from_hz(int hz) {
74 return attotime();
75 }
76 };
77
78 struct machine_config {
79 };
80
81 typedef int device_type;
82
83 class device_t {
84 u32 clockRate;
85 public:
86 struct machine_t {
describe_contextmachine_t87 int describe_context() const {
88 return 0;
89 }
90 };
91
machine()92 machine_t machine() const {
93 return machine_t();
94 }
95
96 //int offset, space;
97
clock()98 u32 clock() const {
99 return clockRate;
100 }
101
logerror(const char * msg,...)102 void logerror(const char* msg, ...) {
103 }
104
tag()105 static int tag() {
106 return 0;
107 }
108
device_start()109 virtual void device_start() {
110 }
111
112 void save_item(int wtf, int blah= 0) {
113 }
114
device_t(const machine_config & mconfig,device_type type,const char * tag,device_t * owner,u32 _clock)115 device_t(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 _clock) : clockRate( _clock ) {
116 }
117
118 };
119
120
121
auto_free(const device_t::machine_t & machine,void * buffer)122 static void auto_free(const device_t::machine_t& machine, void * buffer) {
123 free(buffer);
124 }
125
126 #define auto_alloc_array_clear(m, t, c) calloc(c, sizeof(t) )
127 #define auto_alloc_clear(m, t) static_cast<t*>( calloc(1, sizeof(t) ) )
128
129
130
131
132 #endif
133