diff options
Diffstat (limited to 'src/hal.h')
-rw-r--r-- | src/hal.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/hal.h b/src/hal.h new file mode 100644 index 000000000..1b239162b --- /dev/null +++ b/src/hal.h @@ -0,0 +1,49 @@ +/* $Id$ */ + +#ifndef HAL_H +#define HAL_H + +typedef struct { + const char *(*start)(const char * const *parm); + void (*stop)(void); +} HalCommonDriver; + +typedef struct { + const char *(*start)(const char * const *parm); + void (*stop)(void); + void (*make_dirty)(int left, int top, int width, int height); + void (*main_loop)(void); + bool (*change_resolution)(int w, int h); + void (*toggle_fullscreen)(bool fullscreen); +} HalVideoDriver; + +typedef struct { + const char *(*start)(const char * const *parm); + void (*stop)(void); +} HalSoundDriver; + +typedef struct { + const char *(*start)(const char * const *parm); + void (*stop)(void); + + void (*play_song)(const char *filename); + void (*stop_song)(void); + bool (*is_song_playing)(void); + void (*set_volume)(byte vol); +} HalMusicDriver; + +VARDEF HalMusicDriver *_music_driver; +VARDEF HalSoundDriver *_sound_driver; +VARDEF HalVideoDriver *_video_driver; + +enum DriverType { + VIDEO_DRIVER = 0, + SOUND_DRIVER = 1, + MUSIC_DRIVER = 2, +}; + +void GameLoop(void); + +void CreateConsole(void); + +#endif /* HAL_H */ |