native_audio 0.5.3 → 0.5.5

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/ext/audio/audio.c +4 -1
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ba1115278418cb8e450777a6f99843bfb5a1510979e2d44979786aef4e0f86d
4
- data.tar.gz: 903c73d6e09842504d851406db41a18dc7a6f7a3b579092f32a43481438bc205
3
+ metadata.gz: '0471808989066a6a5e16fac518a5eddb94e8cc3cbe541b40d18a4d2244a17186'
4
+ data.tar.gz: 956461d3e0fc7214338b46f1a2cfe17ec6f947b8aebf379123bdfc1ff1c38550
5
5
  SHA512:
6
- metadata.gz: e05701f74ee36749bf0fa7c51dc61dd84f79a95c736d59fb7d067507f31b7b4ad4f741b28e1370698a434292110701bb51dcf0fdfcb3076a91e1874a5947c88a
7
- data.tar.gz: 13226093d8f6923944f1a83ea3651075d1a388c1fb0e5897b15dbd8772dd84de6ab26e6897f39646495ae3b16eeb2a56ac9eb91732b3270e017d974bd2e4daa2
6
+ metadata.gz: efee694d3fb6a013c92ccbfff8f89100b8b495ddc82f90c0573579006c82003f37f133ba41ec4b50116ece00bc5cd13a361fb50349864e51d0949d7e62004965
7
+ data.tar.gz: d63942dfe0ceac0662af7f2ebf07f87af9d6e9f01645646598f903eddce8e2d971ba013345318204e6b49f0ce621acdc22a897dd5ae860df4de7451f9af46ade
data/ext/audio/audio.c CHANGED
@@ -189,7 +189,7 @@ static void cleanup_finished_channels(void)
189
189
 
190
190
  for (int i = 0; i < MAX_CHANNELS; i++) {
191
191
  // Phase 1: sound finished - uninit the sound, start drain timer
192
- if (channels[i] != NULL && ma_sound_at_end(channels[i])) {
192
+ if (channels[i] != NULL && ma_sound_at_end(channels[i]) && !ma_sound_is_looping(channels[i])) {
193
193
  ma_sound_uninit(channels[i]);
194
194
  free(channels[i]);
195
195
  channels[i] = NULL;
@@ -232,6 +232,9 @@ VALUE audio_play(VALUE self, VALUE channel_id, VALUE clip)
232
232
 
233
233
  cleanup_finished_channels();
234
234
 
235
+ // Cancel any pending drain timer for this channel
236
+ drain_until_frame[channel] = 0;
237
+
235
238
  // Clean up existing resources on this channel
236
239
  if (channels[channel] != NULL) {
237
240
  ma_sound_stop(channels[channel]);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: native_audio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Hatfull