Compiled libao locally
This commit is contained in:
@@ -10,6 +10,16 @@ add_library(ao-play-async SHARED
|
|||||||
ao_playasync.h
|
ao_playasync.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
include_directories(../../libao/include ../../libao/build-windows)
|
||||||
|
target_link_directories(ao-play-async PRIVATE ../lib/windows-x86_64)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
target_link_libraries(ao-play-async PRIVATE libao-1.2.2)
|
||||||
|
else()
|
||||||
target_link_libraries(ao-play-async PRIVATE ao)
|
target_link_libraries(ao-play-async PRIVATE ao)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_compile_definitions(ao-play-async PRIVATE AOPLAYASYNC_LIBRARY)
|
target_compile_definitions(ao-play-async PRIVATE AOPLAYASYNC_LIBRARY)
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
#ifdef USE_WINDOWS_THREADS
|
#ifdef USE_WINDOWS_THREADS
|
||||||
#define MUTEX_LOCK(m) WaitForSingleObject(m, INFINITE)
|
#define MUTEX_LOCK(m) WaitForSingleObject(m, INFINITE)
|
||||||
#define MUTEX_UNLOCK(m) ReleaseMutex(m)
|
#define MUTEX_UNLOCK(m) ReleaseMutex(m)
|
||||||
|
#define SEM_WAIT(sem, ms) (WaitForSingleObject(sem, ms) == WAIT_OBJECT_0)
|
||||||
|
#define SEM_TRYWAIT(sem) (WaitForSingleObject(sem, 0) == WAIT_OBJECT_0)
|
||||||
|
#define SEM_POST(sem) ReleaseSemaphore(sem, 1, NULL)
|
||||||
|
#define YIELD() sleep_ms(5)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_PTHREADS
|
#ifdef USE_PTHREADS
|
||||||
@@ -108,8 +112,10 @@ typedef struct {
|
|||||||
#ifdef USE_WINDOWS_THREADS
|
#ifdef USE_WINDOWS_THREADS
|
||||||
HANDLE mutex;
|
HANDLE mutex;
|
||||||
HANDLE pause_mutex;
|
HANDLE pause_mutex;
|
||||||
|
HANDLE clear_mutex;
|
||||||
HANDLE thread;
|
HANDLE thread;
|
||||||
DWORD thread_id;
|
DWORD thread_id;
|
||||||
|
HANDLE queue_sem;
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_PTHREADS
|
#ifdef USE_PTHREADS
|
||||||
pthread_mutex_t mutex;
|
pthread_mutex_t mutex;
|
||||||
@@ -267,7 +273,11 @@ int ao_async_version()
|
|||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static void at_exit_shutdown_ao(void)
|
||||||
|
#else
|
||||||
static void at_exit_shutdown_ao()
|
static void at_exit_shutdown_ao()
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
ao_shutdown();
|
ao_shutdown();
|
||||||
}
|
}
|
||||||
@@ -328,8 +338,11 @@ void *ao_create_async(int bits, int rate, int channels, int byte_format)
|
|||||||
handle->pause_mutex = CreateMutex(NULL, // default security attributes
|
handle->pause_mutex = CreateMutex(NULL, // default security attributes
|
||||||
FALSE, // initially not owned
|
FALSE, // initially not owned
|
||||||
NULL);
|
NULL);
|
||||||
|
handle->clear_mutex = CreateMutex(NULL,
|
||||||
|
FALSE,
|
||||||
|
NULL);
|
||||||
|
handle->queue_sem = CreateSemaphore(NULL, 0, 1000000, NULL);
|
||||||
handle->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) run, handle, 0, &handle->thread_id);
|
handle->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) run, handle, 0, &handle->thread_id);
|
||||||
// TODO Windows Semaphores!
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MUTEX_UNLOCK(handle->pause_mutex);
|
MUTEX_UNLOCK(handle->pause_mutex);
|
||||||
|
|||||||
Binary file not shown.
BIN
lib/windows-x86_64/libao-1.2.2.dll
Normal file
BIN
lib/windows-x86_64/libao-1.2.2.dll
Normal file
Binary file not shown.
BIN
lib/windows-x86_64/libao-1.2.2.lib
Normal file
BIN
lib/windows-x86_64/libao-1.2.2.lib
Normal file
Binary file not shown.
Binary file not shown.
BIN
lib/windows-x86_64/libao-static-1.2.2.lib
Normal file
BIN
lib/windows-x86_64/libao-static-1.2.2.lib
Normal file
Binary file not shown.
Reference in New Issue
Block a user