summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-10-30 23:02:28 +0200
committerJari Vetoniemi <mailroxas@gmail.com>2018-10-30 23:02:28 +0200
commit2717739e1954dd8c30010e9c2ae654e9baadd637 (patch)
tree4e2311212c4368e090d84f6eda16b2cc683da60a
parent2ce64c8c7883c05547b9333ec67db11b69de2400 (diff)
Fix openal
-rw-r--r--gen-stubs.bash2
-rw-r--r--libasound.c51
-rw-r--r--stubs.h7
3 files changed, 52 insertions, 8 deletions
diff --git a/gen-stubs.bash b/gen-stubs.bash
index 734dc2e..88f3366 100644
--- a/gen-stubs.bash
+++ b/gen-stubs.bash
@@ -19,7 +19,7 @@ should_error()
{
# stubs that should return error value
grep -Fqs "$(cat << EOF
-snd_card_
+_malloc
snd_config_
EOF
)" <<<"$1"
diff --git a/libasound.c b/libasound.c
index 3d67f6b..62b7691 100644
--- a/libasound.c
+++ b/libasound.c
@@ -49,6 +49,43 @@ int snd_lib_error_set_handler(snd_lib_error_handler_t handler)
struct _snd_config { char noop; } s_snd_config;
struct _snd_config *snd_config = &s_snd_config;
+int
+snd_card_load(int card)
+{
+ return 0;
+}
+
+int
+snd_card_next(int *card)
+{
+ if (card) {
+ *card = (*card == -1 ? 0 : -1);
+ return 0;
+ }
+ return -1;
+}
+
+int
+snd_card_get_index(const char *name)
+{
+ if (!strcmp(name, "default"))
+ return 0;
+ return -1;
+}
+
+int
+snd_card_get_name(int card, char **name)
+{
+ if (name) *name = "default";
+ return 0;
+}
+
+int snd_card_get_longname(int card, char **name)
+{
+ if (name) *name = "default";
+ return 0;
+}
+
struct _snd_pcm_hint { char *name, *ioid; };
int
@@ -497,6 +534,20 @@ snd_pcm_format_mask_sizeof(void)
return sizeof(snd_pcm_format_mask_t);
}
+int
+snd_pcm_hw_params_malloc(snd_pcm_hw_params_t **ptr)
+{
+ // OpenAL-soft uses this :(
+ *ptr = calloc(1, sizeof(**ptr));
+ return (*ptr ? 0 : -1);
+}
+
+void
+snd_pcm_hw_params_free(snd_pcm_hw_params_t *obj)
+{
+ free(obj);
+}
+
void
snd_pcm_hw_params_get_format_mask(snd_pcm_hw_params_t *params, snd_pcm_format_mask_t *mask)
{
diff --git a/stubs.h b/stubs.h
index 37329fa..3442ca7 100644
--- a/stubs.h
+++ b/stubs.h
@@ -55,11 +55,6 @@ int snd_config_get_ctl_iface_ascii(const char *ascii) { WARNX1("stub"); return -
int snd_config_get_ctl_iface(const snd_config_t *conf) { WARNX1("stub"); return -1; }
int snd_names_list(const char *iface, snd_devname_t **list) { WARNX1("stub"); return 0; }
void snd_names_list_free(snd_devname_t *list) { WARNX1("stub"); }
-int snd_card_load(int card) { WARNX1("stub"); return -1; }
-int snd_card_next(int *card) { WARNX1("stub"); return -1; }
-int snd_card_get_index(const char *name) { WARNX1("stub"); return -1; }
-int snd_card_get_name(int card, char **name) { WARNX1("stub"); return -1; }
-int snd_card_get_longname(int card, char **name) { WARNX1("stub"); return -1; }
int snd_ctl_open(snd_ctl_t **ctl, const char *name, int mode) { WARNX1("stub"); return 0; }
int snd_ctl_open_lconf(snd_ctl_t **ctl, const char *name, int mode, snd_config_t *lconf) { WARNX1("stub"); return 0; }
int snd_ctl_open_fallback(snd_ctl_t **ctl, snd_config_t *root, const char *name, const char *orig_name, int mode) { WARNX1("stub"); return 0; }
@@ -545,8 +540,6 @@ int snd_pcm_hw_params_get_rate_numden(const snd_pcm_hw_params_t *params, unsigne
int snd_pcm_hw_params_get_sbits(const snd_pcm_hw_params_t *params) { WARNX1("stub"); return 0; }
int snd_pcm_hw_params_get_fifo_size(const snd_pcm_hw_params_t *params) { WARNX1("stub"); return 0; }
int snd_pcm_hw_params_try_explain_failure(snd_pcm_t *pcm, snd_pcm_hw_params_t *fail, snd_pcm_hw_params_t *success, unsigned int depth, snd_output_t *out) { WARNX1("stub"); return 0; }
-int snd_pcm_hw_params_malloc(snd_pcm_hw_params_t **ptr) { WARNX1("stub"); return 0; }
-void snd_pcm_hw_params_free(snd_pcm_hw_params_t *obj) { WARNX1("stub"); }
int snd_pcm_hw_params_get_access(const snd_pcm_hw_params_t *params, snd_pcm_access_t *_access) { WARNX1("stub"); return 0; }
int snd_pcm_hw_params_test_access(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access) { WARNX1("stub"); return 0; }
int snd_pcm_hw_params_set_access_first(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t *_access) { WARNX1("stub"); return 0; }