@siteed/expo-audio-stream 1.1.17 → 1.2.0

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 (402) hide show
  1. package/.cursorrules +112 -0
  2. package/CHANGELOG.md +13 -17
  3. package/README.md +5 -0
  4. package/android/build/.transforms/78826170c90a6133e31ab67915bce724/transformed/classes/classes_dex/classes.dex +0 -0
  5. package/android/build/.transforms/7c8f45a7979f7f92ba944aa5701c97dc/transformed/classes/classes_dex/classes.dex +0 -0
  6. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatInfo.dex +0 -0
  7. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatUtils.dex +0 -0
  8. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioNotificationManager$Companion.dex +0 -0
  9. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioNotificationManager.dex +0 -0
  10. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$AudioData.dex +0 -0
  11. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$Companion.dex +0 -0
  12. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.dex +0 -0
  13. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor.dex +0 -0
  14. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager$Companion.dex +0 -0
  15. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager.dex +0 -0
  16. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService$Companion.dex +0 -0
  17. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService$notificationManager$2.dex +0 -0
  18. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService.dex +0 -0
  19. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.dex} +0 -0
  20. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.dex} +0 -0
  21. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.dex} +0 -0
  22. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.dex} +0 -0
  23. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.dex +0 -0
  24. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.dex} +0 -0
  25. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.dex +0 -0
  26. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.dex +0 -0
  27. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.dex} +0 -0
  28. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.dex +0 -0
  29. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.dex +0 -0
  30. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.dex} +0 -0
  31. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.dex} +0 -0
  32. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.dex +0 -0
  33. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.dex +0 -0
  34. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.dex} +0 -0
  35. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.dex +0 -0
  36. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.dex} +0 -0
  37. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.dex} +0 -0
  38. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.dex} +0 -0
  39. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.dex} +0 -0
  40. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.dex} +0 -0
  41. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.dex → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.dex} +0 -0
  42. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.dex} +0 -0
  43. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.dex} +0 -0
  44. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.dex} +0 -0
  45. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.dex} +0 -0
  46. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  47. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.dex} +0 -0
  48. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.dex} +0 -0
  49. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule.dex +0 -0
  50. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationAction.dex +0 -0
  51. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationConfig$Companion.dex +0 -0
  52. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationConfig.dex +0 -0
  53. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/PermissionUtils.dex +0 -0
  54. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver$Companion.dex +0 -0
  55. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.dex +0 -0
  56. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver.dex +0 -0
  57. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig$Companion.dex +0 -0
  58. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig.dex +0 -0
  59. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfigKt.dex +0 -0
  60. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformConfig.dex +0 -0
  61. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.dex +0 -0
  62. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$RenderConfig.dex +0 -0
  63. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$Style.dex +0 -0
  64. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$WhenMappings.dex +0 -0
  65. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer.dex +0 -0
  66. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +23 -2
  67. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  68. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  69. package/android/build/intermediates/compile_symbol_list/debug/R.txt +11 -0
  70. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_default_action_icon.xml.flat +0 -0
  71. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_microphone.xml.flat +0 -0
  72. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_pause.xml.flat +0 -0
  73. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_play.xml.flat +0 -0
  74. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_stop.xml.flat +0 -0
  75. package/android/build/intermediates/compiled_local_resources/debug/out/layout_notification_recording.xml.flat +0 -0
  76. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +8 -1
  77. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +1 -1
  78. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  79. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  80. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  81. package/android/build/intermediates/java_res/debug/out/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  82. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +11 -0
  83. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +51 -8
  84. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +23 -2
  85. package/android/build/intermediates/packaged_res/debug/drawable/ic_default_action_icon.xml +16 -0
  86. package/android/build/intermediates/packaged_res/debug/drawable/ic_microphone.xml +13 -0
  87. package/android/build/intermediates/packaged_res/debug/drawable/ic_pause.xml +10 -0
  88. package/android/build/intermediates/packaged_res/debug/drawable/ic_play.xml +10 -0
  89. package/android/build/intermediates/packaged_res/debug/drawable/ic_stop.xml +10 -0
  90. package/android/build/intermediates/packaged_res/debug/layout/notification_recording.xml +37 -0
  91. package/android/build/intermediates/runtime_library_classes_dir/debug/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  92. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioFormatInfo.class +0 -0
  93. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioFormatUtils.class +0 -0
  94. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioNotificationManager$Companion.class +0 -0
  95. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioNotificationManager.class +0 -0
  96. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$AudioData.class +0 -0
  97. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$Companion.class +0 -0
  98. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.class +0 -0
  99. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor.class +0 -0
  100. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecorderManager$Companion.class +0 -0
  101. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecorderManager.class +0 -0
  102. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService$Companion.class +0 -0
  103. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService$notificationManager$2.class +0 -0
  104. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService.class +0 -0
  105. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.class} +0 -0
  106. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.class} +0 -0
  107. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.class} +0 -0
  108. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.class} +0 -0
  109. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.class +0 -0
  110. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.class} +0 -0
  111. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.class +0 -0
  112. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.class +0 -0
  113. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.class} +0 -0
  114. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.class +0 -0
  115. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.class +0 -0
  116. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.class} +0 -0
  117. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.class} +0 -0
  118. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.class +0 -0
  119. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.class +0 -0
  120. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.class +0 -0
  121. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.class +0 -0
  122. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.class} +0 -0
  123. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.class} +0 -0
  124. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.class} +0 -0
  125. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.class} +0 -0
  126. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.class} +0 -0
  127. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.class} +0 -0
  128. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.class} +0 -0
  129. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.class} +0 -0
  130. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.class} +0 -0
  131. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.class} +0 -0
  132. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.class} +0 -0
  133. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.class} +0 -0
  134. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.class} +0 -0
  135. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule.class +0 -0
  136. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationAction.class +0 -0
  137. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationConfig$Companion.class +0 -0
  138. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationConfig.class +0 -0
  139. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/PermissionUtils.class +0 -0
  140. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver$Companion.class +0 -0
  141. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.class +0 -0
  142. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver.class +0 -0
  143. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfig$Companion.class +0 -0
  144. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfig.class +0 -0
  145. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfigKt.class +0 -0
  146. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformConfig.class +0 -0
  147. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.class +0 -0
  148. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig.class +0 -0
  149. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$Style.class +0 -0
  150. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$WhenMappings.class +0 -0
  151. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer.class +0 -0
  152. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  153. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +11 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  175. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  176. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  177. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  178. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  179. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  180. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  181. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  182. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  183. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  184. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  185. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  186. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  187. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  188. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  189. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  190. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  191. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  192. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  193. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  194. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  195. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  196. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  197. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  198. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  199. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  200. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  201. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  202. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  203. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  204. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  205. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  206. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  207. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  208. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  209. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  210. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  211. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  212. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  213. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  214. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  215. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
  216. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  217. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  218. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  219. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  220. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  221. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  222. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  223. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  224. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  225. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  226. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  227. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  228. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  229. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  230. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  231. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  232. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  233. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  234. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  235. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  236. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  237. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  238. package/android/build/outputs/logs/manifest-merger-debug-report.txt +51 -7
  239. package/android/build/tmp/kotlin-classes/debug/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  240. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioFormatInfo.class +0 -0
  241. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioFormatUtils.class +0 -0
  242. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioNotificationManager$Companion.class +0 -0
  243. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioNotificationManager.class +0 -0
  244. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$AudioData.class +0 -0
  245. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$Companion.class +0 -0
  246. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.class +0 -0
  247. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor.class +0 -0
  248. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecorderManager$Companion.class +0 -0
  249. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecorderManager.class +0 -0
  250. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService$Companion.class +0 -0
  251. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService$notificationManager$2.class +0 -0
  252. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService.class +0 -0
  253. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.class} +0 -0
  254. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.class} +0 -0
  255. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.class +0 -0
  256. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.class} +0 -0
  257. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.class +0 -0
  258. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.class +0 -0
  259. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.class +0 -0
  260. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.class +0 -0
  261. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.class +0 -0
  262. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.class +0 -0
  263. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.class +0 -0
  264. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.class} +0 -0
  265. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.class +0 -0
  266. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.class +0 -0
  267. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.class +0 -0
  268. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.class +0 -0
  269. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.class +0 -0
  270. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.class} +0 -0
  271. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.class} +0 -0
  272. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.class +0 -0
  273. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.class} +0 -0
  274. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.class} +0 -0
  275. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.class +0 -0
  276. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.class} +0 -0
  277. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.class} +0 -0
  278. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.class} +0 -0
  279. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.class} +0 -0
  280. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.class} +0 -0
  281. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.class} +0 -0
  282. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.class} +0 -0
  283. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule.class +0 -0
  284. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationAction.class +0 -0
  285. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationConfig$Companion.class +0 -0
  286. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationConfig.class +0 -0
  287. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/PermissionUtils.class +0 -0
  288. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver$Companion.class +0 -0
  289. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.class +0 -0
  290. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver.class +0 -0
  291. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfig$Companion.class +0 -0
  292. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfig.class +0 -0
  293. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfigKt.class +0 -0
  294. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformConfig.class +0 -0
  295. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.class +0 -0
  296. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig.class +0 -0
  297. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$Style.class +0 -0
  298. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$WhenMappings.class +0 -0
  299. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer.class +0 -0
  300. package/android/src/main/AndroidManifest.xml +24 -2
  301. package/android/src/main/java/net/siteed/audiostream/AudioFormatUtils.kt +76 -1
  302. package/android/src/main/java/net/siteed/audiostream/AudioNotificationsManager.kt +362 -0
  303. package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +8 -4
  304. package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +477 -261
  305. package/android/src/main/java/net/siteed/audiostream/AudioRecordingService.kt +71 -0
  306. package/android/src/main/java/net/siteed/audiostream/ExpoAudioStreamModule.kt +78 -8
  307. package/android/src/main/java/net/siteed/audiostream/NotificationConfig.kt +70 -0
  308. package/android/src/main/java/net/siteed/audiostream/PermissionUtils.kt +41 -6
  309. package/android/src/main/java/net/siteed/audiostream/RecordingActionReceiver.kt +59 -0
  310. package/android/src/main/java/net/siteed/audiostream/RecordingConfig.kt +138 -1
  311. package/android/src/main/java/net/siteed/audiostream/WaveformConfig.kt +19 -0
  312. package/android/src/main/java/net/siteed/audiostream/WaveformRenderer.kt +159 -0
  313. package/android/src/main/res/drawable/ic_default_action_icon.xml +16 -0
  314. package/android/src/main/res/drawable/ic_microphone.xml +13 -0
  315. package/android/src/main/res/drawable/ic_pause.xml +10 -0
  316. package/android/src/main/res/drawable/ic_play.xml +10 -0
  317. package/android/src/main/res/drawable/ic_stop.xml +10 -0
  318. package/android/src/main/res/layout/notification_recording.xml +37 -0
  319. package/build/ExpoAudioStream.types.d.ts +36 -0
  320. package/build/ExpoAudioStream.types.d.ts.map +1 -1
  321. package/build/ExpoAudioStream.types.js.map +1 -1
  322. package/build/useAudioRecorder.d.ts.map +1 -1
  323. package/build/useAudioRecorder.js +32 -11
  324. package/build/useAudioRecorder.js.map +1 -1
  325. package/ios/AudioNotificationManager.swift +135 -0
  326. package/ios/AudioStreamManager.swift +387 -13
  327. package/ios/AudioStreamManagerDelegate.swift +4 -0
  328. package/ios/ExpoAudioStreamModule.swift +66 -38
  329. package/ios/NotificationExtension.swift +15 -0
  330. package/ios/RecordingSettings.swift +83 -5
  331. package/package.json +1 -1
  332. package/plugin/build/index.d.ts +1 -3
  333. package/plugin/build/index.js +103 -10
  334. package/plugin/src/index.ts +124 -21
  335. package/publish.sh +36 -3
  336. package/src/ExpoAudioStream.types.ts +108 -13
  337. package/src/useAudioRecorder.tsx +46 -12
  338. package/android/build/.transforms/871e87a512fbb418f6a6523c40225bac/results.bin +0 -1
  339. package/android/build/.transforms/871e87a512fbb418f6a6523c40225bac/transformed/classes/classes_dex/classes.dex +0 -0
  340. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/results.bin +0 -1
  341. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData$AmplitudeRange.dex +0 -0
  342. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData$SpeakerChange.dex +0 -0
  343. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData.dex +0 -0
  344. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioDataEncoder.dex +0 -0
  345. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioFileHandler.dex +0 -0
  346. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatUtils.dex +0 -0
  347. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$AudioData.dex +0 -0
  348. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$Companion.dex +0 -0
  349. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.dex +0 -0
  350. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor.dex +0 -0
  351. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager.dex +0 -0
  352. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/BuildConfig.dex +0 -0
  353. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/Constants.dex +0 -0
  354. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/DataPoint.dex +0 -0
  355. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/EventSender.dex +0 -0
  356. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.dex +0 -0
  357. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.dex +0 -0
  358. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.dex +0 -0
  359. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.dex +0 -0
  360. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.dex +0 -0
  361. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.dex +0 -0
  362. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.dex +0 -0
  363. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.dex +0 -0
  364. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.dex +0 -0
  365. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.dex +0 -0
  366. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  367. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule.dex +0 -0
  368. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/FFT.dex +0 -0
  369. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/Features.dex +0 -0
  370. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/PermissionUtils.dex +0 -0
  371. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig.dex +0 -0
  372. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/desugar_graph.bin +0 -0
  373. package/android/build/.transforms/a758925c83c348fb1544431cf45e6a05/results.bin +0 -1
  374. package/android/build/.transforms/a758925c83c348fb1544431cf45e6a05/transformed/classes/classes_dex/classes.dex +0 -0
  375. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.dex +0 -0
  376. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.dex +0 -0
  377. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.dex +0 -0
  378. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.dex +0 -0
  379. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.dex +0 -0
  380. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.dex +0 -0
  381. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.dex +0 -0
  382. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.dex +0 -0
  383. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.dex +0 -0
  384. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.dex +0 -0
  385. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.dex +0 -0
  386. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.dex +0 -0
  387. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.dex +0 -0
  388. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  389. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.dex +0 -0
  390. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.dex +0 -0
  391. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.class +0 -0
  392. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.class +0 -0
  393. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.class +0 -0
  394. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.class +0 -0
  395. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.class +0 -0
  396. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.class +0 -0
  397. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.class +0 -0
  398. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.class +0 -0
  399. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.class +0 -0
  400. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.class +0 -0
  401. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.class +0 -0
  402. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.class +0 -0
