hallon-openal 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ # v1.0.0
2
+ - Fix bug when stopping audio when currently playing (see #1)
3
+ - Bumped to v1.0.0. The API is stable, even though the gem is not. :p
4
+
1
5
  # v0.0.3
2
6
  - Check for headers in multiple locations: OpenAL/ and AL/
3
7
  - Link against openal on non-OSX platforms
data/README.md CHANGED
@@ -3,14 +3,17 @@
3
3
  This gem supplies Hallon with the ability to stream audio through your
4
4
  speakers using OpenAL.
5
5
 
6
+ As far as API goes it follows the [Hallon audio driver protocol](http://rubydoc.info/github/Burgestrand/Hallon/Hallon/ExampleAudioDriver).
7
+
6
8
  ## Installation
7
9
 
8
10
  gem install hallon-openal
9
11
 
10
12
  ## Issues? Bugs? Feedback?
11
13
 
12
- I’d be happy to discuss any and all of these with you. Feel free to [create an issue](https://github.com/Burgestrand/hallon-openal/issues),
13
- [email me](http://github.com/Burgestrand) or [tweet me at @Burgestrand](http://twitter.com/Burgestrand).
14
+ - __Got questions?__ Ask on the mailing list: <mailto:ruby-hallon@googlegroups.com> (<https://groups.google.com/d/forum/ruby-hallon>)
15
+ - __Found a bug?__ Report an issue: <https://github.com/Burgestrand/hallon-openal/issues/new>
16
+ - __Have feedback?__ I ❤ feedback! Please send it to the mailing list.
14
17
 
15
18
  ## License
16
19
 
@@ -11,6 +11,9 @@ $CFLAGS << ' -ggdb -O0 -Wextra'
11
11
 
12
12
  error 'Missing ruby header' unless have_header 'ruby.h'
13
13
 
14
+ # Allow configuration of openal directory
15
+ dir_config 'openal'
16
+
14
17
  if have_header('OpenAL/alc.h')
15
18
  # yay, probably mac os!
16
19
  elsif have_header('AL/alc.h')
@@ -28,4 +31,8 @@ else
28
31
  error 'Missing openal library'
29
32
  end
30
33
 
34
+ %w[alcOpenDevice alGetError].each do |func|
35
+ abort "Missing function #{func}" unless have_func(func)
36
+ end
37
+
31
38
  create_makefile('openal_ext')
@@ -4,7 +4,7 @@
4
4
  #ifdef HAVE_AL_ALC_H
5
5
  # include <AL/alc.h>
6
6
  # include <AL/al.h>
7
- #elif HAVE_OPENAL_ALC_H
7
+ #else
8
8
  # include <OpenAL/alc.h>
9
9
  # include <OpenAL/al.h>
10
10
  #endif
@@ -90,7 +90,7 @@ static inline int _oa_format_channels(VALUE self)
90
90
  static inline int _oa_format_rate(VALUE self)
91
91
  {
92
92
  VALUE rate = rb_hash_aref(oa_format_get(self), oa_key_rate);
93
- return FIX2LONG(rate);
93
+ return FIX2INT(rate);
94
94
  }
95
95
 
96
96
  static inline VALUE _oa_format_type(VALUE self)
@@ -188,14 +188,14 @@ static VALUE oa_stop(VALUE self)
188
188
  ALuint source = oa_struct(self)->source;
189
189
  rb_ivar_set(self, oa_iv_playing, Qfalse);
190
190
 
191
- // remove all buffers from the source
192
- alSourcei(source, AL_BUFFER, 0);
193
- OA_CHECK_ERRORS("remove buffers!");
194
-
195
191
  // and stop the source
196
192
  alSourceStop(source);
197
193
  OA_CHECK_ERRORS("stop!");
198
194
 
195
+ // remove all buffers from the source
196
+ alSourcei(source, AL_BUFFER, 0);
197
+ OA_CHECK_ERRORS("remove buffers!");
198
+
199
199
  return self;
200
200
  }
201
201
 
@@ -267,14 +267,14 @@ static VALUE oa_stream(VALUE self)
267
267
 
268
268
  for (;;)
269
269
  {
270
- // make sure we have no preattached buffers
271
- alSourcei(source, AL_BUFFER, 0);
272
- OA_CHECK_ERRORS("detach all buffers from the source");
273
-
274
270
  // make sure we’re not playing audio
275
271
  alSourceStop(source);
276
272
  OA_CHECK_ERRORS("reset driver");
277
273
 
274
+ // make sure we have no preattached buffers
275
+ alSourcei(source, AL_BUFFER, 0);
276
+ OA_CHECK_ERRORS("detach all buffers from the source");
277
+
278
278
  // read the format (it never changes in the inner loop)
279
279
  int f_channels = _oa_format_channels(self);
280
280
  int f_rate = _oa_format_rate(self);
@@ -336,7 +336,7 @@ static VALUE oa_stream(VALUE self)
336
336
 
337
337
  // pucker up all the params
338
338
  ALenum type = f_channels == 1 ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16;
339
- ALsizei size = f_size * num_current_samples;
339
+ ALsizei size = (ALsizei) f_size * num_current_samples;
340
340
  ALsizei freq = f_rate;
341
341
 
342
342
  // queue the data!
@@ -1,5 +1,5 @@
1
1
  module Hallon
2
2
  class OpenAL
3
- VERSION = '0.0.3'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hallon-openal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-05 00:00:00.000000000 Z
12
+ date: 2012-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hallon
16
- requirement: &70277904130900 !ruby/object:Gem::Requirement
16
+ requirement: &70151857522300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.13'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70277904130900
24
+ version_requirements: *70151857522300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70277904130280 !ruby/object:Gem::Requirement
27
+ requirement: &70151857521660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.7'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70277904130280
35
+ version_requirements: *70151857521660
36
36
  description:
37
37
  email:
38
38
  - kim@burgestrand.se
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  requirements: []
78
78
  rubyforge_project:
79
- rubygems_version: 1.8.15
79
+ rubygems_version: 1.8.17
80
80
  signing_key:
81
81
  specification_version: 3
82
82
  summary: ! 'OpenAL audio drivers for Hallon: http://rubygems.org/gems/hallon'