static int group_audio_open_out_device(int groupnum) { char dname[MAX_STR_SIZE]; get_primary_device_name(output, dname, sizeof(dname)); dname[MAX_STR_SIZE - 1] = '\0'; groupchats[groupnum].audio.dvhandle = alcOpenDevice(dname); if (groupchats[groupnum].audio.dvhandle == NULL) return -1; groupchats[groupnum].audio.dvctx = alcCreateContext(groupchats[groupnum].audio.dvhandle, NULL); alcMakeContextCurrent(groupchats[groupnum].audio.dvctx); alGenBuffers(OPENAL_BUFS, groupchats[groupnum].audio.buffers); alGenSources((uint32_t) 1, &groupchats[groupnum].audio.source); alSourcei(groupchats[groupnum].audio.source, AL_LOOPING, AL_FALSE); if (alcGetError(groupchats[groupnum].audio.dvhandle) != AL_NO_ERROR) { group_audio_close_out_device(groupnum); groupchats[groupnum].audio.dvhandle = NULL; groupchats[groupnum].audio.dvctx = NULL; return -1; } alSourceQueueBuffers(groupchats[groupnum].audio.source, OPENAL_BUFS, groupchats[groupnum].audio.buffers); alSourcePlay(groupchats[groupnum].audio.source); return 0; }
static int group_audio_open_out_device(int groupnum) { char dname[MAX_STR_SIZE]; get_primary_device_name(output, dname, sizeof(dname)); dname[MAX_STR_SIZE] = '\0'; groupchats[groupnum].audio.dvhandle = alcOpenDevice(dname); if (groupchats[groupnum].audio.dvhandle == NULL) return -1; groupchats[groupnum].audio.dvctx = alcCreateContext(groupchats[groupnum].audio.dvhandle, NULL); if (!alcMakeContextCurrent(groupchats[groupnum].audio.dvctx)) return -1; return 0; }