예제 #1
0
void al_getlistener3i( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) {

	if (NULL == alGetListener3i) mogl_glunsupported("alGetListener3i");
	alGetListener3i((ALenum)mxGetScalar(prhs[0]),
		(ALint*)mxGetData(prhs[1]),
		(ALint*)mxGetData(prhs[2]),
		(ALint*)mxGetData(prhs[3]));

}
예제 #2
0
value lime_al_get_listener3i (value param) {

    ALint val1, val2, val3;

    alGetListener3i (val_int (param), &val1, &val2, &val3);

    value result = alloc_array (3);
    val_array_set_i (result, 0, alloc_int (val1));
    val_array_set_i (result, 1, alloc_int (val2));
    val_array_set_i (result, 2, alloc_int (val3));
    return result;

}
예제 #3
0
AL_API void AL_APIENTRY alGetListeneriv(ALenum eParam, ALint* plValues)
{
    ALCcontext *Context;

    switch(eParam)
    {
        case AL_POSITION:
        case AL_VELOCITY:
            alGetListener3i(eParam, plValues+0, plValues+1, plValues+2);
            return;
    }

    Context = GetContextRef();
    if(!Context) return;

    if(plValues)
    {
        switch(eParam)
        {
            case AL_ORIENTATION:
                LockContext(Context);
                // AT then UP
                plValues[0] = (ALint)Context->Listener.Forward[0];
                plValues[1] = (ALint)Context->Listener.Forward[1];
                plValues[2] = (ALint)Context->Listener.Forward[2];
                plValues[3] = (ALint)Context->Listener.Up[0];
                plValues[4] = (ALint)Context->Listener.Up[1];
                plValues[5] = (ALint)Context->Listener.Up[2];
                UnlockContext(Context);
                break;

            default:
                alSetError(Context, AL_INVALID_ENUM);
                break;
        }
    }
    else
        alSetError(Context, AL_INVALID_VALUE);

    ALCcontext_DecRef(Context);
}
예제 #4
0
AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint* values)
{
    ALCcontext *Context;

    switch(param)
    {
        case AL_POSITION:
        case AL_VELOCITY:
            alGetListener3i(param, values+0, values+1, values+2);
            return;
    }

    Context = GetContextRef();
    if(!Context) return;

    al_try
    {
        CHECK_VALUE(Context, values);
        switch(param)
        {
            case AL_ORIENTATION:
                LockContext(Context);
                // AT then UP
                values[0] = (ALint)Context->Listener->Forward[0];
                values[1] = (ALint)Context->Listener->Forward[1];
                values[2] = (ALint)Context->Listener->Forward[2];
                values[3] = (ALint)Context->Listener->Up[0];
                values[4] = (ALint)Context->Listener->Up[1];
                values[5] = (ALint)Context->Listener->Up[2];
                UnlockContext(Context);
                break;

            default:
                al_throwerr(Context, AL_INVALID_ENUM);
        }
    }
    al_endtry;

    ALCcontext_DecRef(Context);
}
예제 #5
0
AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint* values)
{
    ALCcontext *context;

    switch(param)
    {
    case AL_POSITION:
    case AL_VELOCITY:
        alGetListener3i(param, values+0, values+1, values+2);
        return;
    }

    context = GetContextRef();
    if(!context) return;

    ReadLock(&context->PropLock);
    if(!(values))
        SET_ERROR_AND_GOTO(context, AL_INVALID_VALUE, done);
    switch(param)
    {
    case AL_ORIENTATION:
        // AT then UP
        values[0] = (ALint)context->Listener->Forward[0];
        values[1] = (ALint)context->Listener->Forward[1];
        values[2] = (ALint)context->Listener->Forward[2];
        values[3] = (ALint)context->Listener->Up[0];
        values[4] = (ALint)context->Listener->Up[1];
        values[5] = (ALint)context->Listener->Up[2];
        break;

    default:
        SET_ERROR_AND_GOTO(context, AL_INVALID_ENUM, done);
    }

done:
    ReadUnlock(&context->PropLock);
    ALCcontext_DecRef(context);
}
예제 #6
0
파일: openal.c 프로젝트: AmesianX/RosWine
ALvoid CDECL wine_alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3)
{
    alGetListener3i(param, value1, value2, value3);
}
예제 #7
0
파일: al.cpp 프로젝트: 2asoft/xray-16
//*****************************************************************************
// alGetListener3i
//*****************************************************************************
//
ALAPI ALvoid ALAPIENTRY alGetListener3i(ALenum param, ALint* v1, ALint* v2, ALint* v3)
{
    AL_VOID_FXN(alGetListener3i(param, v1, v2, v3));
}