@@ -0,0 +1,71 @@
1
+ package net.siteed.audiostream
2
+
3
+ import android.app.Service
4
+ import android.content.Context
5
+ import android.content.Intent
6
+ import android.os.Build
7
+ import android.os.IBinder
8
+ import android.util.Log
9
+ import android.os.Handler
10
+ import android.os.Looper
11
+
12
+ class AudioRecordingService : Service() {
13
+ private val notificationManager by lazy {
14
+ AudioNotificationManager.getInstance(applicationContext)
15
+ }
16
+ private val mainHandler = Handler(Looper.getMainLooper())
17
+ private var isRunning = false
18
+
19
+ override fun onBind(intent: Intent?): IBinder? = null
20
+
21
+ override fun onCreate() {
22
+ super.onCreate()
23
+ Log.d(Constants.TAG, "AudioRecordingService onCreate")
24
+ }
25
+
26
+ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
27
+ Log.d(Constants.TAG, "AudioRecordingService onStartCommand")
28
+
29
+ if (!isRunning) {
30
+ try {
31
+ val notification = notificationManager.getNotification()
32
+ startForeground(1, notification)
33
+ isRunning = true
34
+ } catch (e: Exception) {
35
+ Log.e(Constants.TAG, "Error starting foreground service", e)
36
+ stopSelf()
37
+ }
38
+ }
39
+
40
+ return START_NOT_STICKY
41
+ }
42
+
43
+ override fun onDestroy() {
44
+ Log.d(Constants.TAG, "AudioRecordingService onDestroy")
45
+
46
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
47
+ stopForeground(STOP_FOREGROUND_REMOVE)
48
+ } else {
49
+ @Suppress("DEPRECATION")
50
+ stopForeground(true)
51
+ }
52
+
53
+ isRunning = false
54
+ super.onDestroy()
55
+ }
56
+
57
+ companion object {
58
+ fun startService(context: Context) {
59
+ val serviceIntent = Intent(context, AudioRecordingService::class.java)
60
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
61
+ context.startForegroundService(serviceIntent)
62
+ } else {
63
+ context.startService(serviceIntent)
64
+ }
65
+ }
66
+
67
+ fun stopService(context: Context) {
68
+ context.stopService(Intent(context, AudioRecordingService::class.java))
69
+ }
70
+ }
71
+ }
@@ -5,20 +5,18 @@ import android.os.Build
5
5
  import android.os.Bundle
