| 68 | |
| 69 | |
| 70 | void* alGetProcAddress(const ALchar *name) { |
| 71 | // Validate the state and the input. |
| 72 | if (EM_ASM_INT({ |
| 73 | if (!AL.currentCtx) { |
| 74 | err("alGetProcAddress() called without a valid context"); |
| 75 | return 1; |
| 76 | } |
| 77 | if (!$0) { |
| 78 | AL.currentCtx.err = 0xA003 /* AL_INVALID_VALUE */; |
| 79 | return 1; |
| 80 | } |
| 81 | }, name)) { |
| 82 | return NULL; |
| 83 | } |
| 84 | |
| 85 | // Base API |
| 86 | if (!strcmp(name, "alDopplerFactor")) { return alDopplerFactor; } |
| 87 | else if (!strcmp(name, "alDopplerVelocity")) { return alDopplerVelocity; } |
| 88 | else if (!strcmp(name, "alSpeedOfSound")) { return alSpeedOfSound; } |
| 89 | else if (!strcmp(name, "alDistanceModel")) { return alDistanceModel; } |
| 90 | else if (!strcmp(name, "alEnable")) { return alEnable; } |
| 91 | else if (!strcmp(name, "alDisable")) { return alDisable; } |
| 92 | else if (!strcmp(name, "alIsEnabled")) { return alIsEnabled; } |
| 93 | else if (!strcmp(name, "alGetString")) { return alGetString; } |
| 94 | else if (!strcmp(name, "alGetBooleanv")) { return alGetBooleanv; } |
| 95 | else if (!strcmp(name, "alGetIntegerv")) { return alGetIntegerv; } |
| 96 | else if (!strcmp(name, "alGetFloatv")) { return alGetFloatv; } |
| 97 | else if (!strcmp(name, "alGetDoublev")) { return alGetDoublev; } |
| 98 | else if (!strcmp(name, "alGetBoolean")) { return alGetBoolean; } |
| 99 | else if (!strcmp(name, "alGetInteger")) { return alGetInteger; } |
| 100 | else if (!strcmp(name, "alGetFloat")) { return alGetFloat; } |
| 101 | else if (!strcmp(name, "alGetDouble")) { return alGetDouble; } |
| 102 | else if (!strcmp(name, "alGetError")) { return alGetError; } |
| 103 | else if (!strcmp(name, "alIsExtensionPresent")) { return alIsExtensionPresent; } |
| 104 | else if (!strcmp(name, "alGetProcAddress")) { return alGetProcAddress; } |
| 105 | else if (!strcmp(name, "alGetEnumValue")) { return alGetEnumValue; } |
| 106 | else if (!strcmp(name, "alListenerf")) { return alListenerf; } |
| 107 | else if (!strcmp(name, "alListener3f")) { return alListener3f; } |
| 108 | else if (!strcmp(name, "alListenerfv")) { return alListenerfv; } |
| 109 | else if (!strcmp(name, "alListeneri")) { return alListeneri; } |
| 110 | else if (!strcmp(name, "alListener3i")) { return alListener3i; } |
| 111 | else if (!strcmp(name, "alListeneriv")) { return alListeneriv; } |
| 112 | else if (!strcmp(name, "alGetListenerf")) { return alGetListenerf; } |
| 113 | else if (!strcmp(name, "alGetListener3f")) { return alGetListener3f; } |
| 114 | else if (!strcmp(name, "alGetListenerfv")) { return alGetListenerfv; } |
| 115 | else if (!strcmp(name, "alGetListeneri")) { return alGetListeneri; } |
| 116 | else if (!strcmp(name, "alGetListener3i")) { return alGetListener3i; } |
| 117 | else if (!strcmp(name, "alGetListeneriv")) { return alGetListeneriv; } |
| 118 | else if (!strcmp(name, "alGenSources")) { return alGenSources; } |
| 119 | else if (!strcmp(name, "alDeleteSources")) { return alDeleteSources; } |
| 120 | else if (!strcmp(name, "alIsSource")) { return alIsSource; } |
| 121 | else if (!strcmp(name, "alSourcef")) { return alSourcef; } |
| 122 | else if (!strcmp(name, "alSource3f")) { return alSource3f; } |
| 123 | else if (!strcmp(name, "alSourcefv")) { return alSourcefv; } |
| 124 | else if (!strcmp(name, "alSourcei")) { return alSourcei; } |
| 125 | else if (!strcmp(name, "alSource3i")) { return alSource3i; } |
| 126 | else if (!strcmp(name, "alSourceiv")) { return alSourceiv; } |
| 127 | else if (!strcmp(name, "alGetSourcef")) { return alGetSourcef; } |
nothing calls this directly
no test coverage detected