summaryrefslogtreecommitdiffstats
path: root/deps/include/AL/salad.h
diff options
context:
space:
mode:
authoruntodesu <kirill@untode.su>2025-03-15 16:22:09 +0500
committeruntodesu <kirill@untode.su>2025-03-15 16:22:09 +0500
commit3bf42c6ff3805a0d42bbc661794a95ff31bedc26 (patch)
tree05049955847504808d6bed2bb7b155f8b03807bb /deps/include/AL/salad.h
parent02294547dcde0d4ad76e229106702261e9f10a51 (diff)
downloadvoxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.tar.bz2
voxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.zip
Add whatever I was working on for the last month
Diffstat (limited to 'deps/include/AL/salad.h')
-rw-r--r--deps/include/AL/salad.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/deps/include/AL/salad.h b/deps/include/AL/salad.h
new file mode 100644
index 0000000..56c53c2
--- /dev/null
+++ b/deps/include/AL/salad.h
@@ -0,0 +1,99 @@
+/*
+ * salad.h - OpenAL loader declarations
+ * Copyright (C) 2021-2025, Kirill Dmitrievich
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef AL_SALAD_H
+#define AL_SALAD_H 1
+#include <float.h>
+
+#define SALAD_VERSION_MAJOR 0
+#define SALAD_VERSION_MINOR 0
+#define SALAD_VERSION_PATCH 2
+
+#if defined(_MSC_VER)
+#define SALAD_APIENTRY __cdecl
+#define SALAD_ALX_APIENTRY __cdecl
+#else
+#define SALAD_APIENTRY
+#define SALAD_ALX_APIENTRY
+#endif
+
+#if defined(__cplusplus)
+#define SALAD_EXTERN extern "C"
+#else
+#define SALAD_EXTERN extern
+#endif
+
+typedef float salad_float32_type;
+typedef double salad_float64_type;
+
+typedef signed char salad_int8_type;
+typedef signed short salad_int16_type;
+
+typedef unsigned char salad_uint8_type;
+typedef unsigned short salad_uint16_type;
+
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__)
+#include <stdint.h>
+typedef int32_t salad_int32_type;
+typedef uint32_t salad_uint32_type;
+#elif defined(__cplusplus) && __cplusplus >= 201103L
+#include <cstdint>
+typedef std::int32_t salad_int32_type;
+typedef std::uint32_t salad_uint32_type;
+#elif defined(_WIN32)
+typedef __int32 salad_int32_type;
+typedef unsigned __int32 salad_uint32_type;
+#else
+typedef int salad_int32_type;
+typedef unsigned int salad_uint32_type;
+#endif
+
+/**
+ * A pointer to a function responsible for resolving a function
+ * with a specific name from the module loaded by SALAD or by the user
+ * @param procname Function name
+ * @param arg Optional implementation-used argument
+ * @returns A resolved function pointer on success, NULL on failure
+ */
+typedef void* (SALAD_APIENTRY *SALAD_loadfunc_type)(const char *procname, void *arg);
+
+/**
+ * Loads OpenAL and extensions using implementation-defined
+ * dynamic library paths and using implementation-defined API
+ * @returns Zero on failure, non-zero on success
+ */
+SALAD_EXTERN int saladLoadALdefault(void);
+
+/**
+ * Loads OpenAL and extensions using a user-provided load
+ * function; Initially this was used to mate Source SDK's dynamic
+ * linking API and OpenAL but the entire project went nowhere
+ * @param loadfunc User-provided load function
+ * @param arg Optional argument for the function
+ * @returns Zero on failure, non-zero on success
+ */
+SALAD_EXTERN int saladLoadALfunc(SALAD_loadfunc_type loadfunc, void *arg);
+
+#endif /* AL_SALAD_H */