-class RaopNativeCallbacks(Structure):
- _fields_ = [("cls", py_object),
- ("audio_init", audio_init_prototype),
- ("audio_set_volume", audio_set_volume_prototype),
- ("audio_process", audio_process_prototype),
- ("audio_flush", audio_flush_prototype),
- ("audio_destroy", audio_destroy_prototype)]
-
-def LoadShairplay(path):
- if sys.maxsize < 2**32:
- libname = "shairplay32"
- else:
- libname = "shairplay64"
-
- if platform.system() == "Windows":
- libname = libname + ".dll"
- elif platform.system() == "Darwin":
- libname = "lib" + libname + ".dylib"
- else:
- libname = "lib" + libname + ".so"
-
- try:
- fullpath = os.path.join(path, libname)
- libshairplay = cdll.LoadLibrary(fullpath)
- except:
- raise RuntimeError("Couldn't load shairplay library " + libname)
+audio_flush_prototype = CFUNCTYPE(None, c_void_p, c_void_p)
+audio_set_volume_prototype = CFUNCTYPE(None, c_void_p, c_void_p, c_float)
+audio_set_metadata_prototype = CFUNCTYPE(None, c_void_p, c_void_p, c_void_p, c_int)
+audio_set_coverart_prototype = CFUNCTYPE(None, c_void_p, c_void_p, c_void_p, c_int)