native_audio 0.5.2 → 0.5.4

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 +5 -12
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d7a019f96cab6e7939d9c7cd4ab6c238712dd7e973b9a5ded1ad565a6156af7
4
- data.tar.gz: 6e5c823010843c54a0225433a1cd59e7980739e16ff5d607e23395da04316941
3
+ metadata.gz: 5ff74b87bd6668a2022c0730d5bb9597602694866ea05c08e90d9a9ac1e1248d
4
+ data.tar.gz: 142d1ca8c651a8ab51cac75f70d426daf369d8e09e1b37b88e16e323a044bbe3
5
5
  SHA512:
6
- metadata.gz: d9b89059a4f4668c9a230f3cf543f281fa2930fee6773ab09790995deb22b454125ba50e81fec46edea5c19e61571b46f5589ffd45730e3ad0ecf12e092ff7aa
7
- data.tar.gz: b2819672ad24fc89fccef79131eaee9711148d5b0ce608a681671d872706ef144d51053d04059e7fe523e5fdb3e0fc93815527e574161da8f8fd78c3bed3d893
6
+ metadata.gz: 4f419874ed73b34b3810d7fd93e97b6184496a0841b34281d2122370b61ec3201d47df2caccf8de5d18cea85655fd471099aab432a51597edbb013a85408cd54
7
+ data.tar.gz: 28785f40b88bc23e31f2a449590802bb3c800f049dcd59ddba1f1121525e8103c3879c6bd3b53d0dd85b7b46775606d4569ffaf96754474934fa1d9d2f70fd77
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;
@@ -331,22 +331,15 @@ VALUE audio_stop(VALUE self, VALUE channel_id)
331
331
  return Qnil;
332
332
  }
333
333
 
334
+ ma_uint64 now = ma_engine_get_time_in_pcm_frames(&engine);
335
+ ma_uint32 sample_rate = ma_engine_get_sample_rate(&engine);
336
+
334
337
  ma_sound_stop(channels[channel]);
335
338
  ma_sound_uninit(channels[channel]);
336
339
  free(channels[channel]);
337
340
  channels[channel] = NULL;
338
341
 
339
- if (delay_nodes[channel] != NULL) {
340
- multi_tap_delay_uninit(delay_nodes[channel]);
341
- free(delay_nodes[channel]);
342
- delay_nodes[channel] = NULL;
343
- }
344
-
345
- if (reverb_nodes[channel] != NULL) {
346
- reverb_uninit(reverb_nodes[channel]);
347
- free(reverb_nodes[channel]);
348
- reverb_nodes[channel] = NULL;
349
- }
342
+ drain_until_frame[channel] = now + (ma_uint64)(REVERB_DRAIN_SECONDS * sample_rate);
350
343
 
351
344
  return Qnil;
352
345
  }
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.2
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Hatfull