本文整理汇总了C++中alcGetCurrentContext函数的典型用法代码示例。如果您正苦于以下问题:C++ alcGetCurrentContext函数的具体用法?C++ alcGetCurrentContext怎么用?C++ alcGetCurrentContext使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了alcGetCurrentContext函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: alGetAuxiliaryEffectSlotfv
AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues)
{
ALCcontext *Context;
Context = alcGetCurrentContext();
if(!Context)
{
alSetError(AL_INVALID_OPERATION);
return;
}
SuspendContext(Context);
if (alIsAuxiliaryEffectSlot(effectslot))
{
switch(param)
{
case AL_EFFECTSLOT_GAIN:
alGetAuxiliaryEffectSlotf(effectslot, param, pflValues);
break;
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
alSetError(AL_INVALID_NAME);
ProcessContext(Context);
}
开发者ID:xiaobinshe,项目名称:multitv,代码行数:30,代码来源:alAuxEffectSlot.c
示例2: alFilteri
ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue)
{
ALCcontext *Context;
Context = alcGetCurrentContext();
SuspendContext(Context);
if (filter && alIsFilter(filter))
{
ALfilter *ALFilter = (ALfilter*)ALTHUNK_LOOKUPENTRY(filter);
switch(param)
{
case AL_FILTER_TYPE:
if(iValue == AL_FILTER_NULL ||
iValue == AL_FILTER_LOWPASS)
InitFilterParams(ALFilter, iValue);
else
alSetError(AL_INVALID_VALUE);
break;
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
alSetError(AL_INVALID_NAME);
ProcessContext(Context);
}
开发者ID:ashuron,项目名称:superplex3d_prototype,代码行数:31,代码来源:alFilter.c
示例3: alGetFilteriv
ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues)
{
ALCcontext *Context;
Context = alcGetCurrentContext();
SuspendContext(Context);
if (filter && alIsFilter(filter))
{
switch(param)
{
case AL_FILTER_TYPE:
alGetFilteri(filter, param, piValues);
break;
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
alSetError(AL_INVALID_NAME);
ProcessContext(Context);
}
开发者ID:ashuron,项目名称:superplex3d_prototype,代码行数:25,代码来源:alFilter.c
示例4: alcGetContextsDevice
// virtual
std::string LLAudioEngine_OpenAL::getDriverName(bool verbose)
{
ALCdevice *device = alcGetContextsDevice(alcGetCurrentContext());
std::ostringstream version;
version <<
"OpenAL";
if (verbose)
{
version <<
", version " <<
ll_safe_string(alGetString(AL_VERSION)) <<
" / " <<
ll_safe_string(alGetString(AL_VENDOR)) <<
" / " <<
ll_safe_string(alGetString(AL_RENDERER));
if (device)
version <<
": " <<
ll_safe_string(alcGetString(device,
ALC_DEFAULT_DEVICE_SPECIFIER));
}
return version.str();
}
开发者ID:Nora28,项目名称:imprudence,代码行数:28,代码来源:audioengine_openal.cpp
示例5: alSourceStop
COpenALSound::~COpenALSound()
{
if (noSound) {
delete[] Sources;
return;
}
LoadedFiles.clear();
for (int i = 0; i < maxSounds; i++) {
alSourceStop(Sources[i]);
alDeleteSources(1,&Sources[i]);
}
delete[] Sources;
while (!Buffers.empty()) {
alDeleteBuffers(1,&Buffers.back());
Buffers.pop_back();
}
ALCcontext *curcontext = alcGetCurrentContext();
ALCdevice *curdevice = alcGetContextsDevice(curcontext);
alcSuspendContext(curcontext);
/*
* FIXME
* Technically you're supposed to detach and destroy the
* current context with these two lines, but it deadlocks.
* As a not-quite-as-clean shortcut, if we skip this step
* and just close the device, OpenAL theoretically
* destroys the context associated with that device.
*
* alcMakeContextCurrent(NULL);
* alcDestroyContext(curcontext);
*/
alcCloseDevice(curdevice);
}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:32,代码来源:OpenALSound.cpp
示例6: alcGetCurrentContext
void CaptureThread::initializeSound()
{
_pContext = NULL;
_pDevice = NULL;
// Check for Capture Extension support
_pContext = alcGetCurrentContext();
_pDevice = alcGetContextsDevice( _pContext );
if( alcIsExtensionPresent( _pDevice, "ALC_EXT_CAPTURE") == AL_FALSE ) {
return;
}
// Get list of available Capture Devices
const ALchar *pDeviceList = alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER);
if ( pDeviceList )
{
while (*pDeviceList)
{
pDeviceList += strlen(pDeviceList) + 1;
}
}
// Get the name of the 'default' capture device
_szDefaultCaptureDevice = alcGetString( NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER );
//pCaptureDevice = alcCaptureOpenDevice( szDefaultCaptureDevice, 44100, AL_FORMAT_MONO16, BUFFERSIZE );
this->changeDevice( QString( _szDefaultCaptureDevice ) );
}
开发者ID:Cnotinfor,项目名称:TopQX_Sound,代码行数:29,代码来源:capturethread.cpp
示例7: alBufferiv
ALAPI void ALAPIENTRY alBufferiv(ALuint buffer, ALenum eParam, const ALint* plValues)
{
ALCcontext *pContext;
(void)plValues;
pContext = alcGetCurrentContext();
SuspendContext(pContext);
if (alIsBuffer(buffer) && (buffer != 0))
{
switch(eParam)
{
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
{
alSetError(AL_INVALID_NAME);
}
ProcessContext(pContext);
}
开发者ID:ghoulsblade,项目名称:vegaogre,代码行数:25,代码来源:alBuffer.c
示例8: checkForErrors
static void
checkForErrors (void)
{
{
ALenum error = alutGetError ();
if (error != ALUT_ERROR_NO_ERROR)
{
die ("ALUT", alutGetErrorString (error));
}
}
{
ALCdevice *device = alcGetContextsDevice (alcGetCurrentContext ());
ALCenum error = alcGetError (device);
if (error != ALC_NO_ERROR)
{
die ("ALC", (const char *) alcGetString (device, error));
}
}
{
ALenum error = alGetError ();
if (error != AL_NO_ERROR)
{
die ("AL", (const char *) alGetString (error));
}
}
}
开发者ID:JyothishM,项目名称:openal-svn-mirror,代码行数:26,代码来源:openal-info.c
示例9: alSourceStop
void OpenALStream::Stop()
{
m_run_thread.Clear();
// kick the thread if it's waiting
soundSyncEvent.Set();
soundTouch.clear();
thread.join();
alSourceStop(uiSource);
alSourcei(uiSource, AL_BUFFER, 0);
// Clean up buffers and sources
alDeleteSources(1, &uiSource);
uiSource = 0;
alDeleteBuffers(numBuffers, uiBuffers);
ALCcontext* pContext = alcGetCurrentContext();
ALCdevice* pDevice = alcGetContextsDevice(pContext);
alcMakeContextCurrent(nullptr);
alcDestroyContext(pContext);
alcCloseDevice(pDevice);
}
开发者ID:jloehr,项目名称:dolphin,代码行数:25,代码来源:OpenALStream.cpp
示例10: printALCInfo
static void
printALCInfo (void)
{
ALCint major, minor;
ALCdevice *device;
if (alcIsExtensionPresent (NULL, (const ALCchar *) "ALC_ENUMERATION_EXT") ==
AL_TRUE)
{
printDevices (ALC_DEVICE_SPECIFIER, "");
printDevices (ALC_CAPTURE_DEVICE_SPECIFIER, "capture ");
}
else
{
printf ("no device enumeration available\n");
}
device = alcGetContextsDevice (alcGetCurrentContext ());
checkForErrors ();
printf ("default device: %s\n",
getStringALC (device, ALC_DEFAULT_DEVICE_SPECIFIER));
printf ("default capture device: %s\n",
getStringALC (device, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER));
alcGetIntegerv (device, ALC_MAJOR_VERSION, 1, &major);
alcGetIntegerv (device, ALC_MAJOR_VERSION, 1, &minor);
checkForErrors ();
printf ("ALC version: %d.%d\n", (int) major, (int) minor);
printExtensions ("ALC extensions", ' ',
getStringALC (device, ALC_EXTENSIONS));
}
开发者ID:JyothishM,项目名称:openal-svn-mirror,代码行数:34,代码来源:openal-info.c
示例11: alcMakeContextCurrent
/*
alcMakeContextCurrent
Makes the given Context the active Context
*/
ALCAPI ALCboolean ALCAPIENTRY alcMakeContextCurrent(ALCcontext *context)
{
ALCcontext *ALContext;
ALboolean bReturn = AL_TRUE;
SuspendContext(NULL);
// context must be a valid Context or NULL
if ((IsContext(context)) || (context == NULL))
{
if ((ALContext=alcGetCurrentContext()))
{
SuspendContext(ALContext);
ALContext->InUse=AL_FALSE;
ProcessContext(ALContext);
}
if ((ALContext=context) && (ALContext->Device))
{
SuspendContext(ALContext);
ALContext->InUse=AL_TRUE;
ProcessContext(ALContext);
}
}
else
{
SetALCError(ALC_INVALID_CONTEXT);
bReturn = AL_FALSE;
}
ProcessContext(NULL);
return bReturn;
}
开发者ID:xiaobinshe,项目名称:multitv,代码行数:39,代码来源:ALc.c
示例12: _releaseALData
//Cleanup of OPENAL system
void SoundManager::_releaseAL()
{
bool success = true;
SingletonLogMgr::Instance()->AddNewLine("SoundManager::releaseAL","Releasing sound system..",LOGNORMAL);
//Clear all data
_releaseALData();
ALCcontext* pCurContext;
ALCdevice* pCurDevice;
// Get the current context.
pCurContext = alcGetCurrentContext();
// Get the device used by that context.
pCurDevice = alcGetContextsDevice(pCurContext);
// Reset the current context to NULL.
if(!alcMakeContextCurrent(NULL))
success = false;
// Release the context and the device.
alcDestroyContext(pCurContext);
if(!alcCloseDevice(pCurDevice))
success = false;
if(!success)
SingletonLogMgr::Instance()->AddNewLine("SoundManager::releaseAL","Sound system released INCORRECLY",LOGEXCEPTION);
else
SingletonLogMgr::Instance()->AddNewLine("SoundManager::releaseAL","Sound system released correctly",LOGNORMAL);
}
开发者ID:DarthMike,项目名称:Monkey-Madness,代码行数:35,代码来源:SoundManager.cpp
示例13: alSourceStop
COpenALSound::~COpenALSound()
{
for (int i = 0; i < maxSounds; i++) {
alSourceStop(Sources[i]);
alDeleteSources(1,&Sources[i]);
}
delete[] Sources;
map<string, ALuint>::iterator it;
for (it = soundMap.begin(); it != soundMap.end(); ++it) {
alDeleteBuffers(1, &it->second);
}
ALCcontext *curcontext = alcGetCurrentContext();
ALCdevice *curdevice = alcGetContextsDevice(curcontext);
alcSuspendContext(curcontext);
/*
* FIXME
* Technically you're supposed to detach and destroy the
* current context with these two lines, but it deadlocks.
* As a not-quite-as-clean shortcut, if we skip this step
* and just close the device, OpenAL theoretically
* destroys the context associated with that device.
*
* alcMakeContextCurrent(NULL);
* alcDestroyContext(curcontext);
*/
/*
* FIXME
* Technically you're supposed to close the device, but
* the OpenAL sound thread crashes if we do this manually.
* The device seems to be closed automagically anyway.
*
* alcCloseDevice(curdevice);
*/
}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:34,代码来源:OpenALSound.cpp
示例14: alBuffer3f
ALAPI void ALAPIENTRY alBuffer3f(ALuint buffer, ALenum eParam, ALfloat flValue1, ALfloat flValue2, ALfloat flValue3)
{
ALCcontext *pContext;
(void)flValue1;
(void)flValue2;
(void)flValue3;
pContext = alcGetCurrentContext();
SuspendContext(pContext);
if (alIsBuffer(buffer) && (buffer != 0))
{
switch(eParam)
{
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
{
alSetError(AL_INVALID_NAME);
}
ProcessContext(pContext);
}
开发者ID:ghoulsblade,项目名称:vegaogre,代码行数:27,代码来源:alBuffer.c
示例15: alGetBuffer3i
ALAPI void ALAPIENTRY alGetBuffer3i(ALuint buffer, ALenum eParam, ALint* plValue1, ALint* plValue2, ALint* plValue3)
{
ALCcontext *pContext;
pContext = alcGetCurrentContext();
SuspendContext(pContext);
if ((plValue1) && (plValue2) && (plValue3))
{
if (alIsBuffer(buffer) && (buffer != 0))
{
switch(eParam)
{
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
{
alSetError(AL_INVALID_NAME);
}
}
else
{
alSetError(AL_INVALID_VALUE);
}
ProcessContext(pContext);
}
开发者ID:ghoulsblade,项目名称:vegaogre,代码行数:30,代码来源:alBuffer.c
示例16: alSourceStop
void HGE_Impl::_SoundDone()
{
CStreamList *stmItem=streams, *stmNext;
if(hOpenAL)
{
for (int i = 0; i < sidcount; i++)
alSourceStop(sids[i]);
alDeleteSources(sidcount, sids);
sidcount = 0;
memset(sids, '\0', sizeof (sids));
ALCcontext *ctx = alcGetCurrentContext();
ALCdevice *dev = alcGetContextsDevice(ctx);
alcMakeContextCurrent(NULL);
alcSuspendContext(ctx);
alcDestroyContext(ctx);
alcCloseDevice(dev);
hOpenAL=0;
while(stmItem)
{
stmNext=stmItem->next;
Resource_Free(stmItem->data);
delete stmItem;
stmItem=stmNext;
}
streams=0;
}
}
开发者ID:Valloric,项目名称:hge-multi,代码行数:31,代码来源:sound_openal.cpp
示例17: OPENAL_Close
AL_API void OPENAL_Close()
{
if (!initialized) return;
ALCcontext *ctx = alcGetCurrentContext();
if (ctx)
{
for (int i = 0; i < num_channels; i++)
{
alSourceStop(channels[i].sid);
alSourcei(channels[i].sid, AL_BUFFER, 0);
alDeleteSources(1, &channels[i].sid);
}
ALCdevice *dev = alcGetContextsDevice(ctx);
alcMakeContextCurrent(NULL);
alcSuspendContext(ctx);
alcDestroyContext(ctx);
alcCloseDevice(dev);
}
num_channels = 0;
delete[] channels;
channels = NULL;
unload_alsyms();
initialized = false;
}
开发者ID:Vlakulor,项目名称:lugaru,代码行数:27,代码来源:openal_wrapper.cpp
示例18: _alutSanityCheck
ALboolean
_alutSanityCheck (void)
{
ALCcontext *context;
if (initialisationState == Unintialized)
{
_alutSetError (ALUT_ERROR_INVALID_OPERATION);
return AL_FALSE;
}
context = alcGetCurrentContext ();
if (context == NULL)
{
_alutSetError (ALUT_ERROR_NO_CURRENT_CONTEXT);
return AL_FALSE;
}
if (alGetError () != AL_NO_ERROR)
{
_alutSetError (ALUT_ERROR_AL_ERROR_ON_ENTRY);
return AL_FALSE;
}
if (alcGetError (alcGetContextsDevice (context)) != ALC_NO_ERROR)
{
_alutSetError (ALUT_ERROR_ALC_ERROR_ON_ENTRY);
return AL_FALSE;
}
return AL_TRUE;
}
开发者ID:AlphaO,项目名称:Starfox,代码行数:32,代码来源:alutInit.c
示例19: alGetFilteri
ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue)
{
ALCcontext *Context;
Context = alcGetCurrentContext();
SuspendContext(Context);
if (filter && alIsFilter(filter))
{
ALfilter *ALFilter = (ALfilter*)ALTHUNK_LOOKUPENTRY(filter);
switch(param)
{
case AL_FILTER_TYPE:
*piValue = ALFilter->type;
break;
default:
alSetError(AL_INVALID_ENUM);
break;
}
}
else
alSetError(AL_INVALID_NAME);
ProcessContext(Context);
}
开发者ID:ashuron,项目名称:superplex3d_prototype,代码行数:27,代码来源:alFilter.c
示例20: alDeleteSources
//Function to clean and delete sound files
void Openal::clean_al()
{
//clear source
alDeleteSources(1, &alSource[0]);
alDeleteSources(1, &alSource[1]);
alDeleteSources(1, &alSource[2]);
alDeleteSources(1, &alSource[3]);
alDeleteSources(1, &alSource[4]);
alDeleteSources(1, &alSource[5]);
//clear buffer
alDeleteBuffers(1, &alBuffer0);
alDeleteBuffers(1, &alBuffer1);
alDeleteBuffers(1, &alBuffer2);
alDeleteBuffers(1, &alBuffer3);
alDeleteBuffers(1, &alBuffer4);
alDeleteBuffers(1, &alBuffer5);
for (int i = 0; i < 5; i++) {
alDeleteSources(1, &dinoSour[i]);
alDeleteBuffers(1, &dinoBuff[i]);
}
ALCcontext *Context = alcGetCurrentContext();
ALCdevice *Device = alcGetContextsDevice(Context);
alcMakeContextCurrent(NULL);
alcDestroyContext(Context);
alcCloseDevice(Device);
}
开发者ID:cs335fps,项目名称:p,代码行数:31,代码来源:lizandroP.cpp
注:本文中的alcGetCurrentContext函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论