tron@2186: /* $Id$ */ tron@2186: belugas@6179: /** @file hal.h Hardware Abstraction Layer declarations */ belugas@6179: truelight@0: #ifndef HAL_H truelight@0: #define HAL_H truelight@0: rubidium@6248: struct HalCommonDriver { tron@1301: const char *(*start)(const char * const *parm); rubidium@6247: void (*stop)(); rubidium@6248: }; truelight@0: rubidium@6248: struct HalVideoDriver { tron@1301: const char *(*start)(const char * const *parm); rubidium@6247: void (*stop)(); truelight@0: void (*make_dirty)(int left, int top, int width, int height); rubidium@6247: void (*main_loop)(); truelight@0: bool (*change_resolution)(int w, int h); Darkvater@1829: void (*toggle_fullscreen)(bool fullscreen); rubidium@6248: }; truelight@0: rubidium@6248: struct HalSoundDriver { tron@1301: const char *(*start)(const char * const *parm); rubidium@6247: void (*stop)(); rubidium@6248: }; truelight@0: rubidium@6248: struct HalMusicDriver { tron@1301: const char *(*start)(const char * const *parm); rubidium@6247: void (*stop)(); truelight@0: truelight@0: void (*play_song)(const char *filename); rubidium@6247: void (*stop_song)(); rubidium@6247: bool (*is_song_playing)(); truelight@0: void (*set_volume)(byte vol); rubidium@6248: }; truelight@0: rubidium@5587: extern HalMusicDriver *_music_driver; rubidium@5587: extern HalSoundDriver *_sound_driver; rubidium@5587: extern HalVideoDriver *_video_driver; truelight@0: truelight@0: enum DriverType { truelight@0: VIDEO_DRIVER = 0, truelight@0: SOUND_DRIVER = 1, truelight@0: MUSIC_DRIVER = 2, truelight@0: }; truelight@0: truelight@0: #endif /* HAL_H */