src/audio/fusionsound/SDL_fsaudio.c
changeset 3230 816a7a65a59a
parent 2947 fec0db6c44b7
child 3697 f7b03b6838cb
equal deleted inserted replaced
3229:09172593e9b6 3230:816a7a65a59a
    32 #include "SDL_audio.h"
    32 #include "SDL_audio.h"
    33 #include "../SDL_audiomem.h"
    33 #include "../SDL_audiomem.h"
    34 #include "../SDL_audio_c.h"
    34 #include "../SDL_audio_c.h"
    35 #include "SDL_fsaudio.h"
    35 #include "SDL_fsaudio.h"
    36 
    36 
       
    37 #include <fusionsound/fusionsound_version.h>
       
    38 
    37 //#define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "libfusionsound.so"
    39 //#define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "libfusionsound.so"
    38 
    40 
    39 #ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
    41 #ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
    40 #include "SDL_name.h"
    42 #include "SDL_name.h"
    41 #include "SDL_loadso.h"
    43 #include "SDL_loadso.h"
    42 #else
    44 #else
    43 #define SDL_NAME(X)	X
    45 #define SDL_NAME(X)	X
    44 #endif
    46 #endif
    45 
    47 
       
    48 #if (FUSIONSOUND_MAJOR_VERSION == 1) && (FUSIONSOUND_MINOR_VERSION < 1)
       
    49 typedef DFBResult DirectResult;
       
    50 #endif
       
    51 
    46 /* The tag name used by fusionsoundc audio */
    52 /* The tag name used by fusionsoundc audio */
    47 #define SDL_FS_DRIVER_NAME         "fusionsound"
    53 #define SDL_FS_DRIVER_NAME         "fusionsound"
    48 /* Buffers to use - more than 2 gives a lot of latency */
    54 /* Buffers to use - more than 2 gives a lot of latency */
    49 #define FUSION_BUFFERS				(2)
    55 #define FUSION_BUFFERS				(2)
    50 
    56 
    51 #ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
    57 #ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
    52 
    58 
    53 static const char *fs_library = SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC;
    59 static const char *fs_library = SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC;
    54 static void *fs_handle = NULL;
    60 static void *fs_handle = NULL;
    55 
    61 
    56 static DirectResult(*SDL_NAME(FusionSoundInit)) (int *argc, char *(*argv[]));
    62 static DirectResult (*SDL_NAME(FusionSoundInit)) (int *argc, char *(*argv[]));
    57 static DirectResult(*SDL_NAME(FusionSoundCreate)) (IFusionSound **
    63 static DirectResult (*SDL_NAME(FusionSoundCreate)) (IFusionSound **
    58                                                    ret_interface);
    64                                                    ret_interface);
    59 
    65 
    60 #define SDL_FS_SYM(x) { #x, (void **) (char *) &SDL_NAME(x) }
    66 #define SDL_FS_SYM(x) { #x, (void **) (char *) &SDL_NAME(x) }
    61 static struct
    67 static struct
    62 {
    68 {