react-native-audio-api 0.11.0-alpha.0 → 0.11.0-nightly-bfab178-20251107
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.
- package/README.md +13 -11
- package/RNAudioAPI.podspec +20 -15
- package/android/build.gradle +33 -3
- package/android/src/main/cpp/audioapi/CMakeLists.txt +6 -3
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +5 -0
- package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +1 -0
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +30 -94
- package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +14 -28
- package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +4 -2
- package/android/src/main/cpp/audioapi/android/core/NativeAudioRecorder.hpp +9 -9
- package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +6 -0
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +31 -3
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +21 -9
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +27 -6
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +11 -0
- package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
- package/common/cpp/audioapi/AudioAPIModuleInstaller.h +30 -2
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +18 -0
- package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +1 -0
- package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +1 -1
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +47 -0
- package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.h +20 -0
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +18 -80
- package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +6 -15
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +1 -1
- package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +1 -1
- package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +1 -1
- package/common/cpp/audioapi/core/AudioNode.h +3 -2
- package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
- package/common/cpp/audioapi/core/BaseAudioContext.cpp +10 -0
- package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +69 -32
- package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +37 -1
- package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +210 -0
- package/common/cpp/audioapi/core/effects/ConvolverNode.h +55 -0
- package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +49 -102
- package/common/cpp/audioapi/core/inputs/AudioRecorder.h +28 -46
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +14 -17
- package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +0 -1
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +8 -14
- package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +0 -1
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +14 -18
- package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +2 -2
- package/common/cpp/audioapi/core/sources/StreamerNode.cpp +64 -64
- package/common/cpp/audioapi/core/sources/StreamerNode.h +38 -10
- package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +5 -0
- package/common/cpp/audioapi/core/utils/Constants.h +2 -1
- package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +12 -8
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +3 -3
- package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +1 -1
- package/common/cpp/audioapi/dsp/AudioUtils.cpp +1 -1
- package/common/cpp/audioapi/dsp/Convolver.cpp +213 -0
- package/common/cpp/audioapi/dsp/Convolver.h +45 -0
- package/common/cpp/audioapi/dsp/FFT.cpp +0 -26
- package/common/cpp/audioapi/dsp/FFT.h +26 -2
- package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +4 -4
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +3 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +3 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/smpte_436m.h +254 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +6 -6
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +2 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +5 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +3 -3
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +0 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +2 -2
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +4 -4
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +6 -0
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +3 -3
- package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +1 -1
- package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +1 -1
- package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +2 -3
- package/common/cpp/audioapi/libs/ffmpeg/relinking.md +24 -0
- package/common/cpp/audioapi/utils/AlignedAllocator.hpp +50 -0
- package/common/cpp/audioapi/utils/AudioBus.cpp +28 -0
- package/common/cpp/audioapi/utils/AudioBus.h +3 -0
- package/common/cpp/audioapi/utils/ThreadPool.hpp +59 -1
- package/common/cpp/test/CMakeLists.txt +19 -14
- package/common/cpp/test/src/AudioParamTest.cpp +1 -1
- package/common/cpp/test/src/AudioScheduledSourceTest.cpp +134 -0
- package/common/cpp/test/src/ConstantSourceTest.cpp +1 -1
- package/common/cpp/test/src/GainTest.cpp +1 -1
- package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +4 -4
- package/common/cpp/test/src/OscillatorTest.cpp +1 -1
- package/common/cpp/test/src/StereoPannerTest.cpp +1 -1
- package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +389 -0
- package/common/cpp/test/src/biquad/BiquadFilterChromium.h +64 -0
- package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +284 -0
- package/common/cpp/test/src/biquad/BiquadFilterTest.h +40 -0
- package/ios/audioapi/ios/AudioAPIModule.h +2 -1
- package/ios/audioapi/ios/AudioAPIModule.mm +13 -0
- package/ios/audioapi/ios/core/IOSAudioRecorder.h +9 -18
- package/ios/audioapi/ios/core/IOSAudioRecorder.mm +28 -70
- package/ios/audioapi/ios/core/NativeAudioRecorder.h +6 -2
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +73 -5
- package/ios/audioapi/ios/system/AudioEngine.mm +3 -3
- package/ios/audioapi/ios/system/AudioSessionManager.h +2 -0
- package/ios/audioapi/ios/system/AudioSessionManager.mm +24 -0
- package/ios/audioapi/ios/system/LockScreenManager.h +0 -1
- package/ios/audioapi/ios/system/LockScreenManager.mm +6 -19
- package/lib/commonjs/api.js +141 -76
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/api.web.js +8 -0
- package/lib/commonjs/api.web.js.map +1 -1
- package/lib/commonjs/core/AudioContext.js +1 -1
- package/lib/commonjs/core/AudioContext.js.map +1 -1
- package/lib/commonjs/core/AudioRecorder.js +12 -157
- package/lib/commonjs/core/AudioRecorder.js.map +1 -1
- package/lib/commonjs/core/BaseAudioContext.js +28 -25
- package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
- package/lib/commonjs/core/ConvolverNode.js +37 -0
- package/lib/commonjs/core/ConvolverNode.js.map +1 -0
- package/lib/commonjs/core/OfflineAudioContext.js +1 -1
- package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +3 -0
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/types.js +0 -46
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/index.js +19 -21
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/web-core/AudioContext.js +12 -0
- package/lib/commonjs/web-core/AudioContext.js.map +1 -1
- package/lib/commonjs/web-core/ConvolverNode.js +40 -0
- package/lib/commonjs/web-core/ConvolverNode.js.map +1 -0
- package/lib/commonjs/web-core/ConvolverNodeOptions.js +6 -0
- package/lib/commonjs/web-core/ConvolverNodeOptions.js.map +1 -0
- package/lib/commonjs/web-core/OfflineAudioContext.js +12 -0
- package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/module/api.js +16 -15
- package/lib/module/api.js.map +1 -1
- package/lib/module/api.web.js +1 -0
- package/lib/module/api.web.js.map +1 -1
- package/lib/module/core/AudioContext.js +2 -2
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/AudioRecorder.js +12 -157
- package/lib/module/core/AudioRecorder.js.map +1 -1
- package/lib/module/core/BaseAudioContext.js +29 -26
- package/lib/module/core/BaseAudioContext.js.map +1 -1
- package/lib/module/core/ConvolverNode.js +31 -0
- package/lib/module/core/ConvolverNode.js.map +1 -0
- package/lib/module/core/OfflineAudioContext.js +2 -2
- package/lib/module/core/OfflineAudioContext.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +3 -0
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/types.js +1 -45
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/index.js +15 -2
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/web-core/AudioContext.js +12 -0
- package/lib/module/web-core/AudioContext.js.map +1 -1
- package/lib/module/web-core/ConvolverNode.js +34 -0
- package/lib/module/web-core/ConvolverNode.js.map +1 -0
- package/lib/module/web-core/ConvolverNodeOptions.js +4 -0
- package/lib/module/web-core/ConvolverNodeOptions.js.map +1 -0
- package/lib/module/web-core/OfflineAudioContext.js +12 -0
- package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
- package/lib/typescript/api.d.ts +19 -17
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/api.web.d.ts +1 -0
- package/lib/typescript/api.web.d.ts.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/core/AudioRecorder.d.ts +6 -58
- package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
- package/lib/typescript/core/BaseAudioContext.d.ts +3 -1
- package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/core/ConvolverNode.d.ts +12 -0
- package/lib/typescript/core/ConvolverNode.d.ts.map +1 -0
- package/lib/typescript/events/types.d.ts +0 -16
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +8 -39
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +1 -0
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +1 -0
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +8 -74
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +5 -2
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/web-core/AudioContext.d.ts +3 -0
- package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/BaseAudioContext.d.ts +2 -0
- package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
- package/lib/typescript/web-core/ConvolverNode.d.ts +11 -0
- package/lib/typescript/web-core/ConvolverNode.d.ts.map +1 -0
- package/lib/typescript/web-core/ConvolverNodeOptions.d.ts +6 -0
- package/lib/typescript/web-core/ConvolverNodeOptions.d.ts.map +1 -0
- package/lib/typescript/web-core/OfflineAudioContext.d.ts +3 -0
- package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
- package/package.json +14 -5
- package/scripts/download-prebuilt-binaries.sh +61 -0
- package/scripts/rnaa_utils.rb +8 -0
- package/scripts/validate-worklets-version.js +28 -0
- package/src/api.ts +45 -18
- package/src/api.web.ts +1 -0
- package/src/core/AudioContext.ts +3 -2
- package/src/core/AudioRecorder.ts +20 -190
- package/src/core/BaseAudioContext.ts +67 -60
- package/src/core/ConvolverNode.ts +35 -0
- package/src/core/OfflineAudioContext.ts +2 -2
- package/src/events/types.ts +0 -18
- package/src/interfaces.ts +15 -47
- package/src/specs/NativeAudioAPIModule.ts +1 -0
- package/src/system/AudioManager.ts +4 -0
- package/src/types.ts +9 -84
- package/src/utils/index.ts +22 -2
- package/src/web-core/AudioContext.tsx +25 -0
- package/src/web-core/BaseAudioContext.tsx +2 -0
- package/src/web-core/ConvolverNode.tsx +43 -0
- package/src/web-core/ConvolverNodeOptions.tsx +6 -0
- package/src/web-core/OfflineAudioContext.tsx +25 -0
- package/android/src/main/cpp/audioapi/android/core/utils/AndroidFileWriterBackend.h +0 -33
- package/android/src/main/cpp/audioapi/android/core/utils/FileUtils.h +0 -34
- package/android/src/main/cpp/audioapi/android/core/utils/FileUtilts.cpp +0 -133
- package/android/src/main/cpp/audioapi/android/core/utils/MiniaudioImplementation.cpp +0 -3
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.cpp +0 -154
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.h +0 -41
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.cpp +0 -431
- package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.h +0 -112
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.cpp +0 -47
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.h +0 -28
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.cpp +0 -237
- package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.h +0 -46
- package/android/src/main/cpp/audioapi/android/system/NativeFileInfo.hpp +0 -31
- package/android/src/main/java/com/swmansion/audioapi/system/NativeFileInfo.kt +0 -18
- package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86/libswresample.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
- package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
- package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libogg.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libopus.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libssl.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/arm64-v8a/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libogg.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libopus.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libssl.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/armeabi-v7a/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libogg.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libopus.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libssl.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/iphoneos/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libogg.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libopus.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libssl.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/iphonesimulator/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/Info.plist +0 -44
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +0 -44
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/Info.plist +0 -44
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +0 -44
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +0 -1
- package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
- package/common/cpp/audioapi/external/x86/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/x86/libogg.a +0 -0
- package/common/cpp/audioapi/external/x86/libopus.a +0 -0
- package/common/cpp/audioapi/external/x86/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/x86/libssl.a +0 -0
- package/common/cpp/audioapi/external/x86/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/x86/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/x86/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libcrypto.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libogg.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libopus.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libopusfile.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libssl.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libvorbis.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libvorbisenc.a +0 -0
- package/common/cpp/audioapi/external/x86_64/libvorbisfile.a +0 -0
- package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +0 -32
- package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +0 -111
- package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +0 -391
- package/ios/audioapi/ios/core/IOSAudioFileOptions.h +0 -35
- package/ios/audioapi/ios/core/IOSAudioFileOptions.mm +0 -135
- package/ios/audioapi/ios/core/IOSAudioFileWriter.h +0 -38
- package/ios/audioapi/ios/core/IOSAudioFileWriter.mm +0 -187
- package/lib/commonjs/utils/bitEnums.js +0 -33
- package/lib/commonjs/utils/bitEnums.js.map +0 -1
- package/lib/module/utils/bitEnums.js +0 -27
- package/lib/module/utils/bitEnums.js.map +0 -1
- package/lib/typescript/utils/bitEnums.d.ts +0 -4
- package/lib/typescript/utils/bitEnums.d.ts.map +0 -1
- package/src/utils/bitEnums.ts +0 -51
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
#import <AVFoundation/AVFoundation.h>
|
|
2
|
-
#import <Foundation/Foundation.h>
|
|
3
|
-
|
|
4
|
-
#include <audioapi/ios/core/IOSAudioFileOptions.h>
|
|
5
|
-
#include <audioapi/ios/core/IOSAudioFileWriter.h>
|
|
6
|
-
|
|
7
|
-
namespace audioapi {
|
|
8
|
-
IOSAudioFileWriter::IOSAudioFileWriter(float sampleRate, size_t channelCount, size_t bitRate, size_t iosFlags)
|
|
9
|
-
{
|
|
10
|
-
fileOptions_ = std::make_shared<IOSAudioFileOptions>(sampleRate, channelCount, bitRate, iosFlags);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
IOSAudioFileWriter::~IOSAudioFileWriter()
|
|
14
|
-
{
|
|
15
|
-
fileURL_ = nil;
|
|
16
|
-
audioFile_ = nil;
|
|
17
|
-
converter_ = nil;
|
|
18
|
-
bufferFormat_ = nil;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
void IOSAudioFileWriter::openFile(AVAudioFormat *bufferFormat)
|
|
22
|
-
{
|
|
23
|
-
@autoreleasepool {
|
|
24
|
-
if (audioFile_ != nil) {
|
|
25
|
-
NSLog(@"⚠️ createFileForWriting: currentAudioFile_ already exists");
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
bufferFormat_ = bufferFormat;
|
|
30
|
-
|
|
31
|
-
NSError *error = nil;
|
|
32
|
-
NSDictionary *settings = fileOptions_->getFileSettings();
|
|
33
|
-
fileURL_ = getFileURL();
|
|
34
|
-
|
|
35
|
-
NSLog(@"ℹ️ Creating audio file at URL: %@", [fileURL_ absoluteString]);
|
|
36
|
-
|
|
37
|
-
audioFile_ = [[AVAudioFile alloc] initForWriting:fileURL_
|
|
38
|
-
settings:settings
|
|
39
|
-
commonFormat:AVAudioPCMFormatFloat32
|
|
40
|
-
interleaved:bufferFormat.interleaved
|
|
41
|
-
error:&error];
|
|
42
|
-
converter_ = [[AVAudioConverter alloc] initFromFormat:bufferFormat toFormat:[audioFile_ processingFormat]];
|
|
43
|
-
converter_.sampleRateConverterAlgorithm = AVSampleRateConverterAlgorithm_Normal;
|
|
44
|
-
converter_.sampleRateConverterQuality = AVAudioQualityMax;
|
|
45
|
-
converter_.primeMethod = AVAudioConverterPrimeMethod_None;
|
|
46
|
-
|
|
47
|
-
NSLog(@"buferFormat: %@ fileFormat: %@", bufferFormat, [audioFile_ processingFormat]);
|
|
48
|
-
|
|
49
|
-
if (error != nil || audioFile_ == nil) {
|
|
50
|
-
NSLog(@"Error creating audio file for writing: %@", [error debugDescription]);
|
|
51
|
-
audioFile_ = nil;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
std::string IOSAudioFileWriter::closeFile()
|
|
57
|
-
{
|
|
58
|
-
@autoreleasepool {
|
|
59
|
-
std::string filePath = [[fileURL_ path] UTF8String];
|
|
60
|
-
|
|
61
|
-
if (audioFile_ == nil) {
|
|
62
|
-
return "";
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// AVAudioFile automatically finalizes the file when deallocated
|
|
66
|
-
audioFile_ = nil;
|
|
67
|
-
fileURL_ = nil;
|
|
68
|
-
return filePath;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
bool IOSAudioFileWriter::writeAudioData(const AudioBufferList *audioBufferList, int numFrames)
|
|
73
|
-
{
|
|
74
|
-
if (audioFile_ == nil) {
|
|
75
|
-
NSLog(@"⚠️ writeAudioData: audioFile is nil, cannot write data");
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// TODO: not sure if this is necessary
|
|
80
|
-
@autoreleasepool {
|
|
81
|
-
NSError *error = nil;
|
|
82
|
-
AVAudioFormat *filePCMFormat = [audioFile_ processingFormat];
|
|
83
|
-
|
|
84
|
-
if (audioBufferList->mNumberBuffers != filePCMFormat.channelCount ||
|
|
85
|
-
bufferFormat_.sampleRate != filePCMFormat.sampleRate ||
|
|
86
|
-
bufferFormat_.interleaved != filePCMFormat.interleaved) {
|
|
87
|
-
int outputFrameCount = ceil(numFrames * filePCMFormat.sampleRate / bufferFormat_.sampleRate);
|
|
88
|
-
|
|
89
|
-
AVAudioPCMBuffer *inputBuffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:bufferFormat_
|
|
90
|
-
frameCapacity:(AVAudioFrameCount)numFrames];
|
|
91
|
-
|
|
92
|
-
for (int i = 0; i < bufferFormat_.channelCount; i++) {
|
|
93
|
-
memcpy(
|
|
94
|
-
inputBuffer.mutableAudioBufferList->mBuffers[i].mData,
|
|
95
|
-
audioBufferList->mBuffers[i].mData,
|
|
96
|
-
audioBufferList->mBuffers[i].mDataByteSize);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
inputBuffer.frameLength = numFrames;
|
|
100
|
-
AVAudioPCMBuffer *outputBuffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:filePCMFormat
|
|
101
|
-
frameCapacity:outputFrameCount];
|
|
102
|
-
outputBuffer.frameLength = outputFrameCount;
|
|
103
|
-
|
|
104
|
-
AVAudioConverterInputBlock inputBlock =
|
|
105
|
-
^AVAudioBuffer *_Nullable(AVAudioPacketCount inNumberOfPackets, AVAudioConverterInputStatus *outStatus)
|
|
106
|
-
{
|
|
107
|
-
// this line is probably an delusion, but for my sanity lets keep it
|
|
108
|
-
inNumberOfPackets = numFrames;
|
|
109
|
-
*outStatus = AVAudioConverterInputStatus_HaveData;
|
|
110
|
-
return inputBuffer;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
[converter_ convertToBuffer:outputBuffer error:&error withInputFromBlock:inputBlock];
|
|
114
|
-
|
|
115
|
-
if (error != nil) {
|
|
116
|
-
NSLog(@"Error during audio conversion: %@", [error debugDescription]);
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
[audioFile_ writeFromBuffer:outputBuffer error:&error];
|
|
121
|
-
|
|
122
|
-
if (error != nil) {
|
|
123
|
-
NSLog(@"Error writing audio data to file: %@", [error debugDescription]);
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
} else {
|
|
127
|
-
AVAudioPCMBuffer *processingBuffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:filePCMFormat
|
|
128
|
-
bufferListNoCopy:audioBufferList
|
|
129
|
-
deallocator:NULL];
|
|
130
|
-
|
|
131
|
-
[audioFile_ writeFromBuffer:processingBuffer error:&error];
|
|
132
|
-
|
|
133
|
-
if (error != nil) {
|
|
134
|
-
NSLog(@"Error writing audio data to file: %@", [error debugDescription]);
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
NSString *IOSAudioFileWriter::getISODateStringForDirectory()
|
|
144
|
-
{
|
|
145
|
-
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
|
|
146
|
-
fmt.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
|
|
147
|
-
fmt.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; // or local if you prefer
|
|
148
|
-
fmt.dateFormat = @"yyyy-MM-dd";
|
|
149
|
-
return [fmt stringFromDate:[NSDate date]];
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
NSString *IOSAudioFileWriter::getTimestampForFilename()
|
|
153
|
-
{
|
|
154
|
-
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
|
|
155
|
-
fmt.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
|
|
156
|
-
fmt.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; // or local if you prefer
|
|
157
|
-
fmt.dateFormat = @"yyyyMMdd_HHmmss_SSS";
|
|
158
|
-
return [fmt stringFromDate:[NSDate date]];
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
NSURL *IOSAudioFileWriter::getFileURL()
|
|
162
|
-
{
|
|
163
|
-
NSError *error = nil;
|
|
164
|
-
|
|
165
|
-
NSSearchPathDirectory searchDirectory = fileOptions_->getDirectory();
|
|
166
|
-
NSString *directory = [NSString stringWithFormat:@"AudioAPI/%@", getISODateStringForDirectory()];
|
|
167
|
-
|
|
168
|
-
NSURL *baseURL = [[[NSFileManager defaultManager] URLsForDirectory:searchDirectory
|
|
169
|
-
inDomains:NSUserDomainMask] firstObject];
|
|
170
|
-
NSURL *dirURL = [baseURL URLByAppendingPathComponent:directory isDirectory:YES];
|
|
171
|
-
|
|
172
|
-
[[NSFileManager defaultManager] createDirectoryAtURL:dirURL
|
|
173
|
-
withIntermediateDirectories:YES
|
|
174
|
-
attributes:nil
|
|
175
|
-
error:&error];
|
|
176
|
-
|
|
177
|
-
if (error != nil) {
|
|
178
|
-
NSLog(@"Error creating directory for audio recordings: %@", [error debugDescription]);
|
|
179
|
-
dirURL = baseURL;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
NSString *fileName =
|
|
183
|
-
[NSString stringWithFormat:@"audio_%@.%@", getTimestampForFilename(), fileOptions_->getFileExtension()];
|
|
184
|
-
return [dirURL URLByAppendingPathComponent:fileName];
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
} // namespace audioapi
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.encodeFlags = encodeFlags;
|
|
7
|
-
exports.getEnumValue = getEnumValue;
|
|
8
|
-
exports.setEnumValue = setEnumValue;
|
|
9
|
-
function setBitValue(output, value, shift, bitWidth = 4) {
|
|
10
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
11
|
-
if ((value & ~fieldMask) !== 0) {
|
|
12
|
-
throw new Error(`Value ${value} exceeds the maximum for a field with width ${bitWidth} bits.`);
|
|
13
|
-
}
|
|
14
|
-
return output & ~(fieldMask << shift) | (value & fieldMask) << shift;
|
|
15
|
-
}
|
|
16
|
-
function getBitValue(input, shift, bitWidth = 4) {
|
|
17
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
18
|
-
return input >> shift & fieldMask;
|
|
19
|
-
}
|
|
20
|
-
function setEnumValue(output, value, shift, bitWidth = 4) {
|
|
21
|
-
return setBitValue(output, value, shift, bitWidth);
|
|
22
|
-
}
|
|
23
|
-
function getEnumValue(input, _enum, shift, bitWidth = 4) {
|
|
24
|
-
return getBitValue(input, shift, bitWidth);
|
|
25
|
-
}
|
|
26
|
-
function encodeFlags(...flags) {
|
|
27
|
-
let output = 0;
|
|
28
|
-
for (let i = 0; i < flags.length; i++) {
|
|
29
|
-
output |= setEnumValue(output, flags[i], i * 4);
|
|
30
|
-
}
|
|
31
|
-
return output;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=bitEnums.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["setBitValue","output","value","shift","bitWidth","fieldMask","Error","getBitValue","input","setEnumValue","getEnumValue","_enum","encodeFlags","flags","i","length"],"sourceRoot":"../../../src","sources":["utils/bitEnums.ts"],"mappings":";;;;;;;;AAAA,SAASA,WAAWA,CAClBC,MAAc,EACdC,KAAa,EACbC,KAAa,EACbC,QAAQ,GAAG,CAAC,EACJ;EACR,MAAMC,SAAS,GAAG,CAAC,CAAC,IAAID,QAAQ,IAAI,CAAC;EAErC,IAAI,CAACF,KAAK,GAAG,CAACG,SAAS,MAAM,CAAC,EAAE;IAC9B,MAAM,IAAIC,KAAK,CACb,SAASJ,KAAK,+CAA+CE,QAAQ,QACvE,CAAC;EACH;EAEA,OAAQH,MAAM,GAAG,EAAEI,SAAS,IAAIF,KAAK,CAAC,GAAK,CAACD,KAAK,GAAGG,SAAS,KAAKF,KAAM;AAC1E;AAEA,SAASI,WAAWA,CAACC,KAAa,EAAEL,KAAa,EAAEC,QAAQ,GAAG,CAAC,EAAU;EACvE,MAAMC,SAAS,GAAG,CAAC,CAAC,IAAID,QAAQ,IAAI,CAAC;EACrC,OAAQI,KAAK,IAAIL,KAAK,GAAIE,SAAS;AACrC;AAEO,SAASI,YAAYA,CAC1BR,MAAc,EACdC,KAAiB,EACjBC,KAAa,EACbC,QAAQ,GAAG,CAAC,EACJ;EACR,OAAOJ,WAAW,CAACC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,QAAQ,CAAC;AACpD;AAEO,SAASM,YAAYA,CAC1BF,KAAa,EACbG,KAAQ,EACRR,KAAa,EACbC,QAAQ,GAAG,CAAC,EACA;EACZ,OAAOG,WAAW,CAACC,KAAK,EAAEL,KAAK,EAAEC,QAAQ,CAAC;AAC5C;AAEO,SAASQ,WAAWA,CACzB,GAAGC,KAAwB,EACnB;EACR,IAAIZ,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACrCb,MAAM,IAAIQ,YAAY,CAACR,MAAM,EAAEY,KAAK,CAACC,CAAC,CAAC,EAAEA,CAAC,GAAG,CAAC,CAAC;EACjD;EAEA,OAAOb,MAAM;AACf","ignoreList":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function setBitValue(output, value, shift, bitWidth = 4) {
|
|
4
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
5
|
-
if ((value & ~fieldMask) !== 0) {
|
|
6
|
-
throw new Error(`Value ${value} exceeds the maximum for a field with width ${bitWidth} bits.`);
|
|
7
|
-
}
|
|
8
|
-
return output & ~(fieldMask << shift) | (value & fieldMask) << shift;
|
|
9
|
-
}
|
|
10
|
-
function getBitValue(input, shift, bitWidth = 4) {
|
|
11
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
12
|
-
return input >> shift & fieldMask;
|
|
13
|
-
}
|
|
14
|
-
export function setEnumValue(output, value, shift, bitWidth = 4) {
|
|
15
|
-
return setBitValue(output, value, shift, bitWidth);
|
|
16
|
-
}
|
|
17
|
-
export function getEnumValue(input, _enum, shift, bitWidth = 4) {
|
|
18
|
-
return getBitValue(input, shift, bitWidth);
|
|
19
|
-
}
|
|
20
|
-
export function encodeFlags(...flags) {
|
|
21
|
-
let output = 0;
|
|
22
|
-
for (let i = 0; i < flags.length; i++) {
|
|
23
|
-
output |= setEnumValue(output, flags[i], i * 4);
|
|
24
|
-
}
|
|
25
|
-
return output;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=bitEnums.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["setBitValue","output","value","shift","bitWidth","fieldMask","Error","getBitValue","input","setEnumValue","getEnumValue","_enum","encodeFlags","flags","i","length"],"sourceRoot":"../../../src","sources":["utils/bitEnums.ts"],"mappings":";;AAAA,SAASA,WAAWA,CAClBC,MAAc,EACdC,KAAa,EACbC,KAAa,EACbC,QAAQ,GAAG,CAAC,EACJ;EACR,MAAMC,SAAS,GAAG,CAAC,CAAC,IAAID,QAAQ,IAAI,CAAC;EAErC,IAAI,CAACF,KAAK,GAAG,CAACG,SAAS,MAAM,CAAC,EAAE;IAC9B,MAAM,IAAIC,KAAK,CACb,SAASJ,KAAK,+CAA+CE,QAAQ,QACvE,CAAC;EACH;EAEA,OAAQH,MAAM,GAAG,EAAEI,SAAS,IAAIF,KAAK,CAAC,GAAK,CAACD,KAAK,GAAGG,SAAS,KAAKF,KAAM;AAC1E;AAEA,SAASI,WAAWA,CAACC,KAAa,EAAEL,KAAa,EAAEC,QAAQ,GAAG,CAAC,EAAU;EACvE,MAAMC,SAAS,GAAG,CAAC,CAAC,IAAID,QAAQ,IAAI,CAAC;EACrC,OAAQI,KAAK,IAAIL,KAAK,GAAIE,SAAS;AACrC;AAEA,OAAO,SAASI,YAAYA,CAC1BR,MAAc,EACdC,KAAiB,EACjBC,KAAa,EACbC,QAAQ,GAAG,CAAC,EACJ;EACR,OAAOJ,WAAW,CAACC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,QAAQ,CAAC;AACpD;AAEA,OAAO,SAASM,YAAYA,CAC1BF,KAAa,EACbG,KAAQ,EACRR,KAAa,EACbC,QAAQ,GAAG,CAAC,EACA;EACZ,OAAOG,WAAW,CAACC,KAAK,EAAEL,KAAK,EAAEC,QAAQ,CAAC;AAC5C;AAEA,OAAO,SAASQ,WAAWA,CACzB,GAAGC,KAAwB,EACnB;EACR,IAAIZ,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACrCb,MAAM,IAAIQ,YAAY,CAACR,MAAM,EAAEY,KAAK,CAACC,CAAC,CAAC,EAAEA,CAAC,GAAG,CAAC,CAAC;EACjD;EAEA,OAAOb,MAAM;AACf","ignoreList":[]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare function setEnumValue<T extends Record<string, number>>(output: number, value: T[keyof T], shift: number, bitWidth?: number): number;
|
|
2
|
-
export declare function getEnumValue<T extends Record<string, number>>(input: number, _enum: T, shift: number, bitWidth?: number): T[keyof T];
|
|
3
|
-
export declare function encodeFlags<T extends Record<string, number>>(...flags: Array<T[keyof T]>): number;
|
|
4
|
-
//# sourceMappingURL=bitEnums.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bitEnums.d.ts","sourceRoot":"","sources":["../../../src/utils/bitEnums.ts"],"names":[],"mappings":"AAsBA,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3D,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,SAAI,GACX,MAAM,CAER;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3D,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,EACb,QAAQ,SAAI,GACX,CAAC,CAAC,MAAM,CAAC,CAAC,CAEZ;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1D,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAC1B,MAAM,CAQR"}
|
package/src/utils/bitEnums.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
function setBitValue(
|
|
2
|
-
output: number,
|
|
3
|
-
value: number,
|
|
4
|
-
shift: number,
|
|
5
|
-
bitWidth = 4
|
|
6
|
-
): number {
|
|
7
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
8
|
-
|
|
9
|
-
if ((value & ~fieldMask) !== 0) {
|
|
10
|
-
throw new Error(
|
|
11
|
-
`Value ${value} exceeds the maximum for a field with width ${bitWidth} bits.`
|
|
12
|
-
);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return (output & ~(fieldMask << shift)) | ((value & fieldMask) << shift);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function getBitValue(input: number, shift: number, bitWidth = 4): number {
|
|
19
|
-
const fieldMask = (1 << bitWidth) - 1;
|
|
20
|
-
return (input >> shift) & fieldMask;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function setEnumValue<T extends Record<string, number>>(
|
|
24
|
-
output: number,
|
|
25
|
-
value: T[keyof T],
|
|
26
|
-
shift: number,
|
|
27
|
-
bitWidth = 4
|
|
28
|
-
): number {
|
|
29
|
-
return setBitValue(output, value, shift, bitWidth);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function getEnumValue<T extends Record<string, number>>(
|
|
33
|
-
input: number,
|
|
34
|
-
_enum: T,
|
|
35
|
-
shift: number,
|
|
36
|
-
bitWidth = 4
|
|
37
|
-
): T[keyof T] {
|
|
38
|
-
return getBitValue(input, shift, bitWidth) as T[keyof T];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function encodeFlags<T extends Record<string, number>>(
|
|
42
|
-
...flags: Array<T[keyof T]>
|
|
43
|
-
): number {
|
|
44
|
-
let output = 0;
|
|
45
|
-
|
|
46
|
-
for (let i = 0; i < flags.length; i++) {
|
|
47
|
-
output |= setEnumValue(output, flags[i], i * 4);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return output;
|
|
51
|
-
}
|