6
6
  import android.util.Log
7
7
  import androidx.annotation.RequiresApi
8
+ import androidx.core.os.bundleOf
8
9
  import expo.modules.kotlin.Promise
9
10
  import expo.modules.kotlin.modules.Module
10
11
  import expo.modules.kotlin.modules.ModuleDefinition
11
12
  import expo.modules.interfaces.permissions.Permissions
12
13
 
13
- class ExpoAudioStreamModule() : Module(), EventSender {
14
+ class ExpoAudioStreamModule : Module(), EventSender {
14
15
  private lateinit var audioRecorderManager: AudioRecorderManager
15
16
  private lateinit var audioProcessor: AudioProcessor
16
- // 8081
17
17
 
18
18
  @RequiresApi(Build.VERSION_CODES.R)
19
19
  override fun definition() = ModuleDefinition {
20
- // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument.
21
- // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity.
22
20
  // The module will be accessible from `requireNativeModule('ExpoAudioStream')` in JavaScript.
23
21
  Name("ExpoAudioStream")
24
22
 
@@ -99,11 +97,75 @@ class ExpoAudioStreamModule() : Module(), EventSender {
99
97
  }
100
98
 
101
99
  AsyncFunction("requestPermissionsAsync") { promise: Promise ->
102
- Permissions.askForPermissionsWithPermissionsManager(appContext.permissions, promise, Manifest.permission.RECORD_AUDIO)
100
+ try {
101
+ val permissions = mutableListOf(Manifest.permission.RECORD_AUDIO)
102
+
103
+ // Add foreground service permission for Android 14+
104
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
105
+ Log.d(Constants.TAG, "Adding FOREGROUND_SERVICE_MICROPHONE permission request")
106
+ permissions.add(Manifest.permission.FOREGROUND_SERVICE_MICROPHONE)
107
+ }
108
+
109
+ Log.d(Constants.TAG, "Requesting permissions: $permissions")
110
+ Permissions.askForPermissionsWithPermissionsManager(
111
+ appContext.permissions,
112
+ promise,
113
+ *permissions.toTypedArray()
114
+ )
115
+ } catch (e: Exception) {
116
+ Log.e(Constants.TAG, "Error requesting permissions", e)
117
+ promise.reject("PERMISSION_ERROR", "Failed to request permissions: ${e.message}", e)
118
+ }
103
119
  }
104
120
 
105
121
  AsyncFunction("getPermissionsAsync") { promise: Promise ->
106
- Permissions.getPermissionsWithPermissionsManager(appContext.permissions, promise, Manifest.permission.RECORD_AUDIO)
122
+ val permissions = mutableListOf(Manifest.permission.RECORD_AUDIO)
123
+
124
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
125
+ permissions.add(Manifest.permission.FOREGROUND_SERVICE_MICROPHONE)
126
+ }
127
+
128
+ Permissions.getPermissionsWithPermissionsManager(
129
+ appContext.permissions,
130
+ promise,
131
+ *permissions.toTypedArray()
132
+ )
133
+ }
134
+
135
+ AsyncFunction("requestNotificationPermissionsAsync") { promise: Promise ->
136
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
137
+ Permissions.askForPermissionsWithPermissionsManager(
138
+ appContext.permissions,
139
+ promise,
140
+ Manifest.permission.POST_NOTIFICATIONS
141
+ )
142
+ } else {
143
+ promise.resolve(
144
+ bundleOf(
145
+ "status" to "granted",
146
+ "expires" to "never",
147
+ "granted" to true
148
+ )
149
+ )
150
+ }
151
+ }
152
+
153
+ AsyncFunction("getNotificationPermissionsAsync") { promise: Promise ->
154
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
155
+ Permissions.getPermissionsWithPermissionsManager(
156
+ appContext.permissions,
157
+ promise,
158
+ Manifest.permission.POST_NOTIFICATIONS
159
+ )
160
+ } else {
161
+ promise.resolve(
162
+ bundleOf(
163
+ "status" to "granted",
164
+ "expires" to "never",
165
+ "granted" to true
166
+ )
167
+ )
168
+ }
107
169
  }
