1 #ifndef __al_included_allegro_video_h 2 #define __al_included_allegro_video_h 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include "allegro5/allegro5.h" 9 #include "allegro5/allegro_audio.h" 10 11 #if (defined ALLEGRO_MINGW32) || (defined ALLEGRO_MSVC) || (defined ALLEGRO_BCC32) 12 #ifndef ALLEGRO_STATICLINK 13 #ifdef ALLEGRO_VIDEO_SRC 14 #define _ALLEGRO_VIDEO_DLL __declspec(dllexport) 15 #else 16 #define _ALLEGRO_VIDEO_DLL __declspec(dllimport) 17 #endif 18 #else 19 #define _ALLEGRO_VIDEO_DLL 20 #endif 21 #endif 22 23 #if defined ALLEGRO_MSVC 24 #define ALLEGRO_VIDEO_FUNC(type, name, args) _ALLEGRO_VIDEO_DLL type __cdecl name args 25 #elif defined ALLEGRO_MINGW32 26 #define ALLEGRO_VIDEO_FUNC(type, name, args) extern type name args 27 #elif defined ALLEGRO_BCC32 28 #define ALLEGRO_VIDEO_FUNC(type, name, args) extern _ALLEGRO_VIDEO_DLL type name args 29 #else 30 #define ALLEGRO_VIDEO_FUNC AL_FUNC 31 #endif 32 33 /* Enum: ALLEGRO_VIDEO_EVENT_TYPE 34 */ 35 enum ALLEGRO_VIDEO_EVENT_TYPE 36 { 37 ALLEGRO_EVENT_VIDEO_FRAME_SHOW = 550, 38 ALLEGRO_EVENT_VIDEO_FINISHED = 551, 39 _ALLEGRO_EVENT_VIDEO_SEEK = 552 /* internal */ 40 }; 41 42 enum ALLEGRO_VIDEO_POSITION_TYPE 43 { 44 ALLEGRO_VIDEO_POSITION_ACTUAL = 0, 45 ALLEGRO_VIDEO_POSITION_VIDEO_DECODE = 1, 46 ALLEGRO_VIDEO_POSITION_AUDIO_DECODE = 2 47 }; 48 49 /* Enum: ALLEGRO_VIDEO_POSITION_TYPE 50 */ 51 typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE; 52 53 typedef struct ALLEGRO_VIDEO ALLEGRO_VIDEO; 54 55 ALLEGRO_VIDEO_FUNC(ALLEGRO_VIDEO *, al_open_video, (char const *filename)); 56 ALLEGRO_VIDEO_FUNC(void, al_close_video, (ALLEGRO_VIDEO *video)); 57 ALLEGRO_VIDEO_FUNC(void, al_start_video, (ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)); 58 ALLEGRO_VIDEO_FUNC(void, al_start_video_with_voice, (ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)); 59 ALLEGRO_VIDEO_FUNC(ALLEGRO_EVENT_SOURCE *, al_get_video_event_source, (ALLEGRO_VIDEO *video)); 60 ALLEGRO_VIDEO_FUNC(void, al_set_video_playing, (ALLEGRO_VIDEO *video, bool playing)); 61 ALLEGRO_VIDEO_FUNC(bool, al_is_video_playing, (ALLEGRO_VIDEO *video)); 62 ALLEGRO_VIDEO_FUNC(double, al_get_video_audio_rate, (ALLEGRO_VIDEO *video)); 63 ALLEGRO_VIDEO_FUNC(double, al_get_video_fps, (ALLEGRO_VIDEO *video)); 64 ALLEGRO_VIDEO_FUNC(float, al_get_video_scaled_width, (ALLEGRO_VIDEO *video)); 65 ALLEGRO_VIDEO_FUNC(float, al_get_video_scaled_height, (ALLEGRO_VIDEO *video)); 66 ALLEGRO_VIDEO_FUNC(ALLEGRO_BITMAP *, al_get_video_frame, (ALLEGRO_VIDEO *video)); 67 ALLEGRO_VIDEO_FUNC(double, al_get_video_position, (ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)); 68 ALLEGRO_VIDEO_FUNC(bool, al_seek_video, (ALLEGRO_VIDEO *video, double pos_in_seconds)); 69 ALLEGRO_VIDEO_FUNC(bool, al_init_video_addon, (void)); 70 ALLEGRO_VIDEO_FUNC(bool, al_is_video_addon_initialized, (void)); 71 ALLEGRO_VIDEO_FUNC(void, al_shutdown_video_addon, (void)); 72 ALLEGRO_VIDEO_FUNC(uint32_t, al_get_allegro_video_version, (void)); 73 74 #ifdef __cplusplus 75 } 76 #endif 77 78 #endif 79