seal 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|