220
233
usage == AL_DYNAMIC_WRITE_EXT || usage == AL_DYNAMIC_READ_EXT ||
221
234
usage == AL_DYNAMIC_COPY_EXT)
223
/* (Re)allocate data */
224
temp = realloc(ALBuf->data, size);
229
ALBuf->usage = usage;
231
memcpy(ALBuf->data, data, size);
238
/* (Re)allocate data */
239
temp = realloc(ALBuf->data, size);
244
ALBuf->usage = usage;
246
memcpy(ALBuf->data, data, size);
249
alSetError(Context, AL_OUT_OF_MEMORY);
234
alSetError(AL_OUT_OF_MEMORY);
252
alSetError(Context, AL_INVALID_VALUE);
237
alSetError(AL_INVALID_ENUM);
255
alSetError(Context, AL_INVALID_ENUM);
240
alSetError(AL_INVALID_OPERATION);
258
alSetError(Context, AL_INVALID_OPERATION);
243
alSetError(AL_INVALID_NAME);
261
alSetError(Context, AL_INVALID_NAME);
245
263
ProcessContext(Context);
248
ALvoid ALAPIENTRY alDatabufferSubDataEXT(ALuint uiBuffer, ALuint start, ALsizei length, const ALvoid *data)
266
AL_API ALvoid AL_APIENTRY alDatabufferSubDataEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, const ALvoid *data)
250
268
ALCcontext *pContext;
251
269
ALdatabuffer *pBuffer;
253
272
pContext = GetContextSuspended();
254
273
if(!pContext) return;
256
if(alIsDatabufferEXT(uiBuffer) && uiBuffer != 0)
275
Device = pContext->Device;
276
if((pBuffer=VerifyDatabuffer(Device->DatabufferList, uiBuffer)) != NULL)
258
pBuffer = (ALdatabuffer*)ALTHUNK_LOOKUPENTRY(uiBuffer);
260
if(length >= 0 && start+length <= pBuffer->size)
278
if(start >= 0 && length >= 0 && start+length <= pBuffer->size)
262
280
if(pBuffer->state == UNMAPPED)
263
281
memcpy(pBuffer->data+start, data, length);
265
alSetError(AL_INVALID_OPERATION);
283
alSetError(pContext, AL_INVALID_OPERATION);
268
alSetError(AL_INVALID_VALUE);
286
alSetError(pContext, AL_INVALID_VALUE);
271
alSetError(AL_INVALID_NAME);
289
alSetError(pContext, AL_INVALID_NAME);
273
291
ProcessContext(pContext);
276
ALvoid ALAPIENTRY alGetDatabufferSubDataEXT(ALuint uiBuffer, ALuint start, ALsizei length, ALvoid *data)
294
AL_API ALvoid AL_APIENTRY alGetDatabufferSubDataEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALvoid *data)
278
296
ALCcontext *pContext;
279
297
ALdatabuffer *pBuffer;
281
300
pContext = GetContextSuspended();
282
301
if(!pContext) return;
284
if(alIsDatabufferEXT(uiBuffer) && uiBuffer != 0)
303
Device = pContext->Device;
304
if((pBuffer=VerifyDatabuffer(Device->DatabufferList, uiBuffer)) != NULL)
286
pBuffer = (ALdatabuffer*)ALTHUNK_LOOKUPENTRY(uiBuffer);
288
if(length >= 0 && start+length <= pBuffer->size)
306
if(start >= 0 && length >= 0 && start+length <= pBuffer->size)
290
308
if(pBuffer->state == UNMAPPED)
291
309
memcpy(data, pBuffer->data+start, length);
293
alSetError(AL_INVALID_OPERATION);
311
alSetError(pContext, AL_INVALID_OPERATION);
296
alSetError(AL_INVALID_VALUE);
314
alSetError(pContext, AL_INVALID_VALUE);
299
alSetError(AL_INVALID_NAME);
317
alSetError(pContext, AL_INVALID_NAME);
301
319
ProcessContext(pContext);
305
ALvoid ALAPIENTRY alDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat flValue)
323
AL_API ALvoid AL_APIENTRY alDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat flValue)
307
325
ALCcontext *pContext;
311
330
pContext = GetContextSuspended();
312
331
if(!pContext) return;
314
if(alIsDatabufferEXT(buffer) && buffer != 0)
333
Device = pContext->Device;
334
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
319
alSetError(AL_INVALID_ENUM);
339
alSetError(pContext, AL_INVALID_ENUM);
324
alSetError(AL_INVALID_NAME);
344
alSetError(pContext, AL_INVALID_NAME);
326
346
ProcessContext(pContext);
329
ALvoid ALAPIENTRY alDatabufferfvEXT(ALuint buffer, ALenum eParam, const ALfloat* flValues)
349
AL_API ALvoid AL_APIENTRY alDatabufferfvEXT(ALuint buffer, ALenum eParam, const ALfloat* flValues)
331
351
ALCcontext *pContext;
335
356
pContext = GetContextSuspended();
336
357
if(!pContext) return;
338
if(alIsDatabufferEXT(buffer) && buffer != 0)
359
Device = pContext->Device;
360
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
343
alSetError(AL_INVALID_ENUM);
365
alSetError(pContext, AL_INVALID_ENUM);
348
alSetError(AL_INVALID_NAME);
370
alSetError(pContext, AL_INVALID_NAME);
350
372
ProcessContext(pContext);
354
ALvoid ALAPIENTRY alDatabufferiEXT(ALuint buffer, ALenum eParam, ALint lValue)
376
AL_API ALvoid AL_APIENTRY alDatabufferiEXT(ALuint buffer, ALenum eParam, ALint lValue)
356
378
ALCcontext *pContext;
360
383
pContext = GetContextSuspended();
361
384
if(!pContext) return;
363
if(alIsDatabufferEXT(buffer) && buffer != 0)
386
Device = pContext->Device;
387
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
368
alSetError(AL_INVALID_ENUM);
392
alSetError(pContext, AL_INVALID_ENUM);
373
alSetError(AL_INVALID_NAME);
397
alSetError(pContext, AL_INVALID_NAME);
375
399
ProcessContext(pContext);
378
ALvoid ALAPIENTRY alDatabufferivEXT(ALuint buffer, ALenum eParam, const ALint* plValues)
402
AL_API ALvoid AL_APIENTRY alDatabufferivEXT(ALuint buffer, ALenum eParam, const ALint* plValues)
380
404
ALCcontext *pContext;
384
409
pContext = GetContextSuspended();
385
410
if(!pContext) return;
387
if(alIsDatabufferEXT(buffer) && buffer != 0)
412
Device = pContext->Device;
413
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
392
alSetError(AL_INVALID_ENUM);
418
alSetError(pContext, AL_INVALID_ENUM);
397
alSetError(AL_INVALID_NAME);
423
alSetError(pContext, AL_INVALID_NAME);
399
425
ProcessContext(pContext);
403
ALvoid ALAPIENTRY alGetDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat *pflValue)
429
AL_API ALvoid AL_APIENTRY alGetDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat *pflValue)
405
431
ALCcontext *pContext;
407
434
pContext = GetContextSuspended();
408
435
if(!pContext) return;
412
if(alIsDatabufferEXT(buffer) && buffer != 0)
439
Device = pContext->Device;
440
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
417
alSetError(AL_INVALID_ENUM);
445
alSetError(pContext, AL_INVALID_ENUM);
422
alSetError(AL_INVALID_NAME);
450
alSetError(pContext, AL_INVALID_NAME);
425
alSetError(AL_INVALID_VALUE);
453
alSetError(pContext, AL_INVALID_VALUE);
427
455
ProcessContext(pContext);
430
ALvoid ALAPIENTRY alGetDatabufferfvEXT(ALuint buffer, ALenum eParam, ALfloat* pflValues)
458
AL_API ALvoid AL_APIENTRY alGetDatabufferfvEXT(ALuint buffer, ALenum eParam, ALfloat* pflValues)
432
460
ALCcontext *pContext;
434
463
pContext = GetContextSuspended();
435
464
if(!pContext) return;
439
if(alIsDatabufferEXT(buffer) && buffer != 0)
468
Device = pContext->Device;
469
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
444
alSetError(AL_INVALID_ENUM);
474
alSetError(pContext, AL_INVALID_ENUM);
449
alSetError(AL_INVALID_NAME);
479
alSetError(pContext, AL_INVALID_NAME);
452
alSetError(AL_INVALID_VALUE);
482
alSetError(pContext, AL_INVALID_VALUE);
454
484
ProcessContext(pContext);
457
ALvoid ALAPIENTRY alGetDatabufferiEXT(ALuint buffer, ALenum eParam, ALint *plValue)
487
AL_API ALvoid AL_APIENTRY alGetDatabufferiEXT(ALuint buffer, ALenum eParam, ALint *plValue)
459
489
ALCcontext *pContext;
460
490
ALdatabuffer *pBuffer;
462
493
pContext = GetContextSuspended();
463
494
if(!pContext) return;
467
if(alIsDatabufferEXT(buffer) && buffer != 0)
498
Device = pContext->Device;
499
if((pBuffer=VerifyDatabuffer(Device->DatabufferList, buffer)) != NULL)
469
pBuffer = (ALdatabuffer*)ALTHUNK_LOOKUPENTRY(buffer);
474
*plValue = pBuffer->size;
504
*plValue = (ALint)pBuffer->size;
478
alSetError(AL_INVALID_ENUM);
508
alSetError(pContext, AL_INVALID_ENUM);
483
alSetError(AL_INVALID_NAME);
513
alSetError(pContext, AL_INVALID_NAME);
486
alSetError(AL_INVALID_VALUE);
516
alSetError(pContext, AL_INVALID_VALUE);
488
518
ProcessContext(pContext);
491
ALvoid ALAPIENTRY alGetDatabufferivEXT(ALuint buffer, ALenum eParam, ALint* plValues)
521
AL_API ALvoid AL_APIENTRY alGetDatabufferivEXT(ALuint buffer, ALenum eParam, ALint* plValues)
493
523
ALCcontext *pContext;
495
526
pContext = GetContextSuspended();
496
527
if(!pContext) return;
500
if(alIsDatabufferEXT(buffer) && buffer != 0)
531
Device = pContext->Device;
532
if(VerifyDatabuffer(Device->DatabufferList, buffer) != NULL)
509
alSetError(AL_INVALID_ENUM);
541
alSetError(pContext, AL_INVALID_ENUM);
514
alSetError(AL_INVALID_NAME);
546
alSetError(pContext, AL_INVALID_NAME);
517
alSetError(AL_INVALID_VALUE);
549
alSetError(pContext, AL_INVALID_VALUE);
519
551
ProcessContext(pContext);
523
ALvoid ALAPIENTRY alSelectDatabufferEXT(ALenum target, ALuint uiBuffer)
555
AL_API ALvoid AL_APIENTRY alSelectDatabufferEXT(ALenum target, ALuint uiBuffer)
525
557
ALCcontext *pContext;
526
ALdatabuffer *pBuffer;
558
ALdatabuffer *pBuffer = NULL;
528
561
pContext = GetContextSuspended();
529
562
if(!pContext) return;
531
if(alIsDatabufferEXT(uiBuffer))
564
Device = pContext->Device;
566
(pBuffer=VerifyDatabuffer(Device->DatabufferList, uiBuffer)) != NULL)
533
pBuffer = (ALdatabuffer*)(uiBuffer ? ALTHUNK_LOOKUPENTRY(uiBuffer) : NULL);
534
568
if(target == AL_SAMPLE_SOURCE_EXT)
535
569
pContext->SampleSource = pBuffer;
536
570
else if(target == AL_SAMPLE_SINK_EXT)
537
571
pContext->SampleSink = pBuffer;
539
alSetError(AL_INVALID_VALUE);
573
alSetError(pContext, AL_INVALID_VALUE);
542
alSetError(AL_INVALID_NAME);
576
alSetError(pContext, AL_INVALID_NAME);
544
578
ProcessContext(pContext);
548
ALvoid* ALAPIENTRY alMapDatabufferEXT(ALuint uiBuffer, ALuint start, ALsizei length, ALenum access)
582
AL_API ALvoid* AL_APIENTRY alMapDatabufferEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALenum access)
550
584
ALCcontext *pContext;
551
585
ALdatabuffer *pBuffer;
552
586
ALvoid *ret = NULL;
554
589
pContext = GetContextSuspended();
555
590
if(!pContext) return NULL;
557
if(alIsDatabufferEXT(uiBuffer) && uiBuffer != 0)
592
Device = pContext->Device;
593
if((pBuffer=VerifyDatabuffer(Device->DatabufferList, uiBuffer)) != NULL)
559
pBuffer = (ALdatabuffer*)ALTHUNK_LOOKUPENTRY(uiBuffer);
561
if(length >= 0 && start+length <= pBuffer->size)
595
if(start >= 0 && length >= 0 && start+length <= pBuffer->size)
563
597
if(access == AL_READ_ONLY_EXT || access == AL_WRITE_ONLY_EXT ||
564
598
access == AL_READ_WRITE_EXT)