def main(): # Enable standard application logging lib.SDL_LogSetPriority(lib.SDL_LOG_CATEGORY_APPLICATION, lib.SDL_LOG_PRIORITY_INFO) # Load the SDL library if lib.SDL_Init(lib.SDL_INIT_AUDIO) < 0: lib.SDL_LogError( lib.SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n" % (lib.SDL_GetError())) return (1) # Print available audio drivers n = lib.SDL_GetNumAudioDrivers() if n == 0: lib.SDL_Log("No built-in audio drivers\n\n") else: lib.SDL_Log("Built-in audio drivers:\n") for i in range(n): lib.SDL_Log(" %s\n" % ffi.string(lib.SDL_GetAudioDriver(i))) lib.SDL_Log("\n") lib.SDL_Log("Using audio driver: %s\n\n" % ffi.string(lib.SDL_GetCurrentAudioDriver())) print_devices(0) print_devices(1) lib.SDL_Quit() return 0
def main(): # Enable standard application logging lib.SDL_LogSetPriority(lib.SDL_LOG_CATEGORY_APPLICATION, lib.SDL_LOG_PRIORITY_INFO) # Load the SDL library if lib.SDL_Init(lib.SDL_INIT_AUDIO) < 0: lib.SDL_LogError( lib.SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n" % (lib.SDL_GetError())) return 1 if len(sys.argv) > 1: filename = sys.argv[1] else: filename = "sample.wav" # Load the wave file into memory rwops = lib.SDL_RWFromFile(filename, "rb") if lib.SDL_LoadWAV_RW(rwops, 1, wave.spec, wave.sound_p, wave.soundlen_p) == ffi.NULL: lib.SDL_LogError( lib.SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s\n" % (filename, lib.SDL_GetError())) quit(1) else: print("Loaded " + filename) wave.spec.callback = ffi.callback("SDL_AudioCallback", fillerup) # Show the list of available drivers lib.SDL_Log("Available audio drivers:") for i in range(lib.SDL_GetNumAudioDrivers()): lib.SDL_Log("%i: %s" % (i, ffi.string(lib.SDL_GetAudioDriver(i)))) # Initialize fillerup() variables if lib.SDL_OpenAudio(wave.spec, ffi.NULL) < 0: lib.SDL_LogError(lib.SDL_LOG_CATEGORY_APPLICATION, "Couldn't open audio: %s\n" % (lib.SDL_GetError())) lib.SDL_FreeWAV(wave.sound) quit(2) lib.SDL_Log("Using audio driver: %s\n" % (ffi.string(lib.SDL_GetCurrentAudioDriver()))) # Let the audio run lib.SDL_PauseAudio(0) while not done and (lib.SDL_GetAudioStatus() == lib.SDL_AUDIO_PLAYING): lib.SDL_Delay(1000) # Clean up on signal lib.SDL_CloseAudio() lib.SDL_FreeWAV(wave.sound_p[0]) lib.SDL_Quit() return 0
def joystickGetGUIDString(a0): """ ``void SDL_JoystickGetGUIDString(SDL_JoystickGUID, char *, int)`` Return a string representation for this guid. pszGUID must point to at least 33 bytes (32 for the string plus a NULL terminator). """ buf = ffi.new('char *', 33) lib.SDL_JoystickGetGUIDString(unbox(a0), buf, 33) return ffi.string(buffer)
def print_devices(iscapture): typestr = "capture" if iscapture else "output" n = lib.SDL_GetNumAudioDevices(iscapture) print("%s devices" % typestr) if n == -1: lib.SDL_Log(" Driver can't detect specific %s devices.\n\n" % (typestr)) elif n == 0: lib.SDL_Log(" No %s devices found.\n\n" % (typestr)) else: for i in range(n): lib.SDL_Log(" %s\n" % ffi.string(lib.SDL_GetAudioDeviceName(i, iscapture), )) lib.SDL_Log("\n")
def __init__(self): message = ffi.string(lib.SDL_GetError()).decode('utf-8') assert message, 'SDL reports no error.' # don't call us when there is no error! Exception.__init__(self, message)