rlm@0: void pauseAllSources(ALCcontext *ctx){ rlm@0: ALCcontext *current = alcGetCurrentContext(); rlm@0: alcMakeContextCurrent(ctx); rlm@0: ALsource **src, **src_end; rlm@0: src = ctx->ActiveSources; rlm@0: src_end = src + ctx->ActiveSourceCount; rlm@0: while(src != src_end){ rlm@0: if (AL_PLAYING == (*src)->state){ rlm@0: //if (AL_TRUE){ rlm@0: ALuint source_id = (*src)->source; rlm@0: //printf("pausing ONE source\n"); rlm@0: alSourcePause(source_id); rlm@0: } rlm@0: src++; rlm@0: } rlm@0: alcMakeContextCurrent(current); rlm@0: } rlm@0: rlm@0: rlm@0: #define RUNONLY(n) \ rlm@0: {static int __runonce = n; \ rlm@0: if (__runonce-- <= 0){__runonce = 0;return;}} rlm@0: rlm@0: #define RUNAT(n) \ rlm@0: {static int __runat = n; \ rlm@0: if (0 != __runat--){return;}} rlm@0: rlm@0: rlm@0: #define DsyncSourcei(sourceID1, sourceID2, ctx1, ctx2, param) \ rlm@0: {/*printf("synci : " #param "\n");*/ \ rlm@0: syncSourcei(sourceID1, sourceID2, ctx1, ctx2, param);} rlm@0: rlm@0: #define DsyncSourcef(sourceID1, sourceID2, ctx1, ctx2, param) \ rlm@0: {/*printf("syncf : " #param "\n");*/ \ rlm@0: syncSourcef(sourceID1, sourceID2, ctx1, ctx2, param);} rlm@0: rlm@0: #define DsyncSource3i(sourceID1, sourceID2, ctx1, ctx2, param) \ rlm@0: {/*printf("sync3i : " #param "\n");*/ \ rlm@0: syncSource3i(sourceID1, sourceID2, ctx1, ctx2, param);} rlm@0: rlm@0: #define DsyncSource3f(sourceID1, sourceID2, ctx1, ctx2, param) \ rlm@0: {/*printf("sync3f : " #param "\n");*/ \ rlm@0: syncSource3f(sourceID1, sourceID2, ctx1, ctx2, param);} rlm@0: rlm@0: void printError(void){ rlm@0: ALenum error = alGetError(); rlm@0: printf("%s\n", GetALCErrorString(error)); rlm@0: printf("%s\n", GetALErrorString(error)); rlm@0: } rlm@0: rlm@0: rlm@0: rlm@0: char* GetALCErrorString(ALenum err) rlm@0: { rlm@0: switch(err) rlm@0: { rlm@0: case ALC_NO_ERROR: rlm@0: return "AL_NO_ERROR"; rlm@0: break; rlm@0: rlm@0: case ALC_INVALID_DEVICE: rlm@0: return "ALC_INVALID_DEVICE"; rlm@0: break; rlm@0: rlm@0: case ALC_INVALID_CONTEXT: rlm@0: return "ALC_INVALID_CONTEXT"; rlm@0: break; rlm@0: rlm@0: case ALC_INVALID_ENUM: rlm@0: return "ALC_INVALID_ENUM"; rlm@0: break; rlm@0: rlm@0: case ALC_INVALID_VALUE: rlm@0: return "ALC_INVALID_VALUE"; rlm@0: break; rlm@0: rlm@0: case ALC_OUT_OF_MEMORY: rlm@0: return "ALC_OUT_OF_MEMORY"; rlm@0: break; rlm@0: }; rlm@0: return "UNknown error."; rlm@0: } rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: rlm@0: char* GetALErrorString(ALenum err) rlm@0: { rlm@0: switch(err) rlm@0: { rlm@0: case AL_NO_ERROR: rlm@0: return "AL_NO_ERROR"; rlm@0: break; rlm@0: rlm@0: case AL_INVALID_NAME: rlm@0: return "AL_INVALID_NAME"; rlm@0: break; rlm@0: rlm@0: case AL_INVALID_ENUM: rlm@0: return "AL_INVALID_ENUM"; rlm@0: break; rlm@0: rlm@0: case AL_INVALID_VALUE: rlm@0: return "AL_INVALID_VALUE"; rlm@0: break; rlm@0: rlm@0: case AL_INVALID_OPERATION: rlm@0: return "AL_INVALID_OPERATION"; rlm@0: break; rlm@0: rlm@0: case AL_OUT_OF_MEMORY: rlm@0: return "AL_OUT_OF_MEMORY"; rlm@0: break; rlm@0: }; rlm@0: return "UNknown error."; rlm@0: } rlm@0: rlm@0: rlm@0: rlm@0: