seal 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +19 -0
- data/include/seal/buf.h +17 -9
- data/include/seal/core.h +14 -8
- data/include/seal/efs.h +8 -8
- data/include/seal/err.h +3 -1
- data/include/seal/fmt.h +4 -2
- data/include/seal/listener.h +32 -9
- data/include/seal/rvb.h +71 -31
- data/include/seal/src.h +65 -37
- data/include/seal/stream.h +12 -5
- data/mpg123/build/config.guess +0 -0
- data/mpg123/build/config.sub +0 -0
- data/mpg123/build/depcomp +0 -0
- data/mpg123/build/install-sh +0 -0
- data/mpg123/build/missing +0 -0
- data/mpg123/configure +0 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +2 -2
- data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
- data/mpg123/scripts/benchmark-cpu.pl +0 -0
- data/mpg123/src/win32_net.c +0 -0
- data/mpg123/src/win32_support.c +0 -0
- data/mpg123/src/win32_support.h +0 -0
- data/mpg123/windows-builds.sh +0 -0
- data/spec/spec_helper.rb +16 -3
- data/spec/support/movable_object.rb +25 -11
- data/src/rubyext.c +30 -1
- data/src/seal/buf.c +16 -3
- data/src/seal/core.c +16 -7
- data/src/seal/efs.c +37 -11
- data/src/seal/err.c +1 -0
- data/src/seal/listener.c +30 -0
- data/src/seal/mpg.c +6 -2
- data/src/seal/ov.c +9 -2
- data/src/seal/rvb.c +52 -21
- data/src/seal/src.c +75 -6
- data/src/seal/stream.c +4 -0
- data/src/seal/threading.c +8 -2
- data/src/seal/wav.c +6 -2
- metadata +7 -7
data/src/seal/src.c
CHANGED
@@ -129,8 +129,12 @@ clean_queue(seal_src_t* src)
|
|
129
129
|
|
130
130
|
/* Do not let the updater touch anything when cleaning the queue. */
|
131
131
|
wait4updater(src);
|
132
|
-
err = _seal_geti(
|
133
|
-
|
132
|
+
err = _seal_geti(
|
133
|
+
src,
|
134
|
+
AL_BUFFERS_PROCESSED,
|
135
|
+
&nbufs_processed,
|
136
|
+
alGetSourcei
|
137
|
+
);
|
134
138
|
if (err != SEAL_OK)
|
135
139
|
return err;
|
136
140
|
|
@@ -198,6 +202,7 @@ ensure_queue_empty(seal_src_t* src)
|
|
198
202
|
}
|
199
203
|
|
200
204
|
seal_err_t
|
205
|
+
SEAL_API
|
201
206
|
seal_init_src(seal_src_t* src)
|
202
207
|
{
|
203
208
|
seal_err_t err = _seal_init_obj(src, alGenSources);
|
@@ -216,6 +221,7 @@ seal_init_src(seal_src_t* src)
|
|
216
221
|
}
|
217
222
|
|
218
223
|
seal_err_t
|
224
|
+
SEAL_API
|
219
225
|
seal_destroy_src(seal_src_t* src)
|
220
226
|
{
|
221
227
|
seal_err_t err;
|
@@ -232,6 +238,7 @@ seal_destroy_src(seal_src_t* src)
|
|
232
238
|
}
|
233
239
|
|
234
240
|
seal_err_t
|
241
|
+
SEAL_API
|
235
242
|
seal_play_src(seal_src_t* src)
|
236
243
|
{
|
237
244
|
if (src->stream != 0) {
|
@@ -258,12 +265,14 @@ seal_play_src(seal_src_t* src)
|
|
258
265
|
}
|
259
266
|
|
260
267
|
seal_err_t
|
268
|
+
SEAL_API
|
261
269
|
seal_pause_src(seal_src_t* src)
|
262
270
|
{
|
263
271
|
return operate(src, alSourcePause);
|
264
272
|
}
|
265
273
|
|
266
274
|
seal_err_t
|
275
|
+
SEAL_API
|
267
276
|
seal_stop_src(seal_src_t* src)
|
268
277
|
{
|
269
278
|
seal_err_t err;
|
@@ -277,6 +286,7 @@ seal_stop_src(seal_src_t* src)
|
|
277
286
|
}
|
278
287
|
|
279
288
|
seal_err_t
|
289
|
+
SEAL_API
|
280
290
|
seal_rewind_src(seal_src_t* src)
|
281
291
|
{
|
282
292
|
if (src->stream != 0) {
|
@@ -293,6 +303,7 @@ seal_rewind_src(seal_src_t* src)
|
|
293
303
|
}
|
294
304
|
|
295
305
|
seal_err_t
|
306
|
+
SEAL_API
|
296
307
|
seal_detach_src_audio(seal_src_t* src)
|
297
308
|
{
|
298
309
|
seal_err_t err;
|
@@ -313,6 +324,30 @@ seal_detach_src_audio(seal_src_t* src)
|
|
313
324
|
}
|
314
325
|
|
315
326
|
seal_err_t
|
327
|
+
SEAL_API
|
328
|
+
seal_move_src(seal_src_t* src)
|
329
|
+
{
|
330
|
+
seal_err_t err;
|
331
|
+
float pos[3], vel[3];
|
332
|
+
|
333
|
+
if ((err = seal_get_src_pos(src, pos, pos + 1, pos + 2)) != SEAL_OK)
|
334
|
+
return err;
|
335
|
+
if ((err = seal_get_src_vel(src, vel, vel + 1, vel + 2)) != SEAL_OK)
|
336
|
+
return err;
|
337
|
+
err = seal_set_src_pos(
|
338
|
+
src,
|
339
|
+
pos[0] + vel[0],
|
340
|
+
pos[1] + vel[1],
|
341
|
+
pos[2] + vel[2]
|
342
|
+
);
|
343
|
+
if (err != SEAL_OK)
|
344
|
+
return err;
|
345
|
+
|
346
|
+
return SEAL_OK;
|
347
|
+
}
|
348
|
+
|
349
|
+
seal_err_t
|
350
|
+
SEAL_API
|
316
351
|
seal_set_src_buf(seal_src_t* src, seal_buf_t* buf)
|
317
352
|
{
|
318
353
|
seal_err_t err;
|
@@ -333,6 +368,7 @@ seal_set_src_buf(seal_src_t* src, seal_buf_t* buf)
|
|
333
368
|
}
|
334
369
|
|
335
370
|
seal_err_t
|
371
|
+
SEAL_API
|
336
372
|
seal_set_src_stream(seal_src_t* src, seal_stream_t* stream)
|
337
373
|
{
|
338
374
|
seal_err_t err;
|
@@ -361,15 +397,22 @@ seal_set_src_stream(seal_src_t* src, seal_stream_t* stream)
|
|
361
397
|
}
|
362
398
|
|
363
399
|
seal_err_t
|
400
|
+
SEAL_API
|
364
401
|
seal_feed_efs(seal_src_t* src, seal_efs_t* slot, int index)
|
365
402
|
{
|
366
|
-
alSource3i(
|
367
|
-
|
403
|
+
alSource3i(
|
404
|
+
src->id,
|
405
|
+
AL_AUXILIARY_SEND_FILTER,
|
406
|
+
slot->id,
|
407
|
+
index,
|
408
|
+
AL_FILTER_NULL
|
409
|
+
);
|
368
410
|
|
369
411
|
return _seal_get_openal_err();
|
370
412
|
}
|
371
413
|
|
372
414
|
seal_err_t
|
415
|
+
SEAL_API
|
373
416
|
seal_update_src(seal_src_t* src)
|
374
417
|
{
|
375
418
|
unsigned int buf;
|
@@ -395,8 +438,12 @@ seal_update_src(seal_src_t* src)
|
|
395
438
|
err = _seal_geti(src, AL_BUFFERS_QUEUED, &nqueued, alGetSourcei);
|
396
439
|
if (err != SEAL_OK)
|
397
440
|
return err;
|
398
|
-
err = _seal_geti(
|
399
|
-
|
441
|
+
err = _seal_geti(
|
442
|
+
src,
|
443
|
+
AL_BUFFERS_PROCESSED,
|
444
|
+
&nprocessed,
|
445
|
+
alGetSourcei
|
446
|
+
);
|
400
447
|
if (err != SEAL_OK)
|
401
448
|
return err;
|
402
449
|
|
@@ -452,6 +499,7 @@ start_streaming:
|
|
452
499
|
}
|
453
500
|
|
454
501
|
seal_err_t
|
502
|
+
SEAL_API
|
455
503
|
seal_set_src_queue_size(seal_src_t* src, size_t size)
|
456
504
|
{
|
457
505
|
seal_err_t err;
|
@@ -464,6 +512,7 @@ seal_set_src_queue_size(seal_src_t* src, size_t size)
|
|
464
512
|
}
|
465
513
|
|
466
514
|
seal_err_t
|
515
|
+
SEAL_API
|
467
516
|
seal_set_src_chunk_size(seal_src_t* src, size_t size)
|
468
517
|
{
|
469
518
|
seal_err_t err;
|
@@ -476,30 +525,35 @@ seal_set_src_chunk_size(seal_src_t* src, size_t size)
|
|
476
525
|
}
|
477
526
|
|
478
527
|
seal_err_t
|
528
|
+
SEAL_API
|
479
529
|
seal_set_src_pos(seal_src_t* src, float x, float y, float z)
|
480
530
|
{
|
481
531
|
return set3f(src, AL_POSITION, x, y, z);
|
482
532
|
}
|
483
533
|
|
484
534
|
seal_err_t
|
535
|
+
SEAL_API
|
485
536
|
seal_set_src_vel(seal_src_t* src, float x, float y, float z)
|
486
537
|
{
|
487
538
|
return set3f(src, AL_VELOCITY, x, y, z);
|
488
539
|
}
|
489
540
|
|
490
541
|
seal_err_t
|
542
|
+
SEAL_API
|
491
543
|
seal_set_src_pitch(seal_src_t* src, float pitch)
|
492
544
|
{
|
493
545
|
return _seal_setf(src, AL_PITCH, pitch, alSourcef);
|
494
546
|
}
|
495
547
|
|
496
548
|
seal_err_t
|
549
|
+
SEAL_API
|
497
550
|
seal_set_src_gain(seal_src_t* src, float gain)
|
498
551
|
{
|
499
552
|
return _seal_setf(src, AL_GAIN, gain, alSourcef);
|
500
553
|
}
|
501
554
|
|
502
555
|
seal_err_t
|
556
|
+
SEAL_API
|
503
557
|
seal_set_src_auto(seal_src_t* src, char automatic)
|
504
558
|
{
|
505
559
|
src->automatic = automatic != 0;
|
@@ -508,12 +562,14 @@ seal_set_src_auto(seal_src_t* src, char automatic)
|
|
508
562
|
}
|
509
563
|
|
510
564
|
seal_err_t
|
565
|
+
SEAL_API
|
511
566
|
seal_set_src_relative(seal_src_t* src, char relative)
|
512
567
|
{
|
513
568
|
return _seal_seti(src, AL_SOURCE_RELATIVE, relative != 0, alSourcei);
|
514
569
|
}
|
515
570
|
|
516
571
|
seal_err_t
|
572
|
+
SEAL_API
|
517
573
|
seal_set_src_looping(seal_src_t* src, char looping)
|
518
574
|
{
|
519
575
|
looping = looping != 0;
|
@@ -534,18 +590,21 @@ seal_set_src_looping(seal_src_t* src, char looping)
|
|
534
590
|
}
|
535
591
|
|
536
592
|
seal_buf_t*
|
593
|
+
SEAL_API
|
537
594
|
seal_get_src_buf(seal_src_t* src)
|
538
595
|
{
|
539
596
|
return src->buf;
|
540
597
|
}
|
541
598
|
|
542
599
|
seal_stream_t*
|
600
|
+
SEAL_API
|
543
601
|
seal_get_src_stream(seal_src_t* src)
|
544
602
|
{
|
545
603
|
return src->stream;
|
546
604
|
}
|
547
605
|
|
548
606
|
seal_err_t
|
607
|
+
SEAL_API
|
549
608
|
seal_get_src_queue_size(seal_src_t* src, size_t* psize)
|
550
609
|
{
|
551
610
|
*psize = src->queue_size;
|
@@ -554,6 +613,7 @@ seal_get_src_queue_size(seal_src_t* src, size_t* psize)
|
|
554
613
|
}
|
555
614
|
|
556
615
|
seal_err_t
|
616
|
+
SEAL_API
|
557
617
|
seal_get_src_chunk_size(seal_src_t* src, size_t* psize)
|
558
618
|
{
|
559
619
|
*psize = src->chunk_size;
|
@@ -562,30 +622,35 @@ seal_get_src_chunk_size(seal_src_t* src, size_t* psize)
|
|
562
622
|
}
|
563
623
|
|
564
624
|
seal_err_t
|
625
|
+
SEAL_API
|
565
626
|
seal_get_src_pos(seal_src_t* src, float* px, float* py, float* pz)
|
566
627
|
{
|
567
628
|
return get3f(src, AL_POSITION, px, py, pz);
|
568
629
|
}
|
569
630
|
|
570
631
|
seal_err_t
|
632
|
+
SEAL_API
|
571
633
|
seal_get_src_vel(seal_src_t* src, float* px, float* py, float* pz)
|
572
634
|
{
|
573
635
|
return get3f(src, AL_VELOCITY, px, py, pz);
|
574
636
|
}
|
575
637
|
|
576
638
|
seal_err_t
|
639
|
+
SEAL_API
|
577
640
|
seal_get_src_pitch(seal_src_t* src, float* ppitch)
|
578
641
|
{
|
579
642
|
return _seal_getf(src, AL_PITCH, ppitch, alGetSourcef);
|
580
643
|
}
|
581
644
|
|
582
645
|
seal_err_t
|
646
|
+
SEAL_API
|
583
647
|
seal_get_src_gain(seal_src_t* src, float* pgain)
|
584
648
|
{
|
585
649
|
return _seal_getf(src, AL_GAIN, pgain, alGetSourcef);
|
586
650
|
}
|
587
651
|
|
588
652
|
seal_err_t
|
653
|
+
SEAL_API
|
589
654
|
seal_is_src_auto(seal_src_t* src, char* pauto)
|
590
655
|
{
|
591
656
|
*pauto = src->automatic;
|
@@ -594,12 +659,14 @@ seal_is_src_auto(seal_src_t* src, char* pauto)
|
|
594
659
|
}
|
595
660
|
|
596
661
|
seal_err_t
|
662
|
+
SEAL_API
|
597
663
|
seal_is_src_relative(seal_src_t* src, char* prelative)
|
598
664
|
{
|
599
665
|
return _seal_getb(src, AL_SOURCE_RELATIVE, prelative, alGetSourcei);
|
600
666
|
}
|
601
667
|
|
602
668
|
seal_err_t
|
669
|
+
SEAL_API
|
603
670
|
seal_is_src_looping(seal_src_t* src, char* plooping)
|
604
671
|
{
|
605
672
|
*plooping = src->looping;
|
@@ -608,6 +675,7 @@ seal_is_src_looping(seal_src_t* src, char* plooping)
|
|
608
675
|
}
|
609
676
|
|
610
677
|
seal_err_t
|
678
|
+
SEAL_API
|
611
679
|
seal_get_src_type(seal_src_t* src, seal_src_type_t* ptype)
|
612
680
|
{
|
613
681
|
int type;
|
@@ -631,6 +699,7 @@ seal_get_src_type(seal_src_t* src, seal_src_type_t* ptype)
|
|
631
699
|
}
|
632
700
|
|
633
701
|
seal_err_t
|
702
|
+
SEAL_API
|
634
703
|
seal_get_src_state(seal_src_t* src, seal_src_state_t* pstate)
|
635
704
|
{
|
636
705
|
int state;
|
data/src/seal/stream.c
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
#include "wav.h"
|
9
9
|
|
10
10
|
seal_err_t
|
11
|
+
SEAL_API
|
11
12
|
seal_open_stream(seal_stream_t* stream, const char* filename, seal_fmt_t fmt)
|
12
13
|
{
|
13
14
|
seal_err_t err;
|
@@ -33,6 +34,7 @@ seal_open_stream(seal_stream_t* stream, const char* filename, seal_fmt_t fmt)
|
|
33
34
|
}
|
34
35
|
|
35
36
|
seal_err_t
|
37
|
+
SEAL_API
|
36
38
|
seal_stream(seal_stream_t* stream, seal_raw_t* raw, size_t* psize)
|
37
39
|
{
|
38
40
|
if (stream->id == 0)
|
@@ -51,6 +53,7 @@ seal_stream(seal_stream_t* stream, seal_raw_t* raw, size_t* psize)
|
|
51
53
|
}
|
52
54
|
|
53
55
|
seal_err_t
|
56
|
+
SEAL_API
|
54
57
|
seal_rewind_stream(seal_stream_t* stream)
|
55
58
|
{
|
56
59
|
if (stream->id == 0)
|
@@ -71,6 +74,7 @@ seal_rewind_stream(seal_stream_t* stream)
|
|
71
74
|
}
|
72
75
|
|
73
76
|
seal_err_t
|
77
|
+
SEAL_API
|
74
78
|
seal_close_stream(seal_stream_t* stream)
|
75
79
|
{
|
76
80
|
seal_err_t err;
|
data/src/seal/threading.c
CHANGED
@@ -37,8 +37,14 @@ _seal_create_thread(_seal_routine_t* routine, void* args)
|
|
37
37
|
{
|
38
38
|
DWORD thread;
|
39
39
|
|
40
|
-
CloseHandle(CreateThread(
|
41
|
-
|
40
|
+
CloseHandle(CreateThread(
|
41
|
+
0,
|
42
|
+
0,
|
43
|
+
(LPTHREAD_START_ROUTINE) routine,
|
44
|
+
args,
|
45
|
+
0,
|
46
|
+
&thread
|
47
|
+
));
|
42
48
|
|
43
49
|
return (void*) thread;
|
44
50
|
}
|
data/src/seal/wav.c
CHANGED
@@ -99,8 +99,12 @@ prepare_data(wav_stream_t* wav_stream, uint32_t chunk_size)
|
|
99
99
|
|
100
100
|
static
|
101
101
|
seal_err_t
|
102
|
-
read_chunk(
|
103
|
-
|
102
|
+
read_chunk(
|
103
|
+
seal_raw_t* raw,
|
104
|
+
wav_stream_t* wav_stream,
|
105
|
+
FILE* wav,
|
106
|
+
io_state_t* pstate
|
107
|
+
)
|
104
108
|
{
|
105
109
|
uint32_t chunk_id, chunk_size = 0;
|
106
110
|
seal_err_t err = SEAL_OK;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -552,14 +552,14 @@ summary: An OpenAL-based 3D audio library
|
|
552
552
|
test_files:
|
553
553
|
- spec/seal/buffer_spec.rb
|
554
554
|
- spec/seal/core_spec.rb
|
555
|
-
- spec/seal/
|
555
|
+
- spec/seal/stream_spec.rb
|
556
556
|
- spec/seal/listener_spec.rb
|
557
557
|
- spec/seal/reverb_spec.rb
|
558
|
+
- spec/seal/effect_slot_spec.rb
|
558
559
|
- spec/seal/source_spec.rb
|
559
|
-
- spec/
|
560
|
-
- spec/spec_helper.rb
|
561
|
-
- spec/support/attribute_examples.rb
|
560
|
+
- spec/support/movable_object.rb
|
562
561
|
- spec/support/audio_object_with_format.rb
|
563
562
|
- spec/support/boolean_reader_aliases.rb
|
564
|
-
- spec/support/
|
563
|
+
- spec/support/attribute_examples.rb
|
564
|
+
- spec/spec_helper.rb
|
565
565
|
has_rdoc: yard
|