108
170
  }
109
171
 
@@ -113,10 +175,18 @@ class ExpoAudioStreamModule() : Module(), EventSender {
113
175
  val permissionUtils = PermissionUtils(androidContext)
114
176
  val audioEncoder = AudioDataEncoder()
115
177
  audioRecorderManager =
116
- AudioRecorderManager(androidContext.filesDir, permissionUtils, audioEncoder, this)
117
- audioProcessor = AudioProcessor(androidContext.filesDir) // Instantiate here with filesDir
178
+ AudioRecorderManager(androidContext, androidContext.filesDir, permissionUtils, audioEncoder, this)
179
+ audioRecorderManager = AudioRecorderManager.initialize(
180
+ androidContext,
181
+ androidContext.filesDir,
182
+ permissionUtils,
183
+ audioEncoder,
184
+ this
185
+ )
186
+ audioProcessor = AudioProcessor(androidContext.filesDir)
118
187
  }
119
188
 
189
+
120
190
  override fun sendExpoEvent(eventName: String, params: Bundle) {
121
191
  Log.d(Constants.TAG, "Sending event: $eventName")
122
192
  this@ExpoAudioStreamModule.sendEvent(eventName, params)
@@ -0,0 +1,70 @@
1
+ package net.siteed.audiostream
2
+
3
+ data class NotificationConfig(
4
+ val title: String = "Recording...",
5
+ val text: String = "",
6
+ val icon: String? = null,
7
+ val channelId: String = "audio_recording_channel",
8
+ val notificationId: Int = 1,
9
+ val actions: List<NotificationAction> = emptyList(),
10
+ val channelName: String = "Audio Recording",
11
+ val channelDescription: String = "Shows audio recording status",
12
+ val waveform: WaveformConfig? = null,
13
+ val lightColor: String = "#FF0000",
14
+ val priority: String = "high",
15
+ val accentColor: String? = null
16
+ ) {
17
+ companion object {
18
+ fun fromMap(map: Map<String, Any?>?): NotificationConfig {
19
+ if (map == null) return NotificationConfig()
20
+
21
+ val androidMap = map["android"] as? Map<String, Any?> ?: emptyMap()
22
+
23
+ return NotificationConfig(
24
+ title = map["title"] as? String ?: "Recording...",
25
+ text = map["text"] as? String ?: "",
26
+ icon = map["icon"] as? String,
27
+ channelId = androidMap["channelId"] as? String ?: "audio_recording_channel",
28
+ notificationId = (androidMap["notificationId"] as? Number)?.toInt() ?: 1,
29
+ actions = parseNotificationActions(androidMap["actions"] as? List<Map<String, Any?>>),
30
+ channelName = androidMap["channelName"] as? String ?: "Audio Recording",
31
+ channelDescription = androidMap["channelDescription"] as? String ?: "Shows audio recording status",
32
+ waveform = parseWaveformConfig(androidMap["waveform"] as? Map<String, Any?>),
33
+ lightColor = androidMap["lightColor"] as? String ?: "#FF0000",
34
+ priority = androidMap["priority"] as? String ?: "high",
35
+ accentColor = androidMap["accentColor"] as? String
36
+ )
37
+ }
38
+
39
+ private fun parseNotificationActions(actionsList: List<Map<String, Any?>>?): List<NotificationAction> {
40
+ return actionsList?.mapNotNull { actionMap ->
41
+ if (actionMap["title"] != null && actionMap["identifier"] != null) {
42
+ NotificationAction(
43
+ title = actionMap["title"] as String,
44
+ icon = actionMap["icon"] as? String,
45
+ intentAction = actionMap["identifier"] as String
46
+ )
47
+ } else null
48
+ } ?: emptyList()
49
+ }
50
+
51
+ private fun parseWaveformConfig(waveformMap: Map<String, Any?>?): WaveformConfig? {
52
+ if (waveformMap == null) return null
53
+
54
+ return WaveformConfig(
55
+ color = waveformMap["color"] as? String ?: "#FFFFFF",
56
+ opacity = (waveformMap["opacity"] as? Number)?.toFloat() ?: 1.0f,
57
+ strokeWidth = (waveformMap["strokeWidth"] as? Number)?.toFloat() ?: 1.5f,
58
+ style = waveformMap["style"] as? String ?: "stroke",
59
+ mirror = waveformMap["mirror"] as? Boolean ?: true,
60
+ height = (waveformMap["height"] as? Number)?.toInt() ?: 64
61
+ )
62
+ }
63
+ }
64
+ }
65
+
66
+ data class NotificationAction(
67
+ val title: String,
68
+ val icon: String? = null,
69
+ val intentAction: String
70
+ )
@@ -2,15 +2,50 @@ package net.siteed.audiostream
2
2
 
3
3
  import android.content.Context
4
4
  import android.content.pm.PackageManager
5
+ import android.os.Build
5
6
  import androidx.core.content.ContextCompat
7
+ import android.Manifest
8
+ import android.util.Log
6
9
 
7
10
  class PermissionUtils(private val context: Context) {
8
-
9
- /**
10
- * Checks if the recording permission has been granted.
11
- * @return Boolean indicating whether the RECORD_AUDIO permission is granted.
12
- */
13
11
  fun checkRecordingPermission(): Boolean {
14
- return ContextCompat.checkSelfPermission(context, android.Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
12
+ val hasRecordPermission = ContextCompat.checkSelfPermission(
13
+ context,
14
+ Manifest.permission.RECORD_AUDIO
15
+ ) == PackageManager.PERMISSION_GRANTED
16
+
17
+ Log.d(Constants.TAG, "RECORD_AUDIO permission: $hasRecordPermission")
18
+
19
+ // Check for foreground service permission on Android 14+
20
+ val hasForegroundService = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
21
+ val result = ContextCompat.checkSelfPermission(
22
+ context,
23
+ Manifest.permission.FOREGROUND_SERVICE_MICROPHONE
24
+ ) == PackageManager.PERMISSION_GRANTED
25
+ Log.d(Constants.TAG, "FOREGROUND_SERVICE_MICROPHONE permission: $result (Android 14+)")
26
+ result
27
+ } else {
28
+ Log.d(Constants.TAG, "FOREGROUND_SERVICE_MICROPHONE not required (Android < 14)")
29
+ true
30
+ }
31
+
32
+ val result = hasRecordPermission && hasForegroundService
33
+ Log.d(Constants.TAG, "Final recording permission result: $result")
34
+ return result
35
+ }
36
+
37
+ fun checkNotificationPermission(): Boolean {
38
+ val result = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
39
+ val hasPermission = ContextCompat.checkSelfPermission(
40
+ context,
41
+ Manifest.permission.POST_NOTIFICATIONS
42
+ ) == PackageManager.PERMISSION_GRANTED
43
+ Log.d(Constants.TAG, "POST_NOTIFICATIONS permission: $hasPermission (Android 13+)")
44
+ hasPermission
45
+ } else {
46
+ Log.d(Constants.TAG, "POST_NOTIFICATIONS not required (Android < 13)")
47
+ true
48
+ }
49
+ return result
15
50
  }
16
51
  }
@@ -0,0 +1,59 @@
1
+ package net.siteed.audiostream
2
+
3
+ import android.content.BroadcastReceiver
4
+ import android.content.Context
5
+ import android.content.Intent
6
+ import android.util.Log
7
+ import expo.modules.kotlin.Promise
8
+ import java.util.concurrent.atomic.AtomicBoolean
9
+
10
+ class RecordingActionReceiver : BroadcastReceiver() {
11
+ companion object {
12
+ const val ACTION_PAUSE_RECORDING = "net.siteed.audiostream.PAUSE_RECORDING"
13
+ const val ACTION_RESUME_RECORDING = "net.siteed.audiostream.RESUME_RECORDING"
14
+ private val isProcessingAction = AtomicBoolean(false)
15
+ }
16
+
17
+ override fun onReceive(context: Context, intent: Intent) {
18
+ when (intent.action) {
19
+ ACTION_PAUSE_RECORDING, ACTION_RESUME_RECORDING -> handleRecordingAction(intent.action)
20
+ else -> Log.w("RecordingActionReceiver", "Unknown action: ${intent.action}")
21
+ }
22
+ }
23
+
24
+ private fun handleRecordingAction(action: String?) {
25
+ if (!isProcessingAction.compareAndSet(false, true)) {
26
+ Log.d("RecordingActionReceiver", "Action already in progress, skipping")
27
+ return
28
+ }
29
+
30
+ try {
31
+ val audioRecorderManager = AudioRecorderManager.getInstance()
32
+ if (audioRecorderManager == null) {
33
+ Log.e("RecordingActionReceiver", "AudioRecorderManager instance is null")
34
+ isProcessingAction.set(false)
35
+ return
36
+ }
37
+
38
+ val notificationPromise = object : Promise {
39
+ override fun resolve(value: Any?) {
40
+ Log.d("RecordingActionReceiver", "$action completed successfully")
41
+ isProcessingAction.set(false)
42
+ }
43
+
44
+ override fun reject(code: String, message: String?, cause: Throwable?) {
45
+ Log.e("RecordingActionReceiver", "$action failed: $message", cause)
46
+ isProcessingAction.set(false)
47
+ }
48
+ }
49
+
50
+ when (action) {
51
+ ACTION_PAUSE_RECORDING -> audioRecorderManager.pauseRecording(notificationPromise)
52
+ ACTION_RESUME_RECORDING -> audioRecorderManager.resumeRecording(notificationPromise)
53
+ }
54
+ } catch (e: Exception) {
55
+ Log.e("RecordingActionReceiver", "Error processing $action", e)
56
+ isProcessingAction.set(false)
57
+ }
58
+ }
59
+ }
@@ -1,12 +1,149 @@
1
1
  package net.siteed.audiostream
2
2
 
3
+ import android.media.AudioFormat
4
+ import android.os.Build
5
+
3
6
  data class RecordingConfig(
4
7
  val sampleRate: Int = Constants.DEFAULT_SAMPLE_RATE,
5
8
  val channels: Int = 1,
6
9
  val encoding: String = "pcm_16bit",
10
+ val keepAwake: Boolean = false,
7
11
  val interval: Long = Constants.DEFAULT_INTERVAL,
8
12
  val enableProcessing: Boolean = false,
9
13
  val pointsPerSecond: Double = 20.0,
10
14
  val algorithm: String = "rms",
15
+ val showNotification: Boolean = false,
16
+ val showWaveformInNotification: Boolean = false,
17
+ val notification: NotificationConfig = NotificationConfig(),
11
18
  val features: Map<String, Boolean> = emptyMap()
12
- )
19
+ ) {
20
+ companion object {
21
+ fun fromMap(options: Map<String, Any?>?): Result<Pair<RecordingConfig, AudioFormatInfo>> {
22
+ if (options == null) {
23
+ val defaultConfig = RecordingConfig()
24
+ val defaultFormat = AudioFormatInfo(
25
+ format = AudioFormat.ENCODING_PCM_16BIT,
26
+ mimeType = "audio/wav",
27
+ fileExtension = "wav"
28
+ )
29
+ return Result.success(Pair(defaultConfig, defaultFormat))
30
+ }
31
+
32
+ // Extract features using type-safe helper
33
+ val features = options.getTypedMap<Boolean>("features") { it is Boolean }
34
+
35
+ // Parse notification config using type-safe helper
36
+ val notificationMap = options.getTypedMap<Any?>("notification") { true }
37
+ val notificationConfig = NotificationConfig.fromMap(notificationMap)
38
+
39
+ // Initialize the recording configuration
40
+ val tempRecordingConfig = RecordingConfig(
41
+ sampleRate = options.getNumberOrDefault("sampleRate", Constants.DEFAULT_SAMPLE_RATE),
42
+ channels = options.getNumberOrDefault("channels", 1),
43
+ encoding = options.getStringOrDefault("encoding", "pcm_16bit"),
44
+ keepAwake = options.getBooleanOrDefault("keepAwake", false),
45
+ interval = options.getNumberOrDefault("interval", Constants.DEFAULT_INTERVAL),
46
+ enableProcessing = options.getBooleanOrDefault("enableProcessing", false),
47
+ pointsPerSecond = options.getNumberOrDefault("pointsPerSecond", 20.0),
48
+ algorithm = options.getStringOrDefault("algorithm", "rms"),
49
+ showNotification = options.getBooleanOrDefault("showNotification", false),
50
+ showWaveformInNotification = options.getBooleanOrDefault("showWaveformInNotification", false),
51
+ notification = notificationConfig,
52
+ features = features
53
+ )
54
+
55
+ // Validate sample rate and channels
56
+ if (tempRecordingConfig.sampleRate !in listOf(16000, 44100, 48000)) {
57
+ return Result.failure(
58
+ IllegalArgumentException("Sample rate must be one of 16000, 44100, or 48000 Hz")
59
+ )
60
+ }
61
+ if (tempRecordingConfig.channels !in 1..2) {
62
+ return Result.failure(
63
+ IllegalArgumentException("Channels must be either 1 (Mono) or 2 (Stereo)")
64
+ )
65
+ }
66
+
67
+ // Set encoding and file extension
68
+ val audioFormatInfo = when (tempRecordingConfig.encoding) {
69
+ "pcm_8bit" -> AudioFormatInfo(
70
+ format = AudioFormat.ENCODING_PCM_8BIT,
71
+ mimeType = "audio/wav",
72
+ fileExtension = "wav"
73
+ )
74
+ "pcm_16bit" -> AudioFormatInfo(
75
+ format = AudioFormat.ENCODING_PCM_16BIT,
76
+ mimeType = "audio/wav",
77
+ fileExtension = "wav"
78
+ )
79
+ "pcm_32bit" -> AudioFormatInfo(
80
+ format = AudioFormat.ENCODING_PCM_FLOAT,
81
+ mimeType = "audio/wav",
82
+ fileExtension = "wav"
83
+ )
84
+ "opus" -> {
85
+ if (Build.VERSION.SDK_INT < 29) {
86
+ return Result.failure(
87
+ IllegalArgumentException("Opus encoding not supported on this Android version.")
88
+ )
89
+ }
90
+ AudioFormatInfo(
91
+ format = if (Build.VERSION.SDK_INT >= 29) 20 else AudioFormat.ENCODING_DEFAULT, // 20 is ENCODING_OPUS
92
+ mimeType = "audio/opus",
93
+ fileExtension = "opus"
94
+ )
95
+ }
96
+ "aac_lc" -> AudioFormatInfo(
97
+ format = AudioFormat.ENCODING_AAC_LC,
98
+ mimeType = "audio/aac",
99
+ fileExtension = "aac"
100
+ )
101
+ else -> AudioFormatInfo(
102
+ format = AudioFormat.ENCODING_DEFAULT,
103
+ mimeType = "audio/wav",
104
+ fileExtension = "wav"
105
+ )
106
+ }
107
+
108
+ return Result.success(Pair(tempRecordingConfig, audioFormatInfo))
109
+ }
110
+ }
111
+ }
112
+
113
+ // Extension functions for type-safe map access
114
+ private inline fun <reified T> Map<String, Any?>.getTypedMap(
115
+ key: String,
116
+ predicate: (Any?) -> Boolean
117
+ ): Map<String, T> {
118
+ return (this[key] as? Map<*, *>)?.mapNotNull { (k, v) ->
119
+ if (k is String && predicate(v)) {
120
+ k to (v as T)
121
+ } else null
122
+ }?.toMap() ?: emptyMap()
123
+ }
124
+
125
+ private fun Map<String, Any?>.getStringOrDefault(key: String, default: String): String {
126
+ return this[key] as? String ?: default
127
+ }
128
+
129
+ private fun Map<String, Any?>.getBooleanOrDefault(key: String, default: Boolean): Boolean {
130
+ return this[key] as? Boolean ?: default
131
+ }
132
+
133
+ private fun Map<String, Any?>.getNumberOrDefault(key: String, default: Int): Int {
134
+ return (this[key] as? Number)?.toInt() ?: default
135
+ }
136
+
137
+ private fun Map<String, Any?>.getNumberOrDefault(key: String, default: Long): Long {
138
+ return (this[key] as? Number)?.toLong() ?: default
139
+ }
140
+
141
+ private fun Map<String, Any?>.getNumberOrDefault(key: String, default: Double): Double {
142
+ return (this[key] as? Number)?.toDouble() ?: default
143
+ }
144
+
145
+ data class AudioFormatInfo(
146
+ val format: Int,
147
+ val mimeType: String,
148
+ val fileExtension: String
149
+ )
@@ -0,0 +1,19 @@
1
+ package net.siteed.audiostream
2
+
3
+ /**
4
+ * Configuration for the notification waveform visualization
5
+ * @property color The color of the waveform (e.g., "#FFFFFF" for white)
6
+ * @property opacity Opacity of the waveform (0.0-1.0)
7
+ * @property strokeWidth Width of the waveform line (default: 1.5f)
8
+ * @property style Drawing style: "stroke" for outline, "fill" for solid
9
+ * @property mirror Whether to mirror the waveform (symmetrical display)
10
+ * @property height Height of the waveform view in dp (default: 64)
11
+ */
12
+ data class WaveformConfig(
13
+ val color: String = "#FFFFFF",
14
+ val opacity: Float = 1.0f,
15
+ val strokeWidth: Float = 1.5f,
16
+ val style: String = "stroke", // "stroke" or "fill"
17
+ val mirror: Boolean = true,
18
+ val height: Int = 64
19
+ )