From 595f28ecda848afde5ea4bb68473c5ce1be9c722 Mon Sep 17 00:00:00 2001 From: Tom Ray Date: Fri, 17 Apr 2026 21:00:35 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20sch=C3=A9ma=20JSON=20pour=20lectur?= =?UTF-8?q?e=20de=20sc=C3=A8nes=20+=20ajout=20des=20composants=20=20son=20?= =?UTF-8?q?avec=20OpenAL=20+=20composants=20scripts=20et=20libraire=20de?= =?UTF-8?q?=20script=20+=20ajout=20de=20librairies=20pour=20le=20son=20dr?= =?UTF-8?q?=5Flibs=20et=20openAL=20+=20librairie=20sch=C3=A9ma=20json=20va?= =?UTF-8?q?lidator=20+=20correctifs=20divers=20d'oubli=20et=20autres=20+?= =?UTF-8?q?=20entity=20et=20components=20factory=20fonctionnelles=20+=20re?= =?UTF-8?q?work=20API=20graphique=20et=20syst=C3=A8mes=20merg=C3=A9s=20dan?= =?UTF-8?q?s=20Syst=C3=A8mes=20(audio=20physique,=20etc...)=20+=20rework?= =?UTF-8?q?=20sauvegarde=20des=20resources=20de=20fa=C3=A7on=20unique=20po?= =?UTF-8?q?ur=20=C3=A9viter=20les=20reload=20(correctifs=20associ=C3=A9s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 107 +- lib/All/JoltPhysics/lib/{ => Debug}/libJolt.a | Bin 58823028 -> 58823028 bytes lib/All/JoltPhysics/lib/Release/libJolt.a | Bin 0 -> 6516940 bytes lib/All/dr_libs/dr_flac.h | 12660 ++++++++++++++++ lib/All/dr_libs/dr_mp3.h | 5385 +++++++ lib/All/dr_libs/dr_wav.h | 9060 +++++++++++ .../lib/libnlohmann_json_schema_validator.a | Bin 1653322 -> 1693978 bytes .../include/nlohmann/adl_serializer.hpp | 4 +- .../nlohmann/byte_container_with_subtype.hpp | 4 +- .../include/nlohmann/detail/abi_macros.hpp | 29 +- .../nlohmann/detail/conversions/from_json.hpp | 88 +- .../nlohmann/detail/conversions/to_chars.hpp | 18 +- .../nlohmann/detail/conversions/to_json.hpp | 43 +- .../include/nlohmann/detail/exceptions.hpp | 44 +- .../include/nlohmann/detail/hash.hpp | 4 +- .../nlohmann/detail/input/binary_reader.hpp | 131 +- .../nlohmann/detail/input/input_adapters.hpp | 63 +- .../nlohmann/detail/input/json_sax.hpp | 305 +- .../include/nlohmann/detail/input/lexer.hpp | 22 +- .../include/nlohmann/detail/input/parser.hpp | 16 +- .../nlohmann/detail/input/position_t.hpp | 4 +- .../detail/iterators/internal_iterator.hpp | 4 +- .../nlohmann/detail/iterators/iter_impl.hpp | 29 +- .../detail/iterators/iteration_proxy.hpp | 19 +- .../detail/iterators/iterator_traits.hpp | 6 +- .../iterators/json_reverse_iterator.hpp | 4 +- .../detail/iterators/primitive_iterator.hpp | 4 +- .../detail/json_custom_base_class.hpp | 4 +- .../include/nlohmann/detail/json_pointer.hpp | 10 +- .../include/nlohmann/detail/json_ref.hpp | 4 +- .../include/nlohmann/detail/macro_scope.hpp | 153 +- .../include/nlohmann/detail/macro_unscope.hpp | 5 +- .../nlohmann/detail/meta/call_std/begin.hpp | 4 +- .../nlohmann/detail/meta/call_std/end.hpp | 4 +- .../nlohmann/detail/meta/cpp_future.hpp | 6 +- .../include/nlohmann/detail/meta/detected.hpp | 4 +- .../nlohmann/detail/meta/identity_tag.hpp | 4 +- .../include/nlohmann/detail/meta/is_sax.hpp | 4 +- .../include/nlohmann/detail/meta/std_fs.hpp | 6 +- .../nlohmann/detail/meta/type_traits.hpp | 42 +- .../include/nlohmann/detail/meta/void_t.hpp | 4 +- .../nlohmann/detail/output/binary_writer.hpp | 42 +- .../detail/output/output_adapters.hpp | 4 +- .../nlohmann/detail/output/serializer.hpp | 12 +- .../include/nlohmann/detail/string_concat.hpp | 4 +- .../include/nlohmann/detail/string_escape.hpp | 4 +- .../include/nlohmann/detail/string_utils.hpp | 37 + .../include/nlohmann/detail/value_t.hpp | 4 +- lib/All/jsonfmcpp/include/nlohmann/json.hpp | 212 +- .../jsonfmcpp/include/nlohmann/json_fwd.hpp | 4 +- .../include/nlohmann/ordered_map.hpp | 8 +- .../nlohmann/thirdparty/hedley/hedley.hpp | 6 +- .../thirdparty/hedley/hedley_undef.hpp | 4 +- .../single_include/nlohmann/json.hpp | 2839 ++-- .../single_include/nlohmann/json_fwd.hpp | 33 +- lib/CMake/Linux/JoltPhysicslibConfig.cmake | 3 +- lib/CMake/Linux/drlibsConfig.cmake | 1 + schema_json.json | 47 +- .../Core/Component/CAbstractComponent.hpp | 11 +- src/Engine/Core/Component/Camera/CCamera.hpp | 14 +- .../Core/Component/Collider/CCollider.hpp | 2 +- .../Core/Component/Geometry/CTransform.cpp | 6 +- .../Core/Component/Geometry/CTransform.hpp | 5 +- .../Core/Component/Graphics/CRenderer.hpp | 2 +- .../Component/Relationships/CRelationship.hpp | 12 +- .../Core/Component/Rigidbody/CRigidBody.cpp | 3 +- .../Core/Component/Script/CAbstractScript.cpp | 24 +- .../Core/Component/Script/CAbstractScript.hpp | 26 +- src/Engine/Core/Component/Script/CScript.cpp | 38 + src/Engine/Core/Component/Script/CScript.hpp | 30 + .../Core/Component/Script/CScriptManager.cpp | 23 + .../Core/Component/Script/CScriptManager.hpp | 27 + .../Core/Component/Speaker/CSpeaker.cpp | 121 + .../Core/Component/Speaker/CSpeaker.hpp | 58 + src/Engine/Core/Entity/CEntity.cpp | 16 +- src/Engine/Core/Entity/CEntity.hpp | 22 +- .../EntityComponentManager.hpp | 0 src/Engine/Core/Graphics/Data/CModel.hpp | 34 - .../Core/Graphics/Data/CModelLoader.cpp | 152 - .../Core/Graphics/Data/CModelManager.hpp | 32 - .../Core/Graphics/Data/CResourceManager.hpp | 28 - .../Data/Material/CMaterialManager.hpp | 31 - .../Core/Graphics/Data/Mesh/CMeshManager.hpp | 31 - .../Graphics/Data/Texture/CTextureManager.hpp | 32 - .../Core/Graphics/Shader/CShadersManager.hpp | 45 - src/Engine/Core/Kernel/CKernel.cpp | 69 +- src/Engine/Core/Kernel/CKernel.hpp | 2 +- src/Engine/Core/Scene/CScene.cpp | 180 +- src/Engine/Core/Scene/CScene.hpp | 28 +- .../Core/Systems/Audio/API/CAudioAPI.cpp | 8 + .../Core/Systems/Audio/API/CAudioAPI.hpp | 25 + src/Engine/Core/Systems/Audio/CAudioWorld.cpp | 61 + src/Engine/Core/Systems/Audio/CAudioWorld.hpp | 26 + .../Core/Systems/Audio/Sound/CAudioClip.hpp | 20 + .../Graphics/API/GraphicsAPI.cpp | 2 +- .../Graphics/API/GraphicsAPI.hpp | 7 - .../API/VulkanImplementation}/Constants.hpp | 0 .../VulkanImplementation}/DeletionQueue.hpp | 0 .../ManagedDescriptorSet.hpp | 0 .../API/VulkanImplementation}/VMABuffer.hpp | 0 .../API/VulkanImplementation}/VMAUsage.cpp | 0 .../API/VulkanImplementation}/VulkanImpl.cpp | 15 +- .../API/VulkanImplementation}/VulkanImpl.hpp | 39 +- .../Core/{ => Systems}/Graphics/CContext.cpp | 0 .../Core/{ => Systems}/Graphics/CContext.hpp | 0 .../Systems/Graphics/Data/CModelLoader.cpp | 192 + .../Graphics/Data/CModelLoader.hpp | 23 +- .../Graphics/Data/Font/CTextTexture.cpp | 0 .../Graphics/Data/Font/CTextTexture.hpp | 0 .../Graphics/Data/Material/CMaterial.cpp | 2 +- .../Graphics/Data/Material/CMaterial.hpp | 2 +- .../Graphics/Data/Material/SColor.hpp | 0 .../Graphics/Data/Mesh/CMesh.cpp | 2 +- .../Graphics/Data/Mesh/CMesh.hpp | 9 +- .../Graphics/Data/Mesh/SVertex.hpp | 0 .../Graphics/Data/Model}/CModel.cpp | 10 +- .../Systems/Graphics/Data/Model/CModel.hpp | 40 + .../Graphics/Data/Texture/CTexture.cpp | 2 +- .../Graphics/Data/Texture/CTexture.hpp | 1 - .../Graphics/Data/Tint/CTint.hpp | 0 .../{ => Systems}/Graphics/Shader/CShader.cpp | 0 .../{ => Systems}/Graphics/Shader/CShader.hpp | 0 .../Implementations/CShaderImplVulkan.cpp | 55 +- .../Implementations/CShaderImplVulkan.hpp | 1 - .../Graphics/Window/CGameWindow.cpp | 0 .../Graphics/Window/CGameWindow.hpp | 0 .../Graphics/Window/CLoadingWindow.cpp | 0 .../Graphics/Window/CLoadingWindow.hpp | 0 .../{ => Systems}/Graphics/Window/CWindow.cpp | 0 .../{ => Systems}/Graphics/Window/CWindow.hpp | 0 .../Physics/API}/CPhysicsAPI.cpp | 0 .../Physics/API}/CPhysicsAPI.hpp | 0 .../{ => Systems}/Physics/CTangibleWorld.cpp | 22 +- .../{ => Systems}/Physics/CTangibleWorld.hpp | 60 +- .../{ => Systems}/Physics/PhysicsLayers.hpp | 0 .../Systems/Resources/API/CResourceAPI.cpp | 3 + .../Systems/Resources/API/CResourceAPI.hpp | 13 + .../Systems/Resources/Audio/CAudioManager.cpp | 104 + .../Systems/Resources/Audio/CAudioManager.hpp | 11 + .../Resources/CAbstractResourceManager.hpp | 71 + .../Systems/Resources/CResourceManager.hpp | 44 + .../Resources/Material/CMaterialManager.hpp | 25 + .../Systems/Resources/Mesh/CMeshManager.hpp | 11 + .../Systems/Resources/Model/CModelManager.hpp | 11 + .../Resources}/Shader/CShadersManager.cpp | 18 +- .../Resources/Shader/CShadersManager.hpp | 27 + .../Resources/Texture/CTextureManager.hpp | 21 + .../Core/Systems/Scripts/API/CScriptAPI.cpp | 17 + .../Core/Systems/Scripts/API/CScriptAPI.hpp | 29 + .../Core/Systems/Scripts/CScriptRegistry.hpp | 50 + .../Core/Systems/Scripts/CScriptWorld.cpp | 31 + .../Core/Systems/Scripts/CScriptWorld.hpp | 21 + src/Engine/Utils/Factory/CEntityFactory.cpp | 55 +- src/Engine/Utils/Factory/CEntityFactory.hpp | 45 +- src/Engine/Utils/Factory/CShaderFactory.hpp | 7 +- src/Engine/Utils/Factory/ComponentFactory.cpp | 264 +- src/Engine/Utils/Factory/ComponentFactory.hpp | 101 +- .../JsonParser}/CSerializable.hpp | 0 src/Engine/Utils/JsonParser/Identifier.cpp | 27 + src/Engine/Utils/JsonParser/Identifier.hpp | 147 + .../Modules/Module/CModuleLoader.cpp | 0 .../Modules/Module/CModuleLoader.hpp | 0 src/Modules/Scripts/CScriptRegister.cpp | 22 + src/Modules/Scripts/CScriptRegister.hpp | 56 + .../Scripts/UserScripts/CExampleScript.cpp | 31 + .../Scripts/UserScripts/CExampleScript.hpp | 19 + src/main.cpp | 1 - 167 files changed, 32352 insertions(+), 2229 deletions(-) rename lib/All/JoltPhysics/lib/{ => Debug}/libJolt.a (99%) create mode 100644 lib/All/JoltPhysics/lib/Release/libJolt.a create mode 100644 lib/All/dr_libs/dr_flac.h create mode 100644 lib/All/dr_libs/dr_mp3.h create mode 100644 lib/All/dr_libs/dr_wav.h create mode 100644 lib/All/jsonfmcpp/include/nlohmann/detail/string_utils.hpp create mode 100644 lib/CMake/Linux/drlibsConfig.cmake create mode 100644 src/Engine/Core/Component/Script/CScript.cpp create mode 100644 src/Engine/Core/Component/Script/CScript.hpp create mode 100644 src/Engine/Core/Component/Script/CScriptManager.cpp create mode 100644 src/Engine/Core/Component/Script/CScriptManager.hpp create mode 100644 src/Engine/Core/Component/Speaker/CSpeaker.cpp create mode 100644 src/Engine/Core/Component/Speaker/CSpeaker.hpp rename src/Engine/Core/{Systems => Entity}/EntityComponentManager.hpp (100%) delete mode 100644 src/Engine/Core/Graphics/Data/CModel.hpp delete mode 100644 src/Engine/Core/Graphics/Data/CModelLoader.cpp delete mode 100644 src/Engine/Core/Graphics/Data/CModelManager.hpp delete mode 100644 src/Engine/Core/Graphics/Data/CResourceManager.hpp delete mode 100644 src/Engine/Core/Graphics/Data/Material/CMaterialManager.hpp delete mode 100644 src/Engine/Core/Graphics/Data/Mesh/CMeshManager.hpp delete mode 100644 src/Engine/Core/Graphics/Data/Texture/CTextureManager.hpp delete mode 100644 src/Engine/Core/Graphics/Shader/CShadersManager.hpp create mode 100644 src/Engine/Core/Systems/Audio/API/CAudioAPI.cpp create mode 100644 src/Engine/Core/Systems/Audio/API/CAudioAPI.hpp create mode 100644 src/Engine/Core/Systems/Audio/CAudioWorld.cpp create mode 100644 src/Engine/Core/Systems/Audio/CAudioWorld.hpp create mode 100644 src/Engine/Core/Systems/Audio/Sound/CAudioClip.hpp rename src/Engine/Core/{ => Systems}/Graphics/API/GraphicsAPI.cpp (82%) rename src/Engine/Core/{ => Systems}/Graphics/API/GraphicsAPI.hpp (63%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/Constants.hpp (100%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/DeletionQueue.hpp (100%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/ManagedDescriptorSet.hpp (100%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/VMABuffer.hpp (100%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/VMAUsage.cpp (100%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/VulkanImpl.cpp (99%) rename src/Engine/Core/{Graphics/API => Systems/Graphics/API/VulkanImplementation}/VulkanImpl.hpp (97%) rename src/Engine/Core/{ => Systems}/Graphics/CContext.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/CContext.hpp (100%) create mode 100644 src/Engine/Core/Systems/Graphics/Data/CModelLoader.cpp rename src/Engine/Core/{ => Systems}/Graphics/Data/CModelLoader.hpp (63%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Font/CTextTexture.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Font/CTextTexture.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Material/CMaterial.cpp (98%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Material/CMaterial.hpp (92%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Material/SColor.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Mesh/CMesh.cpp (98%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Mesh/CMesh.hpp (83%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Mesh/SVertex.hpp (100%) rename src/Engine/Core/{Graphics/Data => Systems/Graphics/Data/Model}/CModel.cpp (74%) create mode 100644 src/Engine/Core/Systems/Graphics/Data/Model/CModel.hpp rename src/Engine/Core/{ => Systems}/Graphics/Data/Texture/CTexture.cpp (99%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Texture/CTexture.hpp (99%) rename src/Engine/Core/{ => Systems}/Graphics/Data/Tint/CTint.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Shader/CShader.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Shader/CShader.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Shader/Implementations/CShaderImplVulkan.cpp (57%) rename src/Engine/Core/{ => Systems}/Graphics/Shader/Implementations/CShaderImplVulkan.hpp (98%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CGameWindow.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CGameWindow.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CLoadingWindow.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CLoadingWindow.hpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CWindow.cpp (100%) rename src/Engine/Core/{ => Systems}/Graphics/Window/CWindow.hpp (100%) rename src/Engine/Core/{Physics => Systems/Physics/API}/CPhysicsAPI.cpp (100%) rename src/Engine/Core/{Physics => Systems/Physics/API}/CPhysicsAPI.hpp (100%) rename src/Engine/Core/{ => Systems}/Physics/CTangibleWorld.cpp (73%) rename src/Engine/Core/{ => Systems}/Physics/CTangibleWorld.hpp (63%) rename src/Engine/Core/{ => Systems}/Physics/PhysicsLayers.hpp (100%) create mode 100644 src/Engine/Core/Systems/Resources/API/CResourceAPI.cpp create mode 100644 src/Engine/Core/Systems/Resources/API/CResourceAPI.hpp create mode 100644 src/Engine/Core/Systems/Resources/Audio/CAudioManager.cpp create mode 100644 src/Engine/Core/Systems/Resources/Audio/CAudioManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/CAbstractResourceManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/CResourceManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/Material/CMaterialManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/Mesh/CMeshManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/Model/CModelManager.hpp rename src/Engine/Core/{Graphics => Systems/Resources}/Shader/CShadersManager.cpp (76%) create mode 100644 src/Engine/Core/Systems/Resources/Shader/CShadersManager.hpp create mode 100644 src/Engine/Core/Systems/Resources/Texture/CTextureManager.hpp create mode 100644 src/Engine/Core/Systems/Scripts/API/CScriptAPI.cpp create mode 100644 src/Engine/Core/Systems/Scripts/API/CScriptAPI.hpp create mode 100644 src/Engine/Core/Systems/Scripts/CScriptRegistry.hpp create mode 100644 src/Engine/Core/Systems/Scripts/CScriptWorld.cpp create mode 100644 src/Engine/Core/Systems/Scripts/CScriptWorld.hpp rename src/Engine/{Core/Utils => Utils/JsonParser}/CSerializable.hpp (100%) create mode 100644 src/Engine/Utils/JsonParser/Identifier.cpp create mode 100644 src/Engine/Utils/JsonParser/Identifier.hpp rename src/{Engine => }/Modules/Module/CModuleLoader.cpp (100%) rename src/{Engine => }/Modules/Module/CModuleLoader.hpp (100%) create mode 100644 src/Modules/Scripts/CScriptRegister.cpp create mode 100644 src/Modules/Scripts/CScriptRegister.hpp create mode 100644 src/Modules/Scripts/UserScripts/CExampleScript.cpp create mode 100644 src/Modules/Scripts/UserScripts/CExampleScript.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 52e9e97..3554584 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ # Nous voulons un cmake "récent" pour utiliser les dernières fonctionnalités. cmake_minimum_required(VERSION 3.20) set (CMAKE_CXX_STANDARD 23) +set(CMAKE_CXX_COMPILER clang++) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") # Nom du projet. set(PROJECT CosmicEngine) project(${PROJECT}) @@ -11,6 +13,11 @@ file(GLOB_RECURSE src/Engine/* ) +file(GLOB_RECURSE + SRCS_SCRIPTS + src/Modules/Scripts/* +) + file(GLOB_RECURSE SRCS src/main.cpp) @@ -20,6 +27,12 @@ file(GLOB_RECURSE test/* ) +file(GLOB_RECURSE + HEADERS_ENGINE + src/Engine/*.h + src/Engine/*.hpp +) + # ---------- Inclusion des packages sous windows ----------- if(WIN32) endif() @@ -235,13 +248,25 @@ if(UNIX) # OpenAL Lib gérer le son. # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul. # set(OPENAL_DIR ./lib/CMake/Linux) - # find_package(OPENAL REQUIRED) + find_package(OpenAL REQUIRED) - # if(OPENAL_FOUND) - # message("lib OpenAL Trouvé") - # else() - # message("lib OpenAL Introuvable") - # endif() + if(OpenAL_FOUND) + message("lib OpenAL Trouvé") + else() + message("lib OpenAL Introuvable") + endif() +# --------------------------------------- + +# ------- Inclusion de dr_libs -------- +# dr_libs Lib pour gestion du son en mode header only. +set(drlibs_DIR ./lib/CMake/Linux) +find_package(drlibs REQUIRED) + +if(drlibs_FOUND) + message("lib dr_libs Trouvé") +else() + message("lib dr_libs Introuvable") +endif() # --------------------------------------- # ---------- Inclusion de Catch2----------- @@ -335,8 +360,7 @@ endif() # --------------------------------------- add_library(spirv-reflect STATIC ${SPIRV_EXT_SRC}) -# ------- Inclusion de JSONfMC++ -------- -# JSONfMC++ Lib pour gestion fichier JSON, en mode header only. +# ------- Inclusion de VulkanAllocator -------- set(VulkanMemoryAllocatorlib_DIR ./lib/CMake/Linux) find_package(VulkanMemoryAllocatorlib REQUIRED) @@ -351,6 +375,7 @@ endif() # JoltPhysics Lib Moteur physique. set(JoltPhysicslib_DIR ./lib/CMake/Linux) # # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul. + find_package(JoltPhysicslib REQUIRED) if(JoltPhysicslib_FOUND) message("lib JOLT Trouvé") @@ -415,9 +440,23 @@ function(compile_slang_shaders SLANG_FILES OUTPUT_DIR) endfunction() -add_library(Engine STATIC ${SRCS_ENGINE} ${SRCS_EXTERNAL_GLAD}) +add_library(Engine STATIC ${SRCS_ENGINE} ${SRCS_EXTERNAL_GLAD} ${ENGINE_HEADERS}) + +target_include_directories(Engine + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src/Engine + ) + +add_library(ScriptModule SHARED ${SRCS_SCRIPTS}) +target_include_directories(ScriptModule PRIVATE ${HEADERS_ENGINE}) + +set_property(TARGET Engine PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) + add_executable(${PROJECT} ${SRCS}) +set_property(TARGET ${PROJECT} PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) add_executable(CosmicTest ${SRCS_TESTS}) +set_property(TARGET CosmicTest PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) +set_property(TARGET ScriptModule PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE ON) # On indique que l'on veut un exécutable nommé PROJECT compilé à partir des fichiers décrits par les variables SRCS et HEADERS. file(GLOB_RECURSE SLANG_SHADERS "${PATH_TO_SHADER_BUILD_TYPE}/assets/shaders/slang/*.slang") @@ -434,6 +473,7 @@ endif() add_dependencies(${PROJECT} Engine) add_dependencies(Engine CompileSlangShaders) +add_dependencies(ScriptModule Engine) target_link_libraries(CosmicTest PRIVATE Catch2::Catch2WithMain Engine) @@ -467,9 +507,28 @@ include_directories(${JOLT_INCLUDE_DIRS}) # SNDFILE #include_directories(${SNDFILE_INCLUDE_DIRS}) # OPENAL -#include_directories(${OPENAL_INCLUDE_DIRS}) +include_directories(${OPENAL_INCLUDE_DIRS}) include_directories(${JSONVALIDATOR_INCLUDE_DIRS}) +include_directories(${DRLIBS_INCLUDE_DIRS}) +target_link_libraries(Engine ${JSONVALIDATOR_LIBRARIES}) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + target_compile_definitions(Engine PRIVATE + JPH_ENABLE_ASSERTS + JPH_PROFILE_ENABLED + JPH_OBJECT_STREAM + JPH_DEBUG_RENDERER + ) +else() # Release + target_compile_definitions(Engine PRIVATE + JPH_OBJECT_STREAM + ) +endif() + +target_link_libraries(Engine + debug ${JOLT_LIBRARIES_DEBUG} + optimized ${JOLT_LIBRARIES_RELEASE} +) # Fichier lib # OpenGL #target_link_libraries(Engine OpenMP::OpenMP_CXX) @@ -502,23 +561,16 @@ target_link_libraries(Engine spirv-reflect) # ASSIMP target_link_libraries(Engine ${ASSIMP_LIBRARIES}) -target_link_libraries(Engine ${JSONVALIDATOR_LIBRARIES}) - # ODE #target_link_libraries(Engine ${ODE_LIBRARIES}) -target_compile_definitions(Engine PRIVATE - JPH_PROFILE_ENABLED - JPH_DEBUG_RENDERER - JPH_OBJECT_STREAM -) -target_link_libraries(Engine ${JOLT_LIBRARIES}) + # SNDFILE #target_link_libraries(Engine sndfile) # OPENAL -#target_link_libraries(Engine ${OPENAL_LIBRARIES}) +target_link_libraries(Engine OpenAL::OpenAL) #target_link_libraries(Engine ${CMAKE_DL_LIBS}) @@ -536,19 +588,22 @@ target_link_libraries(Engine ${JOLT_LIBRARIES}) # target_link_libraries(Engine Boost::log) # target_link_libraries(Engine Boost::log_setup) +target_link_libraries(ScriptModule Engine) target_link_libraries(${PROJECT} Engine) -#if(UNIX) -#add_custom_command( -# TARGET Engine POST_BUILD -# COMMAND ${CMAKE_COMMAND} -E copy -# ${CMAKE_CURRENT_BINARY_DIR}/libEngine.so -# ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) -#endif() +if(UNIX) +add_custom_command( + TARGET ScriptModule POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/libScriptModule.so + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) +endif() # Paramètre de compilation if (UNIX) set(CMAKE_CXX_FLAGS "-Wall -fPIC") + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") + endif () # Valgrind ne marche que pour Linux... diff --git a/lib/All/JoltPhysics/lib/libJolt.a b/lib/All/JoltPhysics/lib/Debug/libJolt.a similarity index 99% rename from lib/All/JoltPhysics/lib/libJolt.a rename to lib/All/JoltPhysics/lib/Debug/libJolt.a index f48a1c08e7236599c88512fa5519ea38bead8454..a21b2ef110d0bd4503eefca89f73dcb6fa97cfde 100644 GIT binary patch delta 2653 zcmWl~cN~yo07c>7yovHJg(L~*LrNX^vB8mXN+Su=IBR_djG8l+*?PNS@o##uK_(lqO(S=LYU zv`EXeO6#;q+q6sjbjSwjm<_X0I;C^Eq-!=#w{*`Y*)*G_M>fwE>6tClE4|YvebX=f zvsJdvHrY1YWk3dIP`1zD49U>!kYO2~9kWwLWMoEVbjD|=S(G=bW6I^KyPJ$c4Em z7w3{(n#*!|uE>?SDp%*4T$}51eQwB&xhXg2mfV`#a(nK`ow+M_=bo(0y}2)|a(^Dk zgLx`$MSfd$dh?0Pv@CDo9FU;UdW4iDKF=hyqeeYdfv#Jc`I+{oxGd(@_s(Z zhxsTU=aYPz&+>V`$d~ylU+0^AoA2^{e#npcDXa5ye#x)-Ex+fF{F%S<`gVjHoo*iH-(1H~Y*y%;Qph@oN!F-!~>JBppe2r*KO5~IZ!F;0%eLtJqEKF7^<6iWy?2m?dV5y~N&PA2CPlE9Q!MVn4CJm@f_x2a1El z0!<+k+@h~A}$q|iOa%|S? zMsbt4S==IS6}O4o#U0{KahJGT+#^Xn!_+o)%$laIS!vv!U6@bTXYy7t_^jY`U55W)rii+067Xo0~06PqU@zWqO-FrmyK|`kSrH z)@B>Ct=Y~DFaymXv%MK?hM1vd2Q$nJH#?f0%m_2mj54Fm7&F$4Gvmz!Gto>kJDbU7 zikWJrndxR1v#Z(7>~8ijdzu+$rkQ1Co4w55W*;-h>}%$ld1gPeznO0iFbA50%mTB} z9BdYuL(HM(Fmt$BY?hd%<_L47i8;zFGe?`{<`{FVInH2?Hz$}C=0tOnIoX_IPBo{Q z)6E&?Ommhw+ni(0HRqZ0%?0K{bCJ2&Tw*RYmzm4W73NBFmATqnW3DyVnd{9B=0Q&UQXi(9xV(p4X73)+qu2{FCNk!9&^(vZGtY6W*qD4i^ zidGe^E80{m+g7cnsn!Lpr?stys@96x|Nnp571|d%6gDVyENocVsL-jBsxZ1RrZBcJt}wnZp)j#9sjzcla$!ngYGGPodSREs zu7%wSyBGE->{*ymm|2)rm|fVbuyiZC>&TgsIZ{0uyAl; aQQ?rnp@qW=hZhzXmQ<@|Pg`2m?eQPb!rNE? delta 2653 zcmWl~cN~yo07c>7y^YyXegynly)Jbw5O4j3ZX#@7vYe-XZGGZviIJ5?>(~j z`^S0C>J>*fTm64aqc~M+q-JWRcGk$6sgt@{EA_H=>Svua$hv8mMroY&(j@DrX*S4) zX_n?`k(Ozd)@hTr*(e*QT{g+4*(~kTAsy2xo2PTSWQ%l7w``g2>5;9nb+$>*^vbr` zF1^zy+ox~(rGExwU| za;9XD?3ul?ccx~aOv}ERo*CIMGczl*vwsfAftizoa&QjG+|0}TEXbibEDN(Ji?bw4 zb9j!(kx7oq(K#l|a%_&v@gXPV#4OKAIXS1~)SQ;nb4Je0SvfoB^K(Hi%tg64 zD{@IL&1JbfSLDiEm8)}2uFZA1J~!mX+?1PhOK#0=xjlE}&fJx|b5B<0-rSc}xjzr& z!90|Q^GF`eV|hGJ!l-2n;zvS2amf!P7{>)$bJOAY0WkSND z5;a6kQA^YoYlt;P9Z^@TCF+T_MSZc3Xdu=V4Mii-Sga?Si1kHNv4Pl7G!xB53(-=v z60JoW(N=6EHWux~CSp^unP@LMh>oI@*j#iLUBnimtLP@S6x~G+v6a|bY$JM#USeCZ zo#-w4i0wsR(NFXj1H?cvNDLN3#89z=*iq~xhKZfUE@D@)n;0%eh~33VF-nXUW5if7 zPK*~5#6&SkOcqnb9%4_im)KiO75j*3VqY;`%nvzOW1Of~zMX=YzD-OMoinVDvmnQitr2bcrR9CMI4*c@W!nt5iv zSzrz|hnaw%=P95bECP* z+-z6`?dA@1r@71AZSFBE&AsM6v&!6W9xxA@hs?v~5%Z{d%sg(MFi)DN%+ux> z^Q?K!Ja1kwFPfLk%jOmHs(H=4Zr(6&nzzi`<{k5{dC$CWJ}@7ekIcvB6Z5J0%zSRX zFkhOl%-7}{^R4;Ld~bd*KboJ+YV))C#r$f1GryZZ%%A2j^SAlO{Oe^Es&GYBQKO<} zMXie36>C(iSy88=ZpB&^^(xk`s9&*8MT3fUD;icbs%TuXUPY6N^(&fIY*4XbMYD?L z6)h@SRCwys)CQjH5+PHJ5ZRgLA-|NsBADYPwYRM@!CuCPgA)52zj_Jt0Gj)hKz z%?q6iT?$(ix)!<>wk&in^eAjq*t)Pyp=Y62VcWuXh2Dieh3yM{3;hcH3j+!R3xf)S z3quM+3p*5cEbLSmR@k|)OJUc-ZiV565ry3gBMYMnqYGmSV+-R7;|miC6AP0HlM7P{ zdldF8>{ZyiFtxBxVOn9|!t}z7!hVIBg;|B!h5ZW$6b>xRDI8QdxNt~eZedrPZqGlMb)ycKZ*>65CV& diff --git a/lib/All/JoltPhysics/lib/Release/libJolt.a b/lib/All/JoltPhysics/lib/Release/libJolt.a new file mode 100644 index 0000000000000000000000000000000000000000..0d59514736e6d4629f29361c7d0ee199ee9b0045 GIT binary patch literal 6516940 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
1iaKS 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
tl?DlU|MUwx$ZUex*&US4gM7QQR>-nBs=BN~@ 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

Y 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

m&{$H5>R{mHeeQi) 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­ca%gQM?GU5yNx)^}&r&9l&a^O*j|WJ{#J^ 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 HQ)fSfGt5~XMg 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%0A(Y4 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�V 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 z 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

HB9|4~wh9jtuxE3i-3-&g^{ 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 %beXo3$`edJab;7UeyFLZD2#)px>gb$ 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 (^m^?1ix!j+~R&2 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

&ZQ-mJ6NL%Lv)`M9We^m7I5fJ3mE`k$edD zH3H=6cH8tc=CYcg>q`!4PY?PA(OujU(est6W&W1@5klp{XeKNLG+2u^%)A1O!yaR@ z;vcX!1kV^3{eacMluX4Kfusb==Fst=a|p?aVRA!+?`VSlBCIM5DqrO4x?on96IIhT z!F~{D(FWH+kw7+bQ*^&-Fgb+HzTo1MM?xfrXPD9ABN2_f4S_}l0p@p#He4$ROS1Z7-e)5~o`8p=h<2KnXgE#l1bE^=ryHlXyd`8N$xqME0++dPj%0 z@jes1%N#Wf1~#RTvpFZ5)&J*c{ta?|L}RLr^QE2#pVDj*R?Ox5S92_ z@vAmye9->_cr2gC#`RN}h}ojQdv-w-V5DX}q}vZ{1()WJSna{VMJ`U7I?lgjUt?K! zHJhDk3vY!PYaZC{bqi+fmj7L0X*`hQ`H=VF-odATrGJ5nzpvwLbo)c>pmPJp4(?8M z!r=e(#MnV9Sqx>ERXq@m@)UL-DaxqD!K>vkcugga=Za1jfwcnKA(EoS5XM?n4U9)I zvFm6Neb5Sx7sw%EmA9Su5Gc*Uy!(-oNBNVoCXnmto}-6sfS{wwuV!~==|jY)mc*pR zsAYorC**I)YeYsE>U7C%zJ2dt;b7rIgX8>5wJ$;A#CAXY)m+JB{8jo$;X3?P=WBJV zAqi$0j%TCf1{Mu~!N;V<>U^T1!vO)uJa)&=mQ=&HKHEFkG-;yq=ppt^TapDjY^@f6 zARU!lgRJ)H7!SIfxdp^;_QVHAi`cgv5H5K>0H{#DhtaXFXJLLSPXZO^b+gEIP?um3 zM#mNjAv&ge2Pd-ubNrPjP)IIJw}#Ia-N2rmv$5yqNzgO@g^52w&+qBS!D?~&iBBpp z_R_Axddj2VnHz5}hM(*{a947id5B6OW(KtG+G3<%ZLk^x{tkpVOE z0-n_f<8@ZPaE#6&5KhG#Qzq*g1n7Q-lFi_LR)^?B&*~(fBGP{tGtC{$I9V{|cHxx5 z4iYEtNw7+%Qz>$ zlz;~Ue)`J$4%3vD=Djd+7I@(PtLnhXQ%hDYT)J>=QF`{2X$kWaQrw^ORxMnWEiau2F1&R3DM_IJd(`-U_CJ+MIQn;+w<$&@~f=zRP7()2+z}3Tob7f_#my)qZu+l9$ArCeyM&PGX z5W*J{VrV@rT&E;s9A08@HFayz)nq+u64}2u!`&P~Z6xflHQG4XeZFt-iiYD9MaMX| zhQd%P8Sgj9QwB6NRy(++dSBr3-9gA7&eo1?LrdK=fodUc#3IUtvJZ#I#J1 zT z&(|Fcgy(4kQz2zx6H~5})Aqr=5E}kAIhhv&g{>QtlUhFQtNB+sNt_vI*)2C0^8~`@ z$sut4jF@@|mXWl|`!!%1uhTy5l%Zvk#Go@4C&z4Hn2L~HhB$UP4bDD${08*dZGFAh z*|**8nCd|nL9hT|t2Gq=gaXn4!KBKY0IyfTHrkb%!rfRhz%2r~+ub6tmL^ZI+HNtP7w+YW{T-ILe2>E0Je z+eh@#T`wm)2LavA0ki-2&28}|H0k_wK z84Jjq+tiSBW~~=%jZE{FMV9tqo;v-EyM=YpLgmYZ#;}?7ffc#^voCAwUfj)_CNj82GtQ*xrn@6$kDHb9aZIND7Xcd6~E<*ui zhq?u@=S8;wj^m#ip-0qp$uYxG5y~LTcYX*cG0+C|@Ixk65SlvVy(TBFG_FqY$70tpS+Eoe2q3+O<{p->owzpq4HI>ZkYlIEXo zg~ZNt1Jv8Rdz@Bp6!DcF62P?STlM7Y{W|a#GwBg6Xd>R<4T%En7+&W?7-RD437}Eo z3)~ugT*Pl1nuu%Ep>^pdNVq5crrd@T5rULc>ZbZyO8Ins#y+j-++QnIN1~%!&s5O2 z$V!C#Mfo@hNRB5m!<}S!wOWzUR7Z*XS5;m|SqNz-0XA7)M-9ZqYV&a~)@8R{i}my$ z?7w^{keov6DI=V1qIz+Lys zc$YY@kS>GY0LqTW<42WA!9-E9&?fxvCEYj!Irxv&*IlJOM_LqZAT=Tu_$?rx9zOt zZCr_`V?MJH^9R+VV@rN84aIPr5jI47>dU5wSBWbvKG0~_AiQ)>NxeR(DU~(<_F-?y z!Vhu;g%1gF?7i>X*l|xPu?|tHW-^)C)B!l=JAE2wz!1gnvd6)jVJ{JmEC%keHzj3l zlJ7!$h0Y{w_7|o@&FjfRw#7?g04bt6 z{d#d6Jc?|7r4b$TFh_zQj3f0w=~z{ zIK8`KD2gll6Q+J|Hy*= zCUsjiEUq7ULvV4C(@+d^V{mcB*QK-_lrh^Qpb_<>+_kvwr^X91D9){e`yn$uow1=? zhd!j$#yp{;(QGY5%d2VtqqAf>)*>BF-U+0`6x5{;0y-q|4*QVmzAf>Kpp3P0NOu$L z3x-6F3_BB|T>1HcI?ChVKAC=$xcJ^Q!E<&Y$0G4%?aKxDR0?Q7WQjlerW+TgN zgMnpXqv}$U-vkpT6IoUp^{H zFCiV;eqD4wpkvEOhi2pxmhI>VHp{5m_~3eJ&utbX&7E)PpjtLDXdk$zxk&Sd&(M$% zloAQf?Uf7B_{{Z}Rlm%K#3Bd_IN~9;H4HVTJ`*RQTH&6A_B*ag;BPfd4Zp!@%=^|x zZW02WcI{}?n3jB`n@(_P%y+|K)(Xym#>6k6#&o<38gm^OdClemm&P37(@oKx@AYa- zZA}3A!)E|sk38lrJMetp&hQ@$nT3Xf$Sk!_&1f`aUa;|Bz@6bIo5zEv44HSs(U2j0 z3K<_TWJU^o!H{{*ZOD|p<2GcLi%yj{fZtG9(qYQ>fx)98(|LLf5<@QlLuRkfL(Y(S zWfvMUpQ9o32n?AIz>sM|W3_sLi;g#Zeg{LQsh18@eE@m?JkXKazZP%8`!WSdU+y+Tk|P^>{2W=VT1)Pa;71~&6(T(baCeNVS`Wf zZyaa-v^w3K`StWTB!*bbDUo3=&Mb?D4z*w7;Q+pXoUwfZoQV`c%kIT4ih}$ieQA43 zFGc*10!ZaWposUWw=CvKYQfW-(QGyNZw87eKSc&|#$w}JkRqksgU))&#EeGHID86e zzx%s*bC5I6Wp2(i9C35zq3G0$^k(EtwK>tx&6#~^6FD(k4xCxz7mbJ1^pnUL;s$ai zcGqpkS>Q|o(2*)Abz#3d=?(qYBCV9&#f6|Hge`dn42@*cioEP3&X|!(-B=UdT?z$ z;!MHHIFdFAi78o$oUx?1I5T7ba3<<5S{d*K?woxEIP)fQrf{{3qF?;fzI5$Zy%e3k z9zf3g5-7U)mA9$saU>pf1rY~eU_!R+Vn=FFv*$()$21#&J29SAJ6`6O#TXz2m9Zz#cbJFlJ(xLayeFi!6iq-To z(lOis7mq*T%zpYmaw<7B?>>OCiF=bS(!_AZ*TBaZ! zZR?OJwlOZI+#3i?`Ntz*3Vs2ZqW=z<5)ZlS%`F>T#C+{P)|bw^-Aj!2j{tJ>*FemH z+upL_YyMi1ePQ?siD~m!Ohu-=X5+tx#Eh|fjDCtK_XZ+Utp0@#U`p!i$Q0W~H&YZJ zyO|QDV3)_)keIN%+D9BQH;D3l-$2|wYxFdqUtU1s2VIpOHerMDu?eided#arPh2Oi z*!ls#vb;ntQYHiz`O=1ay`-3AqI9NkIP6XhA8Sv4^Vhpm!y3oAeAt~V!r_5vP{eiV z9FTM*`2HM5XA$8G%M$eqP@k3~;$=iR}` z9X7Dg76?nG6}dxiA>E>O`Cl$k)5eM%TfII&E9mTO)l$yMHiC$l)0B>e>tO}>KIYG9 z#1Ha%1z5EZ5#xjCh0U!?v3vsN-XCZ?e4fv^%+}I`AkweUN_0t{zJg znRmhk(P-IyS1}KqI(A1dRpvsSpl%~jwM8xUmgOt{`mn37B$H3#x#I;x=cjP)X!ROx z12Wm&LFH`FQ+~vUAe&avYK>?uh+W-06gyS0TkIS%lY0@x2ebc*@8K5F`r5lfRMW7C zHe3qAMbrw{Kk>^q+VO*~5gj-NW3?2O+ksuT2_F+2c_T!?!L*cMm(WENo5!;PowRQq z<-$5DPlk0wed=gaZ?XS1r`}MoUfY3FL`eI5f96z`| zsOOr!AMe3NfJiI}X5UN7h@zK-5mZuBeo3#|@lXm)A4s8ceslW z_(~=%PPENT=;*Bma9{JmA#H=esC@{#!172>b?6^!+MV{=ya-chU%ixlRP|uGe~h>j z>ZLqRAkKz>j>;RR{t84#@wUO^tpqDiH{IlubI@#OZuYNWRGOqYi(&S!5W`y8VK<|M z2~y0y7hh!E-gZ^68?VV+B+8F;hJeG}Q6@Vy3|zN`gonel{cH5m=Z)b9D;!&8+=rW^ z!Niuzs}>MN;>v^DlROfFmk^5jFm0Z z*2-Y)!EuiFw{!PBE7LhzEX7F6T0!%VAO$5CifO*EyfG`(uv-u*Tm#gteTdZMHD7X5 zSE?Psi+)tpM_qH0ig)=-pf0@_sJrwOb%m+A6G$CY^HHfkC-yG`>dYOs5~S{yDBOY6 zeI^@g+wLdgZ{92C)e0_^e4JoS)$y;>{BJ-GFDHm2MP}j|!1{9D+otDAT=9|4XZX%P zM9cBqb8tlUHxL@JkYVh_5o@DhMTt^mg?jd1Bg*iDWP}XZsk8iztX3+fjJ_P^c&>r0 z@BEwq&Z?&Jp_WgI;3j{kQ*0q#gT?F$`cPk4#Z~h?2tmNj;INQ0L!Vr~SmLSqjF-LJ zNIk<^9i#aroiJR=#{V4`I~l&p843^`;b^C0#JLfcvWaj<79|@Peycw&Fv9;p2y6>@ z;dWHTOPna`zv>mmpL#{H<}0H7c0xFcVvJAvXcWZ;cIW7G9AUW}Ee&rWEq8pyd&5Eb z*1m0!%ANbpmI*Tbs^mQj8c4Wd390*GhMT%kKHXxA{y-mf%-2@2_ywd+6%rPbo%Dn{ zi>Kx)N8J>_N2l{kx{$gr_(OLBbt}Tl^x;6=ccXi3qcauKUU@up7OpapwVI@DQDd{& z^H`|VxJKsI9QuQ9&Ec_5X8St)4r-1aKkF`Ynxljm`!IJWCY)xlsO}6y zKqc8E(pBn{door!586f6=O*)knUNM5pw(|tRTszHh+>-eiAI191pm$jWsxb8?jKH2 zIduz5igjPY4ixq~<-WPGzgNaYNoo>l^icI} zuhIxBr>=qfvA?9!PY^jayXJGGiMOwpCd(VW+Hk+jHX-6ZrwxDAIo#UtR>4@*h7DIa zZI}@1)`q{JHq=96FB!4EWdf%S-$ZSgBSUR?Zn#?;{?@RQ@H`ySrwu=lZDH$Q0BzX$ zmc6#~+5bWtJ~xb55CPh-cC7k0)P_GBJi1XE-ZA-fJ*5ph)}uCL#|@Bi6LQ_nXWdrPvMTx5y{u+L!m`Rch0AJl>qc%_)h~f%wc;u+tA*>`%PQ2@&(lJ` z-?yx+-@>wL!ex~d8Wyr>_+Kw8dI7&A8j5UD;|2b(0~-?}%jig0Rz+z&Oxjb+Y7c}{ zH8RF5&4?bG?f8;gR)6%0Abp~DS^0X~_C^ly!)4{4m1)Kec{wpwp0W#VSp`m9*>D1u)$OI+vI_KeEvu>N)1#T@j=p78TM5f5Ap(}wm8B*Bhq3Pt zYx3;=f3ibBc!01J@Cl*@5s0`z5uXH9#1(KWYCu%#jMjk`HG>gHH7ZuED=4nk5v_wd zXc#JvT57GOiW(G^w${d3Y-}EW&p)Cj_xPN1?sM*S?sGD%xBm~dI@ii} z2;r*TJNHAiT3M-FiE8ClVw8rwSF2TK{}A8w9!+Xh|1(jmwyw>KjML3(73pddwF^U< zcK9TXAv8JHr_}Z%i;M?Et@`*ksa03VL+U@%AJuC0@dTn)Pf)FH5w*G>)udLw>()_D zMQvKts*fuyGM0i`6`X-Z#-jg2t(NtqI<^C~lJ!^k!h3b!E(Vbz64WX!+f7sWevwhV z8r90yuY&ClYPF6GLGi=pAz0U@d6Dsu%Ic|VhibLoeM=-3kXn4)#>)#^9!pVamE&c8xeZR^>3FPgae3G&aMg=~Z& zJKc59v)+4P3~RnG=vKOK1bBOAMCbRf&zIEPW?@=f&fBQ(C9?nF9_VDM2LET1)^crt zaD>fp*}3;~kp?*EJz`?jy1vu~2&L9rR7UeNT?=Vx8EtCqnk)0|0n(I1u4ML4n+Nf7(gG3$pY-n;Jc!9- z)o~C^$od;YtF5IRw?1MIKNrShNiWLptdQJ(r7qwHFIMvaEG+Ar%*NBa2};IrPinlg@WOynmUAgzPU4SY`*I&uvu zB87j{a8QoQKbQ`)Y#OK_+1wyVb+zu2xj%chd-Mi2Q01u19>R^>;cfB)9cqu-ltwVTR*H=PwQMNXd`zXT!5 z=X$=**ig?^TJt=j;-c|Y(B>pHH_O*`DBeYEy&*gRnw8)4K&xb6Namd6HiZUmmg@-N zg8<#I5%+_c8GM#L`h)&-w4c8_F!WvA(aRj)v+8FX;HuYtI&Rx)&USE{zOm4>VJ)<{ zne(;l++#mp(yc7*m>2bJ9dJ}5hUpd@r?U#}7cjIt|IdKto9n&J``?!Vy0t@p4+gK~ zF`p)TERD33x*U%VSrO}}PRhhD*6-Txs$qrF`r7oNa0hq3?@K4Yt3X}Xs=Qd4F&gyf zW!z59r;+epC@;2)FGF_ZBO=cb`CjqmDL`nZue)dxSND>5O_HS?qw zKCOS|PxmH|XELKxT^nEWKlkTH2f{YAY_$k-!od;b(FcuLr9X4!wspJE#Wy=c1bS1j zlXrvP9G^P1!N{<`X?#_RNBS6JzAO9fA$`=yV0gslE;MMxF+ z-e6|kVs`UBm}cUHdpX51KW+fHifb`Adn&m@hk>W<)x-?nx!!y7@h-F{=BZeh(So>>`T`fC{5o-L;Dwk$4uUunb@lOz;B$CxR~%YEkh ze$`|)LY_ttn|S%I*2~Z;zm4zS0E30TT);o3$nOlpMNbV^I+af@!eW)V+vFA~W@#0j z#7<#z*f#U->sPv@^rrV|@9KSZm9okoTg?jKm$mUqcB<{Ye-Trh6tWSW5dwGJ&%O)+ zTw~(&2fuqB3rTJlU_3VO%jUNg$B@X*|qx6kI;QPwy%CAoh==tl;vD zjU(p%!N5Z3H~S&pzD}_1%N_Z0e!@mrXWC!EOdBs;0>ggfsP^*sA`v+GF}6O;{SeA5 z6XswtZMza*k-nAj@fB$-J*v0(Z}vFvVkh7}=cyio{~SpCnt$w|@jF-B-<=M7&@ZGP zWUh<)!*))>U6u-=!6KE`^Cd#I2b#jAS;`+qty1~w|W9&Raz%*C#h z_{|@zu8^wb`N0|&d=5Lc)%`U(qrJ%@4eWxOG%q*E-jjOX2!RO4JhSCo0f&B<^!CA7 z=mSNbJl2hZ10mS9NWDz-jBv@HM%>?8j=RBP zP`nj}dHW-Q{+%>^-Wy|9tn9)~{?bSfg01OIp7vW9!jy5myB3GA@Kl-|Mkag4OECI! z4|6>iHr|?6k3$QK;f29ujy9hW2!$LRPE9hQ%+e<$h*1vZT`<{hG zj%{JTnvKUKB!X`N|0iuRm<*lj4^gB};P^iA5Wn^?k5WDF1#Y1k|6!YsnEw>n$NOlV zg5-h;8F?Vr&96|dQ~RJ?$GWAQfpu7=VU$WW0i*y9GtUI7E%<^4jG_KtbnPL=OZ^QR zuhyLU^7AR&1>%I5hZa}PQ&IUvV1~bbgn_O~( z(7yD;sC~uF+NUd^ia$%;1llKeK8w1vo#@hI)TOF7wuhigRG6)O@DtD_@RWgtf^B@0 zE=`uV=+YABCS96P+o(&f3*2=DtQMHjqD~xtiL^{C{D-G~M$~DMyPc@hUuiZVf&I)!F!8-Q zO^Zms_K`Y$EmxyDIgFIDY zLxaxn(+`0<-9mLz3{W&^ReD0B z|Jg4*aFLPo!H;Jp(WLq_ph@ju^IV$*)4v)XZu*D|eL#S)47t`v0-6VJi8GZYPL1`S z3AleWspGS?=nO;}F`Ywo9O^1Rz=Pab*5ypXDhl%VJZ&o;HmRY#dNUYN*X|yb%h_un z_~|aqTEOOUg`fo$GFENN<3fi6he{f+_AW;Ji;;t_!v87e@FZHcvb6c&k{MJ3hcx`U zjsiF_4Z6UklmkN~d6MDM_sa!ZrCzPef5enSwrhCXmhv5FgiSMvzYNx_=8|IH2HwYzxj+!I+?ThZ*Sq3n2r75JvV5qddBalBmnb*WfXZDF z>kP^r8{*$-S@Qo@Ze3@AHUxM|88^7Ar{Y}MakAwqD0go^!IbyP{WvoIXHf2^EpuhZ zPDHsIvLTmwiiEYP$Xt2l;9$0tt1J3K$(zuEsH8tAcRGiy7z|(n7KZo-J^dKWz*Rcw z359s9GaSJdOKm5hd*ygP{S;L0%f6kvf^v`QpSp$X)1utro_(33(lwIE{mzch2Va8u zNcD+iNeBpjZ%Eai<_*Vp(sbNPaHBULpklZGx&`i*YKA$NxEk4@D@pDr=z43GB{J_>mbYC4kq@D}WQfgtw(G252-@zjVjn@oY{kGt< z=&A63iXPC_WFA)2d{bKal@=%6mtS$=)_L75j?PjTn-iC_6qszU!Wfu~e8n<(e>U+` zIt@HEpX{U7Oa=C7n69N)L4hmSsjIiZ;yxpC_tn9_3Oyz<@bcnd&AeRGrxbf5KwRj7 zSvL!9qXiPRl0$C=Y*9&^iXmb;gn$2x-&QB_Pzr*vW{gQ{L3I3UH9x&0B~F?HV0QP* ziOXK~F&K@z*~42XO9LaI*v*aF2KFPPN4sheZpk-(4*(st`FnZK;n&g_Sf()fn%3dd zfcVko(MsV=PVpxF7Uo;?=Mr?3b_}C?GW-sm;LS~1kg&w&c5SRrfb zyr+KU@&j^vH~gP6z3_`KKhUzEm^z9qapsNH!xE>w2$ndieWeAvhUUD#hx~Af^Ku0B z7>o&DVfQPThD#h<*Zx0%&FZ!zY02J}B@V1@%k4u2es*5{{HfEp*S8v|6>aH+k(&sZb(wqe1Dm=Fy^-K5?^wR5KC;xflM*g>v@Gun} z#l2(N?(9}uMk;kz*&trvulYkPLj7tvZQ{5e?*!=qS^aH^&N?0<<_JMX5SW7ZseOE^ zm`?ke+fGJF89g_}ODb3xYNL7l4)~J4BulV&aE@hwV04duDFOvk9xLF$d~N>PvA2}w z)#4N7g`A~=25IF8$M~87f_Xc+R7icull^eHbDCR!?ZQm1$L}y3_%(AH@|IW*8|rXsj8s=Z>h}qP>t0|P18)_6&yJV?7xfvVYbqZc zh6yR^HEaNF0Ya5{rMr23eEFX5!3?r(9?q-?Vy7zLmBFl=9pHskf2p`!XIcWp@+|fR z0@klslE>wNqQY}#ee}!23cmQ;(fV~XB{8$gV#!LwZ7(>K;(DSKwWZw2U#aZ-4CA-% z%HhcNhKS7oDLrR2y!mI|Q5er5q_btO`K!{uB$iI*pQKcRa)^GIAV~Dg%l1o;nV$4q zAMnx68Vx(wi?OhCEiyXxsoqGGsY7JU`6$zjt>E1`Mc_a;_KjXoN8<6eUIp=G!b9s1 zgIRoD{b-i(*i+zK&J{`Cj!j_P<$0r`q`u8Q1|`dLWUTm_1bqy2e98P#YN`DQ1cahDL#To(K{xNspL!W4 zd8JfK!(7Bi2P$=7si%gX{ThNMynz@+#tG`loQ{G8UhEk0Xnl1d#Y%=s&UK=rS6iv# zZ`WmltosKqYQ$YpHi_?l^8 zOU(m%F6c^sftid>uDfZ9Qe!#pDTEoGS{C z*(?WX-9h`)y&0*jDO$pXlZU7YC9`v6!iv5Sl;cThC+9l(!GrV#LxrT)UqB^86oJwD z3jJz<<6*12{Ol(JaE%(-8;>W`lT&T-C^7Ia+r-Z;1r6V-l&>GoFeqp|c%yld{KyQ%@z zzW4IIY8QnP)%JJR9lP_PYEx4{wRfFqR_(i>+DkgOsJ3#upu?;jW~Shmp8cG8Ds>;4 z0Z9KyPKM$U3kQ!_s>Z5c>1GL%yf2Jm4g^x>UB8$7Ac=R~(^>b|oQ4j}o(Q;5G9QCT z7mY#^DQ5~scpL8ju4GrvrT^{;mik|bJrrdAG}L?q{iS$0tJ~7|N7qjPqg<;WTIW*! z3OQHr<=W?Y=zFIkCffoTZ3f1t)PV)&S0=s9?aWOVdipuyr_JYf7pKQVFfmibq#Ct? zl1v>-g(Gv3`Q;_1A(2C3epOiSNQUcNmYwd#lMe% zSyH;u8!X$NLR=uhb3IsDLxNKONOz+~A$b?>q7QV2tJwz^pgHQm(Z*#UtaZc?qdu-f z8tu|QwKhjqKUpv3@&(H}TcizR=(c|xAIiE?_fvq!wkOy}WVAP~oEg|pU_QXlnURRO+LAnjYz%AKiJX*cJ2QH+BL#O z-x-1WS&uQi-kf_s92^SIf|x6Y1+9O9d`^3*2`V6eB%5ncW*d@LYVwu7m#kAb!l~AE zoF5j9>&P7JMA7%ZGC)MRFy|&mp4a23drl=o*>s*R%CohaW14U2_3lMq&=uP+O;9D} zW1HRrD{gV?)2A(jvzi+5EO*PBz2%F#vLRvKfSn|CGpQ?Li<*_oo( zui{Zk(JbdY(=G3hCZEhP;)FMzMsuJyoD9W}qo(zSWz**ivv0w=(Zc!D_XKVOG6o#j z9(19UO|QJjt=B#V3SyMLpo3i@u?8hM8^Ql6)48y7R5dJjy4~|mXNC3++keG1b$9U` zpmPlGZj)@2ZP!bieAZrj+eEQ7o-kB@w=dEt7s7@>+}fENFA#u&Fw?n>`$|ri`){&) z`I*=K#HC~0aX)*p_Zd$*%9}F%5zy`B@siYDw?BgaW~<~ z_=2@LI%!fD@ukU1oyBrcpgo6M+Jyt`prYK?Pu7$G;nd7U(z_wcI=jRR?O+ubWpy+? z_RJL0hmZYLw>D5wa3bbYh33Fd?~T`=qB za*KYMu13VUPiMQic~$G8W0O29g>y(3`MH1_kDmOEg#^w zlUoKNRb1!RU)`5w$W#)Mb|WH9i{cO8;@l}L>II54(kGpg*m*l0DAG(h4qa1TWwS_` z+sz`4_OU&V{fmgyvQ)##LXrL^D`jQUC|&?(nmmX=q&bT~q{F+2f13az)tnP(|3HymAE4fe zA}w570EAPWmr7rS+z$njP7Tu?Sz6W6bVN!->WLy%uZ&Y1I9++uFk>f(wD$rc(ih5| zAkxh%UZ6<7^qtdWKLxLvMQUBZ$$B-pFA-^-$om?KwEkeTNVy$bv~=09DiCQufO1`&gvaqae8`i1d^fh%_aI>ev@V z+G<&LJ<-wz-)AUN`+yZYRi{9tX0S7L)0P?P`w)@#AR?`c;%_+PYz>S02SvJoi1gE) zf1^mxuyaAAMXNk~8ZB_L?m@FivwUn9;qV2uRI^-DvJ^yWN@x-3y!Rpv%Zc?fCq3fQ zY9i9SzJGht8>N)#O51LQ-?oT!)I@MfTn{3Z_X3e_JIk2Z#UE*DzYZYMkzK@FV6kdp zt_ienP^3=>*oa80*Xn_A>d7)`Lr7Ezi1bOAZqD+T9Zjc*NYjW&t?T0y=g%tc8E&IU zXDlWn{paXT-Hnq(Lj02g&MvqLk%ftAh}^gi>;WF=)f1}NtI0G22k=43IBePH<6%qA zF5s9plP&p+oo}5gHdFN9eKRx*U??^|94{c)YIj#BOUin{1!-a{BzL(q)|8fu6!r;@)3G0$KVXbaNxzC6OnJj zWQm%;RZgej3m0ufz7D?N&V?^d!WYuH5&0~Z(8Cv)VzJ@kVdqGBd&jwRK zoCaG11E+aejJC$!iP5lteZ43fuE2F6B}1pEn$Hwu zgYnESnUBZ5+DR?PzEeHmEGQpCTp74;4K6qNSsl|=;6-kIt~%)4K5DrhmJXdG%1^_h zB*>WLW80*XOW~`Ch^wdBn+qrs)=i9I-E^>jXdux-D(y_=Y0KNvubjhkYACu1=d4t2%9(a!MKEzYrb-}e3~q?-l{;#tPdn0>>-b4Ib?oN?)j)25VvOQObSIjsBIRgEWT? zu)(L?3~6|%0*p9A)Veafw0R*{D{S*<@S;CGIKJ-Y1r zV*T+aA9B76Y+d2t%{akYrnD~73-T8FRJ%b&lnqtR!4#Y|EP{g>et#GNngi$5Tt9#C zn9}B)W2Y|sK-QKPSvzVN#~H?0cGfw3HPG!M5Wx!9&vu3??&7f<<^X$|R?cyCg-u0W zr$-J^{>IKFauGJ%@pw=M}5*CxHIYkNlt4#mk9 zBk#@sW{Pg5QTN>7=K3zYC=!@**(M@b9Dt>3ePo2?Z%4y|h~2%aVS;99@7 zk9I~mx16FvAh18=vv5GjG56yT)=Lbbyeb6?A@zshOjTsQQr%{}u&a3Lxax-XujcicT;p1~hh|3{ey#(WXrOWCzhLv@OAlXwa zIav5KU4QutnZIG;uaTxWd+2!Ke6elH6^E;`2vU^D#1Lw$4;HSXi{vCQ2BF~B0QaDIP;aZ|ix%9YC2`Xe*_rnaL1#%zAgu_^Y? znUs?*HCVVL2BV$rA5aM}ULk?DKrCF_&H)52LWO#(j=0*RNxt<#Z3s&oczMQ8J z4VXtDpRI{dICl&NT~miDq43Q1Kw#M+EL^t{`TWSkdf|(j6vIu(&qH$EEW%tjbOcK9 zQG1l&Ib>bsCgjGy9w?M_F0`CK7$vyD30OyW)dS|49Uu;$@fwP|Y71hH@r1(4naH}r zAwZz;1i{=B34GcC3A~F0I<{ir-JU>T&3q)#G88f2Al&Fh_}md-#Qn)%d~`|?iA7iB z39L(9gn`f+hGNSOEUbyemTz=~mU;hT%hsLP^1r0z<=C=LjV;p>D6Cas%PDdkb{vZpndl#x_{kvKv{KDFqntJRhN|W`|cTZD~oaPSB=K;{I3KCzitv1ZV1J}ze4Z;Vl*Dr#hi2r_XgH+ zE}#S}$6(>s&L9-)WR&2t&NwzUW6NW{K?!QTVQlEHp#*P?Mb`Dk!nSGHa{n+K{0ESA z>J!N4qu#*h)SJj>`#30^I}x)L(X)}y3by_70<9BcP@=G4l?T0_)zCQbghmGH_V6V(vjjtCmbnQLj7@1lThIY}+&h#_2xE$37>(7Is5mw%r6+msTjs!cP!b>JS1k%O{xg}EkB~XKygT-yI83U{C%qh>LF6)l^zw%E z;`jx7F;}35+Gf#UE@ZPwl|^lEKB~Hnz~b%^V5*)7j5$quxj}$gXCttZ1q4`88{}Bs9YTIR z0ao4B-<=|X0U_K|n7WpGE`vU~VlZ%MHM`JI{WkSmcSCq@y zd1S@%1?lCaKXR<@Ap$FlAiyd}74tR1v4sR!(WeNkW;?0!iU6y4Ohg$=fHg!TFvkxB z*m?r2a6TC@dkC=Z0SK(}HzLYm1lY1(2#mT(fPF)N9bbUJN)C};<_93Ksy~P*ClO%r zy|Ie+76JA%0cKr@zzR-~D&GVk$BOoGjsSZ>fZ6^c z99vF+{X=@O-y^_0+=x-iL}2>!q?gD*1Xl5kaBK|$W{W{!>PG}vH#ZdJ{>2C^^?Oof zZXg2N|AKIAI|24G27y^06JTmL6lMMr1Xgo{06Q9p9J9V696L;aE$oB6*#02E<`Q6q zpCK^i9ny<~04w^NaIBaBYamq=&k3*%1ehfYfyo|{DiLkT7<`Z zZzX03EOx_yxZ9R7KLh#ih=q~K`FkK&p;9J?*uzc|%-T0tErtw!R)b0nReYs}>kuQ> zqFxQXhy<4)OJQF*u4$vHOwFF0Uy;_XRm6a--anw@6p&iNkScq26l9#w7=-qT5HTWo(Wu{G`jP z5dNa0Q|gCdW<8!sQZjR<->4DTi+vZwat89f$b`P1*yI7EN^B=gGASM|s|O3SMS|gn zZ;Zf1l-9i}G)g_aFa)pd0Nnr)c8BKJ0N5f@rD8a8tZauwKLKbNiHR;1U#T#X@o-XQ z|5qd#=17tl^GGL5lBpX>dO0Z3LyF7Uq>A}#0&J2Ot`!@;qU&H5n?T6_vlB8ob2O35 zSt6IGBgNAvU#UDoQfr#MFwLeJZZ9E$;FKH;1KcSTIi?+pX*tWTkQAMoQ3y=)4XLt? zkY9I@z5z)rXA)Y{Lix*K1vs8$^1RhZ{wQR!{iKQlQJx~b*bdQ{>2Wrxk{OD?>c-2e zK$Q0+oH;Z7l1C$xZKnw>zmQ(a4!SPA(#gvnu@NhZ=%(u=b*GI{zK ztfDO=zyiIwu$OshrH=#opA#le?~Ho~&153VHY88!{V_-jdy!P>?TrJb_9z+2Ye|)5 zosoR;6e5>S&Ly)U*!EZ={VND8cRT^+AgNFbHW6So1QlQpG-v$fd6{ZiH3iNPg7oq?dKxn9sBDI95sBLx3s5_^^sLeIjFE z8$OKCvTPjELf<5`93!-BK7q8z4v{J|!jKm23_|_{XU+^rc{&bhp>7c-UnjH_o^hVa6<1Xo? zp3qW7s&Kv|z}|)NpB|k;&6Tl`_;dxKB{>CYvEC=W`1qh)Y(+>*>IG7zdpOc!n@a}F zX6KU3nSR$&5SZl=>7}O+4w$RoA}#uBgqF;3q^06hq{X;{(87|8wao9Nmt-HqGuW`h zfdj0^ekQaWAyqanKw5Z*2rb$PWF-GVdYRyZa?zb3qJDwEa<}PtK@9a`G_bPQIhGzLU5-WYj~|_4T}psGbw+Esa1xpe$G@Z( zhYuR1)!&g}`IeCXiu7V#E~D0gB0KAc0{N4~^WlK#9qPW2_D9o~ZKty8l)kwJdns_qqvB7xWJK{}U~^g~v#$u_wQ)s# zxvLdJDq|`yjtPPo@csy_x`vSNMvjJ-l3pBTgci9gnv1l#IK~vKNH633k;&Ef>H6|7 zI6iqcVDgzLWU}MDOalfs!j%K_%Z0fJOtU5qnLOVgnQVQ4y%YoxS{x+fF?ESBIf3-j ze;zVfvp$XjCU5ZPT49XUB9jZ+=V@YK3mnaFcWjFJ5&<@ZkUx7KGTFL;^sh24{3A77qV^ySYb3WS@At# z@^sS6s85j=` zaITc~!d~P*k}4}ml~MDtiftFE;!E;BSJYuI`T>NNKD|(p9X}$+%GSE#f~0)Dc^)j_ z_r_V_ATct4dlyXKZ-mK12(a0`ko^5WkzTfwUh3zgC@c5HX<@*qNiU|~(OeXa$YZ;o zblKmF59gDbpHW}pz9s`EZGrd+jIpodEHLqn4Zx$z+TZDFs4_Zl7mTsmMp}Ns+|*^K z39zaKc&h0*jB?4%48UPo`3J;<`J!fG9_q`#z4#|!WAzI%nOEVeoCRilp*Umm73Nr+ z0%*w(F#HMw=81Z9#TThl2`$}vBQ2G`67sLP>Vf>Mg~&1LB&L|iJsMzuVY&HF8j?#Z zXXWAaI-@rZ%goy{Ou1a`sx-kt=tA*JnD|b`S)j_ffR&zbSo#z>mO7uvtdr}PuB{ELXb6!*p>%KAGpdR-W=-WBKltBb^$upBLp z(?gZ|Mp6ESqU0jc*1&)%jkAHiNCR<3E_9H=pOdEpxrE2? ztw2kSECYbGa#O;TG%r)0oPLG6K$xruL<76+8H$qgc^)1a&4|G^t5;Afx7C!|$b{XZ8 zJ0_3|qP+T?#%$PM`M>Qt}cT0v`dB}X7vTQRu>NW$iZxee9J;e zeu3F8Fo81ssY#_MfD8Fa$70UVLpRP#3Pxcb(oo1lT7)?l?1>ZL_sKySyKDi;>RpU^ zr4(JoD=aRR)4U-*x+>#0OJ^}W|1@7$j%92*NkO6Um_`S&qoPGql%DVfv(0$S;-o=u zoR}JKZnW6mb(IXfqr@Z498T;v4BWGoBw_q8{NNqbqdJk}^Du{%Cm3#^R zstJM*&MNqjeGMPVuJDn%6+ZN5;G-Z8K1%S1nk(?ZaTx&~1!CiP=&&1R+3ax+K8m#P zaT-6);zzMo3vtCLH`B6jFrKlTHiUs2b1nEP+Fbt;2i(w!xrGOna39InOTo$VvJYGc z>gDKI$`x|_(sXtbORMstOmx5VhXjGhXCtb@Qa zBfK~;9}{xG1EXjR+`fj)q`{*&VJJGKa##6&MF$>$`@+m)2>up==lWj7PUezM(pbFW zeAwzeC1!V?_q7M$bE+K*;2kqB7tO> z^l;)Y(T&flNuf%bN@^~2Oj5qcmvcab?iTC>UrJI+scE6kprE8ucv?`YN&#kq@5Oy# z_V~@t@E8N!F(hJB8+u_$I8XpSZzeG_o2}0|3oL|uuuPDyh?DAHZvc0Cfk0=%il5du zRSe=n#hc1*%@x^s`ugV-3E8a^*^|m!iS;w!qco$@(Xr6dlf2nA%yT#a&(`#jfzP&5 z85@iaF?)u=01#(z=n?rOT>}oufNWVpqPyA9IXecjRIU&4azx|1+4w>gm%9H2`t!;$ z*vek1VD9%C+lf-kNB^~ne&4f!C3KPzF|YKXSn_AUFe)Qsc{$4xlBku zR&tDfF6M6N|}*!3|}OS%G6eS~Qk0olQJn#)tg)D5iG zF>VBikh9(}sxi66<&qwt$3=O~12j@@1in^^Mj~IeLROs=`ak))NVxt$8^-~?AHLE` zD2HSrrrwa30J1Gh`~Xz#_u#6p{X|h^*$?@X-YuuawgceLrgOQb83@I=bA@rOEw<52 zF)Qb*q^pC7ufa3bdN4CC^h8(oPdiH#{4j=NP~&n=+ENs5&;L<%p^we=fe|Hjx`T$@oT zsaMxvbkj3)CEX^&kV|_Y&AI?oZ@Um;`5eND)vX$CZUb>76+ZiHJt1}<6E?JD{%Vd_ z>6mTYKYYREXJ?e4stYtw8dA3b9m{0#=nOTVb1$$?sTO+%mDe^phX7#?#@8fct08YH z&F`aoZt>@UcwIMvZ3G+X;nhjc-WT!((?HsnJz(Y%lbOp9(Ea5x)eD$*6`|l0)U6X~ ze+lICb3prkLGh11Y(J$fov4$xV?YG+yTb5*Nv?fddpe<7r(V&@iAqR%KfQ_D|2b)9 z#UwB)GjhQyU(JDj)2T@Nzr4O;$&Yc_FF#CIYW$bS6>pFh{yRFO>nS7pnaE3(%Tnc^4-q{WKt({r!X=x1$% z2X1j4HMC2jau2skrsaX>b8q`_NC_*sWAl_b{wt?!e`fA zxS?G;bl`5tU7c?44eS4)ga?!Rdz!g_b2!pM_Y1=%4?MvhKJe@h*@>l=VTG2@<&@y% zh7jFuPt$JcjREj+a{#=>ctYM{9QXQHtXvrq#J?{Ww1=O(Cxa)bXBV+>H#M5;S)L@h zVxIoHSRa*G-~`4!hP)2>)XU`>ZQR|FyaG9Fo(8k$jxU2?=2{0iGLE;*$88Aj8*r#Aw;XJmq^Lnnk2mg0vc9u9a~79TF#emKAsSk* z3@v>H)onF7dmwLz_)%*|X{B?BwY@JqTo&tT!EP}oev=ff*K=bh)#b2W0+L9!=Btu$ zaWPC*jxvppd=eC?vmFLy=w%9RTF$NhsqyK9=tu6oC|w*I4_PUiA6w;7pC_!+)rTpiOxtt2& zgidjyT^^db%M36h>EF*tR!kn!HE*7HL=yEBl6**ewOMV{K(-8Oqss+-B;*%S`luio zMwMVWiq{C@O>7b`8{s$vp@{eaABs0+;5qRotS$=pVm^r1K3nG+*Q?OJ=fA{zeGrKE zhAaTZ3rS?X1a-p4%zj97ONARhwcG&lX5?)F@m6#8Hi_3Zy!ma8bJkxrSI(~&KNPR_ z_lVLHP~DcAw+C{3h~KucmQ}ij(4qe&-nS^;MHzW0-n*%6ztrNAUgD=9AM5v;0Qn*i zFT3j?FxyNwi}&o$P2%<8-HWlsu_=)sh*!5mvs(KM#cNMpf#UTOITVm{{ddX7;=O+! z#T$5^h!;|CBw4i%R|DkYpz6D3iV_3WQI+ug)r%4=rQ~CHtWqeCvi*qM=xbbDXWRnI z0{b+D+t&(DOwmE{`_wA?G?`flW_Y#HJjxkZT}4%_ZZV{y?DHp@EhqexnYQYKpH`gw z;HRS5EkC8(SHRRQns_Aei4wSRI(8Lo>-)e*>@yIDjXev@QP4+VT)329xdRY2MWPYb zydsXQK8#pvZ=IX6T37ko=xUuEKOFc$3IFlx$zJ73Q&^pQbrco7ntjTvFLSok z1Q1|WJ*vZ08{m(-4P45r1UtXx-Tm^^9pJ{)l5$`oFl3yi3oJx%%MZ@)PYhKxoXk77 z=Yae2DM;^vYavy5H6(>0#|WUF3rn87)}4Jl3wb#~(*<_;u%z&rznTwz-f%R5zSNe5 z%XAapEu07&#E7%La8>}(>|Oix=Yl1rF0DXEY3&)c=E%D7M~cAcr$beknCTpEph>nH z4nKO~szWaD4NX(vYD20$n5~Bw8B7!*a=|poi#_w6_v=Lk@!oLn#n#2CC)PX^Fa8l( z)$G>|@1q+1x^;`vG?T(dPnz8}p^ez=;fzbMQThu&dLo>$z-~d%wjHborZgT#AO}?U zE|o01v~Afs1^8}PMmS#a`tr|v&t7A0)2eZv1SY_m6!5$Q$9t=@Wt#Bqlu!Tj@E?7p zo(d_V0dlJMLKw+~g>Z5s%pNE23jAG9j)!XFG1Pkg#K6^?udVP6;Qo%XbC1uV&)6A~6GQE?L6APIGX9!SEh4@me!U%GO|_Lb|pq5F9k zM-D%MpW}aRjk)XpCc*kx7(R7j*dvv}WS~MG5fc2bBMIe%gn65h1P>8e@DUPj+zq+9 z`PL=hPmlyZ-n|4b4c(tSEFY%j?NGRDJe@V21+2cB0FYUEi zpt=RiTFX`2CJ(uL{v^7OD!x1Q{=tSu8O|?>DyQUI8t;U$#xYE~3#{jEx@3iwcqsiuH`?(>Hm;%IX#uX8fAPripKp+M zGYgWhQr_ZcP`KJ9E273j8It#NyY!C>|Lt+!f1V+~i%F1NYWEUfg2MM*vbu0QmC>SK z+LeD?*vC^4pfyO{yc23t^t41*p}S`52}xb@=bQSd(mp1zYtoIH4hfeg>hr($GVK|GrX`9t}^qd%mWEqj=~tyN#%y`gpS?7|OWSb9_sO?XLl zcf8^c;}?EZ=|?dwXynDmy+Z-AjNu2TeArV)c}`A@=WyP= zF{Xa(g%2w+L#oFl#45WxHVVe_3qPvVP`)w8z)x0UAhPtz*>zo4F&a)9rGeA*@xmy) zf1pL=mVl{;`=S8!f3X_zdUFxpDk$CXe(8x4?=xe`b*QKWt`t~uy&%Wi35NKm>>>A} zQoL1$msxPfI1;ZZti-n^gsT@c=kjf$V17gn|kg`!)Bn7eu) zf&GyiwFw9#zzHsbD%&B9tYGBx7A%~w0SnK;XBM2Hcm;QL#SPc-xxJl$b-Iqojn~0I zVBAg=ig+W!*oDt53Pz9%t3>4UC@f5eV&U2CtDxn>NMM!Mfq;`P-+2HxI4Q`w)q@c8 zJSX6WIUHf!XrBo!pFtSfO~|^JSXed*3pe013!xbaR758ChD7fjfE&Ea$mcOz5ObI( za6>i~VN?u8_p~n&hNdgBE)xsKRS^kp)j;74@)%-P;lirOvqO*@MNS|=MNh>1dk5eK zJhK28m0QsTc&R7AD4Bz-GY^Hr@XP|m-3$4w!Dkj_PZIvLPT3zY5PSyhSU5EcF`I{> zf58hZY>vg2Z+66%|3%hi?nKr(u&{m^Vy+$r+z>XPP^^8iaD7MMv+*4krV5Z7K~iiv z8w+n!BW5p5dv8_YePfCoN1ZdKy*H7D|b> zbSzx58VR%{A%WdU;r=KTJGLC>kMA4c0S6RbAjQGI1`F3Ffw*(~U}4(;EX;-gpUdRf zGP4I+w+{<*HX=9nCzG)u0dd z6bl=pu&{g|7OumV_1m$qZ8)-S335X>jIa(;k%#dT27YsFithpBa|bWPT!=b&a0Ie$ z6Bc$PBkR&T;n*001lma9-d+HsWFN9Fdn8Km7!s%*g@tdB!sD^<=Fk-&?ytR2f+rA0 z`6w)0jqgaz<8f?c4niHwM9j<)#QYn!%qd2-Dj$vG`JeT-QmIWl? z{RGAdgmD0$hH!2Y7~>GexD5zn2Exb;Ll{K_#wmpH8-Z~LVK~O4P?jSM#XRKm&~PYR zb{WN;`7O5G)d$7>xNsb}R7}9a#|Y+ySojtej;qGP`_EwE#aOuDui){&MsAyk1L=k{ z4x}Y0?vw}=$`b(${>|r5f+u|%pyj_&C{IY?yI7c7hK0*X;Wt<~>N_m_yAN{XKL!xW z@kux~{ze$oax7eng?ax$ZWMioFzWGXi2fb2?j;t^edi3Ljxs25xVpPwkE=B}?-cOK zR4DgFGm=1_gTy%tk+c*AT4~CNRdRh@u-~hsie5;nzzY)SuA+ni4j5g9D8VdJ#bG3q zse)87rIM-8g;beBszjABIP6=KUT!Mz>fQm5P5@Yx3j(enRZ?Azb|7Q{sbVEnc!5Hc zCOkR;V75GTqZX=3mFzT}7E`69N}(^B7sYw(r7VP0N$x^?3RV(eqg+sB%1ITaw-MQO zoK)F=9#;ruVWf(dRI#j5qUo4OdZ{N*TV(#E%6(GB_agSfizZdBbwOadHN?Mr0jXl0 zjN}&t5b~cAT1*!S$6^S_ekWBlYYCG-BXY4%M!7&1B?Q*si!)sz_HEg#0jN6snW?0$scox02@SrO^hU>+(3YBAyq2V39t^0qVyx8gamwuRY3YX2{7FhbP0zCG-v}q^+RB`E9em)H;GhZKqA^+~*dWfJO{hGrE9nf!t*z9I2%ZA7 zaQnrragAi)uB{*IO{u)8`*1g6$dXQe28Sy7yE+C2&);NNqN5@qd0t~~wjE|Zrf-T# zb*g9#=Q}6Pvoa1|6gOb{0tg=Zc9w~o#XyAo+)HK^1Q++s)+tCB%6C09C4J!_U~Qtg zF@oVeVYsi8$7Ywb%`PGQ^1585IM_4luLSO|;_~5UTUeaSYBL-aM2U7=-=@l^oI8SAQ-3<_HrJzKpRSQ3}@8Eb%wMtyuFuYDzHB$d5 z7Ea_ov)efkAHIk;Kx&38&h{!i^5^ek8>24%;8_ddmQ|}~C%|cc6WS_er6*j0=rIi- zgiNhJrF1h`KO&5c)W6u=!TdQJ^B6$*$^eAcH7j*wGxEG*wSNfT;?GYu82YW5EzYiq z9;WU#)7)3?8}HV{EOibO4rv8O$mnNt;zIfJmD~+AUvL7b@$y2OSvA}+5?}9!X6L%h z<_tb+aaA})Bn5KUeU?9AeJ%G=a5 z@TsnbcOMIWuhJgV*}1T_xcsM+K!iI6eSB0mS$TLDT zy@BNzjmmlP+|<^I;r#1*&~5#*>^X3ClX>B0U&NE!!L zL1lwS>TzH%#^-jjf=Tl#g2@oq4wbmLpvlXbspy0!YlY8a_ABA3Ol}YKhoeQfxTs_B zIZXgQtzn2y^FdOW_|xAYp5iHDcw+-8!{NQnHFTH#B6PK02XoIV#~^&*s>!xJruanXp3`rXp7Tj z|7DA#)T-`kNq$$@HUIzF;zaj^^TZaHtmi~(Dt(;M7Dui01jE~(o@a&IZH-}x5iVW0 z(i?3$gFUTeih7QLLuiXqF~_P{mFJSllU69HNu6mJm#o$3B6gftxzhq&)MPft7TB*> z3>;Au`sRt8ZtY>?v*9FLlVE_zJW+zl&EuE$R57cl{9N|(l^_TN zTncS~`7pyV8%KUs;A_@D5Wf4Z48*VH$KF-#Y7&Xxnud3Zv5oKocLxFDgUHs3M-=AB&`)0mHD<- zkcf^JrOJ#klxM(xuFKgmitLx7{S;TO5v-1&8yN6yYJjt)5Q>I){*nZl+Ai5*7#jta ztU#Jw#4VBXgQPA7NfYnnjl9z!@2Z>|c~=L2BkxufBJVnMLf)N&I4aDb65qy5IwjGT zT=ZeMG6`lc^Ii=&<29O@F>&H_cinY5;ggZIb-AqX-FU%6A8XR_8Rkiip|*=T0Ap|%;kRS*rfEc`B#0%gBPr}8ZR0CS?m!P0%QKM4D zmfGC7d5za%Yc*K3IAdGt*p{}`CV*{f9ZMaiLp#(4%CxlO*wi{Lb{yxw)=mJO>Ac_j zf8OW+y#M$6KA$QSR`ywYpS9Os`?qdu%)IsNtU6I}bnX*OK%a^?xq5F-Ks{%KASUx# zn<&K3LbTl1q1PGUg4+e3v^l$*uSn{R;_q6_W$Dgr+eEDx>gd)be6Ia+2KOcE|D_ zV`r&FN4I=znrwf;Xqg?Dl-hU%6nVKuiHe?ziC0D37N2-#y(yF5y>U7H(WqK8IQ;qF zfqGU~nkTe5#E7hKa|dBS<&nF%in&9pXso7PvD6ubE&o|^emC#)-#te6!bQ#GsAn?y z!|-%!tbl)-1WTAEoeGQ$@57VO>?lhw2*=l^3--P?J$%L2_UC4NZRsj(_LiBYg^%SA z30_Jp@ZHjb+PwY&!5b0m6TGEidZwHyf*%Y&d5il&Oz)+b5={ zdY}u+6Ybs37ezOWffIF>YyBOLNGOk~{<^%}eNg3n-RYbd+zzRsz*qKFLaa#4A~Hn_73%NM7FJ)B4n8 zdAq`{mb;vCy9s!N_b2A1%6ZAO1%zpY)igm^$_RN=C8=Uwnw*zP^Pnm9^ixm@1h&&X zKfm0{>D;f6LI_kyuyu#9m~Q*QZ*m<-xakz~Q8&cL!Yr)Mp0xnhRXl%aU0;diUl6nF z#q~!Lww7iv((k10jIvO@@4DpohGKdVv-k3t_$7C1Xs|=B#4;I92AcAiS$IluaD$rZ zxyyeIUzcJLEHQj7z^}b@>iB>T#%5)jC+jiHNxK!g5m?3!=_q{?#0)WG-_d}uJv$_9 zx^RUpi<+ImoO$#hl)Ww}dkl=-4;u4cf6R8CRLj0w`L5Ve!B1#?)rq_Cx??dfRR`-- z5na!TK5vR{fFHvfouvAN4d~Fbvz(&!?(>|O2F`?izU?>{+Y@k~RCu@J6oZA8RC{hv zfv_V@lW|8jgg?9^EiSSnd;K5Yk+lfJt*(RxRt+t%d!p|Un7!V62z+G>G~bqVC~xNl z%n}u*ON8qWnCti^5azx(odw_LkEHwZr|@WCp%uTn6o!=}I@OGyx@-p&go5bBBLVRA zB@aA(6FzVcy z(R(8trV-LU;P%t*MBla^YdBj8=`XD0jU>Y4%vOM1L*pp9k6^Bit6c7)GT>JJK#dx!#iMeP(Rd9 z*X&CU`8~5PUlkPtildzg>eUCev%qXEC!&`Vb(0g(=QQp&2i|sc@}{=qUXAKC!H=W* zOwhaY46GZF7JWtY0=aXlc?2D{3hVX&kdcr#V^^=wr{ zgF2?c6hl7^g4SqBZ{*F?-)BzFV~%3P$Y<|YKnRHOGTS|DaRFQ_SKHf#=iQm`Eo*Iw zsP#3GfQcN%iQK`72>1SwT_@uvPHLGb$QO5EQGCJue^Pg|wPM$Nm3G0<`YPl3hs5j> zalLgc(J&v$w0NeR4c>YhuC+Q|zI=gV6Yv864?+Ygh-o(Fw{SyCW(Dv^2-0fIWM9=oHNe@-vO)>V|U@|3G;Ka6v&BcZVb-AmR3_ z5WO@q;B20962|=w@3r|0iu~dw-zMlj7b_~Lr(X6*pr&gp`k1mg@7>JK81ZNd_Zxjd zwR1}d#sSf5p8LFh|67r!Qeqn}SC@fpXzrF=8w0js?{CBU-C=Ms+2xk}_@ktli50vI zSNyUOcP^XhMrs1sq@TdwWx~;r>1{#ut^nluk?RKq<2AeM84nArAhW-!+)mmsmhAIW#h=#k>|$YIKicHxEdu$Y~P2( zZy+&;TmF(BtFp;DYmqn#T^XJ@9NB@y8OM=Wbr{(w34x_^K7y;!o`XD3C61j@NPHWKc@0P` zK8nPrapbxMNPK=a5-;+D)zFVYV&ZgYSr;wPMf^58p#2KF< zaq)Aw8l^~Fw+V^ek05a~AtoLb4SG~8eMr3cc_h9-d^OvVxN|NN{}GAZ({SWnNX+X; zV)-c~{*Dmu!qw=Ths1wJ;`W(He2kb%VI z+FwBh2RXR~zktMr@t;cY!Uum4r*jgVuJ@mDx@kJce+{P-{WDJYX9vOQvPBr>oUfV+ z5!#5;mAbt+U7y2?(=A4vZp#BWo#i@{;$w~i=(>2=(PFJQzoK8o87)>Z> zU3CupBhrHEZGhfrU+@#rs5y$@M%4f)V@xIepZ<|hjK`!a^PZ7;4K9!b+k2!RZCi5H z+d7Ea)dOnBa_@@Uw$&OJ2rMOdoO@xNC1TDJiLeHbeI7!2RllLRIehp0L+mi_-Kd1Y zt5w70S;D~^;cK<3M85m6V{9PO7!H(LrZA^kp`bN=2*#iUpEOx!7OOoL3{^y3EV*dAZzoNJVk5c70`1OqHfKn z5lafy;E7^xhJOOz@{zskcNXn&(<-oJY^{Y_1(Tg3)iBRHcIsrVS-8 z?oq$Yd(YASoCt|9cxaM;pt-kY()=*En+a)z1TQGy9CM`Pn8xyNFIfbE3Emr0LqM_| zP#!O`Y1z2^gpBKXbO9qWm46cETF&r*R(H)V6~0+v)~v4czA)hyalQo()G#gpRYxGF z6bzwT5$#-0<(K}p@!Cu5UCpEBEr=PW^;Sx6aB{z4LR6j}zzk>HL(DK9FhhG4V21Xp z!vr&o;R@mpChBSsGrWVC;g9M;%@2Hy*MH6}XF@W`sUSLfs85|9nzE3}59Q_$O=kpwwfYia7%8o*}7c zg@=Ebl4Rp%O`kwnjEoN$@rrS+nDY(1VGG_jC=D&WR*-9DLpc4-Nwx|$9q0!kKz+jX zkrse}J%W6XYm`t=H%+j89%Y*+b>L+_UA5&iFr302dYz?-qtM|M9uUrEyHNy<@UVT? z{YTpI+9SRJSuM&AY$FYJ%|8;LMkLrZr5f&Gb>Lw|g%R4}ilHH>V`rgGXgbd`m2GGg zaz3?~)hxNT8S(xt4pRVn!Q|mJlR|is9j#$%sPc7sAv`hbW(i%?%=T~*!7`VEeg-TP(!GBX%Oo|&3J8|jNU+QlJhWMY zWqJsf8I8CgMeLnAw08<*cs|%jaS3AYG?JPd4q_ao;mM<|Ld5Y~#4_th4ss{jJHm1t z*+w#m=MocUHX$bEG{+)5**%f~pH>7uk0Y@@6fLPw2=OwkzEZpgfzMK6l@JrglZC+N zB{2Y>DuQL^#=!yDx&cQn+lOp4l98v7qm`I2pX11lk$9$cWSoXG?MWmyl5i7Z!YF1U z8-25IWExLPhL|u~VwKb&u`L);(#dE$IEe}4uJ)m%-m`Eb!AZSmA(T5E@L8o}T5s+H zU}<*&Mg6b*R=b0>ekcUI%DU@E0uWnQJXNEksA+}DLfy|T$wV9=^0az$f(tM=q=$@FV1l%*7}an)@5SO_deBNCr`K@3yFig*9On3o#d=q=DkeWlF8iQ za0)_=X@~q|MZmYflUI+}5Io`UM5J#2pfYn#vJUuRTGyxk)^}8kI%w`WfjeVAy9tkB zW+PlVqhwNzP+)0L4>Ii;KFBm@ie$Bq>5LLF=TnIgkW6*GS=~7Fq$xvB+9-p7JYp1x zx@c|xqnsfZq`PM;%~o znbf7VeuWC#M+MxUw1$4c?X+A~8>Ikz60Xz1j~hf=+C@788k8Ga&7!qz*2lw#%|I*S zdgDE`BJNe33At+A-IFx-89jIqHy3=spJ+dw>c3|cm>gM)7Z*F>;wJP@sRdoW*w3rW z%g?YuK3%?2*H{I*oawN5mw&vnFJs^hb7m%N7+9=b?8gHu@pqbQmdViR^_(XNWvqSH zJ)@&TG+=!(HF!AOh5=E=ru$^9Ars%~KS0KE8NkJek1TX$EF3u85JVb>WQ>j*d|m47 zAsO2%Hg#}82{9>XdMH!D*_omk#SIhT*>f|~?nYD5dQ!X~if|U{wReO$5}|s~>Jd!{ zhW;sDduL5P)LoV`=!A1+id}M<^bm+mvA|*+k{nyY5G#)iN>1yuVpAs9^GH4uimVL2 ziH`1QxvU53raf?j*9K*If#9H;E2^s=hyoVC{8rKa3l1J zQPhm^>dt%5>4?(n2n4J+4Lz1#leiPrsCYZ%iWz*2%yyb6$ zM_JWR!QAzMoc=3DDR(DaD$%?>6eO_R1D}KkT6WAB61X3S1n$<0%z(hT574%k^fqwt zWR8~e#{h`vmC2uHL8m8dbKy+upQj#p+x;;Ln-=QQt1P(K@UX$fwup~Eu-MtvLyH|R z6NkibJ!d%3)Go$roF5u{$5;+_y(yA+E~uPMpHghG-{i&Yy)OD0iz7VMAM?z)nUI;- zm1}=4SR>*5+~vk6%_1GFxKDLoRW|K=E5cN20J}Vu*yRo5^Bu?E$V-a@yBy4% zJsFAj66o+Y66*-g*p3#x7iTOcM!E-y3kc5GL5S}mabpZx^!*u!pepmzI5Hi)9*p!9 zG}1YIFjk|HK!?vDv1%d`mn7iG*Kp*1f-~w7;8T>~$h8O^LVlp+@69XFQ0_~-%TX8kplS_;|2ge#P^~gy5kq(@S^^!_};(7;U!_L zj?-_YABn^B%+?cpk2&Ux!y9Az&&A=byNz*pvAO>ehj-5xhd1Lt8HWd#rGPmD_=j+8 zKcu88X8UZ`dw+BY;vnu!EgirXoPCw=ulEI4F-v`x&|3N;+<4l%2W~tYbrvRJFb)f1 zJ0gzwqNyMR&_ay@%|D6u_o?O`D*fTz)ec$(_1?k&T8aewv0Fz)Y7KVRIRSG(Rh zExkT?Fl;p|2!6dKFi?xX-eOq5#ZZ|2^O!9>O=FPk}n1>T;1siaVh;xM}Bq)N%+CZANYd6F1@WByo}Lat8F7wqn`mHK%y60 zbNIJViu&sGwlZJHq-mu2F3e6>fhO_z;7$?vT%l?tWjJl*^Fki+Te=#iteOy;?DA9n zmcPv5@aJV{XC55J7`bma`nk?g<|dAFRF6i$tuenUmNjLaH73mki7A-S># zbL`K064omCPaNE2#qdRiADGIQ2T@E{O(XxQ;6;ow#==$!lEA9F4I!#mJa%nFQ2x{U@fFiTCd z&2ibj{W04Z$0uIZ{x|CUwp;lL7Fj}ugacs;-l)a1OfL902^4P$vqAiYFfq4M#$8?7 z%7Ca0UwhCSEju9cyawgKUA#(H_ws;Ad^(mt7a}b?)g2OFsN}AB%AwfB6KdTk*ovId z1M&r^*mMLs2jpwcuLtBym?maNLPGNbu+9lQFr`z?j{dju6=5~~aCWrKET?@@mgJUA zhYN@M3~*JFJY@jdW*{EJDL3Xby!`#nL>mdo7#0TWx7ITT*{|kLE{2U`!=N0Dt({R9 zHW=>dk*Hq*O8#2|jDkb51wuD0a$HWh<&OR9!1W@sRKY$2WoZuLy@AAvy8StC|64Uv zIGTU0^#c1VGdq2w|A6JzAmt5cki`*u2Q^6JUfKm2ZXZaviC+}>LX9{2ca2=(l)B!3 zT)k5;QT`|C@&aJ=6=QNz{(88t(TCa9u~r%P&dybXSg8BO3F|G>@>a*%0;Pjk=-+#V zYs{l|=l*L%r+(zTD2(V#D{H({2Po*B9HGlGZy=(Rq8{_&pnCAq{TE_7JBdB^G@4jy zQXhRUsg*t-Ef71g$ChF}b;}qM07_iB9wb)8;F)`em{>MME9npn0M!oRpo?n|tt2?; zgRb0Hab*24B)%StBNG#AF)^_=A+)JTLbTFVfuQMINNfy8&~z!WnjYhyM;sJE(U(10gVa+F|j)0f#=p|abyEAv9_XZQ#TiR?#ux;gbNOCfb#jH(E?eFR+Ht|+SkF< zAbXw|9HEjY|j6#c1Pzg*&X-(t9FMRniKq=WOqP&iT~Ml$Il$ZJ8t}QJk#h0 z+_(R!yu*LWb@`g$9ll%_RrW@b>k_#EOJmBqbde<2#Z@++_0DA(okSS9AV6bsN(pd^VJuO!M%kmRy*KFdv(L7F_|2x2DPXg?Cmx`W|tz3R?) z2hoELJ=LCXBrT3as5!W8AP(da6U2e23PX+8gSAT{$Sro|Y3TmDJKh9Ifb2mX6s2Xg zeN>`T1*IDc0)063vs^j9aEv@tDbE+PY2tdB#X>NIIY*#mp54D{G_yG0oQy#>5uH|P z7nQr-BT{*~9CXNtI~=i{kwK76tp$Q?YI*t0PKrGOmjjoDbt(%bx^BFI&H!hQbp~Cn zQ)y#}Te|tIo#Zz>V#2ga_<22T+)8WD#S@;Rf5#Vu)#jZjLcAYc*N@cUyp}_YWR)B; zpYn{HIN^uJ-7Wg_MQm2Ls<6@aE8?A*T#*ERVw;IGyPG+)#d{6A7TWfhWR2s_{uS+@unzmz!A8X7*c>HlT#q{>g%AV!S;+%Z=t20%|_6kPAXc9Phkm%{{6YtS!ml zdcyngvyfT>7r{-#bqaaNF!0AZ*bqxGloiu1oMb<3h)=H8KI$VJjfBZ6HZiJxQXm=Z zz^}|@k93FC-X8fv*%jsjS-s_x?WbvF@o-(9{74Fnmpc2oBlsNiIQ;l^F}qVd@bQn{ zGWYnqlpAc)9hbwz?>K~snOha;a9btzz6tLKQ+=-|>X(GEsz|-QHt%E+qy?edV=}ls z@byfA*Q2@#Oc*%{!au;`I?g`^uSZ{K2!3MVJx1fTH$rZg1?CSI5y^gWqq_NQV^Hq* zhw^?_NART>T2}c-@IRY{MZD3Hj31x`u;9h@$01f6dPUb5;qpG5qYN?~c~4F9ry$j^ zlZqHQ@=*8G(;)(jEt6zjJSG`KvMwf99P`cVAqhMAli*JyYx7E0NA!*)(9X*FjW~4c zQ@qjq*4DS+k@B+D?XZ;6kG=(7_RkWI;8YM`;}5cO@S6UUkm+e5%z_=3%h^+SWPwhY zwui`Bi=NF=7&&)v9F+$yx&o2#vloe|eL@C#NYqxVgzDq|g-4cZg~!1|%QYF+fTFRr zurw$d!7yQ^93=U11?0g19&$}yxE?Up#^)z=UWZJ%)}w&GIvC5j0sr5#+*J>Vj+}_j z_dLz*F|SCkvW9i=QTa7$B8FvYgS}uv^I5}iaOGF-er1q3pV6?4chASHyC^ z`AiQ?VQXCkXUF0>ht( z?T3C7i;-v59%N%9xyFw}=%E=MHo_(x*$|Fw{EQ=8Rw1#R_+aXhSTPw#Zpa2Ugq=7t zO#-C~5lzV0h&*=^;!DUz-E`u0AOOJ+1bT?Zk#EES8yQdG$c@Bd(@#d8iNyW0aDvdI z9wtbls&a`BhD25A4kFJg1PBVUk&QkK46hu4Xo7TR)^i99LMLU2p~(F%;<(f<+SqBXmYC^km=*#^~H! zL7L9N6Fj186bO8+8`1=kIyXmH30_q{8*v3RagCQB)}3 zxqYGZwfykz3#%KCz9oJpto5aitfupF!5w1A5$FO9=&DkrgAMQ3S z`Zjj?Lg_o?BOdaRmRCA1S4yJVos-%*BXTqFo9pn+8vLdMzOmppQ~1BR;H0WbQ}>m! zqD!4nAA73ja%%gP^(74s&WL{Qh<4NXHuxqMzj+V7(cm{O{1wb4vl6TDnXyu+ThTO| z3IVWQT!_(GJ>Y5x83wL~x7)*8@VS(!BQqSs}&fvx@O6*kq=%zo@P}O>yX_*mf z`KyI3G!~-+)!P_O>Oo3gg{W?aMIW#n$~8Bcln^-lUMwG~OkR(xZu2ZIIWlmwXY=?6oUEG z7YhVfCwli*4qw+8blAMh$dS>yd<7F2C!)6e9;`@v{CZZYLDwp#gTL%3eE{Cs$QFyQ zIPI5PNO9UDmKjjF((eDYn#+l`n9C!>L6F|DMZ@~>PeQ%;Prk%@@epc0R4=|~`kU>d zewW=JmSRg;PzXhT4Z#}Lz)#^R+iXFJ^}PN|DzSDXo8K0~*vvmWj54D@YBw5B3)&8H z(kO^cfF+=WhoH>BVh0;I{kk75s}&p>&m6LgJo`*?{`X~?3GlAg!n>kmKaWysd!xJL zz?Y!LW#p}jFsj{G9mios^+Bodo-St1h2L#DI1G3$gtiE(fwllyzo8<=MzIWbZ77?xApwgLnobut{E;`PQ8@IYJ0 z6AHmG>WkqQ!JWZ5bovd-By)>}_4-MAD5WYJ#{>qtIP7vfXZcfXknAaFY&1nRaK7P- zCHcH7;dD+HzyF2;Ll>9^{VBMMT>@`^ir;cZU^?>RHX#()e{~FH-aYjoRC-8< zt<_{v@pBTn`L>GGX|_EljR%6h#So+GJyT#$o)`iATBovK!2|XFpW9lN8NUm>%`iu) zoZu1=+xvz2`e>Dr%iTSUeqYo}F-bv?O~#GZZU@t5v4;)3X)J~9dXw`f|LXWV-0~;w zke7Kg6fD=mB znMIB&Ngb-h^9Qk6##|Zjt5Gsf!vmXzPixgv94V4Bv~9MrzBrww1U<=#+F&`$;bi$& zX9%`Z^dbpd8BMbIJb3kE>lx8$b}Gkg4maHvWQM%Mxinu@!2m>62~ly6z~UOsX#&C9 z#;R!*u=Vueu=VCZCgO?FsgJ@E?`oY1QWtp_c3*e)Qmb$GO^WsIKHe(WefsDheY@}1 z4hc$G^kfY*#pw4p+Rd{Hq1Ja0Z116_7}vsjxykMqDi&hm=ue%&xB-#hx-c6)u(x$q zy)MT6WW{2#2Qy>A;W_cRtkKW61wZD(7Tg2*fkw*z5atICTWsSkVxFherW5R4Zmb{8 z`C_a~L%)(JYo&R;32+9niZf>J-0ZgBYM=~&qehzQ`8{_m|Jtw<<6wznxe4%IPg-+8 zjf{E>8HXks++<%9jaMf^x`Fm!B-E0JE-#msIVw=d4yHkUdc{m=qTx(P`4^Q5%}HML zKctBC{8f{L0=>7-&yTA99kOimzcLPbB3@Vt9Kq;1I{i{-JQ71jkyR?nMfHK43MaJ~nzP|PjMl9Y1Ow=h-4 z1>E>7JD00upUH8)<$%UJ%B5^qnvG{n-HMv#OQr&gHb+2F9T95AHh8b?Hc zfK=L}-pT-(TyQ+hdyLJmdK^XR(R1M-No}qX>5Q8vSaSYRxIP3n&!wLn$f`F$f`f8cNF;)DfmzINcS%9N_@#kjy#KF?v8miP z$ItX#j0dx}`p#gljpgaUFTb3<2@h-vZ#-zeWSke%uRz6k5V8X#bBpuo6rW=JDF_tf z{uod+E$Q03s2G1#2i`WJV%)()#W-77e!o3P-E1d{@mW-if^h%ca!th7L9l^>Ge9wl zLjFcK*$fIe)lNt|;oa>DodOg2;wCh@Ad0bfpk<02%rIxshDxtu%v>FhA&+abp=E{D zHiA-D+#oGeVDApKOj(}e66|xl9}691kBU5piG>IDN&l>^Tjy8@MSqE6 zEMXZzy@iu#AK}xCYy3bnR)v73>5i{Igqm@bLNrnhnvwfC(Tv5s^rPAu<`U72TA~>> zCj=EEUfMUm1~g-19B9VJY7XNm?D^n%g|Ko7D9hp-z`r0h9S)I7| z)6e+VMgrmOZ-xkuzxIfGIS?8nJK)`48}&H+{?3~teDA(~;N35Xg(dsk6X1RK@9=Z+ z-QTzu2urwr2E6n-f-JWIOv}`H5V3@lCah3(aE6nhUS+F7J#)d+&@& z3}@N}a;7cvm;5~kLQL!0V&@BHn`KswoAoN)!HQz)W z_>_lfgpRM#{K?QL-eL#hr;r%Z-j6`XON}vZnQ)0%11UcKYA6+0qJSpnyd-|wg(7za z0}kkSu!J4lwy{8Eh7E|fA+aM6iF=T^bvnNeVkxWa;0M1;Ujzqq%> z41D)BrNHwoGP5J&FVZ3UiJ_;tZc8N+!3vXnue*A?Zu>$=9s!$%R)WS^LDd2 z8X6`)(hh?3u3vfKhs;#Yfs%;qQ7HD`@TXrWN`2lj>vidQBvx-n;;y+sT-oJUR`_B2 zG&KX) za<&yRAnvx3cCR{Y{TeRW0Ixd(d(;;zYeDJ)!xBLF73*Q-)iQ`EF4)TjRHHV}4j9iQ ziKg&FN46T!qtCFgEiXy{nRC@IFwo0%I})1?Ah9(ch%56Xw;@zxwh4&y6Wd`m#)ORm z;U8H8BflYohOV4vu!HW+diEfZOZJ6>xkt*>Vj65;yyz7|hEEh1It_5xYgic7HIcocSC-hb= zAB`g~7L2)2ME{zF&Zz5=Sp5!BCJnJDiAma3)GJ?b3R#Ts3!nNuzN z9L9qD?Po*cIG5J>!2$MuY$9~qT4R!hP_|@#y?7ly*%=T2z(HlOZQjX!vw`1#GC{jH zvWo@VNU(*c@d&>ktGSc9juqHaGbaK<8+95$33D2v9GUEHl?ZwcFyFGmh`Z6Fn8|#c z!+p2~L&ce|?58)@mv3cH#Q({W;8>RfOXmoK<1mNYF$Y7IyVAe6GE7 zZcXA(fXc|CM8y5@55^sx1fVKT+(cw52!2NJKm)XW1xzps+q%Z+0P-8HD+bulF33XI zFBQA9&cg<-Q1t+Nw>EMGFuf*K3KqE zGFD+$U#GB>2qy>ZTIfl1jmvi$M{%d5YRrus?7_x843ZJC8fF6K$vpmMj}`CFJ$R!mX)bNvY`9S^Z`wPoUNV5LET{Z$p)ysQ-O ziDcd+tQeCXWQ8+6$~tk7m5s9SoxsYSmZ3JZH?&DV`dImyk@toZR{9=dg%;_W{9^+N zE6|zrfmJ!unz0{PNfjB8m9t(}74rCK!b&4REJLeeuUeuF&;$`ymRlZVrK@%RAz;NNDnnM@^s>?bto+?8 zC@BxJ!qG-q=MS>->Vn93ffZ}pj6qh`elVrQ$I5#Od0{+ZrT-yTRDRn!16GF+RvZtp zQs1`b7_hR~&xWkr^sS0t1T&s!YIeqhteA46tZN2Y`LZfn}e!b-_QtlYbN7@Nk51KvPZioC4QAS-9QM``YZtZ+6&Sq~4g zlJ@(!$AFdk>=lEoY`-$=GaoBAV&#RC2`jY#qzt_vL%^Hz(4OIhmG*~NX%oJ>$E@H* zb7rO7%u+RPkibFxM{&TcfCk#Negki}n2KMi6Y~#6lF#;$&pIKrUM!p*>=ACkF!3#; z>Ql%w-48vJ3OYR(2D8r9mQjH1DcqrOXah*O1X?kBGTG?Nlc0t7p0eF0I6gHRE~x-T z{DxAi+%?pU>U2=Wj85^5S56jqS7ZaUI0QBOBz^YK`M(-DA(0q!KB3AeEn9$TzFuXo z`SpTg@S;>7_#9FgT-daC#NK1)I)!jclt}FEY?Z5=Fk}dOkRg4{+pmspOD7X?Kr2^R zJnlHqgipk}f^Nfeg!SD0o8$-dWwjWAet%2!EeJGdKl=L>nZW;14P&D@=#Ow9bOiHw zjm*QCS-lG8QN2nrl1q+@<=%O$^Uh;8{SGF&_Gt3?F7*f9mt9BB#j-Ml6BFW9gx>e$K4$~UgYDqy&2>^<~}%}w?zO zePsSd0D;g&v=m;*olILCKT}dEbqS(ASH(I#uaAX8ue?6<1jHZMUparh8njqS1$qw{b{sS zE%0}la1>r?W$1vF=pgY;poH5T-e(Qy1inO#d|kSZhTA0+9R}0AL2V3KCQK0nB`Z?H zRrFh*vl>1{Rp5p3G`f@v$o2Vz28b&c;_cE+0@PP4*qU(}N&J`K5hP)-nYOpV^%?Kl zwNMskS>-n3QVv9OtXF||z!`W&YN$ds?jmt_4Bi2a#Q%H{*=P*Go7z(1Ql7&HHf%LW zoEqE&cR-Rb=*dK$FJLiwJxLh677J`Z!XOY=@4=heR`e3rB_SJkvha%ZF0w%lM>e!^ zKy2B7SER+hgh61#IR!5TZc@dp3)yIoMB?}27K4Gg6M0TOfNXph+y@Iw5(Ztfkd40~ zF&&Fnr0jSYnYSC+C_ae9$sstwY-Gbj{Le853yVHfCE!Ko3OcJT$B|ff7>OSbfm=`a zTtb|K>#XyGk@X~+JwNMN@IU{WKLgBLk}%kaBbyc?@x9p&uy758I0T8#L(HM zQFuL5*#JUI?8gxzt4-CxRLHX7`>PRW}ueOYJxtUW3 z`Ft)j7o5oAnye$qjp7NUda;(1l)&4(;Yc~zRjKiO+p{``<-S=;)XXN@O#_AF43fF`aiNa{fzao>6;kE?JYcX zJ^(+4Didv9&99G_Z22R&!P}4QE#}6j&!cM-ClxxrbTHK)!SXx~%hMa08nKt(pN_S+ ztWZ@)i#5wT4}|P(GpqvFM0K^4zWunKmL)fcKdnN^)~c(!sP+D2dP;Cv!BxvAMDEzw z6LQ&PeQ-}3WXpNC8J#~eBm_?J48PV|GZtClE3*)_)wlnc&^;g~{-{W0!-{tXb zwkAxm-D|sLlaoN@$_^S=Y z;F{2Ou&KO=i-P_R2Fq2bb%#S5FT>gilM~g;q%R7=e0wz^nRQhOA0vx4frQ9uozJJN4=vi)-`{cva4&@W7VZ4|n+F%|CoxK* zNVG*o{~i`i8y2Ch{?#um+VUuL^`z=<;G*5g_sZB|-ZXK~IKgVeHe9rCS-9bM3H!e_ zlK%Aeqahvd;i4@{bZ(R`0_Qe2ZwxG2ifB7ov>H;~S*w28MfnAjMQeU&(X{cgQPHx= zRCtePaM5(j-rNeFa7|6u`!w%MRE_u8BeSvGer|92ptaxh+L*V%VSL)mRW=7p&9TG? zf3E_sH3NG8ylb=3e~I_8eI8IwfSC~5GFzu^w=&jEF*J<})g<{5P=1MX{neWTZj@&v0?}qY( z21?k|mN;-pI|?K%N|!#@u?_+cK0aC)f-naUwlQbv-WFIN!Gj9 z6&f2QMAUynMBUH~R~F7Z{wv(zq_Ek;&j)Nd2jz&o01`Fvg5oe#9A5Zi;eg6w))uWv z03|zGX*4G|nG3`|w{P^?=iYmU`la(VpV^j@>wsqpxeiD!g4XS;p%$GS)1YCu3dlLq zMfRt%9n5z7DDKLgFGF9(HH zW962L*68*ck7O#^=Ap&k@)|ho)p|h*RwfpYVSlZgS`}ZgqR@EJpPVfn4^7*XPu~ig zEpH6m^2*?}#jjnTa1^ePE4LO6Ok1_#tYx%!+NVc5nIFis9gjaaZPPm!uY5~CNv2Ir zdvMy!s*_0$4SR=7+j;ZBX`6TLd<$xEo;&KBwnn&OVA|Xd8gLUGu2>=$H^H<$`(fHU zeqq|1hQUP5W0kM6lQ<#cmExZUf})tR9Gc$(f4vcalpvcY_yp)RuLX}I%i zt*+0=_E#y0aZrUP{X5e51kx;uZ3+31cRj%43^W|e!*aQ7h^xl z)!ztC``P+utMzBwZJeMem!kR=S+x@bJeUX(C#ujh#T_Zyf*zK-eY4$D0O6H?R$R^D zhQp3|+c<~wdDF*TO^BDYU#p8UbHX%>0{i4PULB<^ zKSPTPcaS&G8BE^58azYFVm%{b55O~G54gS~Z=gMnya6BT!lbv20CQ3tbMSjFI53NB zi$E`0;V2jDX7BHJP95UTh0R-2tL$!5V(^Z@!I$yQ-{L+7bLNv5A0JfMPl;yN z!^+_~bv9IbJ)JDIuI53(am@SnNQfzhyt!YIH#eZLzxw(EsKaC3MP_p`gv`bVy)>N~ z74!{l>+~t?f~TQ$lkc4BKkyyw+v$%lt}^vSQ#lp?0EK;j)-NdRPf%euSPliE!hX)H zu%jV(g?=}Ywmb%n;vIJaxzk+ka>q}Bw`f_xG3ax^*yj7SzX(FeOFODR2H-dgKe&!R z5TwESWlI7ku=l~-)`zd1U3RK;>#2~&AXt+9t42G=fuiE%)rDLP+VUM-NaDxGTPn-{ zLItUFc>Cxd6XnT$BR#*(m=5_v*3r>z6OE!n99#b*3R)ZpUpb1}QRIDzmXRIPn8BY8 z&&!+<9L+^^$uN(+ul=us_IB5}tEzX*z7pu9J~%b_zRGH=?7hyJ!6`ul?~C_y>!|w$ zoYfFZjWG+A2^a-{#cw!>uds-(xbPxghWJVg;{w1S0%HVJq(j{X+6v8*0?bjLCO4_u zp>^tXu@;(ziVjT&XC@>mjEaN-g2 z*-PM)BVrv8hhU7rO2k@txj3?&U@d9Eh=>rZ#hQfy1s6y_!7yyD*bxh@tN?3)=mWzZ z#D~g)dm&U|yjca^peizh5No-GSPQO3HexNj4g4KgoC#wDUO`}nGXInITl+qLz(bRvC`r`&1k*T`>YP8T)a99zt9YvKO4jxrjW~=HSvz#^{5_ z1ZQCEFILZGC-2R8zT&Qv%`ziDdp2xinFcm2RpNCkBk%TI&90@T38RronvK>Vf z=XGSGU=dExNQ%I3@q><+deVcpeI&S}d2eHr!{TS$!1FDVpRf{pCw9z1FzG4M{B}G# z=QS8mU~wVOs^d8Fm{6P`DFS~rmj$o*bAI5-H%`QtQkKvFg7gvpBCN)9dT{%12*oP* z8|$CM9=z!GZ^G43rQm9K62R@B@df`r`sr~P?-*6Y%@LmOb}cAy|x=b^v-d$JnoCP#4GVDOXNXRikHWucHh^}#xk%i1&JIx?Gs95$&m*zzQ6#=dcwUIa zJ)=FKH&zHBB&6}zDEv=^K}bl!E8G~^R*zyx$nPZWg&*3MzW-85;=(bieP2RBvX>t3 zx^gV`b?)y{Hvz1;41cx3_p3KYe$#qP{RT#q++2vMFJDL?qJ&A~+Gy@rjtqN*|cuDg?A=r=W;yK5u z>iJ-+YFdIX2PA9SNj?93k1(0-_4>%?5Ysr-i!7O^ri$N}O*Q)U)DGBcYQHnqNYYpY z;{}!p6&RmHz-xq+ZMgdlC@;AvBj=5DJo{|$Ph^47;dKVTY&O+nl{16BWYIKEE8c>*3w{@{C`0Ownr*hb#F zH}(Z`m2z|_0tCN31Yb!m(J-+;kW%k91~Sf&P1LHTb0^N$X(uE1OW_Caqn+sW2;l4*d52fWEPbctS|BY5`X(2&39rEOn3W#_wyfKiv{xs<_GT*-|)YGn^|M{ z%a0!o%Xrx>dFeb|dS>B5>D#BrynaF9IvU`7xkS0?Ph%a% z;YYskk#{YDgLs;I$Mrh68a!*j9N7%&k^@WEd816eToVXxKquOGBN`;UwEdSfas z>S>iXXDi5S#d>|cdg;`1n48NDA+?HXDn~8H&@B~zE92)0%Y@67Qd~sPXF~^EU!BU{ zw&DEsU|EY36c%o|Ab8O4dv8|!wLyH%Ju`L!WKxt+>;gG7NBElI|DAOcrRJRd5btS> zu4TknRtoQwfxpWt<5J;3HQ&5)OrhRhH0M?RCj8!n-+#~FV)nrIl3oa~!sDmO{F~0? zV$^M~>*qqOmH|vLmAJeJW3}LiR~fY1A~9C0j1CX(Q5PY^L02<*BMYBrXWi>e1=9EajWs-2;gAVvjvG2hibrjXGD zhPmde3RR{9dTx)@=8Vc{Y|ks0B~If(LZ+mAPcYB|j@P48&)}+i!BfD}tF{RMiW$)i&N}V%gS0GODs<`hE9`x) zS6`^^<4^~k5yk^gm|qoD*+RH1-y&VWEvLhz$u!JQy#?o2);Na$fdau(2Wp1tV#%z7 zGjWe{mAz1d&XY4AHd-}z9)j%lQ7#A;pv-z*U{P@DZeuX|GI|kFiso0nusgDoqX?uD zU!>`Xs}SWl8X`r-lY=RZD)rZGrf9lKQok4HV@79~TOqFqx!MM=(0l>@;pamwMJsOZ zBu8btsNODW+Y7;D%*2FQTiX!yAJj-~d!5dKu>xL1fEq2Iy9Wm9L_4>_&S+CQf zC*Qf|ss!a}n zX>9nTPQiWgb<>Ee1vj1F3(w+v06p0UK%yh)mN4)(l)?Au^x2JS_)OqC@EN(_O+{6C z6I69IMXk2*d6~jLQV#r&(v|I@BOK z=BYQc{Uph4j!qP*nXbr#i{W(eoqA*c^4`>@=@9%;3$I(9Xx%@ek>}?Jc_mL9VbSAv zVftU7slVNg-GH6(n8Vt3nG>t+fo%>?F{L%UA552W87*5Axf*mKNZ)j9kl7y62foW# z%PtBtI$6Djgb)vJRNJi2V48EcI6fFM<-j!t=I;B$wHx4EN&SS%=Yf5Xfy4=z?Q2Sh zf9ldPkT~E5WAoo-{4U@#Mw>f#FqYU6`h6zE5@VAYh#I~K)gkl--su2Hd8RM`6H}gD ze26XL zN~Tv-#QlBH?-FyQr4y95;FVKBg;k77fRW8*;FbhA?DiNtiBIwtHygCjM}fC6#`X5< zY{a_RxL$~T0(nr1qWz+xZO?HberR_yku$fUOn2qus2`PJ>UG|<;g||H&H(XZnZk{n^!c3@V`Bw%&~(5!Pu9;=uL~AC|BB1U6;uSl z$`z`@-8{iegh$o6ApfR)Vk%gg+!XBjJ4Xqc%c_9jYCzby$zFG0wO8*{^YAh1PzW>s zvqdM?^4SwgbcyO{%M4}t#|hSpVGn32^F+aQ5{~EDGv%O$O3znfiXs(|3efUF^$A;s zR6>F4BkFd%;Vjz+IffIIx5@IETaQBz5wB~LeaUT|1RSciBoLk2&M$w_C?SFHu)aIU z`reHT?R}YC1ijk3)~^a%O?W-;ukQ}+&?6j2Jq>@C31b@%kFy|RrA8#egLkGzyy_R4 zo(H>vf{XVWOzLq;&C?<0MQtCotTF}Dg%}YBkg~5B{P+ld(}kjT3j+xS<#gu<$DBc2 z0PJctfDKhH5Z^9@cqh}zl88bDT)Z;I@wdY*y#hymgLVTN63(3lw{#>H8pO-NAPL0a z@z0RBbsEN`+o~`T>2DZmZi>P9^g9_eTEG{kjP(NJ# za!JI3IAFu_82?Qec^?H6d@C4uE=a)%da{jRM0sq*P&P9fSEDn|0Rit%@>3yCCkPu8 zeUBMHrgZai2zZ}mhmrp#HbAM87!Hhl@Bg9hP2iiV(*E&#Z?@YuZEr(b($eLo3#6=R z*~)&C76=6~W#5Dp3Km2Rh+44XP0}STTY#d~VVqQPtcqh{a43qHlnN0Ur!tIF9n?_K zsSIjC#$R<9{Xfr1+6JhO?~JeWfBTtfv3+vxxo7#F@AI5zL1Bp#M}ymiqcIReZ|WxF zIQvX6&hma?FwU+toQRF-D7+JeJ9c583svAs4>ma9a`n?-G~{D&`dkB4U>LoY4o>>H zze3{Iu?MXobt-s4?;L!=`h1*}g<&56!Gka4dTZck8v7*CTUq!w_}712a6N?BNz8qfOa^ZS_SJ|8v#7YaWP zk#ru%E_X_8MWo#ME%6u$q^5v8SFFjPYi9Es^mZ%FQZ}|$6oT69I8M(v}&D52x zaE_SWeYHyN_Xg;&rXx2@Wjsm9yls|!SWTod;6T_H#%^&1Zio}Ot_yMY{L)PjDS-pO z1TBq+J;2kK_+bx?z&+F;H^8=N<@I2>O_cr`{O=qd@V~pCYk%XB3sJZbE*dOgxt+jX z#-IiG!ufie*ctK&HxJC0Ji{FGao2>U2ofOTW~OF1RF_2}egSwm&NljvMZnK4J}X@i z;IqCu;Io=OSNh04cR}1WSC<qvlSxbhpad_hpz~K}2rLLwi;umSmNLKo33bniJ3%F}hUk6@8MPosz1^*Np>;+{ubu%Oy zQFJ^s8GdK^7QPi@jB9ZkeoKdM*7OTIv}#=4lh|TP38|^NoLhGcgVV6pWYb6nUiHLQ zFV%Nb`?NCE3VpM`69|Q)prIAc#=Ej9zAT2%79|^;1{%0v z&57HjA1kG^9=E~Ee??w?V_Q^@o@h1d*ULXoEruh=Blj<^fdheCg>gIkNZd}`Sxiq- zLS5{`&tjYZtf!As&fm6p6p*8u0wQ~c9$YPUa+HD5K@@I)+ZtGtLMU=W5YRp>KKX>s zbXz782($ERW<*DU8JP$FS8#SqbbSe$XpNSi%*nugR#^JJ zJV$RNX z24*Hj-1#>qH5`e4;1ac*Nb*21 zHdTpEb&yO%jE?m1{71Y{)RN#I=g_ll3#CTuav06p(?S^VI4-_k(s|l~#L?i~eoz5L z>&O8;LsAL_4#@!>h*Yy+CJb1+%gI?yx1EMLH?7N+M||Dv0ed9PJ%E*pyh^BWb9#J- zTziZ#_)SFG=EwB+0XED}f7#G;%eL^)_RZEhVIwX2{K=jHiZvYfAh^C!(H*aQ6QoxL zGuj-?&Nbs6_W>G1-M*nq?`e_a<-hAxt0T=5N%O$jj?xoHgRKBH$o<4tV!`|@0H6Vy zPp!WPc2xQ$t)skjEv29f6jWOqa7Nx^)6~pw0-Bt3K#z;fhBZ6)bUR$v%--y7 zjwm0~ATg>WMfy{mXz%y7q2J%3E0#WAAd8kfLZ#@=8H5eMqTLfcr@+k#R!f=xb9j>e zQ`>R{bSc{v*6}G&TEJsh3NS(U1VTO=6`faw0QqzgPdV=vVr|hi!`7psndVR7F|O;C z%DAiVdy}Pb0`0&IBTdOpLsHFQJ_h!|{@0zZ-653If{FHlKYNEZRta(Gs<_;FH)Cl2r6;`zO@PuBSB;j^rFeuzr$%F8hgkB{hy*lr}pzu<1 zLPcXxc&8SE!cR=Xmf0#4PLC-&{fIZ+UI5p!cpqBv7@&aB4Z>?; zfVdfmJNd_p+Kq~%Fy;xBVz%Q0afY)-|NXQm^6tj6NI6lc2o~3ug zzy1$#AMK;4g*0peOoE@IHtUuM`}MX%o=Q$;pO_v7s8UMeUk9w8WKQ1KS<~Oe4me&O z@_XAPeMX9s`;Nv(HN7E^F7IF#QDcQBp6yCZRZ z9y7Rr@aC{HRzM(y4RYIGLQ>>NmTty81UyXNLtHJ~LPj&=$n@ddZHJqcGaq(P;TPWPOumnj2`ilQVxy&(SBCB|w#g*(+iMfxDM` z^^fCT{c`HPT;p%?=ZY8`h1N_VaBbH)n$Z&v{qGn9KAvzZj7h!0FaOf=a?7Cm4jLQx zzPv!|&%fgUx8dob^VpYX^&M0ODc@ol$m& z`bBRfSaqiGVZWr7%>tJZ@hK6U?mYzpn*8G7)XxH<*VNJnzWMvi%JI!lw=HR6O5cb{ zU!`6L$C?P0Pqch_Nt||bVz!$xacyt}DcSX4#i9oSFsoDf$ySMKG|xT9OSYAUskl*y zyx|WMy3XI5e__O|m*?|&N=V*fp~K^)=}%1dm#JLzrr&3y?{NIF*Wv8aYy~3#7@D-M za@0K>hp3c426T3yRX|^aKtyOTG~Aoe2!-*ijyW(G+dy0J4i%@G!;f&`yZfGIN`KL3 z+X|m#sc)-IX-h5xHq0wF!C0R$EN#3~m~0sIR@$?k{Y%u7_*U;w7@7x!zR-3#{H{wT$cy=>st_hf_9uv*=6&Xp~fYY+2+nN#_HL&w_Zg}nndg6EY$z{I)Lb2k+7 z**S`il?%9G1K8ZK1Gu7&7ch6Bv2#<62WtB?b@YS$BX3h^$kT*fqQ|#kCY;kxNiXY{ zJkn$t%?t9O^zo{2cx$U9qflgOIrVk9uQ17%SEi7<#s1AUIB3PFA<*>x+!-*{F34`@ znShHz!;Cqv=o~*3R^$hD6M+jYf%I(F#!2lkRpLa*ISZl1S2h@9T%Po8E2t_e4}Nc$ zWU{E>r!fzHp3JJrGpBx}Q8Gj1+0v%z+%xD2-1c#qj<-$Iobsq>td#Ajf(GDc`Bu`9 z6V9!ZSsLjb$|APxm%?pO+%pP_d-8E>2e3`cHAV|0A_|9J2yyEMK+lf#%e3L0^%ql$ z1UZ%*Y?D?)uCn9M|JtxuK%ls3DE#^HhKM_%-fwu~*@0OCokWG_=bD8yKCFQ+Sg#Q6 z=eUinwA(VWdAse5aIK>7M>gkU}n*BAM5Ag_aDQ_GOT21jvz7|V)4U(LIQeM=8c-<O@kRY%M_-a){yOgPNUqf)l>1+> zd6D?8jZ}})1K?#@@AersZMFG?iJtiiNPh6wuqHDz z3({yCT|)z7=b0XM3CGUya*cap#q*A`@Q)cf+Y{4K<%I%G1H;dL^VXBmi76oQ8J!0F z^}%Bhwo7s@eI7_g=aRf8-X7h7Ceij>jC5R*3`WJo@tUgfaQ_OPtIcnQt9 z{s0I%5Bw}lJW(rMF?@%YpRtn9Of=;2lKAlPSNf>c_6i=h`h(2Cu3h_0W{!EK z#@I3%Ov5fXEnKn(F?876{tFe0OQrnyE?Xvy;#Iz+zCm#(z|h6251|8_+eQPrJ<%Dd z+Pg7E?T>7n4ZG0&i=_02{nz>5+dmLQ>w>DcN!;#b z(pcK*Nu8DYa`mKB9IzpF!D^!On1}Bz=O^sb;Qhx9g;N6DVhzY{Y@z2TH_9 z?zPsX@}JRy?=;PAtatIt%fT!AAW0aA4)+(+_>~it#`av%ZCU5pg)aAfWQC9pk$pm^ zc?#5IPo5#Ze0Pdum*Fk(59)la^N6~vPWm8%ELD-;fg7A#S1(w>`DWG?^N#X2+{t>n4(U` z&EF?YdM?ekAjvT8T`GLhRP%;WqW#Y?l@VQ*aLK{xzkDfvx#*W731~U{-o@K4or7v+ zD@K52<+^a{hq}ElvU83$mbrRA-qc>ew=Mx@6$=7Kz9s^#k(~<)W0~v+ zLIrl9z|qy1I4r(BvU5pYEVJPTfwxfLl`JCA8QE#M5X&68K_Ds)1YWg)7d02}jOr}X z#xYlK5SWPquf0nIYNI-f3*(sV%{TM`1>TOyz!vJGI@i|4F&l0Wcq^{k(Dl&#iODhN86I8jkxR$uT>pn2~|!{Q`;UL<)@fdz5K995cRX?okdc zRL?{lFQB zTyY((A0ug_zq~w`<~3v*L);gEQ@2}xwe1E zma(Qq6sL&tiFN&!ThQqIiT?IHp_PH+(GuRY@R?lcxc4!H67$<(2xaqRp?Zm?>`Xaj zprdROaNoB7HKJu09AhJv@mmUoa!P(&ybg~NzLb5^H-D)zPyU@`;(E4{PrjY2Q2Ef5 z$vilaPK5Kz(Ef~S4lH}k=g&$%8{u5Wa&3K?<|=U6_c97?B5a+w9L)vs8lOmApmV4; zhn33P9|Iv}DPy+f3i%STaf872dp~&YRz8}_*b}I-1`AjQ@10f2*4!}6tGA2lKkL~| zkuc0-nfXyL%vlU3EzEP+Y zugj_Rmqg`k=oQw*wnVL-EX^BFu~{c5k+h!8dPLb?MB@fKp4)&bhbhP-IDP@7zm!QtLjRGAUL&pt1;B7hej%Xcky)K^j3HL1eB z2`~nOH*=R@dsyCf6h!+5&y=(*td+YDf?9d2xDP>S*);o+=gvFr#!$KMoNSl@Gy4>#K9dcF%f%q#MQB{GqFOi8h` z7G35pEWd$V{#NBO4w7qMN)^oR`TpzBxc`de95%i^#kmE>U8E=R|AeEmrPKCl<)J}v zR4%YZr+=%3=xjJD?;%I!seC^v&%d73JaD4NWUOGp?dmm0O_xp52rWgg@E*>c>$0<769pnbs6jt!^J5gcQl6o z9GjXqogIn`Wl@tgtVr>9nW;4kLAq9~63<6c>$7dj6zEj|q_tC}dG}E4l|LXze;5_> z&HbSueRVXQ>0ZI9#sWyMlF#f9jcaDGS8zWx8m%$weeq(l&L9b zLhd96bvFm;@1TGvwB|D6J^DO!?Y2biJ^*Dt4H$wj0RxO0DtWk}{~Du_>QXQrOecvM z+C_4qstj=VZ%T#0CPzLBTS);?J=O#@^e6Q-^RT|=FVRszh_gY=(CO4hFitO$LYz|x zDImHb2CSRlg78Pk!#EkPd@EkX&?SFgG=&<|z!Z9-81IKI+j)qwxS)md8Mg81i{Uzd zsudDVe#OpN@n%Odw){yN1QkPE2q5bxb{UW0D=xn~EkB?h^(^Rx#B8EziN4 zppLB=U<5XD2rwG1YDF74=0f$G&>7i;^B%mWUW?U6y|j3P=SLxV|Utu?>z1WR96?S6|cEg>I!t=2k)FA9eQ3iJ71=A6*_3p*= zrpGX2sbL9@a}9<8$v2{K!%!TJ_cG8he2nD5c@(?Rse++1EW@F@PK0-%usIurXZFXd z^*2$tmd^q%3$i>lEtHaTVn)b?}mDZ;y=<|9Esj1t6iBtUrI4Kju zA#rNQRJ;YG2-H<$pEf>FteZGdmw%2gFJLkg;R(ux@aeLHq4Dy>Z7=#^LWso(v2aEe0r%Z^i;i z=6i57E)Ri8alA%^kK)j!^~FoAi`WhK5@@-i2K!9ii^A5SxKrLjPx02HI2z;o;&fj| z;rcspx?hTb>F&56yWt;-(|sQM?0E%+-F~kj({xSllTik-veRdd*#y2=A?$=PbvoB8fcR1bGmf;M3hb?zJjD4P= z$G}Rzow&Vdl=$>!3kF{rZGxD;`0RQoxtZQCm5qul#LfWK=2_Sd%$BDbU(jV z2dvi97b6e!e?NdMjBf|o&m=gaf%0D zrvXy>N)qvps3iUo>;Q;hV&Lx(zf^+$IrxR2N5A_tmT4MCfz2V9thOB;bj}&W<`s_6 z3J^5V^XwCx7lF~?*LD@7&^YK*!RwI z6^DJ_0ws8uzF?(z#jWzvQB(R6j)b4@>TAtUxCZ(_yItdq>$fPIq4tONjf|@w`i67A zw%56D#<^dLJ^X3L?MJUmGH&g`b-AwBzSZKqHve?%aumE{*LdMHq+^2O`7XR@M(;^A zxjA+|yaE%wk^g-wA@|4F1GqmPQywdM;Y|3zwQRABDhkCOA)kxL0Hbzuopdso`=#r3 zhQSyq05uXc@O!=)ZSfEk=|h*s%f=b(n`3ktCam{z%^0?(4oLRY*-ZI}bXeKAwgYR$ z!MWdf#FkUMa(bck*XvuL9@`lBw>R)_FaDdB!SBQ21Mu}zV9G#fr)zw=))V?B#=-A{ zHP#aGS?l2c-4Q+C7ZH@DpMBTrb@NxQzO#7aWQyuny>NY))fus|Ro_xQT|7}?o7cvG zQ@{=D6_)COCfNJ-#X36cama!lic<~_#=yp|!JYrpyl*PB)AhdCYEK++08Moj^o=-$ zXN(`LvHbe3Gp5m8JA=gXce zdQ+6%b!es8{!jQ5`T8m5kAs%F-luE+ZW!Ns#46Zx+*4ubU>=G~=YPU;v7Gc{A30Y8 z`>fa4G<1VS#||nD75ZGXR6VsxQE?_39sE0TF%U$0Rgi=CnxgbH7YO=E zDU?q0N+B;fk-T(_Pa|;;=FH z=33%=Vdh5j5N`N~)V!U!V8{wHCW03Rt=-W`Ym33@&}D?+kre{e{cVdZ5_b(VFil3P z=Z2zaX6C*r`3gmu(?%H#iGtRFewX{qOg8`G!jsT3-tj1=)K9|z9SkGeO~S~`D*uYd zi4&kSlDPN=Gddav0~PAv7fAjLBe6~Z2R|3qy=#@Vu%C!g7u~NK@aU&-6L(?E&s3WP zo*3A(G4Qij&IQFw+lFHIsTuM%!l;6`INVHh$HRji^5NgWzix*`p2qq}-D&h~0z8*N zig`%yc{`?;pK10;W%=d?sce$jC58Hu5J5uHdyd1r^J6jj=TImv3BE{>e15Rm&B%0S z7XwK`iC+@r3{3zhB=A$~(faG+aHMP~%AlEN_q(3p0ts&UJLy ziMB6y(pT{!>J_T5akolruay}h2;AU5%mIwg^i<@O@>%W`>=Xr*fl%!;Wc-7(N099CY**2UI(E69o&jEL|oKf zvn}ngJr6HuT_D5RyhdaFMTpF+i_NDJ04{Wu^Z2^ZLJ?Wb)YqU(IPNe<7pjF^_4!yR zKj0VyUN=6A+Vf~3OsG4m!OZ*-Cv>cb8I#fLgqE_;S`zC0hoIC@(sCP4*R#~|+t2~K zq_$kuAP4HvRv2d*6jDah46gd$!g93qy_{Pjd&ep}0_lRj6e7q{l6Bm-1XggXV@QoK z3RbW+`gg*rFcDnNZeGEj6yp$|d`RO^NMK*Nn5V%JZHV~AmvA+1OW9B-ZN#bGVu{>6 zJp|j--BTSCb3Z+LqxT_rxk)XMqu!~!pDrz=h;y^*XaVyfzP9P2{OjIdyPCb=@8|b7 z!R+d)J|GXz5${npqyL53I6hxUhA}sVUEx3Obn&$fCn%tOB-iD1_lTt7LZv?o)v+0Y&=@XQRB!#ds9xO2x{}+ zxNBfMO+uC1m+J?6(}Qda=;zVcpKr8aoXRyxFGBg@Dzt;>FmaGA19Jg2=AmihG0b0N z?SsjVHlV+*<91ZSIZ|q=2qT=dL(o)rcybE}A7O)`MHF%lmf&$f&qmIGAQ$vJZIx)k z7QwH6K#n^Ld)e>MggFhxG?7CdmBvEU&y>}0X15!*vIe3uru&?5n}~WBU3X_v8BdE!#b= z=$qPg9wHx`6L5AVoan4o_NC0|iejXIKKlV~Jqm5MwDLk39lOa*8C&p7#BmvNQyUN; z266r?QKupL3(DOTThtY!AdY*5gL;F2c(!505nn$OqAP@GrktPbb_l3W@yC|oi7D{q_U|=@ILi0 zw0=c@l`NekQS*mBjH#A6abIAMfiuB7NH7+F##jJOro%sxIZ(k*Slc()lJZF3JqWgN zHI2);z1;1DM27P5xTfeWYAH!$M)TetO@(!F~BHd+WXotaSspmfyNB z18d#;(2rT`-~4yhdIlM1XZJXR0?`#O*R`h2;~F_G5L_}ebWPhGxTd{>#bWlFEEf{5 zo&!sn%-Nuj zHGneRYZ?B%pR5JphNV@;lXbl1hIKsnB_WRFkO~ybNF7P|hZUCTb7YyOwT*yl@ia`g zh-%qMrT({SHTepbA?S@UguG_oF zc~bIY)@{dsXWjOK(E)&lwShL4AHZnqxR*JOV6@=|jJB7N^*n^EXH4yy!?aRuf3N7D z1jp~m)evvjZmSw^NJ!MwmgUOb0VJ;;-$A8!$9lP<$BrKY7V;m)=;1%fx<2xK>-vT7 zTh|!2H4QTd1&-h<0eEu9HYi0b!A)`9llLSj9Kik9L{PLL1{uZt2H_x;)jMA6|4Vr7 zIRE3;z2yB~)_n!8?RMMUy{-F`WZlzu|A=)jdADcXCy@E)_pkQQzu-ATyZ2Br^DfmkTro9?VMxB!5(27;2Z8c< zBD~j(dD*F&+NpVRw}lX+>hZjUg7B?ivaR+LQL`cl@CI?MEAlWQZKn$sExnObjr1w9;|Cfl#=$gfQ)R7kZ{C_y17~TfC#A zaKEiCS3)ao%26Fj)AWIlImWtEl6QN@io*=BW~;}-P+qrveVx<1n){r)`uCv8zC~;? z7f)3#G5SbG0I!Ce!8yUM59iW~_S<5nkd~XN((pdP54oehx^r6*AMIc92yogbaiKrl zGI7<$DPK{8UOWq_r>k+~JdW#`X{UfZtkJ8=0=75|-vz_Lic#?HQ?ww<~5_>VYFmyJHgcA0|ZTm-fh@oGd?N)=zPhec z{}rxy#=XY50@?9%Lb)bWSz=SErzWwPn7#ljRlkEZ@<;`R8J~g8>1tUa-ysoZ6}%xB z2ghr`ZBi0+n^dRq83pVcQfEK#*0Ot&LHqJ>`}n0Z*~iD^6nWBI@J|gpAC1(xe38rc zg&xjHLkpafPD~1Y*}hQu!NiRjEfwQHztJj-tgaUYyHOsiUF>z)#)-F2gTz)%dt9th zN2!JlkTL~<(m%z}sqAKdJ#ylu?0eKB&W-i7(v?k0K#Y+VQ3IKWs#MB$pX3h8N*C_# zN)JJY)s-a#6g`q(gXnoDVxV#~jm|g?SbN%v)&~J?8TCAPTg-KVhs7W);}tL65B?gG zX^_ErH5QvTkfL3U1`eDKa!3kK1$ro46?WsjB7WgH(2boZ7bA9hR|m0kCj32(-A3jW z@fYWH9F`ZIV0KG_3pAYuW0TQ(0}rnl%s@>?A(7DTkI6WAM6}l}WmE0FF$}Pw%^n9$ zV0Co&Zipf&WG@QQ{)jTMnCzy(p&PyBAS42tBX~@bk9Nu#4HIwi_p8PPYX~X#@ssM( z9UG}-2FQYFnKA$$ zANVuUpn}5*9K1gydMXU47YETzGU<>xFu)ue{Zr$|-Txkb$OsQf z?hQY#yKcshsoPH0`}&N(@{1n)DBIQVam`PGAM1knq3abtipe?);78z$1|EXe76Kjr zl8ay-VNQxR7w?UHz8o;4=HtX}%qVW@#th+75Hmgl%&M&l?K*R=_VaLR`~$* zBzGbdkXmMwW+(?5e`nV^?xTLS8&l8^xDs7vrqYvdXQdkg>+g(6vi95hL3+SrT)j6l z=2JnU;a8Hd(0f@QHAni5Dnrwe;(mw|9Y2T@hT`wViH6|K&{*VH zbId$o%&jCbvRPuZvn0cNQp71A^913qR*YTlXr29@NQ&v`k?`a#=IaV}a1d7YWF(b-l{UlwK|6enN~ zLU97;0A0O)2AsI_KfnoPVsALnehW@KQ(0Qy*k@c_2u^gk`Ynq7DRF}86(?@x8KF4Q zMKOTX!`HvC0W^#|&T)ii7;fMh_6o#|{yjXSe0odc%wvLCm<+ zg&AM=V8)jL%;3iWW+VhKqwFD_cN8#-y5#(ZNQ4gQBp;;(=qOhXHa0?~nFqR{LmN{z zhk`0?tn|qMbez2bIu08EIu-zQthyCCj#C{W&>>M7tAfx$;r(^MmV6@Sd^g9yY7OWU z9l#EBXP)Z@3NfgW+}|8M2+3J^D0Q%!e;cyKN1~7O0RwuQj>d}u%mi}MCkJ{ewzd6jT!#R7^O>LBtI|{Bkw_ zCxROw*@YVmR{Ut(Fx>HDaYO&Vz&kuiMR0KrIX!*^@8EmGjh*qg;Ko_g_7U?I?rrSB zjp&4%aKqchJNhARH1*0mU>-to1Lwg2wQqg~+!+3!;D)L<+}L*uZcHtoS6|X+bYTc? z><8Qk|0!^z%f3*Y=qjPSLmK2Awl4f=4&ul6 z@Qx2=-OM|J_;J{l_#g5Ph?P1J=SP><Ce#Cztek6Q9e!x70;0Kup zdehH>AH)7V{3w^Bee@sXp5-R{=*68k+czp7{^l7|pAqXH?cp7lclJy8PD=a{{xkdN z<{sZ(AHbrRjFEsyHF;*Rl@ z!qb=Q4{j+wwD%_MYso)sz#Aj9r+4W!?rwZZ2Yg}vUl+c3CIG$&h%Z=1DPFo7{nCWn z&?a)=4b*G?2@YYl!;q74G}8%lkTE>wHITNhf;5!8jgM7t~8)nxZ_S92kFSHq_S?`pR6;Lw&J4*eQ%$c=Y3 zsfTkhMCf6icOGa%P=l={3hp=g>vhs4@cZzG!7QsB-ks9+aJgQdrj=)OqI>Se+^{wb z7V^c{P)a9W@8m@mwcz#6S$RKgp;?dhWoGY&q-Y)KqwH9T>7H<#@JZm>vmbfo9FIim z6(OO2V_Is`dP-6h*_B>ftQM9%DV2=9N+nVE3bk;N9LQqaV$7ly0Ur@9jB^)8fxBvu z15HGXf;xOb9SWRT=laoZ+YW)S8fh^knRPrh?|14|kRG%E66}x2Sp!i_a@*>}m*9is zPuAd{#=5Q*zG+q%c6M81q);!=PwqVHIE>I$r!OKWPVe_X3xe2nJM^>b9tfQX$(p+H zA_#T|{Qkd)Ur$x`hF_Cz!LOL7vd+$u%`FYVufm(~YidalzgGSLe!+Z&;up>rj`Po; zYYqDM@T;5#{8D!I#+7`xaHVIqTz)2}&v0!BS8CbWZ_z)03a-=~vW+^AVQklUhoe-cQfJk(?}k?>Tj|n#6{Kf* zLYl`JX;;Zas7IVY+zfI8P7S9@fL3)F8|35i_NPT!#2S(Z@r;(2m}ARUhac#kGMszvgj&C z6ol=4xJR%0L&Qybl_5EBALLb{UbUfDy9^9y2v!8<07~}$3|R5a33Q&4!k)U(Cnj)9 zjd%aO`kly#UKQUP*Ex3!*HKh%sITucwjks_=)9|6Lex*ebxsGdqP179^FRnz1pH3W zo(ngQ;K4>Jf%GJ?{#SP0|5&H;B4*s*8)kIbWiEHwb!9zv8Ck$C;|{qGl5Wv?ry!F_ z&i7zS$o5K=6=I%sog@?0i} zZ^4*PoI6G=*tGX-560|Fya{902QkK$gc!5CSB!!A2*ntj4;zf^&ww!#{yjb-lOiAK z+Z)DsZo!y4D~juD`;4JOFvjQV_nz{nz?iN(qlR8FCe-#D;J)EEt5TRI;(r}q3f>ot z2m1X8zqaGEx@|VcX9a9FyFpj#@@w-~s)|8B()7TIHO~9z=qEt?kuFau5>fk^C6CiC zfyj<-=eAnbIFM2;%ak$;1I}%$iL-`Zh$hZ$=f$1QjR$BYH~d!Twx!g@5a%|iU)>yV zZVTloP;EVkB~Vq}ij~xZ_Fstln+qk?<%9f$qpXB9PLfP0PrZhNj}#J)a?H>G9EJF{ zK@MYB@z;LXXJy6@<41UpZ<|aS&}T%V=mle?evCaPIn-NC2=#5Vy!@km+j6(}rq8Us zMW5M}mUDLL>vKCp^qF-x>oc2!`pgE@XV^)-`nF-k`w-tYoCErvp9Md1{w02(%@k~E z#19eG)zFwq$0I$l0RO|-zwE4DV*gO*AojZo9JO{^en_0aY4W!Q(vJWZ$YTpI^8E%^ z*MErxE#v$gCnx@DH{2oHD@(kwuBoC=O!7Q{MK(DoG7Xhxw{qM%NTe`Bu7#E8bJM>v zU=<)f8ma(!5~WzJbf2U%JWW%?LrGQQl-vTJ1D9#zU`XuT!3+C914-}Xp@z|kn3{W1 z*k^-2w5((cZ-e4d!f|OBZ2#;I1%zJ@*cHR@pXwceH6isrUGg+isVIwDwqIHnDRmB( zUmbFrt87%T*r!+Jcho|;BCGx^)V;{j6l-ZJGgqhvLoR^LQgGPSSd5VFL8EiMIYW%z zU~fK8(mfPlx`z^y?%_d5_wYt;4y1dypxxImz>>_VLd0e~5 z&DCkJ_~#vSF~pl$0>!<`EkoxP#n6~y!UhiXeg(L=PRQB0fImjca8P|otOI`;V;!Qr z!?^NA>3MxEVyh8z+6Q&H-~NW^ax$^6dIh9`4d`;0O~dZ53+Qr#Va;`ME=b&1i1mIt zF!f_2x~rF9^~2*BN^L=VPN9DC0{I}u>ZARG?64vmV#49D!otxGj-!KM{vPNRmT1PVp~}R7ci&Fp5^)86h@axN z84Nl0ZR8J376i!0FSj1cg&+={bXCVgJHVot;BwK@kYvm1ZV@tQANh_M*Pbo_axsN3v0{& zfmqm!q`g2s8N|$VvwY<`7QW_0WthW1E;#b#=dXTo^5FL3$*4??G}{=6qL$4{{=0$r zf?QkCTo!${Hvm~m#QuyuHe;u&{&axe|V^RIIXL0+rK9r&IV>Qds)IMs2JhVh6keLu6#tue^Dae)*LSML z4v}lwux5;97w{o z9tijhnCD>}mfvbo&<{dgHgs3a)sbAN<%nd@@K;Ve0$JA~ljdO~W~E$+!qx~(j#;WT zL(5~NpJBQQ%y)SOYjxEnW0ktgxedvSE4HxjfJ1@`h4WI2L3o<<5+t&yLgB$N$KdiS z!w&b5$MPDG2*Vfd^AkXB(%5>!FEAHfx|s>?OZmrU>Ctprlu< zPLPc>r+i!>?~>6xU62?%i?5k2DVryO%^Kh&5SEJfI#`hFg>yi3AWMkmoFokFk?+x^ zxfrs⁣;+NG@E3YN5GWDXcnT&J;y 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 z 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

IU^=1sXcptGH zlUho@X;3z!mBO4A)3zcW_GL;V|&G}o)j2=<`pQ17Ho(;;{eJX$Ga=XU84KC+Y0Z`$|;G$HB~8 z(2wwXMbno)X8ly+BfCuD;UvQk&nMxt<4y|5XklDl%-J-X!_qu}G`lFx+1efRl>tH9 zFT`a9+7I|*w#Ucaq-nHlSAQp{+6A+A`o<6UW$E!; zl|3;?g@cFkMEXy8S}0FxZGv^JNM)y8KD_MQNmAMIbR71@e&uud%{(19sqYDHe@8u3 zewLo_e3L#yZjX$Tu=^p*$u9Hid~u@uUbkMGVtNS{!4~QsxY{d=T52~p9}u$okSIzg z&Ar?&rL%B{tYQ}E3$5l`wCDK0L8rBPE$90enSZHmom1u-me=9!H!gkk6)(=iuX0!&j2V%c6YoWuoRXdFt9CLZeFz5pdlmXXx zO^whr8|KEEgk+g{d%WRJ*g~A9%(v`wn+Uaqqp{on#Vy$hQ^!q(VwN;f@JXS7G3rIF8M?Xr#9rR^S+QH4Hk;#}B)(*$zmFnwn7i^@Q7y!UGA zcA;_;{T|p*3~#5jDdl~S+79YJ)bFNIzw@6#zdJ0NVBV1`%L0p>Q)m19uu3M? z$MA3|FU+P}PCN`zI)8{RtoOiDBx*3Z9OLc(bRQwzrjh$&+wlJQZXl`09NtFX_Q(F! z*V<*{ZL~~%ZxF`7U!}aY1`^K5YRCv7wL2OMs7&agJQ9YwqT!T%r>!|F7i9wcu1}!v z#E0tzz*PxGW~Z1nomtd$;vD)$n>VU?(t20C6n^s1nAagnc1QYCQN4ejtJ!82_Ro|J$nCNY1I)8MDNJdU$@C8@o5nXqHEj!7XA|}FTuIR#v zGxJ`Vu_QQTsCWHEMH@Va%n5mXCk(zaIaD<2*{3iT~&Dh1$?g z@X;9Z6VOUf8~*7zO3a~$`1wO)1U*FOFqfn=oV%AGGSWZJDX}O;qyzXQxH+Yj2H9vS z0#5qGIc4~KL8uS$bISSe2Tr>FIVGHwNWTS~mbIL6JPDa3-PxRS{6^rpz&YjkKLMw5 z2z-j%;DdPwJbKvQ~Ipz3Az-c1nl!Y@JWq`$DGH^~g{w?4p;GA-tw+Bv9 z9n59}oyAkz;1tEh@S711jtvD)SvW{%1#qfgP6-!8q#HP`NjYWwXeabgob+%?I=*fA zJ_Y}r!pU@e&p{wmzxDVB+mLSVZE%y0Z%$df_`VPS<}k|fGr+FEKc@^w0uqsN>Q9_9 zTq`iUS(JXV`9YL$(qYXXTgZ`sA88H8A6v*VKMW_G)ay`?=QY4+!qbz4e z(3O1NHeS-h@J;nPofl|M&PD2V8p(f1Gt(%!l++=7b9G67XC+AIXOPRHjX`$teDyaY z1@#XR8pP4jn3N!$pXgB~5XUA-i=&m%+66D+u?05PLcUbOkvw%{4sVPJ9Hm759!ikT ztJcw#Af3m2R>=`+QW9!GsrapUn>>B=;BGEH0qo&6yRvyFIbKj z@_d2fyny#_UaF%)q^FxQ*w3~x$qHOI{(rBmKr_~lqsa=KI4djg@MT$n$g&G#lNIt~1f}Do;L`}!2Xw}0pEgR^F(7x<+)f)tlfv3I zUR*60m8%~u9p{?qElvLAE?d0F$n|TjDjVa5Z8XE=cU?&cs!-y>48S$mr`{){{N`X!cSsO+$iO7|{KpPeu14 zgxEny)H!t<`{?HMNdaPWZ)ax;`{EL$LYP< zOHYEcLC~Mp>ppkV_3Mo$+`^0%RtDXPd)3Zq5KNweahTZE(`B zhzJRW;NWR%ETrP3Z2IZy$PUl)-Q5|&^j!;tJXwaq7cHM@Qj2+t%Ips&kZgfoxynXz zJj!F^Wk#WA`^Q%@xdBb9-{2BsH2bH@t%5gZQb=&2UG9u_%@DpL31dm^r?K;&x}d`}?Xlrgd7T=bL(i=ELTg z&T*dUFUt)1Vy{39=62bmsyCEfTK$KQo7!c^^5cPf#x*AR0!;z!{8VCCr+TBwjKq|Q zsuGjM2;u>G@I{(#aCa?8xxgRx8tQaL>pYLuV6ga^3e>7_Gk2Nkr-wFErU?Z z=T}=Bnr?|_Y(j|bzwKglV^FQYi#|MhFC;sb8NFIj0)AIZJX?~T4$anqm#P->-kAKBO!oy0V8xQI_FAi!tO z#C#r92!4F0l5+{-)waAJ9gxj)Ar9PsZ~>G!=WW%snUGuH#EC$`+5CoOIOnr{x;rg+ zt(wQYf|2Dq&>)O2Mu5n(NZw^Eoktb7=#fKuyNrNQD3tM<8NH1dzB(Cz3<=&Drrq-_ z?$``Lh$lAo195g3eE~?^^Z}rJ3XF5jHG#POaN~-BnJ_t((r<5zepI}q>KjeXm z{Zv7GbE+T&@s{~)_P_tMyi{eD{E~mhx$egG&5HzAGQDTV<6_y*`MLZ`r(mMCLyr`u z|K{>OWP~*dLRlUCIl4hanECiFF;ncun=%wa`%IQ2Whn2C`K2@T^!D9Feg&$dc^I_P z1lKbxYFjAk4_=i|bIJ5naxTWmINvg>V}+-rE6H*xm1bPtnB$sx?+SlOG&kE~w1HdO&A6k47gh7uxA9KizMT z+D6@iPPbYqpe99vS!+Ld;BB-w+d&q!H59e`Uk6o4r0X2c=;J+Z$XLyPd*MK=!T=so4)yE$xW8N6<2Kz?{PF?wv|XELw$8lCmSuP%y?9NNWlphe>T&wDwQJyv zU~QH?HXj}DvdqZgw&KC<8PS(;V1OuN0p_aoV3s^4in({{VlyM3w( z*K4MofrP^Ul0isiq`$|SRpmidu}f9%Qq3GtRf)6Q;|{hy^xE^U{pgd2o_qKwy|1)g zb*i#zNAdeh|8Q+H;a5ELT<=3wJ8(1j|GIn%-Kpbuv!mc9SqW3_AZ(mZ9b+>&dU?L$*MfM zj=tB@w?pBf>*xZ-gZt=4l1=f-@C6U$X&NX`3+0K)rkH@mXzv(Sb^-Z9E+ZqQL$UTu zl+*a7D>j#>REPiiymwZ3cHd47~vvPR2(+o;$Kx#`dB%h>} zQI=R6r^R!qjYDEq5bnbNIkGCFj+A(Jt6Gx5`@(L>rYHv|TTF-jXPVu@cC$)#MmaOo z=x@2I$)imjoRDqWZK;F4rkN+FIA zRLPojO^Y;2?-`3GX`)ct8d$4BKdRE_Km5LS3Tp>gbCWDf1KM8lj=*E?aqrm<^(jj` z9bS1V<%=F_ilbhFy&D4iT&gfg9;c`ZHQHFcEg$0t>>XOTZ$yVq(!|hg4d2c_w~^R5snOTN9*g7{M?DV`uI(7eskv z^Xq;a3M;KP_-wLDMR56t{##yYR3j0OCGBv{`po0}$TIGFO59WGD@>HQ$CISgmv0ND z9t^o|l;L42Lv5v9yN`!;N>m-?$*tFWp0E2O6`rDbViOf!Y}}f@Xe4W;)hN3X=@t}L zV_+T?KOAmy=;5%;JDcK#y94pOvc9KIi}&z|zHnh7(_@~2LiM`m?(l2j*a3%a3LNcl zn8~pd4v`!_I0SO+h9fxnY)Kp5BQeDIa-q@Y8-OxT*?2k$$wXVfZTqY}G`I8z9W3F z+5+aR|`hxFqqVP(nvV7^MZxzo|p z><9C|>M3ngr2Rjo9hW@z+sErysB1rug$TqH74z`HPj>eaGrujMN-t;9Ty#<)&4#(A=1 zFvcAdU7EDk8BKd)^4R$Lo{I)W9$8#K^_j=|jO-aE=V$Pe$f0gAmItjKVOG#3$q{Oh zR*bzE8?z^P1CLq8^`Mw&?Dff0`%_D0bkB(G^k$5Fk~YQo4yG0%=KADE-Lu-N^glGKlqtWo808h( z{U=q&G***7+GxH$Do>NAdffC&%Ov^UD9iGi<#sCsM9rE;cf#>3Q5&Ugw5+TVXX>x< zHF{H30kPQpaI#8`Mq^X`N^fYLr7HBgO=8wuk8NKgsyh~GzHPf`C7IE^m}fO_+YVWk z8_^9K7x$-DTBcVfyzGm4Nn6yXx@~)k=7{Z(Sw&!!s?2BztKqc&+0_jno z4IM#|sp;}5UqzGlUnxt)5Nz~J6j7Snf2!NKYuO=OWdPo4nXZv3Mvh;*2;u6Xx04Bvj?5>e6ZJW^bf%4%PR9u848)Hm zohB)r9ikv?ME)gXj-9mh$ z%sugYu^Odb8Qs(sl1fe0uTe-+sXgXBF~hxPxJ>#(=X(7(B%*pyA&IE&iS;eQQrR25 z?xtJsEY|AE?y9P(*H4VI3iFgbik}IBae^4TUoQA^T{p!m1lPRG8uN34X3D|iJ;Kjs zincvFl4V$2TB15`+OEVDs+`hvSHeVW)AYCNKX&AyZJJ${J?#>cs-sL|n%4BJ#8j#O zxQsFREqiuKOzMt$i7BZ`5#KBX<+;g1hOAH%T@{RLbkE9YwgscD$;J!?pihO#jg8sn zW?yh3K~aF759m~atEJWydTqtzR;m9nxz*UWbn83*;F{7F+wj?!uJ}W-dpiE&n*MQY z&zl-|;$i(syUso1FZ%edh3=UzOv-3n>AqrbTzTsC?zvyY?K^yf`>K}7XAZA-r+ja6 z##^_z7e76@VbX2x%wJ62_ttH)2OoH8{?@5;Z&~}&yRw_#__zAzsk%G1Of4MTQg9EG zYu$^M3^}*mB%?_EG=RI*G}h$fpBg!xz5^1D;(rDHci>0r*RKL3IlO+*D$wJhPQIT! zhaTeR58hs|hbV(kUXjqha>a`ic^Nq$9^6-<$+U%|df=27P6;PD+ugvg1I{VOKLbwdKu$S659OT)oKue10LP!eDdCi_27s%9 zbISQKjR-dY=al1mY%Z<9Ipw$w_&VU6a{LA01;9Dwc$7wfZe_e_3{j3-@ZAWUQ^HBk zwgPxAa85b@Pk~*Rr#EKQFE~|(_#Xv7=_2Kn^YebkDViS(KLCC@RN$2J^S;TcD#ZT< z_$j}fa(>=_IYqN!;cGFTP<}b({Jf8Iit1+kY2c^)a?1JnIKU~YiSgUOPx03P->M@K<~{<2$De z$M=Cj-vUl`#3|w7^4olV$ptTk%O8&4ABL0s_FR-J z=CyPhGeg3j=gDtNqK2uNFyvM|E znlXlP=5G?#a8cZXw4(6vD+(4D0s3aKP##i-*$B3tlaYe-qJkxtBA)csk`1$hx*CUl z;|-h14EwN{P=Md4+*po=#}r<2$k15hD7%F99678@UC)tYx%BlsN<70${~OiwMa49% zp1+n3g;7uV$D~DJ3?VR!ODXI#m3=N^pK0uKG5bspjZqme^Hg18uXAwA;c2-w4#%ZZ zvQSx3=BR@;U_@z$$#kcQNox+Fu(HmvzlS=8QA>&o^DQ9>eUDW7td` z)ywd1jX7dewG0;@950-)=~B30k}oberukshH1qJrtW06dDI9Z%V@~9#m3hfjG>leU zDT@p2^^UBHDtpaVW)hm|gAJ3w4;AO=Da}~tsI9B685Yi2d#DJ8DRUS#oK#b`y|QF; zB}SaW>Y7cP9qa6M71cRqW$VfcQi|B{P__|2mzFLlBTL|;=w}!$&%-n{46T_W8LJ;P z#ZpiyXO~|gWe;Wc;#w(<>=htWXpxeN#of??E@vH?Z%rNH-5_to=Z_f`p&!D=go=oL zo(C|75sZg9M!WYz>|^c@Lq5*WP1*3=lzr3O@G!@in<4fw=ceo*qUs?0dejKY4npP; zzkwM=(v6TQ={gA4hY;>QPd7qF%Hq_E(2cMLd!hfWb`-ydz1e8G5l)@ejqu=Q-3Z@M zH$s8t$f)Umf8@V;bPFPc%LPs3ELR^>p zz|XW(OjC*tul`JFPTmKNl6INL|9y+T$?cl!%5vhotP!?8j7?F3Ibpu9eVq1yn+z?S z2*ec1rdTbpr)^Wnwiq+Oa9XmCkQ@hv%rF25qlhrb)+eJ=6mzm*)|Y*JzGv5D*nopk zh2!?Pk1a{3It-`Hv9HvQ5XomrX}O zmu`B1*`kxoJ({L4`NH(s`2fvPuoT$-$O$^XgQY;>Y9T0`Ybh{Uqj1Assk0>=24yp# z!M!CN#t2~+7Zz>HJ$L7+YkV-=7!<^#1F-vu5yB9ZC84Xo-Vt*o*+3Rp$&9X1?IQb4 zWKSfWS&i9dY}w>%+2U(U<$F*lisOV8gA~< z1OvBf*hGY^{8r%|(QryOqu&C+tZFDZr!? z9fsowhdEAg$4P(8u`qXt0bcABHSEQHieH5pCz1^q8IjYEF;;dUNyugf%*wQo5#M;V zO)&tG&`R-#GO;;k+$zYJ7P>Qq>8ECWNmV5?MFpv{X8U60w`n9}s}}3!DhSoZC8~n% z)v`7m}Y*y5fX+Ce&96m`O}L&#M|ts?7WD z?^&PfN_|>oTed*=P^f1qV6(Xv zEgT)Bo!Pz-2Ez@S+6=*tBmt&Lmz67)`NGW-D{5h80antyFnObvx&zuO>mAe-&1mY0 zXom+nU{{D5^8riJ0lSX1QUe+%kltk2`(fRo14*UcF=$UZ4u>o8H17gOIuZwg2uZLd z6zVCg7r;C94%Pw5!P-3QFS?^5wf~Ttbwjw(gQ(-cXls!54m(UqkV$6PYK6VwBP^RP z3=UhE!lq3^x;|b8x$T({zVA1et6;D3`Ku%;YBP*(Hm120`==_cg2^Pb#Av4uNp<@n z)jgi1u|n5Cz)aBcVG5&n7P=Q4PzJ6 zVPYbrI3ciNw<5C-Ly;2-vIlh=VTxF<8x&$;1?j^+m1G7>Ad6Q!6y{#V3YY|XE_=G) z16#jm^*6L;uW0u`>%j880obNkxkKSnhZ`Y&Ux@vq0CU3qmg)T%K$R<+Jj-{&;70az zn5KgLi)zWpPO{G?5Fpk0s)9kx5=h{ zpE;0J_&wo@{X!&-3#WWs(L$f@6Bi+aFvZ37F_5kW3XpU#FkKGhAk7L4sSBz$g}Flv zTs;G{K5W6ShzMFDtUBcMk3roBeJYksR1O=H2kHYD&UoT?;M$XnWyiTtY{m z-6iQ-C=-WzC3G#E&|>@?(zW1G$<5sO^h+J9rMh#GscE(*v2g3f_U;aq%&evfv30R1 ztnAnSOll{7Ql|2iOq6XF$joP`k&xZc^dY;URm^T^gJd^U(!08G2+xpy+I)_J>hC(1a${kZebFMwRSPiSO{sd)(zB2Dqv(yx0o{Lc>DXATHx_=|7 zb0F*5*z=H1hqc%_eQli%jkd~3Do?>2?afc;i!Z+cL!$3}n6L3eQ9_eDK3{*prJbWG zv8pC*Ka}bj*PR1fq8;&`C$&2_G;T_C1efhBtQWr_KwBSCXe z)OC)_PV5gP=8H!JVleNO$<=Qtcg2w2hrOitf$(uz(_aoWb;QhH)UL0a^gz1kNrmEx zRnx@{gJAF>M;pyZZE|pqW}{0zsd0I`Z7*aeND~BNdEM64r|L;S6hTU1pGq@rEIJ|X zgieTkrLoWn@!}wKLbN}z5;`IJp8UV26XMNFuM^^fU4PzL|ARY9GVW1FS>3krljuf_ zAk+8R1yanQQ(UWGW1mTwD9D%M)T-a|OtD!Xrg5PKK9(78)}9VdaN0%U#8otjv!m3n zZnQ>ooe-fg(-ewnHOaVDKo=%>m}RzAo&`f%9HcP&wQc47&9fQN*wN=-bW;vw)HdJ$3OgbJ`yBR18x!VP>dHr?BPayyTu+hifT7 zD9w6-IOqK_=K79sd#x~uc1WYk+ZVB;>TTyP0$>GRJjO+ zr2>@LJV(?b5v_&vI)s(O@1o1BCGAQf!%h90}Z^%32$6#V#s zmDOwiCbIfMvkA}CnU<-qb0rflMJU)C|C%+e!7SLoDit{E3%9?ZhIWm)ELcGn3ie-u zE;aOUoNY&}C%!n?!L>(-ob&Nxes!W=up>|r|EL@)tJKB!YEV{7Sqa32O5po>y6@;! zW}y|Ri}A7s6Mg#RP`+$D*ya;rG_}L?@|9cXJuGNkDUxq|vO@Un$-X@(uF@ft((v?z zw=CLpHbyj}RL#X6^T1SGOrEb7!8fWti_Sg9zx~ZK(b&{zY^;fw;mg(0xk79I$5-f9 zt=IfC#k<`mX|mX$bop+KpS17RZ-H~yiug$t@4S7~lj8pNb=N(bUVQzxid|8^Y3(4L z73EzW9|`(q*$?JPgVtpo6_<5XT-H%>@j5Dgj=nnv9Tm!f=(9R1nk<{#a+xaOlGy@2 zPq6kPET)F(sR)zcy~$BtQ9_1@H&j$P&Q(t_#Fdhgk00$d*_&(X>Bdw@{CBaXrpCT? zHD30g!?4&&_F8iYPAw?R58bq?u324>T9kvQvbt(RxcGM@&qHyfEIKEFIVUQlffnj9 z_CYciK+1SYJx1JK9188|g3VV_paG2`uIi49&Ps~)w|m48v2;F+X7V>`LGJxNMAkpP&AQiKR#Z4U-kI( z%4+{>rVOX|wLa5E?~8$dSKVfCZtQze24k>2mg)B_($@5mP7T9e%aU$Uy-|R9*h)VI zV|ZD%q+3u|d0(^U)p%cYFX{HFHwN#RCXA$NgK*m|(6dn`lC}-}J?Byxp>rds!VwNW zw~eHHL$2*IYq7grXD8FLt7lzV`{eX1j94QH|L1jZ%t0QxP6)bJfAKmvR+>GP-F@nN zy`+P~d5#_lGIeO%E9z2P{ScO$+tLVuWs<`;|5KF7*pjTuA%@DI!{9ozRY{8;*oZyJ z3Lb8|QCd-R89n+vk{*r>61z>;v~4op%9K$^;oyu7{Pa*bGeLPi2_MqKv7YJSkkZZd zaIkdmGwD+IAl(7IB8mibA$#6CU}(E~&~qbHDeNF+1!d!5KYbSy4Q?W7UDs})?&-?w zmYVX$%lA{<6c_YjKu$Az;%>IulG1~f+faHay-XK}4Oon}Xm}aEDCknX;b{rR9dH|> zSN1Ckd0NuP9}8|z*U5^d#UsTTo`1Th9g3>_EV2Hl@ zq++P-ZyJC6TywF{N$MlCOXtrw59vS|R_+#-mI%5y;$@U2Cf`cCxS7lzvXZKaty{wf z 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

T)=iKL`!a?odA*w)ap`{Vp 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

74orciOq=kmTeylYfzPNHz0~#oX6J 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 $KjHPBjoN5fAhO4 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 * pFlac->channels * sizeof(drflac_int32)); + drflac_uint64 numberOfInterleavedSamplesActuallyRead = drflac_read_pcm_frames_s32(pFlac, pFlac->totalPCMFrameCount, pSamples); + ``` + +The drflac object represents the decoder. It is a transparent type so all the information you need, such as the number of channels and the bits per sample, +should be directly accessible - just make sure you don't change their values. Samples are always output as interleaved signed 32-bit PCM. In the example above +a native FLAC stream was opened, however dr_flac has seamless support for Ogg encapsulated FLAC streams as well. + +You do not need to decode the entire stream in one go - you just specify how many samples you'd like at any given time and the decoder will give you as many +samples as it can, up to the amount requested. Later on when you need the next batch of samples, just call it again. Example: + + ```c + while (drflac_read_pcm_frames_s32(pFlac, chunkSizeInPCMFrames, pChunkSamples) > 0) { + do_something(); + } + ``` + +You can seek to a specific PCM frame with `drflac_seek_to_pcm_frame()`. + +If you just want to quickly decode an entire FLAC file in one go you can do something like this: + + ```c + unsigned int channels; + unsigned int sampleRate; + drflac_uint64 totalPCMFrameCount; + drflac_int32* pSampleData = drflac_open_file_and_read_pcm_frames_s32("MySong.flac", &channels, &sampleRate, &totalPCMFrameCount, NULL); + if (pSampleData == NULL) { + // Failed to open and decode FLAC file. + } + + ... + + drflac_free(pSampleData, NULL); + ``` + +You can read samples as signed 16-bit integer and 32-bit floating-point PCM with the *_s16() and *_f32() family of APIs respectively, but note that these +should be considered lossy. + + +If you need access to metadata (album art, etc.), use `drflac_open_with_metadata()`, `drflac_open_file_with_metdata()` or `drflac_open_memory_with_metadata()`. +The rationale for keeping these APIs separate is that they're slightly slower than the normal versions and also just a little bit harder to use. dr_flac +reports metadata to the application through the use of a callback, and every metadata block is reported before `drflac_open_with_metdata()` returns. + +The main opening APIs (`drflac_open()`, etc.) will fail if the header is not present. The presents a problem in certain scenarios such as broadcast style +streams or internet radio where the header may not be present because the user has started playback mid-stream. To handle this, use the relaxed APIs: + + `drflac_open_relaxed()` + `drflac_open_with_metadata_relaxed()` + +It is not recommended to use these APIs for file based streams because a missing header would usually indicate a corrupt or perverse file. In addition, these +APIs can take a long time to initialize because they may need to spend a lot of time finding the first frame. + + + +Build Options +============= +#define these options before including this file. + +#define DR_FLAC_NO_STDIO + Disable `drflac_open_file()` and family. + +#define DR_FLAC_NO_OGG + Disables support for Ogg/FLAC streams. + +#define DR_FLAC_BUFFER_SIZE + Defines the size of the internal buffer to store data from onRead(). This buffer is used to reduce the number of calls back to the client for more data. + Larger values means more memory, but better performance. My tests show diminishing returns after about 4KB (which is the default). Consider reducing this if + you have a very efficient implementation of onRead(), or increase it if it's very inefficient. Must be a multiple of 8. + +#define DR_FLAC_NO_CRC + Disables CRC checks. This will offer a performance boost when CRC is unnecessary. This will disable binary search seeking. When seeking, the seek table will + be used if available. Otherwise the seek will be performed using brute force. + +#define DR_FLAC_NO_SIMD + Disables SIMD optimizations (SSE on x86/x64 architectures, NEON on ARM architectures). Use this if you are having compatibility issues with your compiler. + +#define DR_FLAC_NO_WCHAR + Disables all functions ending with `_w`. Use this if your compiler does not provide wchar.h. Not required if DR_FLAC_NO_STDIO is also defined. + + + +Notes +===== +- dr_flac does not support changing the sample rate nor channel count mid stream. +- dr_flac is not thread-safe, but its APIs can be called from any thread so long as you do your own synchronization. +- When using Ogg encapsulation, a corrupted metadata block will result in `drflac_open_with_metadata()` and `drflac_open()` returning inconsistent samples due + to differences in corrupted stream recorvery logic between the two APIs. +*/ + +#ifndef dr_flac_h +#define dr_flac_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DRFLAC_STRINGIFY(x) #x +#define DRFLAC_XSTRINGIFY(x) DRFLAC_STRINGIFY(x) + +#define DRFLAC_VERSION_MAJOR 0 +#define DRFLAC_VERSION_MINOR 13 +#define DRFLAC_VERSION_REVISION 3 +#define DRFLAC_VERSION_STRING DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MAJOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MINOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_REVISION) + +#include /* For size_t. */ + +/* Sized Types */ +typedef signed char drflac_int8; +typedef unsigned char drflac_uint8; +typedef signed short drflac_int16; +typedef unsigned short drflac_uint16; +typedef signed int drflac_int32; +typedef unsigned int drflac_uint32; +#if defined(_MSC_VER) && !defined(__clang__) + typedef signed __int64 drflac_int64; + typedef unsigned __int64 drflac_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drflac_int64; + typedef unsigned long long drflac_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) + typedef drflac_uint64 drflac_uintptr; +#else + typedef drflac_uint32 drflac_uintptr; +#endif +typedef drflac_uint8 drflac_bool8; +typedef drflac_uint32 drflac_bool32; +#define DRFLAC_TRUE 1 +#define DRFLAC_FALSE 0 +/* End Sized Types */ + +/* Decorations */ +#if !defined(DRFLAC_API) + #if defined(DRFLAC_DLL) + #if defined(_WIN32) + #define DRFLAC_DLL_IMPORT __declspec(dllimport) + #define DRFLAC_DLL_EXPORT __declspec(dllexport) + #define DRFLAC_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRFLAC_DLL_IMPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_EXPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRFLAC_DLL_IMPORT + #define DRFLAC_DLL_EXPORT + #define DRFLAC_DLL_PRIVATE static + #endif + #endif + + #if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) + #define DRFLAC_API DRFLAC_DLL_EXPORT + #else + #define DRFLAC_API DRFLAC_DLL_IMPORT + #endif + #define DRFLAC_PRIVATE DRFLAC_DLL_PRIVATE + #else + #define DRFLAC_API extern + #define DRFLAC_PRIVATE static + #endif +#endif +/* End Decorations */ + +#if defined(_MSC_VER) && _MSC_VER >= 1700 /* Visual Studio 2012 */ + #define DRFLAC_DEPRECATED __declspec(deprecated) +#elif (defined(__GNUC__) && __GNUC__ >= 4) /* GCC 4 */ + #define DRFLAC_DEPRECATED __attribute__((deprecated)) +#elif defined(__has_feature) /* Clang */ + #if __has_feature(attribute_deprecated) + #define DRFLAC_DEPRECATED __attribute__((deprecated)) + #else + #define DRFLAC_DEPRECATED + #endif +#else + #define DRFLAC_DEPRECATED +#endif + +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision); +DRFLAC_API const char* drflac_version_string(void); + +/* Allocation Callbacks */ +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drflac_allocation_callbacks; +/* End Allocation Callbacks */ + +/* +As data is read from the client it is placed into an internal buffer for fast access. This controls the size of that buffer. Larger values means more speed, +but also more memory. In my testing there is diminishing returns after about 4KB, but you can fiddle with this to suit your own needs. Must be a multiple of 8. +*/ +#ifndef DR_FLAC_BUFFER_SIZE +#define DR_FLAC_BUFFER_SIZE 4096 +#endif + + +/* Architecture Detection */ +#if defined(_WIN64) || defined(_LP64) || defined(__LP64__) +#define DRFLAC_64BIT +#endif + +#if defined(__x86_64__) || (defined(_M_X64) && !defined(_M_ARM64EC)) + #define DRFLAC_X64 +#elif defined(__i386) || defined(_M_IX86) + #define DRFLAC_X86 +#elif defined(__arm__) || defined(_M_ARM) || defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) + #define DRFLAC_ARM +#endif +/* End Architecture Detection */ + + +#ifdef DRFLAC_64BIT +typedef drflac_uint64 drflac_cache_t; +#else +typedef drflac_uint32 drflac_cache_t; +#endif + +/* The various metadata block types. */ +#define DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO 0 +#define DRFLAC_METADATA_BLOCK_TYPE_PADDING 1 +#define DRFLAC_METADATA_BLOCK_TYPE_APPLICATION 2 +#define DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE 3 +#define DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT 4 +#define DRFLAC_METADATA_BLOCK_TYPE_CUESHEET 5 +#define DRFLAC_METADATA_BLOCK_TYPE_PICTURE 6 +#define DRFLAC_METADATA_BLOCK_TYPE_INVALID 127 + +/* The various picture types specified in the PICTURE block. */ +#define DRFLAC_PICTURE_TYPE_OTHER 0 +#define DRFLAC_PICTURE_TYPE_FILE_ICON 1 +#define DRFLAC_PICTURE_TYPE_OTHER_FILE_ICON 2 +#define DRFLAC_PICTURE_TYPE_COVER_FRONT 3 +#define DRFLAC_PICTURE_TYPE_COVER_BACK 4 +#define DRFLAC_PICTURE_TYPE_LEAFLET_PAGE 5 +#define DRFLAC_PICTURE_TYPE_MEDIA 6 +#define DRFLAC_PICTURE_TYPE_LEAD_ARTIST 7 +#define DRFLAC_PICTURE_TYPE_ARTIST 8 +#define DRFLAC_PICTURE_TYPE_CONDUCTOR 9 +#define DRFLAC_PICTURE_TYPE_BAND 10 +#define DRFLAC_PICTURE_TYPE_COMPOSER 11 +#define DRFLAC_PICTURE_TYPE_LYRICIST 12 +#define DRFLAC_PICTURE_TYPE_RECORDING_LOCATION 13 +#define DRFLAC_PICTURE_TYPE_DURING_RECORDING 14 +#define DRFLAC_PICTURE_TYPE_DURING_PERFORMANCE 15 +#define DRFLAC_PICTURE_TYPE_SCREEN_CAPTURE 16 +#define DRFLAC_PICTURE_TYPE_BRIGHT_COLORED_FISH 17 +#define DRFLAC_PICTURE_TYPE_ILLUSTRATION 18 +#define DRFLAC_PICTURE_TYPE_BAND_LOGOTYPE 19 +#define DRFLAC_PICTURE_TYPE_PUBLISHER_LOGOTYPE 20 + +typedef enum +{ + drflac_container_native, + drflac_container_ogg, + drflac_container_unknown +} drflac_container; + +typedef enum +{ + DRFLAC_SEEK_SET, + DRFLAC_SEEK_CUR, + DRFLAC_SEEK_END +} drflac_seek_origin; + +/* The order of members in this structure is important because we map this directly to the raw data within the SEEKTABLE metadata block. */ +typedef struct +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 flacFrameOffset; /* The offset from the first byte of the header of the first frame. */ + drflac_uint16 pcmFrameCount; +} drflac_seekpoint; + +typedef struct +{ + drflac_uint16 minBlockSizeInPCMFrames; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint32 minFrameSizeInPCMFrames; + drflac_uint32 maxFrameSizeInPCMFrames; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint8 md5[16]; +} drflac_streaminfo; + +typedef struct +{ + /* + The metadata type. Use this to know how to interpret the data below. Will be set to one of the + DRFLAC_METADATA_BLOCK_TYPE_* tokens. + */ + drflac_uint32 type; + + /* The size in bytes of the block and the buffer pointed to by pRawData if it's non-NULL. */ + drflac_uint32 rawDataSize; + + /* The offset in the stream of the raw data. */ + drflac_uint64 rawDataOffset; + + /* + A pointer to the raw data. This points to a temporary buffer so don't hold on to it. It's best to + not modify the contents of this buffer. Use the structures below for more meaningful and structured + information about the metadata. It's possible for this to be null. + */ + const void* pRawData; + + union + { + drflac_streaminfo streaminfo; + + struct + { + int unused; + } padding; + + struct + { + drflac_uint32 id; + const void* pData; + drflac_uint32 dataSize; + } application; + + struct + { + drflac_uint32 seekpointCount; + const drflac_seekpoint* pSeekpoints; + } seektable; + + struct + { + drflac_uint32 vendorLength; + const char* vendor; + drflac_uint32 commentCount; + const void* pComments; + } vorbis_comment; + + struct + { + char catalog[128]; + drflac_uint64 leadInSampleCount; + drflac_bool32 isCD; + drflac_uint8 trackCount; + const void* pTrackData; + } cuesheet; + + struct + { + drflac_uint32 type; + drflac_uint32 mimeLength; + const char* mime; + drflac_uint32 descriptionLength; + const char* description; + drflac_uint32 width; + drflac_uint32 height; + drflac_uint32 colorDepth; + drflac_uint32 indexColorCount; + drflac_uint32 pictureDataSize; + drflac_uint64 pictureDataOffset; /* Offset from the start of the stream. */ + const drflac_uint8* pPictureData; + } picture; + } data; +} drflac_metadata; + + +/* +Callback for when data needs to be read from the client. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +pBufferOut (out) + The output buffer. + +bytesToRead (in) + The number of bytes to read. + + +Return Value +------------ +The number of bytes actually read. + + +Remarks +------- +A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until either the entire bytesToRead is filled or +you have reached the end of the stream. +*/ +typedef size_t (* drflac_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); + +/* +Callback for when data needs to be seeked. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +offset (in) + The number of bytes to move, relative to the origin. Will never be negative. + +origin (in) + The origin of the seek - the current position, the start of the stream, or the end of the stream. + + +Return Value +------------ +Whether or not the seek was successful. + + +Remarks +------- +Seeking relative to the start and the current position must always be supported. If seeking from the end of the stream is not supported, return DRFLAC_FALSE. + +When seeking to a PCM frame using drflac_seek_to_pcm_frame(), dr_flac may call this with an offset beyond the end of the FLAC stream. This needs to be detected +and handled by returning DRFLAC_FALSE. +*/ +typedef drflac_bool32 (* drflac_seek_proc)(void* pUserData, int offset, drflac_seek_origin origin); + +/* +Callback for when the current position in the stream needs to be retrieved. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +pCursor (out) + A pointer to a variable to receive the current position in the stream. + + +Return Value +------------ +Whether or not the operation was successful. +*/ +typedef drflac_bool32 (* drflac_tell_proc)(void* pUserData, drflac_int64* pCursor); + +/* +Callback for when a metadata block is read. + + +Parameters +---------- +pUserData (in) + The user data that was passed to drflac_open() and family. + +pMetadata (in) + A pointer to a structure containing the data of the metadata block. + + +Remarks +------- +Use pMetadata->type to determine which metadata block is being handled and how to read the data. This +will be set to one of the DRFLAC_METADATA_BLOCK_TYPE_* tokens. +*/ +typedef void (* drflac_meta_proc)(void* pUserData, drflac_metadata* pMetadata); + + +/* Structure for internal use. Only used for decoders opened with drflac_open_memory. */ +typedef struct +{ + const drflac_uint8* data; + size_t dataSize; + size_t currentReadPos; +} drflac__memory_stream; + +/* Structure for internal use. Used for bit streaming. */ +typedef struct +{ + /* The function to call when more data needs to be read. */ + drflac_read_proc onRead; + + /* The function to call when the current read position needs to be moved. */ + drflac_seek_proc onSeek; + + /* The function to call when the current read position needs to be retrieved. */ + drflac_tell_proc onTell; + + /* The user data to pass around to onRead and onSeek. */ + void* pUserData; + + + /* + The number of unaligned bytes in the L2 cache. This will always be 0 until the end of the stream is hit. At the end of the + stream there will be a number of bytes that don't cleanly fit in an L1 cache line, so we use this variable to know whether + or not the bistreamer needs to run on a slower path to read those last bytes. This will never be more than sizeof(drflac_cache_t). + */ + size_t unalignedByteCount; + + /* The content of the unaligned bytes. */ + drflac_cache_t unalignedCache; + + /* The index of the next valid cache line in the "L2" cache. */ + drflac_uint32 nextL2Line; + + /* The number of bits that have been consumed by the cache. This is used to determine how many valid bits are remaining. */ + drflac_uint32 consumedBits; + + /* + The cached data which was most recently read from the client. There are two levels of cache. Data flows as such: + Client -> L2 -> L1. The L2 -> L1 movement is aligned and runs on a fast path in just a few instructions. + */ + drflac_cache_t cacheL2[DR_FLAC_BUFFER_SIZE/sizeof(drflac_cache_t)]; + drflac_cache_t cache; + + /* + CRC-16. This is updated whenever bits are read from the bit stream. Manually set this to 0 to reset the CRC. For FLAC, this + is reset to 0 at the beginning of each frame. + */ + drflac_uint16 crc16; + drflac_cache_t crc16Cache; /* A cache for optimizing CRC calculations. This is filled when when the L1 cache is reloaded. */ + drflac_uint32 crc16CacheIgnoredBytes; /* The number of bytes to ignore when updating the CRC-16 from the CRC-16 cache. */ +} drflac_bs; + +typedef struct +{ + /* The type of the subframe: SUBFRAME_CONSTANT, SUBFRAME_VERBATIM, SUBFRAME_FIXED or SUBFRAME_LPC. */ + drflac_uint8 subframeType; + + /* The number of wasted bits per sample as specified by the sub-frame header. */ + drflac_uint8 wastedBitsPerSample; + + /* The order to use for the prediction stage for SUBFRAME_FIXED and SUBFRAME_LPC. */ + drflac_uint8 lpcOrder; + + /* A pointer to the buffer containing the decoded samples in the subframe. This pointer is an offset from drflac::pExtraData. */ + drflac_int32* pSamplesS32; +} drflac_subframe; + +typedef struct +{ + /* + If the stream uses variable block sizes, this will be set to the index of the first PCM frame. If fixed block sizes are used, this will + always be set to 0. This is 64-bit because the decoded PCM frame number will be 36 bits. + */ + drflac_uint64 pcmFrameNumber; + + /* + If the stream uses fixed block sizes, this will be set to the frame number. If variable block sizes are used, this will always be 0. This + is 32-bit because in fixed block sizes, the maximum frame number will be 31 bits. + */ + drflac_uint32 flacFrameNumber; + + /* The sample rate of this frame. */ + drflac_uint32 sampleRate; + + /* The number of PCM frames in each sub-frame within this frame. */ + drflac_uint16 blockSizeInPCMFrames; + + /* + The channel assignment of this frame. This is not always set to the channel count. If interchannel decorrelation is being used this + will be set to DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE, DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE or DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE. + */ + drflac_uint8 channelAssignment; + + /* The number of bits per sample within this frame. */ + drflac_uint8 bitsPerSample; + + /* The frame's CRC. */ + drflac_uint8 crc8; +} drflac_frame_header; + +typedef struct +{ + /* The header. */ + drflac_frame_header header; + + /* + The number of PCM frames left to be read in this FLAC frame. This is initially set to the block size. As PCM frames are read, + this will be decremented. When it reaches 0, the decoder will see this frame as fully consumed and load the next frame. + */ + drflac_uint32 pcmFramesRemaining; + + /* The list of sub-frames within the frame. There is one sub-frame for each channel, and there's a maximum of 8 channels. */ + drflac_subframe subframes[8]; +} drflac_frame; + +typedef struct +{ + /* The function to call when a metadata block is read. */ + drflac_meta_proc onMeta; + + /* The user data posted to the metadata callback function. */ + void* pUserDataMD; + + /* Memory allocation callbacks. */ + drflac_allocation_callbacks allocationCallbacks; + + + /* The sample rate. Will be set to something like 44100. */ + drflac_uint32 sampleRate; + + /* + The number of channels. This will be set to 1 for monaural streams, 2 for stereo, etc. Maximum 8. This is set based on the + value specified in the STREAMINFO block. + */ + drflac_uint8 channels; + + /* The bits per sample. Will be set to something like 16, 24, etc. */ + drflac_uint8 bitsPerSample; + + /* The maximum block size, in samples. This number represents the number of samples in each channel (not combined). */ + drflac_uint16 maxBlockSizeInPCMFrames; + + /* + The total number of PCM Frames making up the stream. Can be 0 in which case it's still a valid stream, but just means + the total PCM frame count is unknown. Likely the case with streams like internet radio. + */ + drflac_uint64 totalPCMFrameCount; + + + /* The container type. This is set based on whether or not the decoder was opened from a native or Ogg stream. */ + drflac_container container; + + /* The number of seekpoints in the seektable. */ + drflac_uint32 seekpointCount; + + + /* Information about the frame the decoder is currently sitting on. */ + drflac_frame currentFLACFrame; + + + /* The index of the PCM frame the decoder is currently sitting on. This is only used for seeking. */ + drflac_uint64 currentPCMFrame; + + /* The position of the first FLAC frame in the stream. This is only ever used for seeking. */ + drflac_uint64 firstFLACFramePosInBytes; + + + /* A hack to avoid a malloc() when opening a decoder with drflac_open_memory(). */ + drflac__memory_stream memoryStream; + + + /* A pointer to the decoded sample data. This is an offset of pExtraData. */ + drflac_int32* pDecodedSamples; + + /* A pointer to the seek table. This is an offset of pExtraData, or NULL if there is no seek table. */ + drflac_seekpoint* pSeekpoints; + + /* Internal use only. Only used with Ogg containers. Points to a drflac_oggbs object. This is an offset of pExtraData. */ + void* _oggbs; + + /* Internal use only. Used for profiling and testing different seeking modes. */ + drflac_bool32 _noSeekTableSeek : 1; + drflac_bool32 _noBinarySearchSeek : 1; + drflac_bool32 _noBruteForceSeek : 1; + + /* The bit streamer. The raw FLAC data is fed through this object. */ + drflac_bs bs; + + /* Variable length extra data. We attach this to the end of the object so we can avoid unnecessary mallocs. */ + drflac_uint8 pExtraData[1]; +} drflac; + + +/* +Opens a FLAC decoder. + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead and onSeek. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +Returns a pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with `drflac_close()`. + +`pAllocationCallbacks` can be NULL in which case it will use `DRFLAC_MALLOC`, `DRFLAC_REALLOC` and `DRFLAC_FREE`. + +This function will automatically detect whether or not you are attempting to open a native or Ogg encapsulated FLAC, both of which should work seamlessly +without any manual intervention. Ogg encapsulation also works with multiplexed streams which basically means it can play FLAC encoded audio tracks in videos. + +This is the lowest level function for opening a FLAC stream. You can also use `drflac_open_file()` and `drflac_open_memory()` to open the stream from a file or +from a block of memory respectively. + +The STREAMINFO block must be present for this to succeed. Use `drflac_open_relaxed()` to open a FLAC stream where the header may not be present. + +Use `drflac_open_with_metadata()` if you need access to metadata. + + +Seek Also +--------- +drflac_open_file() +drflac_open_memory() +drflac_open_with_metadata() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC stream with relaxed validation of the header block. + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +container (in) + Whether or not the FLAC stream is encapsulated using standard FLAC encapsulation or Ogg encapsulation. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead and onSeek. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +The same as drflac_open(), except attempts to open the stream even when a header block is not present. + +Because the header is not necessarily available, the caller must explicitly define the container (Native or Ogg). Do not set this to `drflac_container_unknown` +as that is for internal use only. + +Opening in relaxed mode will continue reading data from onRead until it finds a valid frame. If a frame is never found it will continue forever. To abort, +force your `onRead` callback to return 0, which dr_flac will use as an indicator that the end of the stream was found. + +Use `drflac_open_with_metadata_relaxed()` if you need access to metadata. +*/ +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder and notifies the caller of the metadata chunks (album art, etc.). + + +Parameters +---------- +onRead (in) + The function to call when data needs to be read from the client. + +onSeek (in) + The function to call when the read position of the client data needs to move. + +onMeta (in) + The function to call for every metadata block. + +pUserData (in, optional) + A pointer to application defined data that will be passed to onRead, onSeek and onMeta. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with `drflac_close()`. + +`pAllocationCallbacks` can be NULL in which case it will use `DRFLAC_MALLOC`, `DRFLAC_REALLOC` and `DRFLAC_FREE`. + +This is slower than `drflac_open()`, so avoid this one if you don't need metadata. Internally, this will allocate and free memory on the heap for every +metadata block except for STREAMINFO and PADDING blocks. + +The caller is notified of the metadata via the `onMeta` callback. All metadata blocks will be handled before the function returns. This callback takes a +pointer to a `drflac_metadata` object which is a union containing the data of all relevant metadata blocks. Use the `type` member to discriminate against +the different metadata types. + +The STREAMINFO block must be present for this to succeed. Use `drflac_open_with_metadata_relaxed()` to open a FLAC stream where the header may not be present. + +Note that this will behave inconsistently with `drflac_open()` if the stream is an Ogg encapsulated stream and a metadata block is corrupted. This is due to +the way the Ogg stream recovers from corrupted pages. When `drflac_open_with_metadata()` is being used, the open routine will try to read the contents of the +metadata block, whereas `drflac_open()` will simply seek past it (for the sake of efficiency). This inconsistency can result in different samples being +returned depending on whether or not the stream is being opened with metadata. + + +Seek Also +--------- +drflac_open_file_with_metadata() +drflac_open_memory_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +The same as drflac_open_with_metadata(), except attempts to open the stream even when a header block is not present. + +See Also +-------- +drflac_open_with_metadata() +drflac_open_relaxed() +*/ +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Closes the given FLAC decoder. + + +Parameters +---------- +pFlac (in) + The decoder to close. + + +Remarks +------- +This will destroy the decoder object. + + +See Also +-------- +drflac_open() +drflac_open_with_metadata() +drflac_open_file() +drflac_open_file_w() +drflac_open_file_with_metadata() +drflac_open_file_with_metadata_w() +drflac_open_memory() +drflac_open_memory_with_metadata() +*/ +DRFLAC_API void drflac_close(drflac* pFlac); + + +/* +Reads sample data from the given FLAC decoder, output as interleaved signed 32-bit PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut); + + +/* +Reads sample data from the given FLAC decoder, output as interleaved signed 16-bit PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. + +Note that this is lossy for streams where the bits per sample is larger than 16. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut); + +/* +Reads sample data from the given FLAC decoder, output as interleaved 32-bit floating point PCM. + + +Parameters +---------- +pFlac (in) + The decoder. + +framesToRead (in) + The number of PCM frames to read. + +pBufferOut (out, optional) + A pointer to the buffer that will receive the decoded samples. + + +Return Value +------------ +Returns the number of PCM frames actually read. If the return value is less than `framesToRead` it has reached the end. + + +Remarks +------- +pBufferOut can be null, in which case the call will act as a seek, and the return value will be the number of frames seeked. + +Note that this should be considered lossy due to the nature of floating point numbers not being able to exactly represent every possible number. +*/ +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut); + +/* +Seeks to the PCM frame at the given index. + + +Parameters +---------- +pFlac (in) + The decoder. + +pcmFrameIndex (in) + The index of the PCM frame to seek to. See notes below. + + +Return Value +------------- +`DRFLAC_TRUE` if successful; `DRFLAC_FALSE` otherwise. +*/ +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex); + + + +#ifndef DR_FLAC_NO_STDIO +/* +Opens a FLAC decoder from the file at the given path. + + +Parameters +---------- +pFileName (in) + The path of the file to open, either absolute or relative to the current directory. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +Close the decoder with drflac_close(). + + +Remarks +------- +This will hold a handle to the file until the decoder is closed with drflac_close(). Some platforms will restrict the number of files a process can have open +at any given time, so keep this mind if you have many decoders open at the same time. + + +See Also +-------- +drflac_open_file_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder from the file at the given path and notifies the caller of the metadata chunks (album art, etc.) + + +Parameters +---------- +pFileName (in) + The path of the file to open, either absolute or relative to the current directory. + +pAllocationCallbacks (in, optional) + A pointer to application defined callbacks for managing memory allocations. + +onMeta (in) + The callback to fire for each metadata block. + +pUserData (in) + A pointer to the user data to pass to the metadata callback. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Remarks +------- +Look at the documentation for drflac_open_with_metadata() for more information on how metadata is handled. + + +See Also +-------- +drflac_open_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Opens a FLAC decoder from a pre-allocated block of memory + + +Parameters +---------- +pData (in) + A pointer to the raw encoded FLAC data. + +dataSize (in) + The size in bytes of `data`. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Return Value +------------ +A pointer to an object representing the decoder. + + +Remarks +------- +This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for the lifetime of the decoder. + + +See Also +-------- +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Opens a FLAC decoder from a pre-allocated block of memory and notifies the caller of the metadata chunks (album art, etc.) + + +Parameters +---------- +pData (in) + A pointer to the raw encoded FLAC data. + +dataSize (in) + The size in bytes of `data`. + +onMeta (in) + The callback to fire for each metadata block. + +pUserData (in) + A pointer to the user data to pass to the metadata callback. + +pAllocationCallbacks (in) + A pointer to application defined callbacks for managing memory allocations. + + +Remarks +------- +Look at the documentation for drflac_open_with_metadata() for more information on how metadata is handled. + + +See Also +------- +drflac_open_with_metadata() +drflac_open() +drflac_close() +*/ +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + + + +/* High Level APIs */ + +/* +Opens a FLAC stream from the given callbacks and fully decodes it in a single operation. The return value is a +pointer to the sample data as interleaved signed 32-bit PCM. The returned data must be freed with drflac_free(). + +You can pass in custom memory allocation callbacks via the pAllocationCallbacks parameter. This can be NULL in which +case it will use DRFLAC_MALLOC, DRFLAC_REALLOC and DRFLAC_FREE. + +Sometimes a FLAC file won't keep track of the total sample count. In this situation the function will continuously +read samples into a dynamically sized buffer on the heap until no samples are left. + +Do not call this function on a broadcast type of stream (like internet radio streams and whatnot). +*/ +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_FLAC_NO_STDIO +/* Same as drflac_open_and_read_pcm_frames_s32() except opens the decoder from a file. */ +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_file_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_file_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif + +/* Same as drflac_open_and_read_pcm_frames_s32() except opens the decoder from a block of memory. */ +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_memory_and_read_pcm_frames_s32(), except returns signed 16-bit integer samples. */ +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* Same as drflac_open_memory_and_read_pcm_frames_s32(), except returns 32-bit floating-point samples. */ +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); + +/* +Frees memory that was allocated internally by dr_flac. + +Set pAllocationCallbacks to the same object that was passed to drflac_open_*_and_read_pcm_frames_*(). If you originally passed in NULL, pass in NULL for this. +*/ +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks); + + +/* Structure representing an iterator for vorbis comments in a VORBIS_COMMENT metadata block. */ +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_vorbis_comment_iterator; + +/* +Initializes a vorbis comment iterator. This can be used for iterating over the vorbis comments in a VORBIS_COMMENT +metadata block. +*/ +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments); + +/* +Goes to the next vorbis comment in the given iterator. If null is returned it means there are no more comments. The +returned string is NOT null terminated. +*/ +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut); + + +/* Structure representing an iterator for cuesheet tracks in a CUESHEET metadata block. */ +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_cuesheet_track_iterator; + +/* The order of members here is important because we map this directly to the raw data within the CUESHEET metadata block. */ +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 index; + drflac_uint8 reserved[3]; +} drflac_cuesheet_track_index; + +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 trackNumber; + char ISRC[12]; + drflac_bool8 isAudio; + drflac_bool8 preEmphasis; + drflac_uint8 indexCount; + const drflac_cuesheet_track_index* pIndexPoints; +} drflac_cuesheet_track; + +/* +Initializes a cuesheet track iterator. This can be used for iterating over the cuesheet tracks in a CUESHEET metadata +block. +*/ +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData); + +/* Goes to the next cuesheet track in the given iterator. If DRFLAC_FALSE is returned it means there are no more comments. */ +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack); + + +#ifdef __cplusplus +} +#endif +#endif /* dr_flac_h */ + + +/************************************************************************************************************************************************************ + ************************************************************************************************************************************************************ + + IMPLEMENTATION + + ************************************************************************************************************************************************************ + ************************************************************************************************************************************************************/ +#if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) +#ifndef dr_flac_c +#define dr_flac_c + +/* Disable some annoying warnings. */ +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #if __GNUC__ >= 7 + #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" + #endif +#endif + +#ifdef __linux__ + #ifndef _BSD_SOURCE + #define _BSD_SOURCE + #endif + #ifndef _DEFAULT_SOURCE + #define _DEFAULT_SOURCE + #endif + #ifndef __USE_BSD + #define __USE_BSD + #endif + #include +#endif + +#include +#include + +/* Inline */ +#ifdef _MSC_VER + #define DRFLAC_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define DRFLAC_GNUC_INLINE_HINT __inline__ + #else + #define DRFLAC_GNUC_INLINE_HINT inline + #endif + + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) + #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT __attribute__((always_inline)) + #else + #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT + #endif +#elif defined(__WATCOMC__) + #define DRFLAC_INLINE __inline +#else + #define DRFLAC_INLINE +#endif +/* End Inline */ + +/* +Intrinsics Support + +There's a bug in GCC 4.2.x which results in an incorrect compilation error when using _mm_slli_epi32() where it complains with + + "error: shift must be an immediate" + +Unfortuantely dr_flac depends on this for a few things so we're just going to disable SSE on GCC 4.2 and below. +*/ +#if !defined(DR_FLAC_NO_SIMD) + #if defined(DRFLAC_X64) || defined(DRFLAC_X86) + #if defined(_MSC_VER) && !defined(__clang__) + /* MSVC. */ + #if _MSC_VER >= 1400 && !defined(DRFLAC_NO_SSE2) /* 2005 */ + #define DRFLAC_SUPPORT_SSE2 + #endif + #if _MSC_VER >= 1600 && !defined(DRFLAC_NO_SSE41) /* 2010 */ + #define DRFLAC_SUPPORT_SSE41 + #endif + #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) + /* Assume GNUC-style. */ + #if defined(__SSE2__) && !defined(DRFLAC_NO_SSE2) + #define DRFLAC_SUPPORT_SSE2 + #endif + #if defined(__SSE4_1__) && !defined(DRFLAC_NO_SSE41) + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + + /* If at this point we still haven't determined compiler support for the intrinsics just fall back to __has_include. */ + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(DRFLAC_SUPPORT_SSE2) && !defined(DRFLAC_NO_SSE2) && __has_include() + #define DRFLAC_SUPPORT_SSE2 + #endif + #if !defined(DRFLAC_SUPPORT_SSE41) && !defined(DRFLAC_NO_SSE41) && __has_include() + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + + #if defined(DRFLAC_SUPPORT_SSE41) + #include + #elif defined(DRFLAC_SUPPORT_SSE2) + #include + #endif + #endif + + #if defined(DRFLAC_ARM) + #if !defined(DRFLAC_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + #define DRFLAC_SUPPORT_NEON + #include + #endif + #endif +#endif + +/* Compile-time CPU feature support. */ +#if !defined(DR_FLAC_NO_SIMD) && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) + #if defined(_MSC_VER) && !defined(__clang__) + #if _MSC_VER >= 1400 + #include + static void drflac__cpuid(int info[4], int fid) + { + __cpuid(info, fid); + } + #else + #define DRFLAC_NO_CPUID + #endif + #else + #if defined(__GNUC__) || defined(__clang__) + static void drflac__cpuid(int info[4], int fid) + { + /* + It looks like the -fPIC option uses the ebx register which GCC complains about. We can work around this by just using a different register, the + specific register of which I'm letting the compiler decide on. The "k" prefix is used to specify a 32-bit register. The {...} syntax is for + supporting different assembly dialects. + + What's basically happening is that we're saving and restoring the ebx register manually. + */ + #if defined(DRFLAC_X86) && defined(__PIC__) + __asm__ __volatile__ ( + "xchg{l} {%%}ebx, %k1;" + "cpuid;" + "xchg{l} {%%}ebx, %k1;" + : "=a"(info[0]), "=&r"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #else + __asm__ __volatile__ ( + "cpuid" : "=a"(info[0]), "=b"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #endif + } + #else + #define DRFLAC_NO_CPUID + #endif + #endif +#else + #define DRFLAC_NO_CPUID +#endif + +static DRFLAC_INLINE drflac_bool32 drflac_has_sse2(void) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE2) + #if defined(DRFLAC_X64) + return DRFLAC_TRUE; /* 64-bit targets always support SSE2. */ + #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate SSE2 code we can assume support. */ + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[3] & (1 << 26)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; /* SSE2 is only supported on x86 and x64 architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + +static DRFLAC_INLINE drflac_bool32 drflac_has_sse41(void) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE41) + #if defined(__SSE4_1__) || defined(__AVX__) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate SSE41 code we can assume support. */ + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[2] & (1 << 19)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; /* SSE41 is only supported on x86 and x64 architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + + +#if defined(_MSC_VER) && _MSC_VER >= 1500 && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) && !defined(__clang__) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_clzll) || __has_builtin(__builtin_clzl) + #define DRFLAC_HAS_LZCNT_INTRINSIC + #endif + #endif +#endif + +#if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(__clang__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_bswap16) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap32) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap64) + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif +#elif defined(__WATCOMC__) && defined(__386__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + extern __inline drflac_uint16 _watcom_bswap16(drflac_uint16); + extern __inline drflac_uint32 _watcom_bswap32(drflac_uint32); + extern __inline drflac_uint64 _watcom_bswap64(drflac_uint64); +#pragma aux _watcom_bswap16 = \ + "xchg al, ah" \ + parm [ax] \ + value [ax] \ + modify nomemory; +#pragma aux _watcom_bswap32 = \ + "bswap eax" \ + parm [eax] \ + value [eax] \ + modify nomemory; +#pragma aux _watcom_bswap64 = \ + "bswap eax" \ + "bswap edx" \ + "xchg eax,edx" \ + parm [eax edx] \ + value [eax edx] \ + modify nomemory; +#endif + + +/* Standard library stuff. */ +#ifndef DRFLAC_ASSERT +#include +#define DRFLAC_ASSERT(expression) assert(expression) +#endif +#ifndef DRFLAC_MALLOC +#define DRFLAC_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRFLAC_REALLOC +#define DRFLAC_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRFLAC_FREE +#define DRFLAC_FREE(p) free((p)) +#endif +#ifndef DRFLAC_COPY_MEMORY +#define DRFLAC_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRFLAC_ZERO_MEMORY +#define DRFLAC_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#ifndef DRFLAC_ZERO_OBJECT +#define DRFLAC_ZERO_OBJECT(p) DRFLAC_ZERO_MEMORY((p), sizeof(*(p))) +#endif + +#define DRFLAC_MAX_SIMD_VECTOR_SIZE 64 /* 64 for AVX-512 in the future. */ + +/* Result Codes */ +typedef drflac_int32 drflac_result; +#define DRFLAC_SUCCESS 0 +#define DRFLAC_ERROR -1 /* A generic error. */ +#define DRFLAC_INVALID_ARGS -2 +#define DRFLAC_INVALID_OPERATION -3 +#define DRFLAC_OUT_OF_MEMORY -4 +#define DRFLAC_OUT_OF_RANGE -5 +#define DRFLAC_ACCESS_DENIED -6 +#define DRFLAC_DOES_NOT_EXIST -7 +#define DRFLAC_ALREADY_EXISTS -8 +#define DRFLAC_TOO_MANY_OPEN_FILES -9 +#define DRFLAC_INVALID_FILE -10 +#define DRFLAC_TOO_BIG -11 +#define DRFLAC_PATH_TOO_LONG -12 +#define DRFLAC_NAME_TOO_LONG -13 +#define DRFLAC_NOT_DIRECTORY -14 +#define DRFLAC_IS_DIRECTORY -15 +#define DRFLAC_DIRECTORY_NOT_EMPTY -16 +#define DRFLAC_END_OF_FILE -17 +#define DRFLAC_NO_SPACE -18 +#define DRFLAC_BUSY -19 +#define DRFLAC_IO_ERROR -20 +#define DRFLAC_INTERRUPT -21 +#define DRFLAC_UNAVAILABLE -22 +#define DRFLAC_ALREADY_IN_USE -23 +#define DRFLAC_BAD_ADDRESS -24 +#define DRFLAC_BAD_SEEK -25 +#define DRFLAC_BAD_PIPE -26 +#define DRFLAC_DEADLOCK -27 +#define DRFLAC_TOO_MANY_LINKS -28 +#define DRFLAC_NOT_IMPLEMENTED -29 +#define DRFLAC_NO_MESSAGE -30 +#define DRFLAC_BAD_MESSAGE -31 +#define DRFLAC_NO_DATA_AVAILABLE -32 +#define DRFLAC_INVALID_DATA -33 +#define DRFLAC_TIMEOUT -34 +#define DRFLAC_NO_NETWORK -35 +#define DRFLAC_NOT_UNIQUE -36 +#define DRFLAC_NOT_SOCKET -37 +#define DRFLAC_NO_ADDRESS -38 +#define DRFLAC_BAD_PROTOCOL -39 +#define DRFLAC_PROTOCOL_UNAVAILABLE -40 +#define DRFLAC_PROTOCOL_NOT_SUPPORTED -41 +#define DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRFLAC_SOCKET_NOT_SUPPORTED -44 +#define DRFLAC_CONNECTION_RESET -45 +#define DRFLAC_ALREADY_CONNECTED -46 +#define DRFLAC_NOT_CONNECTED -47 +#define DRFLAC_CONNECTION_REFUSED -48 +#define DRFLAC_NO_HOST -49 +#define DRFLAC_IN_PROGRESS -50 +#define DRFLAC_CANCELLED -51 +#define DRFLAC_MEMORY_ALREADY_MAPPED -52 +#define DRFLAC_AT_END -53 + +#define DRFLAC_CRC_MISMATCH -100 +/* End Result Codes */ + + +#define DRFLAC_SUBFRAME_CONSTANT 0 +#define DRFLAC_SUBFRAME_VERBATIM 1 +#define DRFLAC_SUBFRAME_FIXED 8 +#define DRFLAC_SUBFRAME_LPC 32 +#define DRFLAC_SUBFRAME_RESERVED 255 + +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE 0 +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2 1 + +#define DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT 0 +#define DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE 8 +#define DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE 9 +#define DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE 10 + +#define DRFLAC_SEEKPOINT_SIZE_IN_BYTES 18 +#define DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES 36 +#define DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES 12 + +#define drflac_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) + + +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRFLAC_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = DRFLAC_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = DRFLAC_VERSION_REVISION; + } +} + +DRFLAC_API const char* drflac_version_string(void) +{ + return DRFLAC_VERSION_STRING; +} + + +/* CPU caps. */ +#if defined(__has_feature) + #if __has_feature(thread_sanitizer) + #define DRFLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) + #else + #define DRFLAC_NO_THREAD_SANITIZE + #endif +#else + #define DRFLAC_NO_THREAD_SANITIZE +#endif + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +static drflac_bool32 drflac__gIsLZCNTSupported = DRFLAC_FALSE; +#endif + +#ifndef DRFLAC_NO_CPUID +static drflac_bool32 drflac__gIsSSE2Supported = DRFLAC_FALSE; +static drflac_bool32 drflac__gIsSSE41Supported = DRFLAC_FALSE; + +/* +I've had a bug report that Clang's ThreadSanitizer presents a warning in this function. Having reviewed this, this does +actually make sense. However, since CPU caps should never differ for a running process, I don't think the trade off of +complicating internal API's by passing around CPU caps versus just disabling the warnings is worthwhile. I'm therefore +just going to disable these warnings. This is disabled via the DRFLAC_NO_THREAD_SANITIZE attribute. +*/ +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + static drflac_bool32 isCPUCapsInitialized = DRFLAC_FALSE; + + if (!isCPUCapsInitialized) { + /* LZCNT */ +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) + int info[4] = {0}; + drflac__cpuid(info, 0x80000001); + drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; +#endif + + /* SSE2 */ + drflac__gIsSSE2Supported = drflac_has_sse2(); + + /* SSE4.1 */ + drflac__gIsSSE41Supported = drflac_has_sse41(); + + /* Initialized. */ + isCPUCapsInitialized = DRFLAC_TRUE; + } +} +#else +static drflac_bool32 drflac__gIsNEONSupported = DRFLAC_FALSE; + +static DRFLAC_INLINE drflac_bool32 drflac__has_neon(void) +{ +#if defined(DRFLAC_SUPPORT_NEON) + #if defined(DRFLAC_ARM) && !defined(DRFLAC_NO_NEON) + #if (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + return DRFLAC_TRUE; /* If the compiler is allowed to freely generate NEON code we can assume support. */ + #else + /* TODO: Runtime check. */ + return DRFLAC_FALSE; + #endif + #else + return DRFLAC_FALSE; /* NEON is only supported on ARM architectures. */ + #endif +#else + return DRFLAC_FALSE; /* No compiler support. */ +#endif +} + +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + drflac__gIsNEONSupported = drflac__has_neon(); + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + drflac__gIsLZCNTSupported = DRFLAC_TRUE; +#endif +} +#endif + + +/* Endian Management */ +static DRFLAC_INLINE drflac_bool32 drflac__is_little_endian(void) +{ +#if defined(DRFLAC_X86) || defined(DRFLAC_X64) + return DRFLAC_TRUE; +#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN + return DRFLAC_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac__swap_endian_uint16(drflac_uint16 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP16_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ushort(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap16(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap16(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF00) >> 8) | + ((n & 0x00FF) << 8); +#endif +} + +static DRFLAC_INLINE drflac_uint32 drflac__swap_endian_uint32(drflac_uint32 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(__ARM_ARCH_6M__) && !defined(DRFLAC_64BIT) /* <-- 64-bit inline assembly has not been tested, so disabling for now. */ + /* Inline assembly optimized implementation for ARM. In my testing, GCC does not generate optimized code with __builtin_bswap32(). */ + drflac_uint32 r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap32(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} + +static DRFLAC_INLINE drflac_uint64 drflac__swap_endian_uint64(drflac_uint64 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP64_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_uint64(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap64(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap64(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + /* Weird "<< 32" bitshift is required for C89 because it doesn't support 64-bit constants. Should be optimized out by a good compiler. */ + return ((n & ((drflac_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((drflac_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((drflac_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((drflac_uint64)0x000000FF << 32)) >> 8) | + ((n & ((drflac_uint64)0xFF000000 )) << 8) | + ((n & ((drflac_uint64)0x00FF0000 )) << 24) | + ((n & ((drflac_uint64)0x0000FF00 )) << 40) | + ((n & ((drflac_uint64)0x000000FF )) << 56); +#endif +} + + +static DRFLAC_INLINE drflac_uint16 drflac__be2host_16(drflac_uint16 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint16(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__be2host_32(drflac_uint32 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__be2host_32_ptr_unaligned(const void* pData) +{ + const drflac_uint8* pNum = (drflac_uint8*)pData; + return *(pNum) << 24 | *(pNum+1) << 16 | *(pNum+2) << 8 | *(pNum+3); +} + +static DRFLAC_INLINE drflac_uint64 drflac__be2host_64(drflac_uint64 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint64(n); + } + + return n; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__le2host_32(drflac_uint32 n) +{ + if (!drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + + return n; +} + +static DRFLAC_INLINE drflac_uint32 drflac__le2host_32_ptr_unaligned(const void* pData) +{ + const drflac_uint8* pNum = (drflac_uint8*)pData; + return *pNum | *(pNum+1) << 8 | *(pNum+2) << 16 | *(pNum+3) << 24; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__unsynchsafe_32(drflac_uint32 n) +{ + drflac_uint32 result = 0; + result |= (n & 0x7F000000) >> 3; + result |= (n & 0x007F0000) >> 2; + result |= (n & 0x00007F00) >> 1; + result |= (n & 0x0000007F) >> 0; + + return result; +} + + + +/* The CRC code below is based on this document: http://zlib.net/crc_v3.txt */ +static drflac_uint8 drflac__crc8_table[] = { + 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, + 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, + 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, + 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, + 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, + 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, + 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A, + 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, + 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4, + 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, + 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, + 0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34, + 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, + 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, + 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, + 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 +}; + +static drflac_uint16 drflac__crc16_table[] = { + 0x0000, 0x8005, 0x800F, 0x000A, 0x801B, 0x001E, 0x0014, 0x8011, + 0x8033, 0x0036, 0x003C, 0x8039, 0x0028, 0x802D, 0x8027, 0x0022, + 0x8063, 0x0066, 0x006C, 0x8069, 0x0078, 0x807D, 0x8077, 0x0072, + 0x0050, 0x8055, 0x805F, 0x005A, 0x804B, 0x004E, 0x0044, 0x8041, + 0x80C3, 0x00C6, 0x00CC, 0x80C9, 0x00D8, 0x80DD, 0x80D7, 0x00D2, + 0x00F0, 0x80F5, 0x80FF, 0x00FA, 0x80EB, 0x00EE, 0x00E4, 0x80E1, + 0x00A0, 0x80A5, 0x80AF, 0x00AA, 0x80BB, 0x00BE, 0x00B4, 0x80B1, + 0x8093, 0x0096, 0x009C, 0x8099, 0x0088, 0x808D, 0x8087, 0x0082, + 0x8183, 0x0186, 0x018C, 0x8189, 0x0198, 0x819D, 0x8197, 0x0192, + 0x01B0, 0x81B5, 0x81BF, 0x01BA, 0x81AB, 0x01AE, 0x01A4, 0x81A1, + 0x01E0, 0x81E5, 0x81EF, 0x01EA, 0x81FB, 0x01FE, 0x01F4, 0x81F1, + 0x81D3, 0x01D6, 0x01DC, 0x81D9, 0x01C8, 0x81CD, 0x81C7, 0x01C2, + 0x0140, 0x8145, 0x814F, 0x014A, 0x815B, 0x015E, 0x0154, 0x8151, + 0x8173, 0x0176, 0x017C, 0x8179, 0x0168, 0x816D, 0x8167, 0x0162, + 0x8123, 0x0126, 0x012C, 0x8129, 0x0138, 0x813D, 0x8137, 0x0132, + 0x0110, 0x8115, 0x811F, 0x011A, 0x810B, 0x010E, 0x0104, 0x8101, + 0x8303, 0x0306, 0x030C, 0x8309, 0x0318, 0x831D, 0x8317, 0x0312, + 0x0330, 0x8335, 0x833F, 0x033A, 0x832B, 0x032E, 0x0324, 0x8321, + 0x0360, 0x8365, 0x836F, 0x036A, 0x837B, 0x037E, 0x0374, 0x8371, + 0x8353, 0x0356, 0x035C, 0x8359, 0x0348, 0x834D, 0x8347, 0x0342, + 0x03C0, 0x83C5, 0x83CF, 0x03CA, 0x83DB, 0x03DE, 0x03D4, 0x83D1, + 0x83F3, 0x03F6, 0x03FC, 0x83F9, 0x03E8, 0x83ED, 0x83E7, 0x03E2, + 0x83A3, 0x03A6, 0x03AC, 0x83A9, 0x03B8, 0x83BD, 0x83B7, 0x03B2, + 0x0390, 0x8395, 0x839F, 0x039A, 0x838B, 0x038E, 0x0384, 0x8381, + 0x0280, 0x8285, 0x828F, 0x028A, 0x829B, 0x029E, 0x0294, 0x8291, + 0x82B3, 0x02B6, 0x02BC, 0x82B9, 0x02A8, 0x82AD, 0x82A7, 0x02A2, + 0x82E3, 0x02E6, 0x02EC, 0x82E9, 0x02F8, 0x82FD, 0x82F7, 0x02F2, + 0x02D0, 0x82D5, 0x82DF, 0x02DA, 0x82CB, 0x02CE, 0x02C4, 0x82C1, + 0x8243, 0x0246, 0x024C, 0x8249, 0x0258, 0x825D, 0x8257, 0x0252, + 0x0270, 0x8275, 0x827F, 0x027A, 0x826B, 0x026E, 0x0264, 0x8261, + 0x0220, 0x8225, 0x822F, 0x022A, 0x823B, 0x023E, 0x0234, 0x8231, + 0x8213, 0x0216, 0x021C, 0x8219, 0x0208, 0x820D, 0x8207, 0x0202 +}; + +static DRFLAC_INLINE drflac_uint8 drflac_crc8_byte(drflac_uint8 crc, drflac_uint8 data) +{ + return drflac__crc8_table[crc ^ data]; +} + +static DRFLAC_INLINE drflac_uint8 drflac_crc8(drflac_uint8 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + /* REFERENCE (use of this implementation requires an explicit flush by doing "drflac_crc8(crc, 0, 8);") */ + drflac_uint8 p = 0x07; + for (int i = count-1; i >= 0; --i) { + drflac_uint8 bit = (data & (1 << i)) >> i; + if (crc & 0x80) { + crc = ((crc << 1) | bit) ^ p; + } else { + crc = ((crc << 1) | bit); + } + } + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 32); + + wholeBytes = count >> 3; + leftoverBits = count - (wholeBytes*8); + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + case 4: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (drflac_uint8)((crc << leftoverBits) ^ drflac__crc8_table[(crc >> (8 - leftoverBits)) ^ (data & leftoverDataMask)]); + } + return crc; +#endif +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_byte(drflac_uint16 crc, drflac_uint8 data) +{ + return (crc << 8) ^ drflac__crc16_table[(drflac_uint8)(crc >> 8) ^ data]; +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_cache(drflac_uint16 crc, drflac_cache_t data) +{ +#ifdef DRFLAC_64BIT + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + + return crc; +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16_bytes(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 byteCount) +{ + switch (byteCount) + { +#ifdef DRFLAC_64BIT + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + } + + return crc; +} + +#if 0 +static DRFLAC_INLINE drflac_uint16 drflac_crc16__32bit(drflac_uint16 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + /* REFERENCE (use of this implementation requires an explicit flush by doing "drflac_crc16(crc, 0, 16);") */ + drflac_uint16 p = 0x8005; + for (int i = count-1; i >= 0; --i) { + drflac_uint16 bit = (data & (1ULL << i)) >> i; + if (r & 0x8000) { + r = ((r << 1) | bit) ^ p; + } else { + r = ((r << 1) | bit); + } + } + + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 64); + + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + default: + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +#endif +} + +static DRFLAC_INLINE drflac_uint16 drflac_crc16__64bit(drflac_uint16 crc, drflac_uint64 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + + DRFLAC_ASSERT(count <= 64); + + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + + switch (wholeBytes) { + default: + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 << 32) << leftoverBits)) >> (56 + leftoverBits))); /* Weird "<< 32" bitshift is required for C89 because it doesn't support 64-bit constants. Should be optimized out by a good compiler. */ + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 << 32) << leftoverBits)) >> (48 + leftoverBits))); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 << 32) << leftoverBits)) >> (40 + leftoverBits))); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF << 32) << leftoverBits)) >> (32 + leftoverBits))); + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 ) << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 ) << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 ) << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF ) << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +} + + +static DRFLAC_INLINE drflac_uint16 drflac_crc16(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 count) +{ +#ifdef DRFLAC_64BIT + return drflac_crc16__64bit(crc, data, count); +#else + return drflac_crc16__32bit(crc, data, count); +#endif +} +#endif + + +#ifdef DRFLAC_64BIT +#define drflac__be2host__cache_line drflac__be2host_64 +#else +#define drflac__be2host__cache_line drflac__be2host_32 +#endif + +/* +BIT READING ATTEMPT #2 + +This uses a 32- or 64-bit bit-shifted cache - as bits are read, the cache is shifted such that the first valid bit is sitting +on the most significant bit. It uses the notion of an L1 and L2 cache (borrowed from CPU architecture), where the L1 cache +is a 32- or 64-bit unsigned integer (depending on whether or not a 32- or 64-bit build is being compiled) and the L2 is an +array of "cache lines", with each cache line being the same size as the L1. The L2 is a buffer of about 4KB and is where data +from onRead() is read into. +*/ +#define DRFLAC_CACHE_L1_SIZE_BYTES(bs) (sizeof((bs)->cache)) +#define DRFLAC_CACHE_L1_SIZE_BITS(bs) (sizeof((bs)->cache)*8) +#define DRFLAC_CACHE_L1_BITS_REMAINING(bs) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (bs)->consumedBits) +#define DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount) (~((~(drflac_cache_t)0) >> (_bitCount))) +#define DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (_bitCount)) +#define DRFLAC_CACHE_L1_SELECT(bs, _bitCount) (((bs)->cache) & DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount)) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount))) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, _bitCount)(DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> (DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount)) & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1))) +#define DRFLAC_CACHE_L2_SIZE_BYTES(bs) (sizeof((bs)->cacheL2)) +#define DRFLAC_CACHE_L2_LINE_COUNT(bs) (DRFLAC_CACHE_L2_SIZE_BYTES(bs) / sizeof((bs)->cacheL2[0])) +#define DRFLAC_CACHE_L2_LINES_REMAINING(bs) (DRFLAC_CACHE_L2_LINE_COUNT(bs) - (bs)->nextL2Line) + + +#ifndef DR_FLAC_NO_CRC +static DRFLAC_INLINE void drflac__reset_crc16(drflac_bs* bs) +{ + bs->crc16 = 0; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +} + +static DRFLAC_INLINE void drflac__update_crc16(drflac_bs* bs) +{ + if (bs->crc16CacheIgnoredBytes == 0) { + bs->crc16 = drflac_crc16_cache(bs->crc16, bs->crc16Cache); + } else { + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache, DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bs->crc16CacheIgnoredBytes); + bs->crc16CacheIgnoredBytes = 0; + } +} + +static DRFLAC_INLINE drflac_uint16 drflac__flush_crc16(drflac_bs* bs) +{ + /* We should never be flushing in a situation where we are not aligned on a byte boundary. */ + DRFLAC_ASSERT((DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7) == 0); + + /* + The bits that were read from the L1 cache need to be accumulated. The number of bytes needing to be accumulated is determined + by the number of bits that have been consumed. + */ + if (DRFLAC_CACHE_L1_BITS_REMAINING(bs) == 0) { + drflac__update_crc16(bs); + } else { + /* We only accumulate the consumed bits. */ + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache >> DRFLAC_CACHE_L1_BITS_REMAINING(bs), (bs->consumedBits >> 3) - bs->crc16CacheIgnoredBytes); + + /* + The bits that we just accumulated should never be accumulated again. We need to keep track of how many bytes were accumulated + so we can handle that later. + */ + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; + } + + return bs->crc16; +} +#endif + +static DRFLAC_INLINE drflac_bool32 drflac__reload_l1_cache_from_l2(drflac_bs* bs) +{ + size_t bytesRead; + size_t alignedL1LineCount; + + /* Fast path. Try loading straight from L2. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + + /* + If we get here it means we've run out of data in the L2 cache. We'll need to fetch more from the client, if there's + any left. + */ + if (bs->unalignedByteCount > 0) { + return DRFLAC_FALSE; /* If we have any unaligned bytes it means there's no more aligned bytes left in the client. */ + } + + bytesRead = bs->onRead(bs->pUserData, bs->cacheL2, DRFLAC_CACHE_L2_SIZE_BYTES(bs)); + + bs->nextL2Line = 0; + if (bytesRead == DRFLAC_CACHE_L2_SIZE_BYTES(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + + + /* + If we get here it means we were unable to retrieve enough data to fill the entire L2 cache. It probably + means we've just reached the end of the file. We need to move the valid data down to the end of the buffer + and adjust the index of the next line accordingly. Also keep in mind that the L2 cache must be aligned to + the size of the L1 so we'll need to seek backwards by any misaligned bytes. + */ + alignedL1LineCount = bytesRead / DRFLAC_CACHE_L1_SIZE_BYTES(bs); + + /* We need to keep track of any unaligned bytes for later use. */ + bs->unalignedByteCount = bytesRead - (alignedL1LineCount * DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + if (bs->unalignedByteCount > 0) { + bs->unalignedCache = bs->cacheL2[alignedL1LineCount]; + } + + if (alignedL1LineCount > 0) { + size_t offset = DRFLAC_CACHE_L2_LINE_COUNT(bs) - alignedL1LineCount; + size_t i; + for (i = alignedL1LineCount; i > 0; --i) { + bs->cacheL2[i-1 + offset] = bs->cacheL2[i-1]; + } + + bs->nextL2Line = (drflac_uint32)offset; + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } else { + /* If we get into this branch it means we weren't able to load any L1-aligned data. */ + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); + return DRFLAC_FALSE; + } +} + +static drflac_bool32 drflac__reload_cache(drflac_bs* bs) +{ + size_t bytesRead; + +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + + /* Fast path. Try just moving the next value in the L2 cache to the L1 cache. */ + if (drflac__reload_l1_cache_from_l2(bs)) { + bs->cache = drflac__be2host__cache_line(bs->cache); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + return DRFLAC_TRUE; + } + + /* Slow path. */ + + /* + If we get here it means we have failed to load the L1 cache from the L2. Likely we've just reached the end of the stream and the last + few bytes did not meet the alignment requirements for the L2 cache. In this case we need to fall back to a slower path and read the + data from the unaligned cache. + */ + bytesRead = bs->unalignedByteCount; + if (bytesRead == 0) { + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); /* <-- The stream has been exhausted, so marked the bits as consumed. */ + return DRFLAC_FALSE; + } + + DRFLAC_ASSERT(bytesRead < DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + bs->consumedBits = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bytesRead) * 8; + + bs->cache = drflac__be2host__cache_line(bs->unalignedCache); + bs->cache &= DRFLAC_CACHE_L1_SELECTION_MASK(DRFLAC_CACHE_L1_BITS_REMAINING(bs)); /* <-- Make sure the consumed bits are always set to zero. Other parts of the library depend on this property. */ + bs->unalignedByteCount = 0; /* <-- At this point the unaligned bytes have been moved into the cache and we thus have no more unaligned bytes. */ + +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache >> bs->consumedBits; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +#endif + return DRFLAC_TRUE; +} + +static void drflac__reset_cache(drflac_bs* bs) +{ + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); /* <-- This clears the L2 cache. */ + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); /* <-- This clears the L1 cache. */ + bs->cache = 0; + bs->unalignedByteCount = 0; /* <-- This clears the trailing unaligned bytes. */ + bs->unalignedCache = 0; + +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = 0; + bs->crc16CacheIgnoredBytes = 0; +#endif +} + + +static DRFLAC_INLINE drflac_bool32 drflac__read_uint32(drflac_bs* bs, unsigned int bitCount, drflac_uint32* pResultOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResultOut != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + + if (bs->consumedBits == DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + if (bitCount <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* + If we want to load all 32-bits from a 32-bit cache we need to do it slightly differently because we can't do + a 32-bit shift on a 32-bit integer. This will never be the case on 64-bit caches, so we can have a slightly + more optimal solution for this. + */ +#ifdef DRFLAC_64BIT + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; +#else + if (bitCount < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; + } else { + /* Cannot shift by 32-bits, so need to do it differently. */ + *pResultOut = (drflac_uint32)bs->cache; + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + bs->cache = 0; + } +#endif + + return DRFLAC_TRUE; + } else { + /* It straddles the cached data. It will never cover more than the next chunk. We just read the number in two parts and combine them. */ + drflac_uint32 bitCountHi = DRFLAC_CACHE_L1_BITS_REMAINING(bs); + drflac_uint32 bitCountLo = bitCount - bitCountHi; + drflac_uint32 resultHi; + + DRFLAC_ASSERT(bitCountHi > 0); + DRFLAC_ASSERT(bitCountHi < 32); + resultHi = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountHi); + + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + *pResultOut = (resultHi << bitCountLo) | (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountLo); + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac__read_int32(drflac_bs* bs, unsigned int bitCount, drflac_int32* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + /* Do not attempt to shift by 32 as it's undefined. */ + if (bitCount < 32) { + drflac_uint32 signbit; + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + } + + *pResult = (drflac_int32)result; + return DRFLAC_TRUE; +} + +#ifdef DRFLAC_64BIT +static drflac_bool32 drflac__read_uint64(drflac_bs* bs, unsigned int bitCount, drflac_uint64* pResultOut) +{ + drflac_uint32 resultHi; + drflac_uint32 resultLo; + + DRFLAC_ASSERT(bitCount <= 64); + DRFLAC_ASSERT(bitCount > 32); + + if (!drflac__read_uint32(bs, bitCount - 32, &resultHi)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint32(bs, 32, &resultLo)) { + return DRFLAC_FALSE; + } + + *pResultOut = (((drflac_uint64)resultHi) << 32) | ((drflac_uint64)resultLo); + return DRFLAC_TRUE; +} +#endif + +/* Function below is unused, but leaving it here in case I need to quickly add it again. */ +#if 0 +static drflac_bool32 drflac__read_int64(drflac_bs* bs, unsigned int bitCount, drflac_int64* pResultOut) +{ + drflac_uint64 result; + drflac_uint64 signbit; + + DRFLAC_ASSERT(bitCount <= 64); + + if (!drflac__read_uint64(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + + *pResultOut = (drflac_int64)result; + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__read_uint16(drflac_bs* bs, unsigned int bitCount, drflac_uint16* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_uint16)result; + return DRFLAC_TRUE; +} + +#if 0 +static drflac_bool32 drflac__read_int16(drflac_bs* bs, unsigned int bitCount, drflac_int16* pResult) +{ + drflac_int32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_int16)result; + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__read_uint8(drflac_bs* bs, unsigned int bitCount, drflac_uint8* pResult) +{ + drflac_uint32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_uint8)result; + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__read_int8(drflac_bs* bs, unsigned int bitCount, drflac_int8* pResult) +{ + drflac_int32 result; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + + *pResult = (drflac_int8)result; + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__seek_bits(drflac_bs* bs, size_t bitsToSeek) +{ + if (bitsToSeek <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + bs->consumedBits += (drflac_uint32)bitsToSeek; + bs->cache <<= bitsToSeek; + return DRFLAC_TRUE; + } else { + /* It straddles the cached data. This function isn't called too frequently so I'm favouring simplicity here. */ + bitsToSeek -= DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->consumedBits += DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->cache = 0; + + /* Simple case. Seek in groups of the same number as bits that fit within a cache line. */ +#ifdef DRFLAC_64BIT + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint64 bin; + if (!drflac__read_uint64(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#else + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint32 bin; + if (!drflac__read_uint32(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#endif + + /* Whole leftover bytes. */ + while (bitsToSeek >= 8) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, 8, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= 8; + } + + /* Leftover bits. */ + if (bitsToSeek > 0) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, (drflac_uint32)bitsToSeek, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek = 0; /* <-- Necessary for the assert below. */ + } + + DRFLAC_ASSERT(bitsToSeek == 0); + return DRFLAC_TRUE; + } +} + + +/* This function moves the bit streamer to the first bit after the sync code (bit 15 of the of the frame header). It will also update the CRC-16. */ +static drflac_bool32 drflac__find_and_seek_to_next_sync_code(drflac_bs* bs) +{ + DRFLAC_ASSERT(bs != NULL); + + /* + The sync code is always aligned to 8 bits. This is convenient for us because it means we can do byte-aligned movements. The first + thing to do is align to the next byte. + */ + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + + for (;;) { + drflac_uint8 hi; + +#ifndef DR_FLAC_NO_CRC + drflac__reset_crc16(bs); +#endif + + if (!drflac__read_uint8(bs, 8, &hi)) { + return DRFLAC_FALSE; + } + + if (hi == 0xFF) { + drflac_uint8 lo; + if (!drflac__read_uint8(bs, 6, &lo)) { + return DRFLAC_FALSE; + } + + if (lo == 0x3E) { + return DRFLAC_TRUE; + } else { + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + } + } + } + + /* Should never get here. */ + /*return DRFLAC_FALSE;*/ +} + + +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +#define DRFLAC_IMPLEMENT_CLZ_LZCNT +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(__clang__) +#define DRFLAC_IMPLEMENT_CLZ_MSVC +#endif +#if defined(__WATCOMC__) && defined(__386__) +#define DRFLAC_IMPLEMENT_CLZ_WATCOM +#endif +#ifdef __MRC__ +#include +#define DRFLAC_IMPLEMENT_CLZ_MRC +#endif + +static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) +{ + drflac_uint32 n; + static drflac_uint32 clz_table_4[] = { + 0, + 4, + 3, 3, + 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1 + }; + + if (x == 0) { + return sizeof(x)*8; + } + + n = clz_table_4[x >> (sizeof(x)*8 - 4)]; + if (n == 0) { +#ifdef DRFLAC_64BIT + if ((x & ((drflac_uint64)0xFFFFFFFF << 32)) == 0) { n = 32; x <<= 32; } + if ((x & ((drflac_uint64)0xFFFF0000 << 32)) == 0) { n += 16; x <<= 16; } + if ((x & ((drflac_uint64)0xFF000000 << 32)) == 0) { n += 8; x <<= 8; } + if ((x & ((drflac_uint64)0xF0000000 << 32)) == 0) { n += 4; x <<= 4; } +#else + if ((x & 0xFFFF0000) == 0) { n = 16; x <<= 16; } + if ((x & 0xFF000000) == 0) { n += 8; x <<= 8; } + if ((x & 0xF0000000) == 0) { n += 4; x <<= 4; } +#endif + n += clz_table_4[x >> (sizeof(x)*8 - 4)]; + } + + return n - 1; +} + +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT +static DRFLAC_INLINE drflac_bool32 drflac__is_lzcnt_supported(void) +{ + /* Fast compile time check for ARM. */ +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + return DRFLAC_TRUE; +#elif defined(__MRC__) + return DRFLAC_TRUE; +#else + /* If the compiler itself does not support the intrinsic then we'll need to return false. */ + #ifdef DRFLAC_HAS_LZCNT_INTRINSIC + return drflac__gIsLZCNTSupported; + #else + return DRFLAC_FALSE; + #endif +#endif +} + +static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) +{ + /* + It's critical for competitive decoding performance that this function be highly optimal. With MSVC we can use the __lzcnt64() and __lzcnt() intrinsics + to achieve good performance, however on GCC and Clang it's a little bit more annoying. The __builtin_clzl() and __builtin_clzll() intrinsics leave + it undefined as to the return value when `x` is 0. We need this to be well defined as returning 32 or 64, depending on whether or not it's a 32- or + 64-bit build. To work around this we would need to add a conditional to check for the x = 0 case, but this creates unnecessary inefficiency. To work + around this problem I have written some inline assembly to emit the LZCNT (x86) or CLZ (ARM) instruction directly which removes the need to include + the conditional. This has worked well in the past, but for some reason Clang's MSVC compatible driver, clang-cl, does not seem to be handling this + in the same way as the normal Clang driver. It seems that `clang-cl` is just outputting the wrong results sometimes, maybe due to some register + getting clobbered? + + I'm not sure if this is a bug with dr_flac's inlined assembly (most likely), a bug in `clang-cl` or just a misunderstanding on my part with inline + assembly rules for `clang-cl`. If somebody can identify an error in dr_flac's inlined assembly I'm happy to get that fixed. + + Fortunately there is an easy workaround for this. Clang implements MSVC-specific intrinsics for compatibility. It also defines _MSC_VER for extra + compatibility. We can therefore just check for _MSC_VER and use the MSVC intrinsic which, fortunately for us, Clang supports. It would still be nice + to know how to fix the inlined assembly for correctness sake, however. + */ + +#if defined(_MSC_VER) /*&& !defined(__clang__)*/ /* <-- Intentionally wanting Clang to use the MSVC __lzcnt64/__lzcnt intrinsics due to above ^. */ + #ifdef DRFLAC_64BIT + return (drflac_uint32)__lzcnt64(x); + #else + return (drflac_uint32)__lzcnt(x); + #endif +#else + #if defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_X64) + { + /* + A note on lzcnt. + + We check for the presence of the lzcnt instruction at runtime before calling this function, but we still generate this code. I have had + a report where the assembler does not recognize the lzcnt instruction. To work around this we are going to use `rep; bsr` instead which + has an identical byte encoding as lzcnt, and should hopefully improve compatibility with older assemblers. + */ + drflac_uint64 r; + __asm__ __volatile__ ( + "rep; bsr{q %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + /*"lzcnt{ %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc"*/ + ); + + return (drflac_uint32)r; + } + #elif defined(DRFLAC_X86) + { + drflac_uint32 r; + __asm__ __volatile__ ( + "rep; bsr{l %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + /*"lzcnt{l %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc"*/ + ); + + return r; + } + #elif defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) && !defined(__ARM_ARCH_6M__) && !(defined(__thumb__) && !defined(__thumb2__)) && !defined(DRFLAC_64BIT) /* <-- I haven't tested 64-bit inline assembly, so only enabling this for the 32-bit build for now. */ + { + unsigned int r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "clz %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(x) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "clz %[out], %[in]" : [out]"=r"(r) : [in]"r"(x) + #endif + ); + + return r; + } + #else + if (x == 0) { + return sizeof(x)*8; + } + #ifdef DRFLAC_64BIT + return (drflac_uint32)__builtin_clzll((drflac_uint64)x); + #else + return (drflac_uint32)__builtin_clzl((drflac_uint32)x); + #endif + #endif + #else + /* Unsupported compiler. */ + #error "This compiler does not support the lzcnt intrinsic." + #endif +#endif +} +#endif + +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC +#include /* For BitScanReverse(). */ + +static DRFLAC_INLINE drflac_uint32 drflac__clz_msvc(drflac_cache_t x) +{ + drflac_uint32 n; + + if (x == 0) { + return sizeof(x)*8; + } + +#ifdef DRFLAC_64BIT + _BitScanReverse64((unsigned long*)&n, x); +#else + _BitScanReverse((unsigned long*)&n, x); +#endif + return sizeof(x)*8 - n - 1; +} +#endif + +#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM +static __inline drflac_uint32 drflac__clz_watcom (drflac_uint32); +#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM_LZCNT +/* Use the LZCNT instruction (only available on some processors since the 2010s). */ +#pragma aux drflac__clz_watcom_lzcnt = \ + "db 0F3h, 0Fh, 0BDh, 0C0h" /* lzcnt eax, eax */ \ + parm [eax] \ + value [eax] \ + modify nomemory; +#else +/* Use the 386+-compatible implementation. */ +#pragma aux drflac__clz_watcom = \ + "bsr eax, eax" \ + "xor eax, 31" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif +#endif + +static DRFLAC_INLINE drflac_uint32 drflac__clz(drflac_cache_t x) +{ +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT + if (drflac__is_lzcnt_supported()) { + return drflac__clz_lzcnt(x); + } else +#endif + { +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC + return drflac__clz_msvc(x); +#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM_LZCNT) + return drflac__clz_watcom_lzcnt(x); +#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM) + return (x == 0) ? sizeof(x)*8 : drflac__clz_watcom(x); +#elif defined(__MRC__) + return __cntlzw(x); +#else + return drflac__clz_software(x); +#endif + } +} + + +static DRFLAC_INLINE drflac_bool32 drflac__seek_past_next_set_bit(drflac_bs* bs, unsigned int* pOffsetOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 setBitOffsetPlus1; + + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + if (bs->cache == 1) { + /* Not catching this would lead to undefined behaviour: a shift of a 32-bit number by 32 or more is undefined */ + *pOffsetOut = zeroCounter + (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs) - 1; + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; + } + + setBitOffsetPlus1 = drflac__clz(bs->cache); + setBitOffsetPlus1 += 1; + + if (setBitOffsetPlus1 > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs->consumedBits += setBitOffsetPlus1; + bs->cache <<= setBitOffsetPlus1; + + *pOffsetOut = zeroCounter + setBitOffsetPlus1 - 1; + return DRFLAC_TRUE; +} + + + +static drflac_bool32 drflac__seek_to_byte(drflac_bs* bs, drflac_uint64 offsetFromStart) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(offsetFromStart > 0); + + /* + Seeking from the start is not quite as trivial as it sounds because the onSeek callback takes a signed 32-bit integer (which + is intentional because it simplifies the implementation of the onSeek callbacks), however offsetFromStart is unsigned 64-bit. + To resolve we just need to do an initial seek from the start, and then a series of offset seeks to make up the remainder. + */ + if (offsetFromStart > 0x7FFFFFFF) { + drflac_uint64 bytesRemaining = offsetFromStart; + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + + while (bytesRemaining > 0x7FFFFFFF) { + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + } + + if (bytesRemaining > 0) { + if (!bs->onSeek(bs->pUserData, (int)bytesRemaining, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + } + } else { + if (!bs->onSeek(bs->pUserData, (int)offsetFromStart, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + } + + /* The cache should be reset to force a reload of fresh data from the client. */ + drflac__reset_cache(bs); + return DRFLAC_TRUE; +} + + +static drflac_result drflac__read_utf8_coded_number(drflac_bs* bs, drflac_uint64* pNumberOut, drflac_uint8* pCRCOut) +{ + drflac_uint8 crc; + drflac_uint64 result; + drflac_uint8 utf8[7] = {0}; + int byteCount; + int i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pNumberOut != NULL); + DRFLAC_ASSERT(pCRCOut != NULL); + + crc = *pCRCOut; + + if (!drflac__read_uint8(bs, 8, utf8)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[0], 8); + + if ((utf8[0] & 0x80) == 0) { + *pNumberOut = utf8[0]; + *pCRCOut = crc; + return DRFLAC_SUCCESS; + } + + /*byteCount = 1;*/ + if ((utf8[0] & 0xE0) == 0xC0) { + byteCount = 2; + } else if ((utf8[0] & 0xF0) == 0xE0) { + byteCount = 3; + } else if ((utf8[0] & 0xF8) == 0xF0) { + byteCount = 4; + } else if ((utf8[0] & 0xFC) == 0xF8) { + byteCount = 5; + } else if ((utf8[0] & 0xFE) == 0xFC) { + byteCount = 6; + } else if ((utf8[0] & 0xFF) == 0xFE) { + byteCount = 7; + } else { + *pNumberOut = 0; + return DRFLAC_CRC_MISMATCH; /* Bad UTF-8 encoding. */ + } + + /* Read extra bytes. */ + DRFLAC_ASSERT(byteCount > 1); + + result = (drflac_uint64)(utf8[0] & (0xFF >> (byteCount + 1))); + for (i = 1; i < byteCount; ++i) { + if (!drflac__read_uint8(bs, 8, utf8 + i)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[i], 8); + + result = (result << 6) | (utf8[i] & 0x3F); + } + + *pNumberOut = result; + *pCRCOut = crc; + return DRFLAC_SUCCESS; +} + + +static DRFLAC_INLINE drflac_uint32 drflac__ilog2_u32(drflac_uint32 x) +{ +#if 1 /* Needs optimizing. */ + drflac_uint32 result = 0; + while (x > 0) { + result += 1; + x >>= 1; + } + + return result; +#endif +} + +static DRFLAC_INLINE drflac_bool32 drflac__use_64_bit_prediction(drflac_uint32 bitsPerSample, drflac_uint32 order, drflac_uint32 precision) +{ + /* https://web.archive.org/web/20220205005724/https://github.com/ietf-wg-cellar/flac-specification/blob/37a49aa48ba4ba12e8757badfc59c0df35435fec/rfc_backmatter.md */ + return bitsPerSample + precision + drflac__ilog2_u32(order) > 32; +} + + +/* +The next two functions are responsible for calculating the prediction. + +When the bits per sample is >16 we need to use 64-bit integer arithmetic because otherwise we'll run out of precision. It's +safe to assume this will be slower on 32-bit platforms so we use a more optimal solution when the bits per sample is <=16. +*/ +#if defined(__clang__) +__attribute__((no_sanitize("signed-integer-overflow"))) +#endif +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_32(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int32 prediction = 0; + + DRFLAC_ASSERT(order <= 32); + + /* 32-bit version. */ + + /* VC++ optimizes this to a single jmp. I've not yet verified this for other compilers. */ + switch (order) + { + case 32: prediction += coefficients[31] * pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * pDecodedSamples[- 1]; + } + + return (drflac_int32)(prediction >> shift); +} + +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_64(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int64 prediction; + + DRFLAC_ASSERT(order <= 32); + + /* 64-bit version. */ + + /* This method is faster on the 32-bit build when compiling with VC++. See note below. */ +#ifndef DRFLAC_64BIT + if (order == 8) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + } + else if (order == 7) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + } + else if (order == 3) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + } + else if (order == 6) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + } + else if (order == 5) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + } + else if (order == 4) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + } + else if (order == 12) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + } + else if (order == 2) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + } + else if (order == 1) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + } + else if (order == 10) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + } + else if (order == 9) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + } + else if (order == 11) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + } + else + { + int j; + + prediction = 0; + for (j = 0; j < (int)order; ++j) { + prediction += coefficients[j] * (drflac_int64)pDecodedSamples[-j-1]; + } + } +#endif + + /* + VC++ optimizes this to a single jmp instruction, but only the 64-bit build. The 32-bit build generates less efficient code for some + reason. The ugly version above is faster so we'll just switch between the two depending on the target platform. + */ +#ifdef DRFLAC_64BIT + prediction = 0; + switch (order) + { + case 32: prediction += coefficients[31] * (drflac_int64)pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * (drflac_int64)pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * (drflac_int64)pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * (drflac_int64)pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * (drflac_int64)pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * (drflac_int64)pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * (drflac_int64)pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * (drflac_int64)pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * (drflac_int64)pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * (drflac_int64)pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * (drflac_int64)pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * (drflac_int64)pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * (drflac_int64)pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * (drflac_int64)pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * (drflac_int64)pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * (drflac_int64)pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * (drflac_int64)pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * (drflac_int64)pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * (drflac_int64)pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * (drflac_int64)pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * (drflac_int64)pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * (drflac_int64)pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * (drflac_int64)pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * (drflac_int64)pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * (drflac_int64)pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * (drflac_int64)pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * (drflac_int64)pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * (drflac_int64)pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * (drflac_int64)pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * (drflac_int64)pDecodedSamples[- 1]; + } +#endif + + return (drflac_int32)(prediction >> shift); +} + + +#if 0 +/* +Reference implementation for reading and decoding samples with residual. This is intentionally left unoptimized for the +sake of readability and should only be used as a reference. +*/ +static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + for (i = 0; i < count; ++i) { + drflac_uint32 zeroCounter = 0; + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + + drflac_uint32 decodedRice; + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + + decodedRice |= (zeroCounter << riceParam); + if ((decodedRice & 0x01)) { + decodedRice = ~(decodedRice >> 1); + } else { + decodedRice = (decodedRice >> 1); + } + + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } + } + + return DRFLAC_TRUE; +} +#endif + +#if 0 +static drflac_bool32 drflac__read_rice_parts__reference(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 decodedRice; + + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + + *pZeroCounterOut = zeroCounter; + *pRiceParamPartOut = decodedRice; + return DRFLAC_TRUE; +} +#endif + +#if 0 +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_cache_t riceParamMask; + drflac_uint32 zeroCounter; + drflac_uint32 setBitOffsetPlus1; + drflac_uint32 riceParamPart; + drflac_uint32 riceLength; + + DRFLAC_ASSERT(riceParam > 0); /* <-- riceParam should never be 0. drflac__read_rice_parts__param_equals_zero() should be used instead for this case. */ + + riceParamMask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParam); + + zeroCounter = 0; + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + + setBitOffsetPlus1 = drflac__clz(bs->cache); + zeroCounter += setBitOffsetPlus1; + setBitOffsetPlus1 += 1; + + riceLength = setBitOffsetPlus1 + riceParam; + if (riceLength < DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + riceParamPart = (drflac_uint32)((bs->cache & (riceParamMask >> setBitOffsetPlus1)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceLength)); + + bs->consumedBits += riceLength; + bs->cache <<= riceLength; + } else { + drflac_uint32 bitCountLo; + drflac_cache_t resultHi; + + bs->consumedBits += riceLength; + bs->cache <<= setBitOffsetPlus1 & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1); /* <-- Equivalent to "if (setBitOffsetPlus1 < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { bs->cache <<= setBitOffsetPlus1; }" */ + + /* It straddles the cached data. It will never cover more than the next chunk. We just read the number in two parts and combine them. */ + bitCountLo = bs->consumedBits - DRFLAC_CACHE_L1_SIZE_BITS(bs); + resultHi = DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, riceParam); /* <-- Use DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE() if ever this function allows riceParam=0. */ + + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + bs->cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + } + + riceParamPart = (drflac_uint32)(resultHi | DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, bitCountLo)); + + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + } + + pZeroCounterOut[0] = zeroCounter; + pRiceParamPartOut[0] = riceParamPart; + + return DRFLAC_TRUE; +} +#endif + +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts_x1(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + /*drflac_cache_t riceParamPlus1Mask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParamPlus1);*/ + drflac_uint32 riceParamPlus1Shift = DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPlus1); + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + + /* + The idea here is to use local variables for the cache in an attempt to encourage the compiler to store them in registers. I have + no idea how this will work in practice... + */ + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + + /* The first thing to do is find the first unset bit. Most likely a bit will be set in the current cache line. */ + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + pZeroCounterOut[0] = lzcount; + + /* + It is most likely that the riceParam part (which comes after the zero counter) is also on this cache line. When extracting + this, we include the set bit from the unary coded part because it simplifies cache management. This bit will be handled + outside of this function at a higher level. + */ + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + /* Getting here means the rice parameter part is wholly contained within the current cache line. */ + pRiceParamPartOut[0] = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + drflac_uint32 riceParamPartHi; + drflac_uint32 riceParamPartLo; + drflac_uint32 riceParamPartLoBitCount; + + /* + Getting here means the rice parameter part straddles the cache line. We need to read from the tail of the current cache + line, reload the cache, and then combine it with the head of the next cache line. + */ + + /* Grab the high part of the rice parameter part. */ + riceParamPartHi = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + + /* Before reloading the cache we need to grab the size in bits of the low part. */ + riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + + /* Now reload the cache. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + + /* We should now have enough information to construct the rice parameter part. */ + riceParamPartLo = (drflac_uint32)(bs_cache >> (DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPartLoBitCount))); + pRiceParamPartOut[0] = riceParamPartHi | riceParamPartLo; + + bs_cache <<= riceParamPartLoBitCount; + } + } else { + /* + Getting here means there are no bits set on the cache line. This is a less optimal case because we just wasted a call + to drflac__clz() and we need to reload the cache. + */ + drflac_uint32 zeroCounter = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BITS(bs) - bs_consumedBits); + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + + lzcount = drflac__clz(bs_cache); + zeroCounter += lzcount; + + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + + pZeroCounterOut[0] = zeroCounter; + goto extract_rice_param_part; + } + + /* Make sure the cache is restored at the end of it all. */ + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + + return DRFLAC_TRUE; +} + +static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac_uint8 riceParam) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + + /* + The idea here is to use local variables for the cache in an attempt to encourage the compiler to store them in registers. I have + no idea how this will work in practice... + */ + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + + /* The first thing to do is find the first unset bit. Most likely a bit will be set in the current cache line. */ + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + /* + It is most likely that the riceParam part (which comes after the zero counter) is also on this cache line. When extracting + this, we include the set bit from the unary coded part because it simplifies cache management. This bit will be handled + outside of this function at a higher level. + */ + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + /* Getting here means the rice parameter part is wholly contained within the current cache line. */ + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + /* + Getting here means the rice parameter part straddles the cache line. We need to read from the tail of the current cache + line, reload the cache, and then combine it with the head of the next cache line. + */ + + /* Before reloading the cache we need to grab the size in bits of the low part. */ + drflac_uint32 riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + + /* Now reload the cache. */ + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + /* This happens when we get to end of stream */ + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + + bs_cache <<= riceParamPartLoBitCount; + } + } else { + /* + Getting here means there are no bits set on the cache line. This is a less optimal case because we just wasted a call + to drflac__clz() and we need to reload the cache. + */ + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + /* Slow path. We need to fetch more data from the client. */ + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + + lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + + goto extract_rice_param_part; + } + + /* Make sure the cache is restored at the end of it all. */ + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar_zeroorder(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0; + drflac_uint32 riceParamPart0; + drflac_uint32 riceParamMask; + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + (void)bitsPerSample; + (void)order; + (void)shift; + (void)coefficients; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + + i = 0; + while (i < count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + + pSamplesOut[i] = riceParamPart0; + + i += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0 = 0; + drflac_uint32 zeroCountPart1 = 0; + drflac_uint32 zeroCountPart2 = 0; + drflac_uint32 zeroCountPart3 = 0; + drflac_uint32 riceParamPart0 = 0; + drflac_uint32 riceParamPart1 = 0; + drflac_uint32 riceParamPart2 = 0; + drflac_uint32 riceParamPart3 = 0; + drflac_uint32 riceParamMask; + const drflac_int32* pSamplesOutEnd; + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + if (lpcOrder == 0) { + return drflac__decode_samples_with_residual__rice__scalar_zeroorder(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + pSamplesOutEnd = pSamplesOut + (count & ~3); + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + while (pSamplesOut < pSamplesOutEnd) { + /* + Rice extraction. It's faster to do this one at a time against local variables than it is to use the x4 version + against an array. Not sure why, but perhaps it's making more efficient use of registers? + */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + + pSamplesOut += 4; + } + } else { + while (pSamplesOut < pSamplesOutEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + + pSamplesOut += 4; + } + } + + i = (count & ~3); + while (i < count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + /*riceParamPart0 = (riceParamPart0 >> 1) ^ (~(riceParamPart0 & 0x01) + 1);*/ + + /* Sample reconstruction. */ + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + } else { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + } + + i += 1; + pSamplesOut += 1; + } + + return DRFLAC_TRUE; +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE __m128i drflac__mm_packs_interleaved_epi32(__m128i a, __m128i b) +{ + __m128i r; + + /* Pack. */ + r = _mm_packs_epi32(a, b); + + /* a3a2 a1a0 b3b2 b1b0 -> a3a2 b3b2 a1a0 b1b0 */ + r = _mm_shuffle_epi32(r, _MM_SHUFFLE(3, 1, 2, 0)); + + /* a3a2 b3b2 a1a0 b1b0 -> a3b3 a2b2 a1b1 a0b0 */ + r = _mm_shufflehi_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + r = _mm_shufflelo_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + + return r; +} +#endif + +#if defined(DRFLAC_SUPPORT_SSE41) +static DRFLAC_INLINE __m128i drflac__mm_not_si128(__m128i a) +{ + return _mm_xor_si128(a, _mm_cmpeq_epi32(_mm_setzero_si128(), _mm_setzero_si128())); +} + +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi32(__m128i x) +{ + __m128i x64 = _mm_add_epi32(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); + __m128i x32 = _mm_shufflelo_epi16(x64, _MM_SHUFFLE(1, 0, 3, 2)); + return _mm_add_epi32(x64, x32); +} + +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi64(__m128i x) +{ + return _mm_add_epi64(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); +} + +static DRFLAC_INLINE __m128i drflac__mm_srai_epi64(__m128i x, int count) +{ + /* + To simplify this we are assuming count < 32. This restriction allows us to work on a low side and a high side. The low side + is shifted with zero bits, whereas the right side is shifted with sign bits. + */ + __m128i lo = _mm_srli_epi64(x, count); + __m128i hi = _mm_srai_epi32(x, count); + + hi = _mm_and_si128(hi, _mm_set_epi32(0xFFFFFFFF, 0, 0xFFFFFFFF, 0)); /* The high part needs to have the low part cleared. */ + + return _mm_or_si128(lo, hi); +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i riceParamMask128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + + /* Pre-load. */ + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be convenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ +#if 1 + { + int runningOrder = order; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + /* This causes strict-aliasing warnings with GCC. */ + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i prediction128; + __m128i zeroCountPart128; + __m128i riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01))), _mm_set1_epi32(0x01))); /* <-- SSE2 compatible */ + /*riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_mullo_epi32(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01)), _mm_set1_epi32(0xFFFFFFFF)));*/ /* <-- Only supported from SSE4.1 and is slower in my testing... */ + + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_4, samples128_4); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_8, samples128_8); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_4, samples128_4)); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } + + /* We store samples in groups of 4. */ + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i prediction128; + __m128i riceParamMask128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + DRFLAC_ASSERT(order <= 12); + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + + prediction128 = _mm_setzero_si128(); + + /* Pre-load. */ + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); + +#if 1 + { + int runningOrder = order; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i zeroCountPart128; + __m128i riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(1))), _mm_set1_epi32(1))); + + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_xor_si128(prediction128, prediction128); /* Reset to 0. */ + + switch (order) + { + case 12: + case 11: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(1, 1, 0, 0)))); + case 10: + case 9: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(3, 3, 2, 2)))); + case 8: + case 7: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(1, 1, 0, 0)))); + case 6: + case 5: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(3, 3, 2, 2)))); + case 4: + case 3: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(1, 1, 0, 0)))); + case 2: + case 1: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(3, 3, 2, 2)))); + } + + /* Horizontal add and shift. */ + prediction128 = drflac__mm_hadd_epi64(prediction128); + prediction128 = drflac__mm_srai_epi64(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + + /* Our value should be sitting in prediction128[0]. We need to combine this with our SSE samples. */ + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + + /* Slide our rice parameter down so that the value in position 0 contains the next one to process. */ + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + + /* We store samples in groups of 4. */ + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + /* In my testing the order is rarely > 12, so in this case I'm going to simplify the SSE implementation by only handling order <= 12. */ + if (lpcOrder > 0 && lpcOrder <= 12) { + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return drflac__decode_samples_with_residual__rice__sse41_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__sse41_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac__vst2q_s32(drflac_int32* p, int32x4x2_t x) +{ + vst1q_s32(p+0, x.val[0]); + vst1q_s32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_u32(drflac_uint32* p, uint32x4x2_t x) +{ + vst1q_u32(p+0, x.val[0]); + vst1q_u32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_f32(float* p, float32x4x2_t x) +{ + vst1q_f32(p+0, x.val[0]); + vst1q_f32(p+4, x.val[1]); +} + +static DRFLAC_INLINE void drflac__vst2q_s16(drflac_int16* p, int16x4x2_t x) +{ + vst1q_s16(p, vcombine_s16(x.val[0], x.val[1])); +} + +static DRFLAC_INLINE void drflac__vst2q_u16(drflac_uint16* p, uint16x4x2_t x) +{ + vst1q_u16(p, vcombine_u16(x.val[0], x.val[1])); +} + +static DRFLAC_INLINE int32x4_t drflac__vdupq_n_s32x4(drflac_int32 x3, drflac_int32 x2, drflac_int32 x1, drflac_int32 x0) +{ + drflac_int32 x[4]; + x[3] = x3; + x[2] = x2; + x[1] = x1; + x[0] = x0; + return vld1q_s32(x); +} + +static DRFLAC_INLINE int32x4_t drflac__valignrq_s32_1(int32x4_t a, int32x4_t b) +{ + /* Equivalent to SSE's _mm_alignr_epi8(a, b, 4) */ + + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(a, 0), + vgetq_lane_s32(b, 3), + vgetq_lane_s32(b, 2), + vgetq_lane_s32(b, 1) + );*/ + + return vextq_s32(b, a, 1); +} + +static DRFLAC_INLINE uint32x4_t drflac__valignrq_u32_1(uint32x4_t a, uint32x4_t b) +{ + /* Equivalent to SSE's _mm_alignr_epi8(a, b, 4) */ + + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(a, 0), + vgetq_lane_s32(b, 3), + vgetq_lane_s32(b, 2), + vgetq_lane_s32(b, 1) + );*/ + + return vextq_u32(b, a, 1); +} + +static DRFLAC_INLINE int32x2_t drflac__vhaddq_s32(int32x4_t x) +{ + /* The sum must end up in position 0. */ + + /* Reference */ + /*return vdupq_n_s32( + vgetq_lane_s32(x, 3) + + vgetq_lane_s32(x, 2) + + vgetq_lane_s32(x, 1) + + vgetq_lane_s32(x, 0) + );*/ + + int32x2_t r = vadd_s32(vget_high_s32(x), vget_low_s32(x)); + return vpadd_s32(r, r); +} + +static DRFLAC_INLINE int64x1_t drflac__vhaddq_s64(int64x2_t x) +{ + return vadd_s64(vget_high_s64(x), vget_low_s64(x)); +} + +static DRFLAC_INLINE int32x4_t drflac__vrevq_s32(int32x4_t x) +{ + /* Reference */ + /*return drflac__vdupq_n_s32x4( + vgetq_lane_s32(x, 0), + vgetq_lane_s32(x, 1), + vgetq_lane_s32(x, 2), + vgetq_lane_s32(x, 3) + );*/ + + return vrev64q_s32(vcombine_s32(vget_high_s32(x), vget_low_s32(x))); +} + +static DRFLAC_INLINE int32x4_t drflac__vnotq_s32(int32x4_t x) +{ + return veorq_s32(x, vdupq_n_s32(0xFFFFFFFF)); +} + +static DRFLAC_INLINE uint32x4_t drflac__vnotq_u32(uint32x4_t x) +{ + return veorq_u32(x, vdupq_n_u32(0xFFFFFFFF)); +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int32x2_t shift64; + uint32x4_t one128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s32(-shift); /* Negate the shift because we'll be doing a variable shift using vshlq_s32(). */ + one128 = vdupq_n_u32(1); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be conenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; /* fallthrough */ + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; /* fallthrough */ + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; /* fallthrough */ + } + + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; /* fallthrough */ + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; /* fallthrough */ + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; /* fallthrough */ + } + + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; /* fallthrough */ + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; /* fallthrough */ + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; /* fallthrough */ + } + + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + int32x4_t prediction128; + int32x2_t prediction64; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_8, samples128_8); + prediction128 = vmlaq_s32(prediction128, coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } + + /* We store samples in groups of 4. */ + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int64x1_t shift64; + uint32x4_t one128; + int64x2_t prediction128 = { 0 }; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s64(-shift); /* Negate the shift because we'll be doing a variable shift using vshlq_s32(). */ + one128 = vdupq_n_u32(1); + + /* + Pre-loading the coefficients and prior samples is annoying because we need to ensure we don't try reading more than + what's available in the input buffers. It would be convenient to use a fall-through switch to do this, but this results + in strict aliasing warnings with GCC. To work around this I'm just doing something hacky. This feels a bit convoluted + so I think there's opportunity for this to be simplified. + */ + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + + /* 0 - 3. */ + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; /* fallthrough */ + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; /* fallthrough */ + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; /* fallthrough */ + } + + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 4 - 7 */ + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; /* fallthrough */ + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; /* fallthrough */ + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; /* fallthrough */ + } + + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* 8 - 11 */ + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; /* fallthrough */ + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; /* fallthrough */ + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; /* fallthrough */ + } + + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + + /* Coefficients need to be shuffled for our streaming algorithm below to work. Samples are already in the correct order from the loading routine above. */ + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + + /* For this version we are doing one sample at a time. */ + while (pDecodedSamples < pDecodedSamplesEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + + for (i = 0; i < 4; i += 1) { + int64x1_t prediction64; + + prediction128 = veorq_s64(prediction128, prediction128); /* Reset to 0. */ + switch (order) + { + case 12: + case 11: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_8), vget_low_s32(samples128_8))); + case 10: + case 9: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_8), vget_high_s32(samples128_8))); + case 8: + case 7: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_4), vget_low_s32(samples128_4))); + case 6: + case 5: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_4), vget_high_s32(samples128_4))); + case 4: + case 3: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_0), vget_low_s32(samples128_0))); + case 2: + case 1: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_0), vget_high_s32(samples128_0))); + } + + /* Horizontal add and shift. */ + prediction64 = drflac__vhaddq_s64(prediction128); + prediction64 = vshl_s64(prediction64, shift64); + prediction64 = vadd_s64(prediction64, vdup_n_s64(vgetq_lane_u32(riceParamPart128, 0))); + + /* Our value should be sitting in prediction64[0]. We need to combine this with our SSE samples. */ + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(vreinterpret_s32_s64(prediction64), vdup_n_s32(0)), samples128_0); + + /* Slide our rice parameter down so that the value in position 0 contains the next one to process. */ + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + + /* We store samples in groups of 4. */ + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + + /* Make sure we process the last few samples. */ + i = (count & ~3); + while (i < (int)count) { + /* Rice extraction. */ + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + + /* Rice reconstruction. */ + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + + /* Sample reconstruction. */ + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + + i += 1; + pDecodedSamples += 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + + /* In my testing the order is rarely > 12, so in this case I'm going to simplify the NEON implementation by only handling order <= 12. */ + if (lpcOrder > 0 && lpcOrder <= 12) { + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return drflac__decode_samples_with_residual__rice__neon_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__neon_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } +} +#endif + +static drflac_bool32 drflac__decode_samples_with_residual__rice(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + if (drflac__gIsSSE41Supported) { + return drflac__decode_samples_with_residual__rice__sse41(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported) { + return drflac__decode_samples_with_residual__rice__neon(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + } else +#endif + { + /* Scalar fallback. */ + #if 0 + return drflac__decode_samples_with_residual__rice__reference(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + #else + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + #endif + } +} + +/* Reads and seeks past a string of residual values as Rice codes. The decoder should be sitting on the first bit of the Rice codes. */ +static drflac_bool32 drflac__read_and_seek_residual__rice(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + + for (i = 0; i < count; ++i) { + if (!drflac__seek_rice_parts(bs, riceParam)) { + return DRFLAC_FALSE; + } + } + + return DRFLAC_TRUE; +} + +#if defined(__clang__) +__attribute__((no_sanitize("signed-integer-overflow"))) +#endif +static drflac_bool32 drflac__decode_samples_with_residual__unencoded(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 unencodedBitsPerSample, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(unencodedBitsPerSample <= 31); /* <-- unencodedBitsPerSample is a 5 bit number, so cannot exceed 31. */ + DRFLAC_ASSERT(pSamplesOut != NULL); + + for (i = 0; i < count; ++i) { + if (unencodedBitsPerSample > 0) { + if (!drflac__read_int32(bs, unencodedBitsPerSample, pSamplesOut + i)) { + return DRFLAC_FALSE; + } + } else { + pSamplesOut[i] = 0; + } + + if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] += drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] += drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + } + } + + return DRFLAC_TRUE; +} + + +/* +Reads and decodes the residual for the sub-frame the decoder is currently sitting on. This function should be called +when the decoder is sitting at the very start of the RESIDUAL block. The first residuals will be ignored. The + and parameters are used to determine how many residual values need to be decoded. +*/ +static drflac_bool32 drflac__decode_samples_with_residual(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 blockSize, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + DRFLAC_ASSERT(pDecodedSamples != NULL); /* <-- Should we allow NULL, in which case we just seek past the residual rather than do a full decode? */ + + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; /* Unknown or unsupported residual coding method. */ + } + + /* Ignore the first values. */ + pDecodedSamples += lpcOrder; + + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC spec: + The Rice partition order in a Rice-coded residual section must be less than or equal to 8. + */ + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + + /* Validation check. */ + if ((blockSize / (1 << partitionOrder)) < lpcOrder) { + return DRFLAC_FALSE; + } + + samplesInPartition = (blockSize / (1 << partitionOrder)) - lpcOrder; + partitionsRemaining = (1 << partitionOrder); + for (;;) { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + + if (riceParam != 0xFF) { + if (!drflac__decode_samples_with_residual__rice(bs, bitsPerSample, samplesInPartition, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + + if (!drflac__decode_samples_with_residual__unencoded(bs, bitsPerSample, samplesInPartition, unencodedBitsPerSample, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } + + pDecodedSamples += samplesInPartition; + + if (partitionsRemaining == 1) { + break; + } + + partitionsRemaining -= 1; + + if (partitionOrder != 0) { + samplesInPartition = blockSize / (1 << partitionOrder); + } + } + + return DRFLAC_TRUE; +} + +/* +Reads and seeks past the residual for the sub-frame the decoder is currently sitting on. This function should be called +when the decoder is sitting at the very start of the RESIDUAL block. The first residuals will be set to 0. The + and parameters are used to determine how many residual values need to be decoded. +*/ +static drflac_bool32 drflac__read_and_seek_residual(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 order) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; /* Unknown or unsupported residual coding method. */ + } + + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC spec: + The Rice partition order in a Rice-coded residual section must be less than or equal to 8. + */ + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + + /* Validation check. */ + if ((blockSize / (1 << partitionOrder)) <= order) { + return DRFLAC_FALSE; + } + + samplesInPartition = (blockSize / (1 << partitionOrder)) - order; + partitionsRemaining = (1 << partitionOrder); + for (;;) + { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + + if (riceParam != 0xFF) { + if (!drflac__read_and_seek_residual__rice(bs, samplesInPartition, riceParam)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + + if (!drflac__seek_bits(bs, unencodedBitsPerSample * samplesInPartition)) { + return DRFLAC_FALSE; + } + } + + + if (partitionsRemaining == 1) { + break; + } + + partitionsRemaining -= 1; + samplesInPartition = blockSize / (1 << partitionOrder); + } + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__decode_samples__constant(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + /* Only a single sample needs to be decoded here. */ + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + /* + We don't really need to expand this, but it does simplify the process of reading samples. If this becomes a performance issue (unlikely) + we'll want to look at a more efficient way. + */ + for (i = 0; i < blockSize; ++i) { + pDecodedSamples[i] = sample; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__verbatim(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + for (i = 0; i < blockSize; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__fixed(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + + static drflac_int32 lpcCoefficientsTable[5][4] = { + {0, 0, 0, 0}, + {1, 0, 0, 0}, + {2, -1, 0, 0}, + {3, -3, 1, 0}, + {4, -6, 4, -1} + }; + + /* Warm up samples and coefficients. */ + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + if (!drflac__decode_samples_with_residual(bs, subframeBitsPerSample, blockSize, lpcOrder, 0, 4, lpcCoefficientsTable[lpcOrder], pDecodedSamples)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_samples__lpc(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 bitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint8 i; + drflac_uint8 lpcPrecision; + drflac_int8 lpcShift; + drflac_int32 coefficients[32]; + + /* Warm up samples. */ + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, bitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + + pDecodedSamples[i] = sample; + } + + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; /* Invalid. */ + } + lpcPrecision += 1; + + if (!drflac__read_int8(bs, 5, &lpcShift)) { + return DRFLAC_FALSE; + } + + /* + From the FLAC specification: + + Quantized linear predictor coefficient shift needed in bits (NOTE: this number is signed two's-complement) + + Emphasis on the "signed two's-complement". In practice there does not seem to be any encoders nor decoders supporting negative shifts. For now dr_flac is + not going to support negative shifts as I don't have any reference files. However, when a reference file comes through I will consider adding support. + */ + if (lpcShift < 0) { + return DRFLAC_FALSE; + } + + DRFLAC_ZERO_MEMORY(coefficients, sizeof(coefficients)); + for (i = 0; i < lpcOrder; ++i) { + if (!drflac__read_int32(bs, lpcPrecision, coefficients + i)) { + return DRFLAC_FALSE; + } + } + + if (!drflac__decode_samples_with_residual(bs, bitsPerSample, blockSize, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + + +static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_uint8 streaminfoBitsPerSample, drflac_frame_header* header) +{ + const drflac_uint32 sampleRateTable[12] = {0, 88200, 176400, 192000, 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000}; + const drflac_uint8 bitsPerSampleTable[8] = {0, 8, 12, (drflac_uint8)-1, 16, 20, 24, (drflac_uint8)-1}; /* -1 = reserved. */ + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(header != NULL); + + /* Keep looping until we find a valid sync code. */ + for (;;) { + drflac_uint8 crc8 = 0xCE; /* 0xCE = drflac_crc8(0, 0x3FFE, 14); */ + drflac_uint8 reserved = 0; + drflac_uint8 blockingStrategy = 0; + drflac_uint8 blockSize = 0; + drflac_uint8 sampleRate = 0; + drflac_uint8 channelAssignment = 0; + drflac_uint8 bitsPerSample = 0; + drflac_bool32 isVariableBlockSize; + + if (!drflac__find_and_seek_to_next_sync_code(bs)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + + if (!drflac__read_uint8(bs, 1, &blockingStrategy)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, blockingStrategy, 1); + + if (!drflac__read_uint8(bs, 4, &blockSize)) { + return DRFLAC_FALSE; + } + if (blockSize == 0) { + continue; + } + crc8 = drflac_crc8(crc8, blockSize, 4); + + if (!drflac__read_uint8(bs, 4, &sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, sampleRate, 4); + + if (!drflac__read_uint8(bs, 4, &channelAssignment)) { + return DRFLAC_FALSE; + } + if (channelAssignment > 10) { + continue; + } + crc8 = drflac_crc8(crc8, channelAssignment, 4); + + if (!drflac__read_uint8(bs, 3, &bitsPerSample)) { + return DRFLAC_FALSE; + } + if (bitsPerSample == 3 || bitsPerSample == 7) { + continue; + } + crc8 = drflac_crc8(crc8, bitsPerSample, 3); + + + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + + + isVariableBlockSize = blockingStrategy == 1; + if (isVariableBlockSize) { + drflac_uint64 pcmFrameNumber; + drflac_result result = drflac__read_utf8_coded_number(bs, &pcmFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = 0; + header->pcmFrameNumber = pcmFrameNumber; + } else { + drflac_uint64 flacFrameNumber = 0; + drflac_result result = drflac__read_utf8_coded_number(bs, &flacFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = (drflac_uint32)flacFrameNumber; /* <-- Safe cast. */ + header->pcmFrameNumber = 0; + } + + + DRFLAC_ASSERT(blockSize > 0); + if (blockSize == 1) { + header->blockSizeInPCMFrames = 192; + } else if (blockSize <= 5) { + DRFLAC_ASSERT(blockSize >= 2); + header->blockSizeInPCMFrames = 576 * (1 << (blockSize - 2)); + } else if (blockSize == 6) { + if (!drflac__read_uint16(bs, 8, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 8); + header->blockSizeInPCMFrames += 1; + } else if (blockSize == 7) { + if (!drflac__read_uint16(bs, 16, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 16); + if (header->blockSizeInPCMFrames == 0xFFFF) { + return DRFLAC_FALSE; /* Frame is too big. This is the size of the frame minus 1. The STREAMINFO block defines the max block size which is 16-bits. Adding one will make it 17 bits and therefore too big. */ + } + header->blockSizeInPCMFrames += 1; + } else { + DRFLAC_ASSERT(blockSize >= 8); + header->blockSizeInPCMFrames = 256 * (1 << (blockSize - 8)); + } + + + if (sampleRate <= 11) { + header->sampleRate = sampleRateTable[sampleRate]; + } else if (sampleRate == 12) { + if (!drflac__read_uint32(bs, 8, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 8); + header->sampleRate *= 1000; + } else if (sampleRate == 13) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + } else if (sampleRate == 14) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + header->sampleRate *= 10; + } else { + continue; /* Invalid. Assume an invalid block. */ + } + + + header->channelAssignment = channelAssignment; + + header->bitsPerSample = bitsPerSampleTable[bitsPerSample]; + if (header->bitsPerSample == 0) { + header->bitsPerSample = streaminfoBitsPerSample; + } + + if (header->bitsPerSample != streaminfoBitsPerSample) { + /* If this subframe has a different bitsPerSample then streaminfo or the first frame, reject it */ + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 8, &header->crc8)) { + return DRFLAC_FALSE; + } + +#ifndef DR_FLAC_NO_CRC + if (header->crc8 != crc8) { + continue; /* CRC mismatch. Loop back to the top and find the next sync code. */ + } +#endif + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac__read_subframe_header(drflac_bs* bs, drflac_subframe* pSubframe) +{ + drflac_uint8 header; + int type; + + if (!drflac__read_uint8(bs, 8, &header)) { + return DRFLAC_FALSE; + } + + /* First bit should always be 0. */ + if ((header & 0x80) != 0) { + return DRFLAC_FALSE; + } + + /* + Default to 0 for the LPC order. It's important that we always set this to 0 for non LPC + and FIXED subframes because we'll be using it in a generic validation check later. + */ + pSubframe->lpcOrder = 0; + + type = (header & 0x7E) >> 1; + if (type == 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_CONSTANT; + } else if (type == 1) { + pSubframe->subframeType = DRFLAC_SUBFRAME_VERBATIM; + } else { + if ((type & 0x20) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_LPC; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x1F) + 1; + } else if ((type & 0x08) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_FIXED; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x07); + if (pSubframe->lpcOrder > 4) { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + pSubframe->lpcOrder = 0; + } + } else { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + } + } + + if (pSubframe->subframeType == DRFLAC_SUBFRAME_RESERVED) { + return DRFLAC_FALSE; + } + + /* Wasted bits per sample. */ + pSubframe->wastedBitsPerSample = 0; + if ((header & 0x01) == 1) { + unsigned int wastedBitsPerSample; + if (!drflac__seek_past_next_set_bit(bs, &wastedBitsPerSample)) { + return DRFLAC_FALSE; + } + pSubframe->wastedBitsPerSample = (drflac_uint8)wastedBitsPerSample + 1; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex, drflac_int32* pDecodedSamplesOut) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + + /* Side channels require an extra bit per sample. Took a while to figure that one out... */ + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + + if (subframeBitsPerSample > 32) { + /* libFLAC and ffmpeg reject 33-bit subframes as well */ + return DRFLAC_FALSE; + } + + /* Need to handle wasted bits per sample. */ + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + + pSubframe->pSamplesS32 = pDecodedSamplesOut; + + /* + pDecodedSamplesOut will be pointing to a buffer that was allocated with enough memory to store + maxBlockSizeInPCMFrames samples (as specified in the FLAC header). We need to guard against an + overflow here. At a higher level we are checking maxBlockSizeInPCMFrames from the header, but + here we need to do an additional check to ensure this frame's block size fully encompasses any + warmup samples which is determined by the LPC order. For non LPC and FIXED subframes, the LPC + order will be have been set to 0 in drflac__read_subframe_header(). + */ + if (frame->header.blockSizeInPCMFrames < pSubframe->lpcOrder) { + return DRFLAC_FALSE; + } + + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + drflac__decode_samples__constant(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_VERBATIM: + { + drflac__decode_samples__verbatim(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_FIXED: + { + drflac__decode_samples__fixed(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + + case DRFLAC_SUBFRAME_LPC: + { + drflac__decode_samples__lpc(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + + default: return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__seek_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + + /* Side channels require an extra bit per sample. Took a while to figure that one out... */ + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + + /* Need to handle wasted bits per sample. */ + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + + pSubframe->pSamplesS32 = NULL; + + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + if (!drflac__seek_bits(bs, subframeBitsPerSample)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_VERBATIM: + { + unsigned int bitsToSeek = frame->header.blockSizeInPCMFrames * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_FIXED: + { + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + + case DRFLAC_SUBFRAME_LPC: + { + drflac_uint8 lpcPrecision; + + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; /* Invalid. */ + } + lpcPrecision += 1; + + + bitsToSeek = (pSubframe->lpcOrder * lpcPrecision) + 5; /* +5 for shift. */ + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + + default: return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + + +static DRFLAC_INLINE drflac_uint8 drflac__get_channel_count_from_channel_assignment(drflac_int8 channelAssignment) +{ + drflac_uint8 lookup[] = {1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 2}; + + DRFLAC_ASSERT(channelAssignment <= 10); + return lookup[channelAssignment]; +} + +static drflac_result drflac__decode_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint8 paddingSizeInBits; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + + /* This function should be called while the stream is sitting on the first byte after the frame header. */ + DRFLAC_ZERO_MEMORY(pFlac->currentFLACFrame.subframes, sizeof(pFlac->currentFLACFrame.subframes)); + + /* The frame block size must never be larger than the maximum block size defined by the FLAC stream. */ + if (pFlac->currentFLACFrame.header.blockSizeInPCMFrames > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_ERROR; + } + + /* The number of channels in the frame must match the channel count from the STREAMINFO block. */ + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + if (channelCount != (int)pFlac->channels) { + return DRFLAC_ERROR; + } + + for (i = 0; i < channelCount; ++i) { + if (!drflac__decode_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i, pFlac->pDecodedSamples + (pFlac->currentFLACFrame.header.blockSizeInPCMFrames * i))) { + return DRFLAC_ERROR; + } + } + + paddingSizeInBits = (drflac_uint8)(DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7); + if (paddingSizeInBits > 0) { + drflac_uint8 padding = 0; + if (!drflac__read_uint8(&pFlac->bs, paddingSizeInBits, &padding)) { + return DRFLAC_AT_END; + } + } + +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } + +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; /* CRC mismatch. */ + } +#endif + + pFlac->currentFLACFrame.pcmFramesRemaining = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + + return DRFLAC_SUCCESS; +} + +static drflac_result drflac__seek_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + for (i = 0; i < channelCount; ++i) { + if (!drflac__seek_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i)) { + return DRFLAC_ERROR; + } + } + + /* Padding. */ + if (!drflac__seek_bits(&pFlac->bs, DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7)) { + return DRFLAC_ERROR; + } + + /* CRC. */ +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } + +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; /* CRC mismatch. */ + } +#endif + + return DRFLAC_SUCCESS; +} + +static drflac_bool32 drflac__read_and_decode_next_flac_frame(drflac* pFlac) +{ + DRFLAC_ASSERT(pFlac != NULL); + + for (;;) { + drflac_result result; + + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + + result = drflac__decode_flac_frame(pFlac); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Skip to the next frame. */ + } else { + return DRFLAC_FALSE; + } + } + + return DRFLAC_TRUE; + } +} + +static void drflac__get_pcm_frame_range_of_current_flac_frame(drflac* pFlac, drflac_uint64* pFirstPCMFrame, drflac_uint64* pLastPCMFrame) +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 lastPCMFrame; + + DRFLAC_ASSERT(pFlac != NULL); + + firstPCMFrame = pFlac->currentFLACFrame.header.pcmFrameNumber; + if (firstPCMFrame == 0) { + firstPCMFrame = ((drflac_uint64)pFlac->currentFLACFrame.header.flacFrameNumber) * pFlac->maxBlockSizeInPCMFrames; + } + + lastPCMFrame = firstPCMFrame + pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + if (lastPCMFrame > 0) { + lastPCMFrame -= 1; /* Needs to be zero based. */ + } + + if (pFirstPCMFrame) { + *pFirstPCMFrame = firstPCMFrame; + } + if (pLastPCMFrame) { + *pLastPCMFrame = lastPCMFrame; + } +} + +static drflac_bool32 drflac__seek_to_first_frame(drflac* pFlac) +{ + drflac_bool32 result; + + DRFLAC_ASSERT(pFlac != NULL); + + result = drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes); + + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + pFlac->currentPCMFrame = 0; + + return result; +} + +static DRFLAC_INLINE drflac_result drflac__seek_to_next_flac_frame(drflac* pFlac) +{ + /* This function should only ever be called while the decoder is sitting on the first byte past the FRAME_HEADER section. */ + DRFLAC_ASSERT(pFlac != NULL); + return drflac__seek_flac_frame(pFlac); +} + + +static drflac_uint64 drflac__seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 pcmFramesToSeek) +{ + drflac_uint64 pcmFramesRead = 0; + while (pcmFramesToSeek > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + if (pFlac->currentFLACFrame.pcmFramesRemaining > pcmFramesToSeek) { + pcmFramesRead += pcmFramesToSeek; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)pcmFramesToSeek; /* <-- Safe cast. Will always be < currentFrame.pcmFramesRemaining < 65536. */ + pcmFramesToSeek = 0; + } else { + pcmFramesRead += pFlac->currentFLACFrame.pcmFramesRemaining; + pcmFramesToSeek -= pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + } + } + } + + pFlac->currentPCMFrame += pcmFramesRead; + return pcmFramesRead; +} + + +static drflac_bool32 drflac__seek_to_pcm_frame__brute_force(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + + DRFLAC_ASSERT(pFlac != NULL); + + /* If we are seeking forward we start from the current position. Otherwise we need to start all the way from the start of the file. */ + if (pcmFrameIndex >= pFlac->currentPCMFrame) { + /* Seeking forward. Need to seek from the current position. */ + runningPCMFrameCount = pFlac->currentPCMFrame; + + /* The frame header for the first frame may not yet have been read. We need to do that if necessary. */ + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + /* Seeking backwards. Need to seek from the start of the file. */ + runningPCMFrameCount = 0; + + /* Move back to the start. */ + if (!drflac__seek_to_first_frame(pFlac)) { + return DRFLAC_FALSE; + } + + /* Decode the first frame in preparation for sample-exact seeking below. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + + /* + We need to as quickly as possible find the frame that contains the target sample. To do this, we iterate over each frame and inspect its + header. If based on the header we can determine that the frame contains the sample, we do a full decode of that frame. + */ + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + /* + The sample should be in this frame. We need to fully decode it, however if it's an invalid frame (a CRC mismatch), we need to pretend + it never existed and keep iterating. + */ + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* We started seeking mid-frame which means we need to skip the frame decoding part. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + We started seeking mid-frame which means we need to seek by reading to the end of the frame instead of with + drflac__seek_to_next_flac_frame() which only works if the decoder is sitting on the byte just after the frame header. + */ + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + + next_iteration: + /* Grab the next frame in preparation for the next iteration. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} + + +#if !defined(DR_FLAC_NO_CRC) +/* +We use an average compression ratio to determine our approximate start location. FLAC files are generally about 50%-70% the size of their +uncompressed counterparts so we'll use this as a basis. I'm going to split the middle and use a factor of 0.6 to determine the starting +location. +*/ +#define DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO 0.6f + +static drflac_bool32 drflac__seek_to_approximate_flac_frame_to_byte(drflac* pFlac, drflac_uint64 targetByte, drflac_uint64 rangeLo, drflac_uint64 rangeHi, drflac_uint64* pLastSuccessfulSeekOffset) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pLastSuccessfulSeekOffset != NULL); + DRFLAC_ASSERT(targetByte >= rangeLo); + DRFLAC_ASSERT(targetByte <= rangeHi); + + *pLastSuccessfulSeekOffset = pFlac->firstFLACFramePosInBytes; + + for (;;) { + /* After rangeLo == rangeHi == targetByte fails, we need to break out. */ + drflac_uint64 lastTargetByte = targetByte; + + /* When seeking to a byte, failure probably means we've attempted to seek beyond the end of the stream. To counter this we just halve it each attempt. */ + if (!drflac__seek_to_byte(&pFlac->bs, targetByte)) { + /* If we couldn't even seek to the first byte in the stream we have a problem. Just abandon the whole thing. */ + if (targetByte == 0) { + drflac__seek_to_first_frame(pFlac); /* Try to recover. */ + return DRFLAC_FALSE; + } + + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + /* Getting here should mean that we have seeked to an appropriate byte. */ + + /* Clear the details of the FLAC frame so we don't misreport data. */ + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + + /* + Now seek to the next FLAC frame. We need to decode the entire frame (not just the header) because it's possible for the header to incorrectly pass the + CRC check and return bad data. We need to decode the entire frame to be more certain. Although this seems unlikely, this has happened to me in testing + so it needs to stay this way for now. + */ +#if 1 + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#else + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + /* Halve the byte location and continue. */ + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#endif + } + + /* We already tried this byte and there are no more to try, break out. */ + if(targetByte == lastTargetByte) { + return DRFLAC_FALSE; + } + } + + /* The current PCM frame needs to be updated based on the frame we just seeked to. */ + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + + DRFLAC_ASSERT(targetByte <= rangeHi); + + *pLastSuccessfulSeekOffset = targetByte; + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 offset) +{ + /* This section of code would be used if we were only decoding the FLAC frame header when calling drflac__seek_to_approximate_flac_frame_to_byte(). */ +#if 0 + if (drflac__decode_flac_frame(pFlac) != DRFLAC_SUCCESS) { + /* We failed to decode this frame which may be due to it being corrupt. We'll just use the next valid FLAC frame. */ + if (drflac__read_and_decode_next_flac_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + } +#endif + + return drflac__seek_forward_by_pcm_frames(pFlac, offset) == offset; +} + + +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* pFlac, drflac_uint64 pcmFrameIndex, drflac_uint64 byteRangeLo, drflac_uint64 byteRangeHi) +{ + /* This assumes pFlac->currentPCMFrame is sitting on byteRangeLo upon entry. */ + + drflac_uint64 targetByte; + drflac_uint64 pcmRangeLo = pFlac->totalPCMFrameCount; + drflac_uint64 pcmRangeHi = 0; + drflac_uint64 lastSuccessfulSeekOffset = (drflac_uint64)-1; + drflac_uint64 closestSeekOffsetBeforeTargetPCMFrame = byteRangeLo; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + + targetByte = byteRangeLo + (drflac_uint64)(((drflac_int64)((pcmFrameIndex - pFlac->currentPCMFrame) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + + for (;;) { + if (drflac__seek_to_approximate_flac_frame_to_byte(pFlac, targetByte, byteRangeLo, byteRangeHi, &lastSuccessfulSeekOffset)) { + /* We found a FLAC frame. We need to check if it contains the sample we're looking for. */ + drflac_uint64 newPCMRangeLo; + drflac_uint64 newPCMRangeHi; + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &newPCMRangeLo, &newPCMRangeHi); + + /* If we selected the same frame, it means we should be pretty close. Just decode the rest. */ + if (pcmRangeLo == newPCMRangeLo) { + if (!drflac__seek_to_approximate_flac_frame_to_byte(pFlac, closestSeekOffsetBeforeTargetPCMFrame, closestSeekOffsetBeforeTargetPCMFrame, byteRangeHi, &lastSuccessfulSeekOffset)) { + break; /* Failed to seek to closest frame. */ + } + + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek forward. */ + } + } + + pcmRangeLo = newPCMRangeLo; + pcmRangeHi = newPCMRangeHi; + + if (pcmRangeLo <= pcmFrameIndex && pcmRangeHi >= pcmFrameIndex) { + /* The target PCM frame is in this FLAC frame. */ + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame) ) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek to FLAC frame. */ + } + } else { + const float approxCompressionRatio = (drflac_int64)(lastSuccessfulSeekOffset - pFlac->firstFLACFramePosInBytes) / ((drflac_int64)(pcmRangeLo * pFlac->channels * pFlac->bitsPerSample)/8.0f); + + if (pcmRangeLo > pcmFrameIndex) { + /* We seeked too far forward. We need to move our target byte backward and try again. */ + byteRangeHi = lastSuccessfulSeekOffset; + if (byteRangeLo > byteRangeHi) { + byteRangeLo = byteRangeHi; + } + + targetByte = byteRangeLo + ((byteRangeHi - byteRangeLo) / 2); + if (targetByte < byteRangeLo) { + targetByte = byteRangeLo; + } + } else /*if (pcmRangeHi < pcmFrameIndex)*/ { + /* We didn't seek far enough. We need to move our target byte forward and try again. */ + + /* If we're close enough we can just seek forward. */ + if ((pcmFrameIndex - pcmRangeLo) < seekForwardThreshold) { + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; /* Failed to seek to FLAC frame. */ + } + } else { + byteRangeLo = lastSuccessfulSeekOffset; + if (byteRangeHi < byteRangeLo) { + byteRangeHi = byteRangeLo; + } + + targetByte = lastSuccessfulSeekOffset + (drflac_uint64)(((drflac_int64)((pcmFrameIndex-pcmRangeLo) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * approxCompressionRatio); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + + if (closestSeekOffsetBeforeTargetPCMFrame < lastSuccessfulSeekOffset) { + closestSeekOffsetBeforeTargetPCMFrame = lastSuccessfulSeekOffset; + } + } + } + } + } else { + /* Getting here is really bad. We just recover as best we can, but moving to the first frame in the stream, and then abort. */ + break; + } + } + + drflac__seek_to_first_frame(pFlac); /* <-- Try to recover. */ + return DRFLAC_FALSE; +} + +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + + /* Our algorithm currently assumes the FLAC stream is currently sitting at the start. */ + if (drflac__seek_to_first_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + + /* If we're close enough to the start, just move to the start and seek forward. */ + if (pcmFrameIndex < seekForwardThreshold) { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFrameIndex) == pcmFrameIndex; + } + + /* + Our starting byte range is the byte position of the first FLAC frame and the approximate end of the file as if it were completely uncompressed. This ensures + the entire file is included, even though most of the time it'll exceed the end of the actual stream. This is OK as the frame searching logic will handle it. + */ + byteRangeLo = pFlac->firstFLACFramePosInBytes; + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + + return drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi); +} +#endif /* !DR_FLAC_NO_CRC */ + +static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint32 iClosestSeekpoint = 0; + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + drflac_uint32 iSeekpoint; + + + DRFLAC_ASSERT(pFlac != NULL); + + if (pFlac->pSeekpoints == NULL || pFlac->seekpointCount == 0) { + return DRFLAC_FALSE; + } + + /* Do not use the seektable if pcmFramIndex is not coverd by it. */ + if (pFlac->pSeekpoints[0].firstPCMFrame > pcmFrameIndex) { + return DRFLAC_FALSE; + } + + for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { + if (pFlac->pSeekpoints[iSeekpoint].firstPCMFrame >= pcmFrameIndex) { + break; + } + + iClosestSeekpoint = iSeekpoint; + } + + /* There's been cases where the seek table contains only zeros. We need to do some basic validation on the closest seekpoint. */ + if (pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount == 0 || pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_FALSE; + } + if (pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame > pFlac->totalPCMFrameCount && pFlac->totalPCMFrameCount > 0) { + return DRFLAC_FALSE; + } + +#if !defined(DR_FLAC_NO_CRC) + /* At this point we should know the closest seek point. We can use a binary search for this. We need to know the total sample count for this. */ + if (pFlac->totalPCMFrameCount > 0) { + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + byteRangeLo = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset; + + /* + If our closest seek point is not the last one, we only need to search between it and the next one. The section below calculates an appropriate starting + value for byteRangeHi which will clamp it appropriately. + + Note that the next seekpoint must have an offset greater than the closest seekpoint because otherwise our binary search algorithm will break down. There + have been cases where a seektable consists of seek points where every byte offset is set to 0 which causes problems. If this happens we need to abort. + */ + if (iClosestSeekpoint < pFlac->seekpointCount-1) { + drflac_uint32 iNextSeekpoint = iClosestSeekpoint + 1; + + /* Basic validation on the seekpoints to ensure they're usable. */ + if (pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset >= pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset || pFlac->pSeekpoints[iNextSeekpoint].pcmFrameCount == 0) { + return DRFLAC_FALSE; /* The next seekpoint doesn't look right. The seek table cannot be trusted from here. Abort. */ + } + + if (pFlac->pSeekpoints[iNextSeekpoint].firstPCMFrame != (((drflac_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF)) { /* Make sure it's not a placeholder seekpoint. */ + byteRangeHi = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset - 1; /* byteRangeHi must be zero based. */ + } + } + + if (drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + if (drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + + if (drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi)) { + return DRFLAC_TRUE; + } + } + } + } +#endif /* !DR_FLAC_NO_CRC */ + + /* Getting here means we need to use a slower algorithm because the binary search method failed or cannot be used. */ + + /* + If we are seeking forward and the closest seekpoint is _before_ the current sample, we just seek forward from where we are. Otherwise we start seeking + from the seekpoint's first sample. + */ + if (pcmFrameIndex >= pFlac->currentPCMFrame && pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame <= pFlac->currentPCMFrame) { + /* Optimized case. Just seek forward from where we are. */ + runningPCMFrameCount = pFlac->currentPCMFrame; + + /* The frame header for the first frame may not yet have been read. We need to do that if necessary. */ + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + /* Slower case. Seek to the start of the seekpoint and then seek forward from there. */ + runningPCMFrameCount = pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame; + + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + return DRFLAC_FALSE; + } + + /* Grab the frame the seekpoint is sitting on in preparation for the sample-exact seeking below. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + /* + The sample should be in this frame. We need to fully decode it, but if it's an invalid frame (a CRC mismatch) we need to pretend + it never existed and keep iterating. + */ + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* We started seeking mid-frame which means we need to skip the frame decoding part. */ + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + We started seeking mid-frame which means we need to seek by reading to the end of the frame instead of with + drflac__seek_to_next_flac_frame() which only works if the decoder is sitting on the byte just after the frame header. + */ + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + + next_iteration: + /* Grab the next frame in preparation for the next iteration. */ + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} + + +#ifndef DR_FLAC_NO_OGG +typedef struct +{ + drflac_uint8 capturePattern[4]; /* Should be "OggS" */ + drflac_uint8 structureVersion; /* Always 0. */ + drflac_uint8 headerType; + drflac_uint64 granulePosition; + drflac_uint32 serialNumber; + drflac_uint32 sequenceNumber; + drflac_uint32 checksum; + drflac_uint8 segmentCount; + drflac_uint8 segmentTable[255]; +} drflac_ogg_page_header; +#endif + +typedef struct +{ + drflac_read_proc onRead; + drflac_seek_proc onSeek; + drflac_tell_proc onTell; + drflac_meta_proc onMeta; + drflac_container container; + void* pUserData; + void* pUserDataMD; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint64 runningFilePos; + drflac_bool32 hasStreamInfoBlock; + drflac_bool32 hasMetadataBlocks; + drflac_bs bs; /* <-- A bit streamer is required for loading data during initialization. */ + drflac_frame_header firstFrameHeader; /* <-- The header of the first frame that was read during relaxed initalization. Only set if there is no STREAMINFO block. */ + +#ifndef DR_FLAC_NO_OGG + drflac_uint32 oggSerial; + drflac_uint64 oggFirstBytePos; + drflac_ogg_page_header oggBosHeader; +#endif +} drflac_init_info; + +static DRFLAC_INLINE void drflac__decode_block_header(drflac_uint32 blockHeader, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + blockHeader = drflac__be2host_32(blockHeader); + *isLastBlock = (drflac_uint8)((blockHeader & 0x80000000UL) >> 31); + *blockType = (drflac_uint8)((blockHeader & 0x7F000000UL) >> 24); + *blockSize = (blockHeader & 0x00FFFFFFUL); +} + +static DRFLAC_INLINE drflac_bool32 drflac__read_and_decode_block_header(drflac_read_proc onRead, void* pUserData, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + drflac_uint32 blockHeader; + + *blockSize = 0; + if (onRead(pUserData, &blockHeader, 4) != 4) { + return DRFLAC_FALSE; + } + + drflac__decode_block_header(blockHeader, isLastBlock, blockType, blockSize); + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__read_streaminfo(drflac_read_proc onRead, void* pUserData, drflac_streaminfo* pStreamInfo) +{ + drflac_uint32 blockSizes; + drflac_uint64 frameSizes = 0; + drflac_uint64 importantProps; + drflac_uint8 md5[16]; + + /* min/max block size. */ + if (onRead(pUserData, &blockSizes, 4) != 4) { + return DRFLAC_FALSE; + } + + /* min/max frame size. */ + if (onRead(pUserData, &frameSizes, 6) != 6) { + return DRFLAC_FALSE; + } + + /* Sample rate, channels, bits per sample and total sample count. */ + if (onRead(pUserData, &importantProps, 8) != 8) { + return DRFLAC_FALSE; + } + + /* MD5 */ + if (onRead(pUserData, md5, sizeof(md5)) != sizeof(md5)) { + return DRFLAC_FALSE; + } + + blockSizes = drflac__be2host_32(blockSizes); + frameSizes = drflac__be2host_64(frameSizes); + importantProps = drflac__be2host_64(importantProps); + + pStreamInfo->minBlockSizeInPCMFrames = (drflac_uint16)((blockSizes & 0xFFFF0000) >> 16); + pStreamInfo->maxBlockSizeInPCMFrames = (drflac_uint16) (blockSizes & 0x0000FFFF); + pStreamInfo->minFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 24)) >> 40); + pStreamInfo->maxFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 0)) >> 16); + pStreamInfo->sampleRate = (drflac_uint32)((importantProps & (((drflac_uint64)0x000FFFFF << 16) << 28)) >> 44); + pStreamInfo->channels = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000000E << 16) << 24)) >> 41) + 1; + pStreamInfo->bitsPerSample = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000001F << 16) << 20)) >> 36) + 1; + pStreamInfo->totalPCMFrameCount = ((importantProps & ((((drflac_uint64)0x0000000F << 16) << 16) | 0xFFFFFFFF))); + DRFLAC_COPY_MEMORY(pStreamInfo->md5, md5, sizeof(md5)); + + return DRFLAC_TRUE; +} + + +static void* drflac__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_MALLOC(sz); +} + +static void* drflac__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_REALLOC(p, sz); +} + +static void drflac__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRFLAC_FREE(p); +} + + +static void* drflac__malloc_from_callbacks(size_t sz, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +static void* drflac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + DRFLAC_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +static void drflac__free_from_callbacks(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + + +static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_uint64* pFirstFramePos, drflac_uint64* pSeektablePos, drflac_uint32* pSeekpointCount, drflac_allocation_callbacks* pAllocationCallbacks) +{ + /* + We want to keep track of the byte position in the stream of the seektable. At the time of calling this function we know that + we'll be sitting on byte 42. + */ + drflac_uint64 runningFilePos = 42; + drflac_uint64 seektablePos = 0; + drflac_uint32 seektableSize = 0; + + (void)onTell; + + for (;;) { + drflac_metadata metadata; + drflac_uint8 isLastBlock = 0; + drflac_uint8 blockType = 0; + drflac_uint32 blockSize; + if (drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + runningFilePos += 4; + + metadata.type = blockType; + metadata.rawDataSize = 0; + metadata.rawDataOffset = runningFilePos; + metadata.pRawData = NULL; + + switch (blockType) + { + case DRFLAC_METADATA_BLOCK_TYPE_APPLICATION: + { + if (blockSize < 4) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.application.id = drflac__be2host_32(*(drflac_uint32*)pRawData); + metadata.data.application.pData = (const void*)((drflac_uint8*)pRawData + sizeof(drflac_uint32)); + metadata.data.application.dataSize = blockSize - sizeof(drflac_uint32); + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE: + { + seektablePos = runningFilePos; + seektableSize = blockSize; + + if (onMeta) { + drflac_uint32 seekpointCount; + drflac_uint32 iSeekpoint; + void* pRawData; + + seekpointCount = blockSize/DRFLAC_SEEKPOINT_SIZE_IN_BYTES; + + pRawData = drflac__malloc_from_callbacks(seekpointCount * sizeof(drflac_seekpoint), pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + /* We need to read seekpoint by seekpoint and do some processing. */ + for (iSeekpoint = 0; iSeekpoint < seekpointCount; ++iSeekpoint) { + drflac_seekpoint* pSeekpoint = (drflac_seekpoint*)pRawData + iSeekpoint; + + if (onRead(pUserData, pSeekpoint, DRFLAC_SEEKPOINT_SIZE_IN_BYTES) != DRFLAC_SEEKPOINT_SIZE_IN_BYTES) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + /* Endian swap. */ + pSeekpoint->firstPCMFrame = drflac__be2host_64(pSeekpoint->firstPCMFrame); + pSeekpoint->flacFrameOffset = drflac__be2host_64(pSeekpoint->flacFrameOffset); + pSeekpoint->pcmFrameCount = drflac__be2host_16(pSeekpoint->pcmFrameCount); + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.seektable.seekpointCount = seekpointCount; + metadata.data.seektable.pSeekpoints = (const drflac_seekpoint*)pRawData; + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT: + { + if (blockSize < 8) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + drflac_uint32 i; + + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + + metadata.data.vorbis_comment.vendorLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for the rest of the block */ + if ((pRunningDataEnd - pRunningData) - 4 < (drflac_int64)metadata.data.vorbis_comment.vendorLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.vendor = pRunningData; pRunningData += metadata.data.vorbis_comment.vendorLength; + metadata.data.vorbis_comment.commentCount = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + + /* Need space for 'commentCount' comments after the block, which at minimum is a drflac_uint32 per comment */ + if ((pRunningDataEnd - pRunningData) / sizeof(drflac_uint32) < metadata.data.vorbis_comment.commentCount) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.pComments = pRunningData; + + /* Check that the comments section is valid before passing it to the callback */ + for (i = 0; i < metadata.data.vorbis_comment.commentCount; ++i) { + drflac_uint32 commentLength; + + if (pRunningDataEnd - pRunningData < 4) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + commentLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if (pRunningDataEnd - pRunningData < (drflac_int64)commentLength) { /* <-- Note the order of operations to avoid overflow to a valid value */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + pRunningData += commentLength; + } + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_CUESHEET: + { + if (blockSize < 396) { + return DRFLAC_FALSE; + } + + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + size_t bufferSize; + drflac_uint8 iTrack; + drflac_uint8 iIndex; + void* pTrackData; + + /* + This needs to be loaded in two passes. The first pass is used to calculate the size of the memory allocation + we need for storing the necessary data. The second pass will fill that buffer with usable data. + */ + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + + DRFLAC_COPY_MEMORY(metadata.data.cuesheet.catalog, pRunningData, 128); pRunningData += 128; + metadata.data.cuesheet.leadInSampleCount = drflac__be2host_64(*(const drflac_uint64*)pRunningData); pRunningData += 8; + metadata.data.cuesheet.isCD = (pRunningData[0] & 0x80) != 0; pRunningData += 259; + metadata.data.cuesheet.trackCount = pRunningData[0]; pRunningData += 1; + metadata.data.cuesheet.pTrackData = NULL; /* Will be filled later. */ + + /* Pass 1: Calculate the size of the buffer for the track data. */ + { + const char* pRunningDataSaved = pRunningData; /* Will be restored at the end in preparation for the second pass. */ + + bufferSize = metadata.data.cuesheet.trackCount * DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES; + + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + drflac_uint8 indexCount; + drflac_uint32 indexPointSize; + + if (pRunningDataEnd - pRunningData < DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + /* Skip to the index point count */ + pRunningData += 35; + + indexCount = pRunningData[0]; + pRunningData += 1; + + bufferSize += indexCount * sizeof(drflac_cuesheet_track_index); + + /* Quick validation check. */ + indexPointSize = indexCount * DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + if (pRunningDataEnd - pRunningData < (drflac_int64)indexPointSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + pRunningData += indexPointSize; + } + + pRunningData = pRunningDataSaved; + } + + /* Pass 2: Allocate a buffer and fill the data. Validation was done in the step above so can be skipped. */ + { + char* pRunningTrackData; + + pTrackData = drflac__malloc_from_callbacks(bufferSize, pAllocationCallbacks); + if (pTrackData == NULL) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + + pRunningTrackData = (char*)pTrackData; + + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + drflac_uint8 indexCount; + + DRFLAC_COPY_MEMORY(pRunningTrackData, pRunningData, DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES); + pRunningData += DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; /* Skip forward, but not beyond the last byte in the CUESHEET_TRACK block which is the index count. */ + pRunningTrackData += DRFLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; + + /* Grab the index count for the next part. */ + indexCount = pRunningData[0]; + pRunningData += 1; + pRunningTrackData += 1; + + /* Extract each track index. */ + for (iIndex = 0; iIndex < indexCount; ++iIndex) { + drflac_cuesheet_track_index* pTrackIndex = (drflac_cuesheet_track_index*)pRunningTrackData; + + DRFLAC_COPY_MEMORY(pRunningTrackData, pRunningData, DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES); + pRunningData += DRFLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + pRunningTrackData += sizeof(drflac_cuesheet_track_index); + + pTrackIndex->offset = drflac__be2host_64(pTrackIndex->offset); + } + } + + metadata.data.cuesheet.pTrackData = pTrackData; + } + + /* The original data is no longer needed. */ + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + pRawData = NULL; + + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pTrackData, pAllocationCallbacks); + pTrackData = NULL; + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_PICTURE: + { + if (blockSize < 32) { + return DRFLAC_FALSE; + } + + if (onMeta) { + drflac_bool32 result = DRFLAC_TRUE; + drflac_uint32 blockSizeRemaining = blockSize; + char* pMime = NULL; + char* pDescription = NULL; + void* pPictureData = NULL; + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.type, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.type = drflac__be2host_32(metadata.data.picture.type); + + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.mimeLength, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.mimeLength = drflac__be2host_32(metadata.data.picture.mimeLength); + + pMime = (char*)drflac__malloc_from_callbacks(metadata.data.picture.mimeLength + 1, pAllocationCallbacks); /* +1 for null terminator. */ + if (pMime == NULL) { + result = DRFLAC_FALSE; + goto done_flac; + } + + if (blockSizeRemaining < metadata.data.picture.mimeLength || onRead(pUserData, pMime, metadata.data.picture.mimeLength) != metadata.data.picture.mimeLength) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= metadata.data.picture.mimeLength; + pMime[metadata.data.picture.mimeLength] = '\0'; /* Null terminate for safety. */ + metadata.data.picture.mime = (const char*)pMime; + + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.descriptionLength, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.descriptionLength = drflac__be2host_32(metadata.data.picture.descriptionLength); + + pDescription = (char*)drflac__malloc_from_callbacks(metadata.data.picture.descriptionLength + 1, pAllocationCallbacks); /* +1 for null terminator. */ + if (pDescription == NULL) { + result = DRFLAC_FALSE; + goto done_flac; + } + + if (blockSizeRemaining < metadata.data.picture.descriptionLength || onRead(pUserData, pDescription, metadata.data.picture.descriptionLength) != metadata.data.picture.descriptionLength) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= metadata.data.picture.descriptionLength; + pDescription[metadata.data.picture.descriptionLength] = '\0'; /* Null terminate for safety. */ + metadata.data.picture.description = (const char*)pDescription; + + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.width, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.width = drflac__be2host_32(metadata.data.picture.width); + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.height, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.height = drflac__be2host_32(metadata.data.picture.height); + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.colorDepth, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.colorDepth = drflac__be2host_32(metadata.data.picture.colorDepth); + + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.indexColorCount, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.indexColorCount = drflac__be2host_32(metadata.data.picture.indexColorCount); + + + /* Picture data. */ + if (blockSizeRemaining < 4 || onRead(pUserData, &metadata.data.picture.pictureDataSize, 4) != 4) { + result = DRFLAC_FALSE; + goto done_flac; + } + blockSizeRemaining -= 4; + metadata.data.picture.pictureDataSize = drflac__be2host_32(metadata.data.picture.pictureDataSize); + + if (blockSizeRemaining < metadata.data.picture.pictureDataSize) { + result = DRFLAC_FALSE; + goto done_flac; + } + + /* For the actual image data we want to store the offset to the start of the stream. */ + metadata.data.picture.pictureDataOffset = runningFilePos + (blockSize - blockSizeRemaining); + + /* + For the allocation of image data, we can allow memory allocation to fail, in which case we just leave + the pointer as null. If it fails, we need to fall back to seeking past the image data. + */ + #ifndef DR_FLAC_NO_PICTURE_METADATA_MALLOC + pPictureData = drflac__malloc_from_callbacks(metadata.data.picture.pictureDataSize, pAllocationCallbacks); + if (pPictureData != NULL) { + if (onRead(pUserData, pPictureData, metadata.data.picture.pictureDataSize) != metadata.data.picture.pictureDataSize) { + result = DRFLAC_FALSE; + goto done_flac; + } + } else + #endif + { + /* Allocation failed. We need to seek past the picture data. */ + if (!onSeek(pUserData, metadata.data.picture.pictureDataSize, DRFLAC_SEEK_CUR)) { + result = DRFLAC_FALSE; + goto done_flac; + } + } + + blockSizeRemaining -= metadata.data.picture.pictureDataSize; + (void)blockSizeRemaining; + + metadata.data.picture.pPictureData = (const drflac_uint8*)pPictureData; + + + /* Only fire the callback if we actually have a way to read the image data. We must have either a valid offset, or a valid data pointer. */ + if (metadata.data.picture.pictureDataOffset != 0 || metadata.data.picture.pPictureData != NULL) { + onMeta(pUserDataMD, &metadata); + } else { + /* Don't have a valid offset or data pointer, so just pretend we don't have a picture metadata. */ + } + + done_flac: + drflac__free_from_callbacks(pMime, pAllocationCallbacks); + drflac__free_from_callbacks(pDescription, pAllocationCallbacks); + drflac__free_from_callbacks(pPictureData, pAllocationCallbacks); + + if (result != DRFLAC_TRUE) { + return DRFLAC_FALSE; + } + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_PADDING: + { + if (onMeta) { + metadata.data.padding.unused = 0; + + /* Padding doesn't have anything meaningful in it, so just skip over it, but make sure the caller is aware of it by firing the callback. */ + if (!onSeek(pUserData, blockSize, DRFLAC_SEEK_CUR)) { + isLastBlock = DRFLAC_TRUE; /* An error occurred while seeking. Attempt to recover by treating this as the last block which will in turn terminate the loop. */ + } else { + onMeta(pUserDataMD, &metadata); + } + } + } break; + + case DRFLAC_METADATA_BLOCK_TYPE_INVALID: + { + /* Invalid chunk. Just skip over this one. */ + if (onMeta) { + if (!onSeek(pUserData, blockSize, DRFLAC_SEEK_CUR)) { + isLastBlock = DRFLAC_TRUE; /* An error occurred while seeking. Attempt to recover by treating this as the last block which will in turn terminate the loop. */ + } + } + } break; + + default: + { + /* + It's an unknown chunk, but not necessarily invalid. There's a chance more metadata blocks might be defined later on, so we + can at the very least report the chunk to the application and let it look at the raw data. + */ + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData != NULL) { + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + } else { + /* Allocation failed. We need to seek past the block. */ + if (!onSeek(pUserData, blockSize, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + } + + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + onMeta(pUserDataMD, &metadata); + + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + } + + /* If we're not handling metadata, just skip over the block. If we are, it will have been handled earlier in the switch statement above. */ + if (onMeta == NULL && blockSize > 0) { + if (!onSeek(pUserData, blockSize, DRFLAC_SEEK_CUR)) { + isLastBlock = DRFLAC_TRUE; + } + } + + runningFilePos += blockSize; + if (isLastBlock) { + break; + } + } + + *pSeektablePos = seektablePos; + *pSeekpointCount = seektableSize / DRFLAC_SEEKPOINT_SIZE_IN_BYTES; + *pFirstFramePos = runningFilePos; + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__init_private__native(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + /* Pre Condition: The bit stream should be sitting just past the 4-byte id header. */ + + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + + (void)onSeek; + + pInit->container = drflac_container_native; + + /* The first metadata block should be the STREAMINFO block. */ + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + if (!relaxed) { + /* We're opening in strict mode and the first block is not the STREAMINFO block. Error. */ + return DRFLAC_FALSE; + } else { + /* + Relaxed mode. To open from here we need to just find the first frame and set the sample rate, etc. to whatever is defined + for that frame. + */ + pInit->hasStreamInfoBlock = DRFLAC_FALSE; + pInit->hasMetadataBlocks = DRFLAC_FALSE; + + if (!drflac__read_next_flac_frame_header(&pInit->bs, 0, &pInit->firstFrameHeader)) { + return DRFLAC_FALSE; /* Couldn't find a frame. */ + } + + if (pInit->firstFrameHeader.bitsPerSample == 0) { + return DRFLAC_FALSE; /* Failed to initialize because the first frame depends on the STREAMINFO block, which does not exist. */ + } + + pInit->sampleRate = pInit->firstFrameHeader.sampleRate; + pInit->channels = drflac__get_channel_count_from_channel_assignment(pInit->firstFrameHeader.channelAssignment); + pInit->bitsPerSample = pInit->firstFrameHeader.bitsPerSample; + pInit->maxBlockSizeInPCMFrames = 65535; /* <-- See notes here: https://xiph.org/flac/format.html#metadata_block_streaminfo */ + return DRFLAC_TRUE; + } + } else { + drflac_streaminfo streaminfo; + if (!drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + return DRFLAC_FALSE; + } + + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; /* Don't care about the min block size - only the max (used for determining the size of the memory allocation). */ + pInit->hasMetadataBlocks = !isLastBlock; + + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + + return DRFLAC_TRUE; + } +} + +#ifndef DR_FLAC_NO_OGG +#define DRFLAC_OGG_MAX_PAGE_SIZE 65307 +#define DRFLAC_OGG_CAPTURE_PATTERN_CRC32 1605413199 /* CRC-32 of "OggS". */ + +typedef enum +{ + drflac_ogg_recover_on_crc_mismatch, + drflac_ogg_fail_on_crc_mismatch +} drflac_ogg_crc_mismatch_recovery; + +#ifndef DR_FLAC_NO_CRC +static drflac_uint32 drflac__crc32_table[] = { + 0x00000000L, 0x04C11DB7L, 0x09823B6EL, 0x0D4326D9L, + 0x130476DCL, 0x17C56B6BL, 0x1A864DB2L, 0x1E475005L, + 0x2608EDB8L, 0x22C9F00FL, 0x2F8AD6D6L, 0x2B4BCB61L, + 0x350C9B64L, 0x31CD86D3L, 0x3C8EA00AL, 0x384FBDBDL, + 0x4C11DB70L, 0x48D0C6C7L, 0x4593E01EL, 0x4152FDA9L, + 0x5F15ADACL, 0x5BD4B01BL, 0x569796C2L, 0x52568B75L, + 0x6A1936C8L, 0x6ED82B7FL, 0x639B0DA6L, 0x675A1011L, + 0x791D4014L, 0x7DDC5DA3L, 0x709F7B7AL, 0x745E66CDL, + 0x9823B6E0L, 0x9CE2AB57L, 0x91A18D8EL, 0x95609039L, + 0x8B27C03CL, 0x8FE6DD8BL, 0x82A5FB52L, 0x8664E6E5L, + 0xBE2B5B58L, 0xBAEA46EFL, 0xB7A96036L, 0xB3687D81L, + 0xAD2F2D84L, 0xA9EE3033L, 0xA4AD16EAL, 0xA06C0B5DL, + 0xD4326D90L, 0xD0F37027L, 0xDDB056FEL, 0xD9714B49L, + 0xC7361B4CL, 0xC3F706FBL, 0xCEB42022L, 0xCA753D95L, + 0xF23A8028L, 0xF6FB9D9FL, 0xFBB8BB46L, 0xFF79A6F1L, + 0xE13EF6F4L, 0xE5FFEB43L, 0xE8BCCD9AL, 0xEC7DD02DL, + 0x34867077L, 0x30476DC0L, 0x3D044B19L, 0x39C556AEL, + 0x278206ABL, 0x23431B1CL, 0x2E003DC5L, 0x2AC12072L, + 0x128E9DCFL, 0x164F8078L, 0x1B0CA6A1L, 0x1FCDBB16L, + 0x018AEB13L, 0x054BF6A4L, 0x0808D07DL, 0x0CC9CDCAL, + 0x7897AB07L, 0x7C56B6B0L, 0x71159069L, 0x75D48DDEL, + 0x6B93DDDBL, 0x6F52C06CL, 0x6211E6B5L, 0x66D0FB02L, + 0x5E9F46BFL, 0x5A5E5B08L, 0x571D7DD1L, 0x53DC6066L, + 0x4D9B3063L, 0x495A2DD4L, 0x44190B0DL, 0x40D816BAL, + 0xACA5C697L, 0xA864DB20L, 0xA527FDF9L, 0xA1E6E04EL, + 0xBFA1B04BL, 0xBB60ADFCL, 0xB6238B25L, 0xB2E29692L, + 0x8AAD2B2FL, 0x8E6C3698L, 0x832F1041L, 0x87EE0DF6L, + 0x99A95DF3L, 0x9D684044L, 0x902B669DL, 0x94EA7B2AL, + 0xE0B41DE7L, 0xE4750050L, 0xE9362689L, 0xEDF73B3EL, + 0xF3B06B3BL, 0xF771768CL, 0xFA325055L, 0xFEF34DE2L, + 0xC6BCF05FL, 0xC27DEDE8L, 0xCF3ECB31L, 0xCBFFD686L, + 0xD5B88683L, 0xD1799B34L, 0xDC3ABDEDL, 0xD8FBA05AL, + 0x690CE0EEL, 0x6DCDFD59L, 0x608EDB80L, 0x644FC637L, + 0x7A089632L, 0x7EC98B85L, 0x738AAD5CL, 0x774BB0EBL, + 0x4F040D56L, 0x4BC510E1L, 0x46863638L, 0x42472B8FL, + 0x5C007B8AL, 0x58C1663DL, 0x558240E4L, 0x51435D53L, + 0x251D3B9EL, 0x21DC2629L, 0x2C9F00F0L, 0x285E1D47L, + 0x36194D42L, 0x32D850F5L, 0x3F9B762CL, 0x3B5A6B9BL, + 0x0315D626L, 0x07D4CB91L, 0x0A97ED48L, 0x0E56F0FFL, + 0x1011A0FAL, 0x14D0BD4DL, 0x19939B94L, 0x1D528623L, + 0xF12F560EL, 0xF5EE4BB9L, 0xF8AD6D60L, 0xFC6C70D7L, + 0xE22B20D2L, 0xE6EA3D65L, 0xEBA91BBCL, 0xEF68060BL, + 0xD727BBB6L, 0xD3E6A601L, 0xDEA580D8L, 0xDA649D6FL, + 0xC423CD6AL, 0xC0E2D0DDL, 0xCDA1F604L, 0xC960EBB3L, + 0xBD3E8D7EL, 0xB9FF90C9L, 0xB4BCB610L, 0xB07DABA7L, + 0xAE3AFBA2L, 0xAAFBE615L, 0xA7B8C0CCL, 0xA379DD7BL, + 0x9B3660C6L, 0x9FF77D71L, 0x92B45BA8L, 0x9675461FL, + 0x8832161AL, 0x8CF30BADL, 0x81B02D74L, 0x857130C3L, + 0x5D8A9099L, 0x594B8D2EL, 0x5408ABF7L, 0x50C9B640L, + 0x4E8EE645L, 0x4A4FFBF2L, 0x470CDD2BL, 0x43CDC09CL, + 0x7B827D21L, 0x7F436096L, 0x7200464FL, 0x76C15BF8L, + 0x68860BFDL, 0x6C47164AL, 0x61043093L, 0x65C52D24L, + 0x119B4BE9L, 0x155A565EL, 0x18197087L, 0x1CD86D30L, + 0x029F3D35L, 0x065E2082L, 0x0B1D065BL, 0x0FDC1BECL, + 0x3793A651L, 0x3352BBE6L, 0x3E119D3FL, 0x3AD08088L, + 0x2497D08DL, 0x2056CD3AL, 0x2D15EBE3L, 0x29D4F654L, + 0xC5A92679L, 0xC1683BCEL, 0xCC2B1D17L, 0xC8EA00A0L, + 0xD6AD50A5L, 0xD26C4D12L, 0xDF2F6BCBL, 0xDBEE767CL, + 0xE3A1CBC1L, 0xE760D676L, 0xEA23F0AFL, 0xEEE2ED18L, + 0xF0A5BD1DL, 0xF464A0AAL, 0xF9278673L, 0xFDE69BC4L, + 0x89B8FD09L, 0x8D79E0BEL, 0x803AC667L, 0x84FBDBD0L, + 0x9ABC8BD5L, 0x9E7D9662L, 0x933EB0BBL, 0x97FFAD0CL, + 0xAFB010B1L, 0xAB710D06L, 0xA6322BDFL, 0xA2F33668L, + 0xBCB4666DL, 0xB8757BDAL, 0xB5365D03L, 0xB1F740B4L +}; +#endif + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_byte(drflac_uint32 crc32, drflac_uint8 data) +{ +#ifndef DR_FLAC_NO_CRC + return (crc32 << 8) ^ drflac__crc32_table[(drflac_uint8)((crc32 >> 24) & 0xFF) ^ data]; +#else + (void)data; + return crc32; +#endif +} + +#if 0 +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint32(drflac_uint32 crc32, drflac_uint32 data) +{ + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 24) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 16) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 8) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 0) & 0xFF)); + return crc32; +} + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint64(drflac_uint32 crc32, drflac_uint64 data) +{ + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 32) & 0xFFFFFFFF)); + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 0) & 0xFFFFFFFF)); + return crc32; +} +#endif + +static DRFLAC_INLINE drflac_uint32 drflac_crc32_buffer(drflac_uint32 crc32, drflac_uint8* pData, drflac_uint32 dataSize) +{ + /* This can be optimized. */ + drflac_uint32 i; + for (i = 0; i < dataSize; ++i) { + crc32 = drflac_crc32_byte(crc32, pData[i]); + } + return crc32; +} + + +static DRFLAC_INLINE drflac_bool32 drflac_ogg__is_capture_pattern(drflac_uint8 pattern[4]) +{ + return pattern[0] == 'O' && pattern[1] == 'g' && pattern[2] == 'g' && pattern[3] == 'S'; +} + +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_header_size(drflac_ogg_page_header* pHeader) +{ + return 27 + pHeader->segmentCount; +} + +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_body_size(drflac_ogg_page_header* pHeader) +{ + drflac_uint32 pageBodySize = 0; + int i; + + for (i = 0; i < pHeader->segmentCount; ++i) { + pageBodySize += pHeader->segmentTable[i]; + } + + return pageBodySize; +} + +static drflac_result drflac_ogg__read_page_header_after_capture_pattern(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 data[23]; + drflac_uint32 i; + + DRFLAC_ASSERT(*pCRC32 == DRFLAC_OGG_CAPTURE_PATTERN_CRC32); + + if (onRead(pUserData, data, 23) != 23) { + return DRFLAC_AT_END; + } + *pBytesRead += 23; + + /* + It's not actually used, but set the capture pattern to 'OggS' for completeness. Not doing this will cause static analysers to complain about + us trying to access uninitialized data. We could alternatively just comment out this member of the drflac_ogg_page_header structure, but I + like to have it map to the structure of the underlying data. + */ + pHeader->capturePattern[0] = 'O'; + pHeader->capturePattern[1] = 'g'; + pHeader->capturePattern[2] = 'g'; + pHeader->capturePattern[3] = 'S'; + + pHeader->structureVersion = data[0]; + pHeader->headerType = data[1]; + DRFLAC_COPY_MEMORY(&pHeader->granulePosition, &data[ 2], 8); + DRFLAC_COPY_MEMORY(&pHeader->serialNumber, &data[10], 4); + DRFLAC_COPY_MEMORY(&pHeader->sequenceNumber, &data[14], 4); + DRFLAC_COPY_MEMORY(&pHeader->checksum, &data[18], 4); + pHeader->segmentCount = data[22]; + + /* Calculate the CRC. Note that for the calculation the checksum part of the page needs to be set to 0. */ + data[18] = 0; + data[19] = 0; + data[20] = 0; + data[21] = 0; + + for (i = 0; i < 23; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, data[i]); + } + + + if (onRead(pUserData, pHeader->segmentTable, pHeader->segmentCount) != pHeader->segmentCount) { + return DRFLAC_AT_END; + } + *pBytesRead += pHeader->segmentCount; + + for (i = 0; i < pHeader->segmentCount; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, pHeader->segmentTable[i]); + } + + return DRFLAC_SUCCESS; +} + +static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 id[4]; + + *pBytesRead = 0; + + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_AT_END; + } + *pBytesRead += 4; + + /* We need to read byte-by-byte until we find the OggS capture pattern. */ + for (;;) { + if (drflac_ogg__is_capture_pattern(id)) { + drflac_result result; + + *pCRC32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + + result = drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, pHeader, pBytesRead, pCRC32); + if (result == DRFLAC_SUCCESS) { + return DRFLAC_SUCCESS; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return result; + } + } + } else { + /* The first 4 bytes did not equal the capture pattern. Read the next byte and try again. */ + id[0] = id[1]; + id[1] = id[2]; + id[2] = id[3]; + if (onRead(pUserData, &id[3], 1) != 1) { + return DRFLAC_AT_END; + } + *pBytesRead += 1; + } + } +} + + +/* +The main part of the Ogg encapsulation is the conversion from the physical Ogg bitstream to the native FLAC bitstream. It works +in three general stages: Ogg Physical Bitstream -> Ogg/FLAC Logical Bitstream -> FLAC Native Bitstream. dr_flac is designed +in such a way that the core sections assume everything is delivered in native format. Therefore, for each encapsulation type +dr_flac is supporting there needs to be a layer sitting on top of the onRead and onSeek callbacks that ensures the bits read from +the physical Ogg bitstream are converted and delivered in native FLAC format. +*/ +typedef struct +{ + drflac_read_proc onRead; /* The original onRead callback from drflac_open() and family. */ + drflac_seek_proc onSeek; /* The original onSeek callback from drflac_open() and family. */ + drflac_tell_proc onTell; /* The original onTell callback from drflac_open() and family. */ + void* pUserData; /* The user data passed on onRead and onSeek. This is the user data that was passed on drflac_open() and family. */ + drflac_uint64 currentBytePos; /* The position of the byte we are sitting on in the physical byte stream. Used for efficient seeking. */ + drflac_uint64 firstBytePos; /* The position of the first byte in the physical bitstream. Points to the start of the "OggS" identifier of the FLAC bos page. */ + drflac_uint32 serialNumber; /* The serial number of the FLAC audio pages. This is determined by the initial header page that was read during initialization. */ + drflac_ogg_page_header bosPageHeader; /* Used for seeking. */ + drflac_ogg_page_header currentPageHeader; + drflac_uint32 bytesRemainingInPage; + drflac_uint32 pageDataSize; + drflac_uint8 pageData[DRFLAC_OGG_MAX_PAGE_SIZE]; +} drflac_oggbs; /* oggbs = Ogg Bitstream */ + +static size_t drflac_oggbs__read_physical(drflac_oggbs* oggbs, void* bufferOut, size_t bytesToRead) +{ + size_t bytesActuallyRead = oggbs->onRead(oggbs->pUserData, bufferOut, bytesToRead); + oggbs->currentBytePos += bytesActuallyRead; + + return bytesActuallyRead; +} + +static drflac_bool32 drflac_oggbs__seek_physical(drflac_oggbs* oggbs, drflac_uint64 offset, drflac_seek_origin origin) +{ + if (origin == DRFLAC_SEEK_SET) { + if (offset <= 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + + return DRFLAC_TRUE; + } else { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + + return drflac_oggbs__seek_physical(oggbs, offset - 0x7FFFFFFF, DRFLAC_SEEK_CUR); + } + } else { + while (offset > 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += 0x7FFFFFFF; + offset -= 0x7FFFFFFF; + } + + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, DRFLAC_SEEK_CUR)) { /* <-- Safe cast thanks to the loop above. */ + return DRFLAC_FALSE; + } + oggbs->currentBytePos += offset; + + return DRFLAC_TRUE; + } +} + +static drflac_bool32 drflac_oggbs__goto_next_page(drflac_oggbs* oggbs, drflac_ogg_crc_mismatch_recovery recoveryMethod) +{ + drflac_ogg_page_header header; + for (;;) { + drflac_uint32 crc32 = 0; + drflac_uint32 bytesRead; + drflac_uint32 pageBodySize; +#ifndef DR_FLAC_NO_CRC + drflac_uint32 actualCRC32; +#endif + + if (drflac_ogg__read_page_header(oggbs->onRead, oggbs->pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += bytesRead; + + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize > DRFLAC_OGG_MAX_PAGE_SIZE) { + continue; /* Invalid page size. Assume it's corrupted and just move to the next page. */ + } + + if (header.serialNumber != oggbs->serialNumber) { + /* It's not a FLAC page. Skip it. */ + if (pageBodySize > 0 && !drflac_oggbs__seek_physical(oggbs, pageBodySize, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + continue; + } + + + /* We need to read the entire page and then do a CRC check on it. If there's a CRC mismatch we need to skip this page. */ + if (drflac_oggbs__read_physical(oggbs, oggbs->pageData, pageBodySize) != pageBodySize) { + return DRFLAC_FALSE; + } + oggbs->pageDataSize = pageBodySize; + +#ifndef DR_FLAC_NO_CRC + actualCRC32 = drflac_crc32_buffer(crc32, oggbs->pageData, oggbs->pageDataSize); + if (actualCRC32 != header.checksum) { + if (recoveryMethod == drflac_ogg_recover_on_crc_mismatch) { + continue; /* CRC mismatch. Skip this page. */ + } else { + /* + Even though we are failing on a CRC mismatch, we still want our stream to be in a good state. Therefore we + go to the next valid page to ensure we're in a good state, but return false to let the caller know that the + seek did not fully complete. + */ + drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch); + return DRFLAC_FALSE; + } + } +#else + (void)recoveryMethod; /* <-- Silence a warning. */ +#endif + + oggbs->currentPageHeader = header; + oggbs->bytesRemainingInPage = pageBodySize; + return DRFLAC_TRUE; + } +} + +/* Function below is unused at the moment, but I might be re-adding it later. */ +#if 0 +static drflac_uint8 drflac_oggbs__get_current_segment_index(drflac_oggbs* oggbs, drflac_uint8* pBytesRemainingInSeg) +{ + drflac_uint32 bytesConsumedInPage = drflac_ogg__get_page_body_size(&oggbs->currentPageHeader) - oggbs->bytesRemainingInPage; + drflac_uint8 iSeg = 0; + drflac_uint32 iByte = 0; + while (iByte < bytesConsumedInPage) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (iByte + segmentSize > bytesConsumedInPage) { + break; + } else { + iSeg += 1; + iByte += segmentSize; + } + } + + *pBytesRemainingInSeg = oggbs->currentPageHeader.segmentTable[iSeg] - (drflac_uint8)(bytesConsumedInPage - iByte); + return iSeg; +} + +static drflac_bool32 drflac_oggbs__seek_to_next_packet(drflac_oggbs* oggbs) +{ + /* The current packet ends when we get to the segment with a lacing value of < 255 which is not at the end of a page. */ + for (;;) { + drflac_bool32 atEndOfPage = DRFLAC_FALSE; + + drflac_uint8 bytesRemainingInSeg; + drflac_uint8 iFirstSeg = drflac_oggbs__get_current_segment_index(oggbs, &bytesRemainingInSeg); + + drflac_uint32 bytesToEndOfPacketOrPage = bytesRemainingInSeg; + for (drflac_uint8 iSeg = iFirstSeg; iSeg < oggbs->currentPageHeader.segmentCount; ++iSeg) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (segmentSize < 255) { + if (iSeg == oggbs->currentPageHeader.segmentCount-1) { + atEndOfPage = DRFLAC_TRUE; + } + + break; + } + + bytesToEndOfPacketOrPage += segmentSize; + } + + /* + At this point we will have found either the packet or the end of the page. If were at the end of the page we'll + want to load the next page and keep searching for the end of the packet. + */ + drflac_oggbs__seek_physical(oggbs, bytesToEndOfPacketOrPage, DRFLAC_SEEK_CUR); + oggbs->bytesRemainingInPage -= bytesToEndOfPacketOrPage; + + if (atEndOfPage) { + /* + We're potentially at the next packet, but we need to check the next page first to be sure because the packet may + straddle pages. + */ + if (!drflac_oggbs__goto_next_page(oggbs)) { + return DRFLAC_FALSE; + } + + /* If it's a fresh packet it most likely means we're at the next packet. */ + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { + return DRFLAC_TRUE; + } + } else { + /* We're at the next packet. */ + return DRFLAC_TRUE; + } + } +} + +static drflac_bool32 drflac_oggbs__seek_to_next_frame(drflac_oggbs* oggbs) +{ + /* The bitstream should be sitting on the first byte just after the header of the frame. */ + + /* What we're actually doing here is seeking to the start of the next packet. */ + return drflac_oggbs__seek_to_next_packet(oggbs); +} +#endif + +static size_t drflac__on_read_ogg(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + drflac_uint8* pRunningBufferOut = (drflac_uint8*)bufferOut; + size_t bytesRead = 0; + + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(pRunningBufferOut != NULL); + + /* Reading is done page-by-page. If we've run out of bytes in the page we need to move to the next one. */ + while (bytesRead < bytesToRead) { + size_t bytesRemainingToRead = bytesToRead - bytesRead; + + if (oggbs->bytesRemainingInPage >= bytesRemainingToRead) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), bytesRemainingToRead); + bytesRead += bytesRemainingToRead; + oggbs->bytesRemainingInPage -= (drflac_uint32)bytesRemainingToRead; + break; + } + + /* If we get here it means some of the requested data is contained in the next pages. */ + if (oggbs->bytesRemainingInPage > 0) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), oggbs->bytesRemainingInPage); + bytesRead += oggbs->bytesRemainingInPage; + pRunningBufferOut += oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + + DRFLAC_ASSERT(bytesRemainingToRead > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + break; /* Failed to go to the next page. Might have simply hit the end of the stream. */ + } + } + + return bytesRead; +} + +static drflac_bool32 drflac__on_seek_ogg(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + int bytesSeeked = 0; + + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(offset >= 0); /* <-- Never seek backwards. */ + + /* Seeking is always forward which makes things a lot simpler. */ + if (origin == DRFLAC_SEEK_SET) { + if (!drflac_oggbs__seek_physical(oggbs, (int)oggbs->firstBytePos, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + + return drflac__on_seek_ogg(pUserData, offset, DRFLAC_SEEK_CUR); + } else if (origin == DRFLAC_SEEK_CUR) { + while (bytesSeeked < offset) { + int bytesRemainingToSeek = offset - bytesSeeked; + DRFLAC_ASSERT(bytesRemainingToSeek >= 0); + + if (oggbs->bytesRemainingInPage >= (size_t)bytesRemainingToSeek) { + bytesSeeked += bytesRemainingToSeek; + (void)bytesSeeked; /* <-- Silence a dead store warning emitted by Clang Static Analyzer. */ + oggbs->bytesRemainingInPage -= bytesRemainingToSeek; + break; + } + + /* If we get here it means some of the requested data is contained in the next pages. */ + if (oggbs->bytesRemainingInPage > 0) { + bytesSeeked += (int)oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + + DRFLAC_ASSERT(bytesRemainingToSeek > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + /* Failed to go to the next page. We either hit the end of the stream or had a CRC mismatch. */ + return DRFLAC_FALSE; + } + } + } else if (origin == DRFLAC_SEEK_END) { + /* Seeking to the end is not supported. */ + return DRFLAC_FALSE; + } + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__on_tell_ogg(void* pUserData, drflac_int64* pCursor) +{ + /* + Not implemented for Ogg containers because we don't currently track the byte position of the logical bitstream. To support this, we'll need + to track the position in drflac__on_read_ogg and drflac__on_seek_ogg. + */ + (void)pUserData; + (void)pCursor; + return DRFLAC_FALSE; +} + + +static drflac_bool32 drflac_ogg__seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + drflac_uint64 originalBytePos; + drflac_uint64 runningGranulePosition; + drflac_uint64 runningFrameBytePos; + drflac_uint64 runningPCMFrameCount; + + DRFLAC_ASSERT(oggbs != NULL); + + originalBytePos = oggbs->currentBytePos; /* For recovery. Points to the OggS identifier. */ + + /* First seek to the first frame. */ + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes)) { + return DRFLAC_FALSE; + } + oggbs->bytesRemainingInPage = 0; + + runningGranulePosition = 0; + for (;;) { + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + drflac_oggbs__seek_physical(oggbs, originalBytePos, DRFLAC_SEEK_SET); + return DRFLAC_FALSE; /* Never did find that sample... */ + } + + runningFrameBytePos = oggbs->currentBytePos - drflac_ogg__get_page_header_size(&oggbs->currentPageHeader) - oggbs->pageDataSize; + if (oggbs->currentPageHeader.granulePosition >= pcmFrameIndex) { + break; /* The sample is somewhere in the previous page. */ + } + + /* + At this point we know the sample is not in the previous page. It could possibly be in this page. For simplicity we + disregard any pages that do not begin a fresh packet. + */ + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { /* <-- Is it a fresh page? */ + if (oggbs->currentPageHeader.segmentTable[0] >= 2) { + drflac_uint8 firstBytesInPage[2]; + firstBytesInPage[0] = oggbs->pageData[0]; + firstBytesInPage[1] = oggbs->pageData[1]; + + if ((firstBytesInPage[0] == 0xFF) && (firstBytesInPage[1] & 0xFC) == 0xF8) { /* <-- Does the page begin with a frame's sync code? */ + runningGranulePosition = oggbs->currentPageHeader.granulePosition; + } + + continue; + } + } + } + + /* + We found the page that that is closest to the sample, so now we need to find it. The first thing to do is seek to the + start of that page. In the loop above we checked that it was a fresh page which means this page is also the start of + a new frame. This property means that after we've seeked to the page we can immediately start looping over frames until + we find the one containing the target sample. + */ + if (!drflac_oggbs__seek_physical(oggbs, runningFrameBytePos, DRFLAC_SEEK_SET)) { + return DRFLAC_FALSE; + } + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + + /* + At this point we'll be sitting on the first byte of the frame header of the first frame in the page. We just keep + looping over these frames until we find the one containing the sample we're after. + */ + runningPCMFrameCount = runningGranulePosition; + for (;;) { + /* + There are two ways to find the sample and seek past irrelevant frames: + 1) Use the native FLAC decoder. + 2) Use Ogg's framing system. + + Both of these options have their own pros and cons. Using the native FLAC decoder is slower because it needs to + do a full decode of the frame. Using Ogg's framing system is faster, but more complicated and involves some code + duplication for the decoding of frame headers. + + Another thing to consider is that using the Ogg framing system will perform direct seeking of the physical Ogg + bitstream. This is important to consider because it means we cannot read data from the drflac_bs object using the + standard drflac__*() APIs because that will read in extra data for its own internal caching which in turn breaks + the positioning of the read pointer of the physical Ogg bitstream. Therefore, anything that would normally be read + using the native FLAC decoding APIs, such as drflac__read_next_flac_frame_header(), need to be re-implemented so as to + avoid the use of the drflac_bs object. + + Considering these issues, I have decided to use the slower native FLAC decoding method for the following reasons: + 1) Seeking is already partially accelerated using Ogg's paging system in the code block above. + 2) Seeking in an Ogg encapsulated FLAC stream is probably quite uncommon. + 3) Simplicity. + */ + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + drflac_uint64 pcmFrameCountInThisFrame; + + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + + pcmFrameCountInThisFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + + /* If we are seeking to the end of the file and we've just hit it, we're done. */ + if (pcmFrameIndex == pFlac->totalPCMFrameCount && (runningPCMFrameCount + pcmFrameCountInThisFrame) == pFlac->totalPCMFrameCount) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + pFlac->currentPCMFrame = pcmFrameIndex; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + return DRFLAC_TRUE; + } else { + return DRFLAC_FALSE; + } + } + + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFrame)) { + /* + The sample should be in this FLAC frame. We need to fully decode it, however if it's an invalid frame (a CRC mismatch), we need to pretend + it never existed and keep iterating. + */ + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + /* The frame is valid. We just need to skip over some samples to ensure it's sample-exact. */ + drflac_uint64 pcmFramesToDecode = (size_t)(pcmFrameIndex - runningPCMFrameCount); /* <-- Safe cast because the maximum number of samples in a frame is 65535. */ + if (pcmFramesToDecode == 0) { + return DRFLAC_TRUE; + } + + pFlac->currentPCMFrame = runningPCMFrameCount; + + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; /* <-- If this fails, something bad has happened (it should never fail). */ + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } else { + /* + It's not in this frame. We need to seek past the frame, but check if there was a CRC mismatch. If so, we pretend this + frame never existed and leave the running sample count untouched. + */ + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; /* CRC mismatch. Pretend this frame never existed. */ + } else { + return DRFLAC_FALSE; + } + } + } + } +} + + + +static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + drflac_ogg_page_header header; + drflac_uint32 crc32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + drflac_uint32 bytesRead = 0; + + /* Pre Condition: The bit stream should be sitting just past the 4-byte OggS capture pattern. */ + (void)relaxed; + + pInit->container = drflac_container_ogg; + pInit->oggFirstBytePos = 0; + + /* + We'll get here if the first 4 bytes of the stream were the OggS capture pattern, however it doesn't necessarily mean the + stream includes FLAC encoded audio. To check for this we need to scan the beginning-of-stream page markers and check if + any match the FLAC specification. Important to keep in mind that the stream may be multiplexed. + */ + if (drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + + for (;;) { + int pageBodySize; + + /* Break if we're past the beginning of stream page. */ + if ((header.headerType & 0x02) == 0) { + return DRFLAC_FALSE; + } + + /* Check if it's a FLAC header. */ + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize == 51) { /* 51 = the lacing value of the FLAC header packet. */ + /* It could be a FLAC page... */ + drflac_uint32 bytesRemainingInPage = pageBodySize; + drflac_uint8 packetType; + + if (onRead(pUserData, &packetType, 1) != 1) { + return DRFLAC_FALSE; + } + + bytesRemainingInPage -= 1; + if (packetType == 0x7F) { + /* Increasingly more likely to be a FLAC page... */ + drflac_uint8 sig[4]; + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + + bytesRemainingInPage -= 4; + if (sig[0] == 'F' && sig[1] == 'L' && sig[2] == 'A' && sig[3] == 'C') { + /* Almost certainly a FLAC page... */ + drflac_uint8 mappingVersion[2]; + if (onRead(pUserData, mappingVersion, 2) != 2) { + return DRFLAC_FALSE; + } + + if (mappingVersion[0] != 1) { + return DRFLAC_FALSE; /* Only supporting version 1.x of the Ogg mapping. */ + } + + /* + The next 2 bytes are the non-audio packets, not including this one. We don't care about this because we're going to + be handling it in a generic way based on the serial number and packet types. + */ + if (!onSeek(pUserData, 2, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + + /* Expecting the native FLAC signature "fLaC". */ + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + + if (sig[0] == 'f' && sig[1] == 'L' && sig[2] == 'a' && sig[3] == 'C') { + /* The remaining data in the page should be the STREAMINFO block. */ + drflac_streaminfo streaminfo; + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + return DRFLAC_FALSE; /* Invalid block type. First block must be the STREAMINFO block. */ + } + + if (drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + /* Success! */ + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; + pInit->hasMetadataBlocks = !isLastBlock; + + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + + pInit->runningFilePos += pageBodySize; + pInit->oggFirstBytePos = pInit->runningFilePos - 79; /* Subtracting 79 will place us right on top of the "OggS" identifier of the FLAC bos page. */ + pInit->oggSerial = header.serialNumber; + pInit->oggBosHeader = header; + break; + } else { + /* Failed to read STREAMINFO block. Aww, so close... */ + return DRFLAC_FALSE; + } + } else { + /* Invalid file. */ + return DRFLAC_FALSE; + } + } else { + /* Not a FLAC header. Skip it. */ + if (!onSeek(pUserData, bytesRemainingInPage, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + } + } else { + /* Not a FLAC header. Seek past the entire page and move on to the next. */ + if (!onSeek(pUserData, bytesRemainingInPage, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + } + } else { + if (!onSeek(pUserData, pageBodySize, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; + } + } + + pInit->runningFilePos += pageBodySize; + + + /* Read the header of the next page. */ + if (drflac_ogg__read_page_header(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + } + + /* + If we get here it means we found a FLAC audio stream. We should be sitting on the first byte of the header of the next page. The next + packets in the FLAC logical stream contain the metadata. The only thing left to do in the initialization phase for Ogg is to create the + Ogg bistream object. + */ + pInit->hasMetadataBlocks = DRFLAC_TRUE; /* <-- Always have at least VORBIS_COMMENT metadata block. */ + return DRFLAC_TRUE; +} +#endif + +static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD) +{ + drflac_bool32 relaxed; + drflac_uint8 id[4]; + + if (pInit == NULL || onRead == NULL || onSeek == NULL) { /* <-- onTell is optional. */ + return DRFLAC_FALSE; + } + + DRFLAC_ZERO_MEMORY(pInit, sizeof(*pInit)); + pInit->onRead = onRead; + pInit->onSeek = onSeek; + pInit->onTell = onTell; + pInit->onMeta = onMeta; + pInit->container = container; + pInit->pUserData = pUserData; + pInit->pUserDataMD = pUserDataMD; + + pInit->bs.onRead = onRead; + pInit->bs.onSeek = onSeek; + pInit->bs.onTell = onTell; + pInit->bs.pUserData = pUserData; + drflac__reset_cache(&pInit->bs); + + + /* If the container is explicitly defined then we can try opening in relaxed mode. */ + relaxed = container != drflac_container_unknown; + + /* Skip over any ID3 tags. */ + for (;;) { + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_FALSE; /* Ran out of data. */ + } + pInit->runningFilePos += 4; + + if (id[0] == 'I' && id[1] == 'D' && id[2] == '3') { + drflac_uint8 header[6]; + drflac_uint8 flags; + drflac_uint32 headerSize; + + if (onRead(pUserData, header, 6) != 6) { + return DRFLAC_FALSE; /* Ran out of data. */ + } + pInit->runningFilePos += 6; + + flags = header[1]; + + DRFLAC_COPY_MEMORY(&headerSize, header+2, 4); + headerSize = drflac__unsynchsafe_32(drflac__be2host_32(headerSize)); + if (flags & 0x10) { + headerSize += 10; + } + + if (!onSeek(pUserData, headerSize, DRFLAC_SEEK_CUR)) { + return DRFLAC_FALSE; /* Failed to seek past the tag. */ + } + pInit->runningFilePos += headerSize; + } else { + break; + } + } + + if (id[0] == 'f' && id[1] == 'L' && id[2] == 'a' && id[3] == 'C') { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (id[0] == 'O' && id[1] == 'g' && id[2] == 'g' && id[3] == 'S') { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + + /* If we get here it means we likely don't have a header. Try opening in relaxed mode, if applicable. */ + if (relaxed) { + if (container == drflac_container_native) { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (container == drflac_container_ogg) { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + } + + /* Unsupported container. */ + return DRFLAC_FALSE; +} + +static void drflac__init_from_info(drflac* pFlac, const drflac_init_info* pInit) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pInit != NULL); + + DRFLAC_ZERO_MEMORY(pFlac, sizeof(*pFlac)); + pFlac->bs = pInit->bs; + pFlac->onMeta = pInit->onMeta; + pFlac->pUserDataMD = pInit->pUserDataMD; + pFlac->maxBlockSizeInPCMFrames = pInit->maxBlockSizeInPCMFrames; + pFlac->sampleRate = pInit->sampleRate; + pFlac->channels = (drflac_uint8)pInit->channels; + pFlac->bitsPerSample = (drflac_uint8)pInit->bitsPerSample; + pFlac->totalPCMFrameCount = pInit->totalPCMFrameCount; + pFlac->container = pInit->container; +} + + +static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac_init_info init; + drflac_uint32 allocationSize; + drflac_uint32 wholeSIMDVectorCountPerChannel; + drflac_uint32 decodedSamplesAllocationSize; +#ifndef DR_FLAC_NO_OGG + drflac_oggbs* pOggbs = NULL; +#endif + drflac_uint64 firstFramePos; + drflac_uint64 seektablePos; + drflac_uint32 seekpointCount; + drflac_allocation_callbacks allocationCallbacks; + drflac* pFlac; + + /* CPU support first. */ + drflac__init_cpu_caps(); + + if (!drflac__init_private(&init, onRead, onSeek, onTell, onMeta, container, pUserData, pUserDataMD)) { + return NULL; + } + + if (pAllocationCallbacks != NULL) { + allocationCallbacks = *pAllocationCallbacks; + if (allocationCallbacks.onFree == NULL || (allocationCallbacks.onMalloc == NULL && allocationCallbacks.onRealloc == NULL)) { + return NULL; /* Invalid allocation callbacks. */ + } + } else { + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drflac__malloc_default; + allocationCallbacks.onRealloc = drflac__realloc_default; + allocationCallbacks.onFree = drflac__free_default; + } + + + /* + The size of the allocation for the drflac object needs to be large enough to fit the following: + 1) The main members of the drflac structure + 2) A block of memory large enough to store the decoded samples of the largest frame in the stream + 3) If the container is Ogg, a drflac_oggbs object + + The complicated part of the allocation is making sure there's enough room the decoded samples, taking into consideration + the different SIMD instruction sets. + */ + allocationSize = sizeof(drflac); + + /* + The allocation size for decoded frames depends on the number of 32-bit integers that fit inside the largest SIMD vector + we are supporting. + */ + if ((init.maxBlockSizeInPCMFrames % (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) == 0) { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))); + } else { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) + 1; + } + + decodedSamplesAllocationSize = wholeSIMDVectorCountPerChannel * DRFLAC_MAX_SIMD_VECTOR_SIZE * init.channels; + + allocationSize += decodedSamplesAllocationSize; + allocationSize += DRFLAC_MAX_SIMD_VECTOR_SIZE; /* Allocate extra bytes to ensure we have enough for alignment. */ + +#ifndef DR_FLAC_NO_OGG + /* There's additional data required for Ogg streams. */ + if (init.container == drflac_container_ogg) { + allocationSize += sizeof(drflac_oggbs); + + pOggbs = (drflac_oggbs*)drflac__malloc_from_callbacks(sizeof(*pOggbs), &allocationCallbacks); + if (pOggbs == NULL) { + return NULL; /*DRFLAC_OUT_OF_MEMORY;*/ + } + + DRFLAC_ZERO_MEMORY(pOggbs, sizeof(*pOggbs)); + pOggbs->onRead = onRead; + pOggbs->onSeek = onSeek; + pOggbs->onTell = onTell; + pOggbs->pUserData = pUserData; + pOggbs->currentBytePos = init.oggFirstBytePos; + pOggbs->firstBytePos = init.oggFirstBytePos; + pOggbs->serialNumber = init.oggSerial; + pOggbs->bosPageHeader = init.oggBosHeader; + pOggbs->bytesRemainingInPage = 0; + } +#endif + + /* + This part is a bit awkward. We need to load the seektable so that it can be referenced in-memory, but I want the drflac object to + consist of only a single heap allocation. To this, the size of the seek table needs to be known, which we determine when reading + and decoding the metadata. + */ + firstFramePos = 42; /* <-- We know we are at byte 42 at this point. */ + seektablePos = 0; + seekpointCount = 0; + if (init.hasMetadataBlocks) { + drflac_read_proc onReadOverride = onRead; + drflac_seek_proc onSeekOverride = onSeek; + drflac_tell_proc onTellOverride = onTell; + void* pUserDataOverride = pUserData; + +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + onReadOverride = drflac__on_read_ogg; + onSeekOverride = drflac__on_seek_ogg; + onTellOverride = drflac__on_tell_ogg; + pUserDataOverride = (void*)pOggbs; + } +#endif + + if (!drflac__read_and_decode_metadata(onReadOverride, onSeekOverride, onTellOverride, onMeta, pUserDataOverride, pUserDataMD, &firstFramePos, &seektablePos, &seekpointCount, &allocationCallbacks)) { + #ifndef DR_FLAC_NO_OGG + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif + return NULL; + } + + allocationSize += seekpointCount * sizeof(drflac_seekpoint); + } + + + pFlac = (drflac*)drflac__malloc_from_callbacks(allocationSize, &allocationCallbacks); + if (pFlac == NULL) { + #ifndef DR_FLAC_NO_OGG + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif + return NULL; + } + + drflac__init_from_info(pFlac, &init); + pFlac->allocationCallbacks = allocationCallbacks; + pFlac->pDecodedSamples = (drflac_int32*)drflac_align((size_t)pFlac->pExtraData, DRFLAC_MAX_SIMD_VECTOR_SIZE); + +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + drflac_oggbs* pInternalOggbs = (drflac_oggbs*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize + (seekpointCount * sizeof(drflac_seekpoint))); + DRFLAC_COPY_MEMORY(pInternalOggbs, pOggbs, sizeof(*pOggbs)); + + /* At this point the pOggbs object has been handed over to pInternalOggbs and can be freed. */ + drflac__free_from_callbacks(pOggbs, &allocationCallbacks); + pOggbs = NULL; + + /* The Ogg bistream needs to be layered on top of the original bitstream. */ + pFlac->bs.onRead = drflac__on_read_ogg; + pFlac->bs.onSeek = drflac__on_seek_ogg; + pFlac->bs.onTell = drflac__on_tell_ogg; + pFlac->bs.pUserData = (void*)pInternalOggbs; + pFlac->_oggbs = (void*)pInternalOggbs; + } +#endif + + pFlac->firstFLACFramePosInBytes = firstFramePos; + + /* NOTE: Seektables are not currently compatible with Ogg encapsulation (Ogg has its own accelerated seeking system). I may change this later, so I'm leaving this here for now. */ +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) + { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + else +#endif + { + /* If we have a seektable we need to load it now, making sure we move back to where we were previously. */ + if (seektablePos != 0) { + pFlac->seekpointCount = seekpointCount; + pFlac->pSeekpoints = (drflac_seekpoint*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize); + + DRFLAC_ASSERT(pFlac->bs.onSeek != NULL); + DRFLAC_ASSERT(pFlac->bs.onRead != NULL); + + /* Seek to the seektable, then just read directly into our seektable buffer. */ + if (pFlac->bs.onSeek(pFlac->bs.pUserData, (int)seektablePos, DRFLAC_SEEK_SET)) { + drflac_uint32 iSeekpoint; + + for (iSeekpoint = 0; iSeekpoint < seekpointCount; iSeekpoint += 1) { + if (pFlac->bs.onRead(pFlac->bs.pUserData, pFlac->pSeekpoints + iSeekpoint, DRFLAC_SEEKPOINT_SIZE_IN_BYTES) == DRFLAC_SEEKPOINT_SIZE_IN_BYTES) { + /* Endian swap. */ + pFlac->pSeekpoints[iSeekpoint].firstPCMFrame = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].firstPCMFrame); + pFlac->pSeekpoints[iSeekpoint].flacFrameOffset = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].flacFrameOffset); + pFlac->pSeekpoints[iSeekpoint].pcmFrameCount = drflac__be2host_16(pFlac->pSeekpoints[iSeekpoint].pcmFrameCount); + } else { + /* Failed to read the seektable. Pretend we don't have one. */ + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + break; + } + } + + /* We need to seek back to where we were. If this fails it's a critical error. */ + if (!pFlac->bs.onSeek(pFlac->bs.pUserData, (int)pFlac->firstFLACFramePosInBytes, DRFLAC_SEEK_SET)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } else { + /* Failed to seek to the seektable. Ominous sign, but for now we can just pretend we don't have one. */ + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + } + } + + + /* + If we get here, but don't have a STREAMINFO block, it means we've opened the stream in relaxed mode and need to decode + the first frame. + */ + if (!init.hasStreamInfoBlock) { + pFlac->currentFLACFrame.header = init.firstFrameHeader; + for (;;) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + break; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + continue; + } else { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } + } + } + + return pFlac; +} + + + +#ifndef DR_FLAC_NO_STDIO +#include +#ifndef DR_FLAC_NO_WCHAR +#include /* For wcslen(), wcsrtombs() */ +#endif + +/* Errno */ +/* drflac_result_from_errno() is only used for fopen() and wfopen() so putting it inside DR_WAV_NO_STDIO for now. If something else needs this later we can move it out. */ +#include +static drflac_result drflac_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRFLAC_SUCCESS; + #ifdef EPERM + case EPERM: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRFLAC_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRFLAC_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRFLAC_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRFLAC_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRFLAC_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRFLAC_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRFLAC_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRFLAC_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRFLAC_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRFLAC_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRFLAC_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRFLAC_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRFLAC_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRFLAC_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRFLAC_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRFLAC_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRFLAC_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRFLAC_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRFLAC_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRFLAC_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRFLAC_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRFLAC_NOT_IMPLEMENTED; + #endif + #if defined(ENOTEMPTY) && ENOTEMPTY != EEXIST /* In AIX, ENOTEMPTY and EEXIST use the same value. */ + case ENOTEMPTY: return DRFLAC_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRFLAC_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRFLAC_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRFLAC_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRFLAC_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRFLAC_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRFLAC_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRFLAC_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRFLAC_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRFLAC_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRFLAC_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRFLAC_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRFLAC_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRFLAC_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRFLAC_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRFLAC_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRFLAC_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRFLAC_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRFLAC_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRFLAC_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRFLAC_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRFLAC_ERROR; + #endif + #ifdef EADV + case EADV: return DRFLAC_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRFLAC_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRFLAC_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRFLAC_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRFLAC_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRFLAC_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRFLAC_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRFLAC_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRFLAC_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRFLAC_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRFLAC_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRFLAC_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRFLAC_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRFLAC_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRFLAC_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRFLAC_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRFLAC_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRFLAC_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRFLAC_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRFLAC_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRFLAC_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRFLAC_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRFLAC_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRFLAC_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRFLAC_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRFLAC_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRFLAC_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRFLAC_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRFLAC_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRFLAC_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRFLAC_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRFLAC_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRFLAC_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRFLAC_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRFLAC_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRFLAC_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRFLAC_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRFLAC_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRFLAC_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRFLAC_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRFLAC_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRFLAC_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRFLAC_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRFLAC_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRFLAC_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRFLAC_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRFLAC_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRFLAC_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRFLAC_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRFLAC_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRFLAC_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRFLAC_ERROR; + #endif + default: return DRFLAC_ERROR; + } +} +/* End Errno */ + +/* fopen */ +static drflac_result drflac_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drflac_result result = drflac_result_from_errno(errno); + if (result == DRFLAC_SUCCESS) { + result = DRFLAC_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return DRFLAC_SUCCESS; +} + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRFLAC_HAS_WFOPEN + #endif +#endif + +#ifndef DR_FLAC_NO_WCHAR +static drflac_result drflac_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } + +#if defined(DRFLAC_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drflac_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because + fopen() is locale specific. The only real way I can think of to do this is with wcsrtombs(). Note + that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler + error I'll look into improving compatibility. + */ + + /* + Some compilers don't support wchar_t or wcsrtombs() which we're using below. In this case we just + need to abort with an error. If you encounter a compiler lacking such support, add it to this list + and submit a bug report and it'll be added to the library upstream. + */ + #if defined(__DJGPP__) + { + /* Nothing to do here. This will fall through to the error check below. */ + } + #else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + DRFLAC_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drflac_result_from_errno(errno); + } + + pFilePathMB = (char*)drflac__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRFLAC_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + DRFLAC_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + drflac__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + #endif + + if (*ppFile == NULL) { + return DRFLAC_ERROR; + } +#endif + + return DRFLAC_SUCCESS; +} +#endif +/* End fopen */ + +static size_t drflac__on_read_stdio(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + return fread(bufferOut, 1, bytesToRead, (FILE*)pUserData); +} + +static drflac_bool32 drflac__on_seek_stdio(void* pUserData, int offset, drflac_seek_origin origin) +{ + int whence = SEEK_SET; + if (origin == DRFLAC_SEEK_CUR) { + whence = SEEK_CUR; + } else if (origin == DRFLAC_SEEK_END) { + whence = SEEK_END; + } + + return fseek((FILE*)pUserData, offset, whence) == 0; +} + +static drflac_bool32 drflac__on_tell_stdio(void* pUserData, drflac_int64* pCursor) +{ + FILE* pFileStdio = (FILE*)pUserData; + drflac_int64 result; + + /* These were all validated at a higher level. */ + DRFLAC_ASSERT(pFileStdio != NULL); + DRFLAC_ASSERT(pCursor != NULL); + +#if defined(_WIN32) && !defined(NXDK) + #if defined(_MSC_VER) && _MSC_VER > 1200 + result = _ftelli64(pFileStdio); + #else + result = ftell(pFileStdio); + #endif +#else + result = ftell(pFileStdio); +#endif + + *pCursor = result; + + return DRFLAC_TRUE; +} + + + +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, drflac__on_tell_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + + return pFlac; +} + +#ifndef DR_FLAC_NO_WCHAR +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, drflac__on_tell_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + + return pFlac; +} +#endif + +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, drflac__on_tell_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + + return pFlac; +} + +#ifndef DR_FLAC_NO_WCHAR +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, drflac__on_tell_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + + return pFlac; +} +#endif +#endif /* DR_FLAC_NO_STDIO */ + +static size_t drflac__on_read_memory(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + size_t bytesRemaining; + + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(memoryStream->dataSize >= memoryStream->currentReadPos); + + bytesRemaining = memoryStream->dataSize - memoryStream->currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + DRFLAC_COPY_MEMORY(bufferOut, memoryStream->data + memoryStream->currentReadPos, bytesToRead); + memoryStream->currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +static drflac_bool32 drflac__on_seek_memory(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + drflac_int64 newCursor; + + DRFLAC_ASSERT(memoryStream != NULL); + + if (origin == DRFLAC_SEEK_SET) { + newCursor = 0; + } else if (origin == DRFLAC_SEEK_CUR) { + newCursor = (drflac_int64)memoryStream->currentReadPos; + } else if (origin == DRFLAC_SEEK_END) { + newCursor = (drflac_int64)memoryStream->dataSize; + } else { + DRFLAC_ASSERT(!"Invalid seek origin"); + return DRFLAC_FALSE; + } + + newCursor += offset; + + if (newCursor < 0) { + return DRFLAC_FALSE; /* Trying to seek prior to the start of the buffer. */ + } + if ((size_t)newCursor > memoryStream->dataSize) { + return DRFLAC_FALSE; /* Trying to seek beyond the end of the buffer. */ + } + + memoryStream->currentReadPos = (size_t)newCursor; + + return DRFLAC_TRUE; +} + +static drflac_bool32 drflac__on_tell_memory(void* pUserData, drflac_int64* pCursor) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(pCursor != NULL); + + *pCursor = (drflac_int64)memoryStream->currentReadPos; + return DRFLAC_TRUE; +} + +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open(drflac__on_read_memory, drflac__on_seek_memory, drflac__on_tell_memory, &memoryStream, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + pFlac->memoryStream = memoryStream; + + /* This is an awful hack... */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + + return pFlac; +} + +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open_with_metadata_private(drflac__on_read_memory, drflac__on_seek_memory, drflac__on_tell_memory, onMeta, drflac_container_unknown, &memoryStream, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + pFlac->memoryStream = memoryStream; + + /* This is an awful hack... */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + + return pFlac; +} + + + +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onTell, NULL, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onTell, NULL, container, pUserData, pUserData, pAllocationCallbacks); +} + +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onTell, onMeta, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onTell, onMeta, container, pUserData, pUserData, pAllocationCallbacks); +} + +DRFLAC_API void drflac_close(drflac* pFlac) +{ + if (pFlac == NULL) { + return; + } + +#ifndef DR_FLAC_NO_STDIO + /* + If we opened the file with drflac_open_file() we will want to close the file handle. We can know whether or not drflac_open_file() + was used by looking at the callbacks. + */ + if (pFlac->bs.onRead == drflac__on_read_stdio) { + fclose((FILE*)pFlac->bs.pUserData); + } + +#ifndef DR_FLAC_NO_OGG + /* Need to clean up Ogg streams a bit differently due to the way the bit streaming is chained. */ + if (pFlac->container == drflac_container_ogg) { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + DRFLAC_ASSERT(pFlac->bs.onRead == drflac__on_read_ogg); + + if (oggbs->onRead == drflac__on_read_stdio) { + fclose((FILE*)oggbs->pUserData); + } + } +#endif +#endif + + drflac__free_from_callbacks(pFlac, &pFlac->allocationCallbacks); +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; /* wbps = Wasted Bits Per Sample */ + int32x4_t wbpsShift1_4; /* wbps = Wasted Bits Per Sample */ + uint32x4_t one4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + one4 = vdupq_n_u32(1); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + int32x4_t shift4; + + shift -= 1; + shift4 = vdupq_n_s32(shift); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + pOutputSamples[i*8+0] = (drflac_int32)tempL0; + pOutputSamples[i*8+1] = (drflac_int32)tempR0; + pOutputSamples[i*8+2] = (drflac_int32)tempL1; + pOutputSamples[i*8+3] = (drflac_int32)tempR1; + pOutputSamples[i*8+4] = (drflac_int32)tempL2; + pOutputSamples[i*8+5] = (drflac_int32)tempR2; + pOutputSamples[i*8+6] = (drflac_int32)tempL3; + pOutputSamples[i*8+7] = (drflac_int32)tempR3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + int32x4_t shift4_0 = vdupq_n_s32(shift0); + int32x4_t shift4_1 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift4_0)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift4_1)); + + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + pBufferOut[(i*channelCount)+j] = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + + return framesRead; +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + left >>= 16; + right >>= 16; + + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = ((drflac_int32)(mid0 + side0) >> 1); + temp1L = ((drflac_int32)(mid1 + side1) >> 1); + temp2L = ((drflac_int32)(mid2 + side2) >> 1); + temp3L = ((drflac_int32)(mid3 + side3) >> 1); + + temp0R = ((drflac_int32)(mid0 - side0) >> 1); + temp1R = ((drflac_int32)(mid1 - side1) >> 1); + temp2R = ((drflac_int32)(mid2 - side2) >> 1); + temp3R = ((drflac_int32)(mid3 - side3) >> 1); + + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; /* wbps = Wasted Bits Per Sample */ + int32x4_t wbpsShift1_4; /* wbps = Wasted Bits Per Sample */ + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + int32x4_t shift4; + + shift -= 1; + shift4 = vdupq_n_s32(shift); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + tempL0 >>= 16; + tempL1 >>= 16; + tempL2 >>= 16; + tempL3 >>= 16; + + tempR0 >>= 16; + tempR1 >>= 16; + tempR2 >>= 16; + tempR3 >>= 16; + + pOutputSamples[i*8+0] = (drflac_int16)tempL0; + pOutputSamples[i*8+1] = (drflac_int16)tempR0; + pOutputSamples[i*8+2] = (drflac_int16)tempL1; + pOutputSamples[i*8+3] = (drflac_int16)tempR1; + pOutputSamples[i*8+4] = (drflac_int16)tempL2; + pOutputSamples[i*8+5] = (drflac_int16)tempR2; + pOutputSamples[i*8+6] = (drflac_int16)tempL3; + pOutputSamples[i*8+7] = (drflac_int16)tempR3; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + + /* At this point we have results. We can now pack and interleave these into a single __m128i object and then store the in the output buffer. */ + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_s16__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s16__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s16__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s16__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s16__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (drflac_int16)(sampleS32 >> 16); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + + return framesRead; +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = _mm_set1_ps(1.0f / 8388608.0f); + + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + float32x4_t leftf; + float32x4_t rightf; + + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = _mm_set1_ps(1.0f / 8388608.0f); + + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + float32x4_t leftf; + float32x4_t rightf; + + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (float)((((drflac_int32)(mid + side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((((drflac_int32)(mid - side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + float factor = 1 / 2147483648.0; + + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + __m128 factor128; + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = 1.0f / 8388608.0f; + factor128 = _mm_set1_ps(factor); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + tempL = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + tempR = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + + tempL = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + tempR = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + float32x4_t factor4; + int32x4_t shift4; + int32x4_t wbps0_4; /* Wasted Bits Per Sample */ + int32x4_t wbps1_4; /* Wasted Bits Per Sample */ + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + + factor = 1.0f / 8388608.0f; + factor4 = vdupq_n_f32(factor); + wbps0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbps1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + uint32x4_t mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + uint32x4_t side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + lefti = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + righti = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + shift4 = vdupq_n_s32(shift); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + + lefti = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + + mid = (mid << 1) | (side & 0x01); + + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (float)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) / 2147483648.0); + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + + pOutputSamples[i*8+0] = (drflac_int32)tempL0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)tempR0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)tempL1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)tempR1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)tempL2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)tempR2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)tempL3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)tempR3 * factor; + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} + +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + + float factor = 1.0f / 8388608.0f; + __m128 factor128 = _mm_set1_ps(factor); + + for (i = 0; i < frameCount4; ++i) { + __m128i lefti; + __m128i righti; + __m128 leftf; + __m128 rightf; + + lefti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + righti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + + leftf = _mm_mul_ps(_mm_cvtepi32_ps(lefti), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(righti), factor128); + + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif + +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + + float factor = 1.0f / 8388608.0f; + float32x4_t factor4 = vdupq_n_f32(factor); + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + + lefti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif + +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { + /* Scalar fallback. */ +#if 0 + drflac_read_pcm_frames_f32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} + +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + + framesRead = 0; + while (framesToRead > 0) { + /* If we've run out of samples in this frame, go to the next. */ + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; /* Couldn't read the next frame, so just break from the loop and return. */ + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_f32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_f32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_f32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_f32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + /* Generic interleaving. */ + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (float)(sampleS32 / 2147483648.0); + } + } + } + + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (unsigned int)frameCountThisIteration; + } + } + + return framesRead; +} + + +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + if (pFlac == NULL) { + return DRFLAC_FALSE; + } + + /* Don't do anything if we're already on the seek point. */ + if (pFlac->currentPCMFrame == pcmFrameIndex) { + return DRFLAC_TRUE; + } + + /* + If we don't know where the first frame begins then we can't seek. This will happen when the STREAMINFO block was not present + when the decoder was opened. + */ + if (pFlac->firstFLACFramePosInBytes == 0) { + return DRFLAC_FALSE; + } + + if (pcmFrameIndex == 0) { + pFlac->currentPCMFrame = 0; + return drflac__seek_to_first_frame(pFlac); + } else { + drflac_bool32 wasSuccessful = DRFLAC_FALSE; + drflac_uint64 originalPCMFrame = pFlac->currentPCMFrame; + + /* Clamp the sample to the end. */ + if (pcmFrameIndex > pFlac->totalPCMFrameCount) { + pcmFrameIndex = pFlac->totalPCMFrameCount; + } + + /* If the target sample and the current sample are in the same frame we just move the position forward. */ + if (pcmFrameIndex > pFlac->currentPCMFrame) { + /* Forward. */ + drflac_uint32 offset = (drflac_uint32)(pcmFrameIndex - pFlac->currentPCMFrame); + if (pFlac->currentFLACFrame.pcmFramesRemaining > offset) { + pFlac->currentFLACFrame.pcmFramesRemaining -= offset; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } else { + /* Backward. */ + drflac_uint32 offsetAbs = (drflac_uint32)(pFlac->currentPCMFrame - pcmFrameIndex); + drflac_uint32 currentFLACFramePCMFrameCount = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + drflac_uint32 currentFLACFramePCMFramesConsumed = currentFLACFramePCMFrameCount - pFlac->currentFLACFrame.pcmFramesRemaining; + if (currentFLACFramePCMFramesConsumed > offsetAbs) { + pFlac->currentFLACFrame.pcmFramesRemaining += offsetAbs; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } + + /* + Different techniques depending on encapsulation. Using the native FLAC seektable with Ogg encapsulation is a bit awkward so + we'll instead use Ogg's natural seeking facility. + */ +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + wasSuccessful = drflac_ogg__seek_to_pcm_frame(pFlac, pcmFrameIndex); + } + else +#endif + { + /* First try seeking via the seek table. If this fails, fall back to a brute force seek which is much slower. */ + if (/*!wasSuccessful && */!pFlac->_noSeekTableSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__seek_table(pFlac, pcmFrameIndex); + } + +#if !defined(DR_FLAC_NO_CRC) + /* Fall back to binary search if seek table seeking fails. This requires the length of the stream to be known. */ + if (!wasSuccessful && !pFlac->_noBinarySearchSeek && pFlac->totalPCMFrameCount > 0) { + wasSuccessful = drflac__seek_to_pcm_frame__binary_search(pFlac, pcmFrameIndex); + } +#endif + + /* Fall back to brute force if all else fails. */ + if (!wasSuccessful && !pFlac->_noBruteForceSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__brute_force(pFlac, pcmFrameIndex); + } + } + + if (wasSuccessful) { + pFlac->currentPCMFrame = pcmFrameIndex; + } else { + /* Seek failed. Try putting the decoder back to it's original state. */ + if (drflac_seek_to_pcm_frame(pFlac, originalPCMFrame) == DRFLAC_FALSE) { + /* Failed to seek back to the original PCM frame. Fall back to 0. */ + drflac_seek_to_pcm_frame(pFlac, 0); + } + } + + return wasSuccessful; + } +} + + + +/* High Level APIs */ + +/* SIZE_MAX */ +#if defined(SIZE_MAX) + #define DRFLAC_SIZE_MAX SIZE_MAX +#else + #if defined(DRFLAC_64BIT) + #define DRFLAC_SIZE_MAX ((drflac_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRFLAC_SIZE_MAX 0xFFFFFFFF + #endif +#endif +/* End SIZE_MAX */ + + +/* Using a macro as the definition of the drflac__full_decode_and_close_*() API family. Sue me. */ +#define DRFLAC_DEFINE_FULL_READ_AND_CLOSE(extension, type) \ +static type* drflac__full_read_and_close_ ## extension (drflac* pFlac, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut)\ +{ \ + type* pSampleData = NULL; \ + drflac_uint64 totalPCMFrameCount; \ + type buffer[4096]; \ + drflac_uint64 pcmFramesRead; \ + size_t sampleDataBufferSize = sizeof(buffer); \ + \ + DRFLAC_ASSERT(pFlac != NULL); \ + \ + totalPCMFrameCount = 0; \ + \ + pSampleData = (type*)drflac__malloc_from_callbacks(sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pSampleData == NULL) { \ + goto on_error; \ + } \ + \ + while ((pcmFramesRead = (drflac_uint64)drflac_read_pcm_frames_##extension(pFlac, sizeof(buffer)/sizeof(buffer[0])/pFlac->channels, buffer)) > 0) { \ + if (((totalPCMFrameCount + pcmFramesRead) * pFlac->channels * sizeof(type)) > sampleDataBufferSize) { \ + type* pNewSampleData; \ + size_t newSampleDataBufferSize; \ + \ + newSampleDataBufferSize = sampleDataBufferSize * 2; \ + pNewSampleData = (type*)drflac__realloc_from_callbacks(pSampleData, newSampleDataBufferSize, sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pNewSampleData == NULL) { \ + drflac__free_from_callbacks(pSampleData, &pFlac->allocationCallbacks); \ + goto on_error; \ + } \ + \ + sampleDataBufferSize = newSampleDataBufferSize; \ + pSampleData = pNewSampleData; \ + } \ + \ + DRFLAC_COPY_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), buffer, (size_t)(pcmFramesRead*pFlac->channels*sizeof(type))); \ + totalPCMFrameCount += pcmFramesRead; \ + } \ + \ + /* At this point everything should be decoded, but we just want to fill the unused part buffer with silence - need to \ + protect those ears from random noise! */ \ + DRFLAC_ZERO_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), (size_t)(sampleDataBufferSize - totalPCMFrameCount*pFlac->channels*sizeof(type))); \ + \ + if (sampleRateOut) *sampleRateOut = pFlac->sampleRate; \ + if (channelsOut) *channelsOut = pFlac->channels; \ + if (totalPCMFrameCountOut) *totalPCMFrameCountOut = totalPCMFrameCount; \ + \ + drflac_close(pFlac); \ + return pSampleData; \ + \ +on_error: \ + drflac_close(pFlac); \ + return NULL; \ +} + +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s32, drflac_int32) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s16, drflac_int16) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(f32, float) + +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, onTell, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, onTell, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + + pFlac = drflac_open(onRead, onSeek, onTell, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} + +#ifndef DR_FLAC_NO_STDIO +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +#endif + +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} + +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} + + +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drflac__free_from_callbacks(p, pAllocationCallbacks); + } else { + drflac__free_default(p, NULL); + } +} + + + + +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments) +{ + if (pIter == NULL) { + return; + } + + pIter->countRemaining = commentCount; + pIter->pRunningData = (const char*)pComments; +} + +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut) +{ + drflac_int32 length; + const char* pComment; + + /* Safety. */ + if (pCommentLengthOut) { + *pCommentLengthOut = 0; + } + + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return NULL; + } + + length = drflac__le2host_32_ptr_unaligned(pIter->pRunningData); + pIter->pRunningData += 4; + + pComment = pIter->pRunningData; + pIter->pRunningData += length; + pIter->countRemaining -= 1; + + if (pCommentLengthOut) { + *pCommentLengthOut = length; + } + + return pComment; +} + + + + +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData) +{ + if (pIter == NULL) { + return; + } + + pIter->countRemaining = trackCount; + pIter->pRunningData = (const char*)pTrackData; +} + +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack) +{ + drflac_cuesheet_track cuesheetTrack; + const char* pRunningData; + drflac_uint64 offsetHi; + drflac_uint64 offsetLo; + + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return DRFLAC_FALSE; + } + + pRunningData = pIter->pRunningData; + + offsetHi = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + offsetLo = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + cuesheetTrack.offset = offsetLo | (offsetHi << 32); + cuesheetTrack.trackNumber = pRunningData[0]; pRunningData += 1; + DRFLAC_COPY_MEMORY(cuesheetTrack.ISRC, pRunningData, sizeof(cuesheetTrack.ISRC)); pRunningData += 12; + cuesheetTrack.isAudio = (pRunningData[0] & 0x80) != 0; + cuesheetTrack.preEmphasis = (pRunningData[0] & 0x40) != 0; pRunningData += 14; + cuesheetTrack.indexCount = pRunningData[0]; pRunningData += 1; + cuesheetTrack.pIndexPoints = (const drflac_cuesheet_track_index*)pRunningData; pRunningData += cuesheetTrack.indexCount * sizeof(drflac_cuesheet_track_index); + + pIter->pRunningData = pRunningData; + pIter->countRemaining -= 1; + + if (pCuesheetTrack) { + *pCuesheetTrack = cuesheetTrack; + } + + return DRFLAC_TRUE; +} + +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop +#endif +#endif /* dr_flac_c */ +#endif /* DR_FLAC_IMPLEMENTATION */ + + +/* +REVISION HISTORY +================ +v0.13.3 - 2026-01-17 + - Fix a compiler compatibility issue with some inlined assembly. + - Fix a compilation warning. + +v0.13.2 - 2025-12-02 + - Improve robustness of the parsing of picture metadata to improve support for memory constrained embedded devices. + - Fix a warning about an assigned by unused variable. + - Improvements to drflac_open_and_read_pcm_frames_*() and family to avoid excessively large memory allocations from malformed files. + +v0.13.1 - 2025-09-10 + - Fix an error with the NXDK build. + +v0.13.0 - 2025-07-23 + - API CHANGE: Seek origin enums have been renamed to match the naming convention used by other dr_libs libraries: + - drflac_seek_origin_start -> DRFLAC_SEEK_SET + - drflac_seek_origin_current -> DRFLAC_SEEK_CUR + - DRFLAC_SEEK_END (new) + - API CHANGE: A new seek origin has been added to allow seeking from the end of the file. If you implement your own `onSeek` callback, you should now detect and handle `DRFLAC_SEEK_END`. If seeking to the end is not supported, return `DRFLAC_FALSE`. If you only use `*_open_file()` or `*_open_memory()`, you need not change anything. + - API CHANGE: An `onTell` callback has been added to the following functions: + - drflac_open() + - drflac_open_relaxed() + - drflac_open_with_metadata() + - drflac_open_with_metadata_relaxed() + - drflac_open_and_read_pcm_frames_s32() + - drflac_open_and_read_pcm_frames_s16() + - drflac_open_and_read_pcm_frames_f32() + - Fix compilation for AIX OS. + +v0.12.43 - 2024-12-17 + - Fix a possible buffer overflow during decoding. + - Improve detection of ARM64EC + +v0.12.42 - 2023-11-02 + - Fix build for ARMv6-M. + - Fix a compilation warning with GCC. + +v0.12.41 - 2023-06-17 + - Fix an incorrect date in revision history. No functional change. + +v0.12.40 - 2023-05-22 + - Minor code restructure. No functional change. + +v0.12.39 - 2022-09-17 + - Fix compilation with DJGPP. + - Fix compilation error with Visual Studio 2019 and the ARM build. + - Fix an error with SSE 4.1 detection. + - Add support for disabling wchar_t with DR_WAV_NO_WCHAR. + - Improve compatibility with compilers which lack support for explicit struct packing. + - Improve compatibility with low-end and embedded hardware by reducing the amount of stack + allocation when loading an Ogg encapsulated file. + +v0.12.38 - 2022-04-10 + - Fix compilation error on older versions of GCC. + +v0.12.37 - 2022-02-12 + - Improve ARM detection. + +v0.12.36 - 2022-02-07 + - Fix a compilation error with the ARM build. + +v0.12.35 - 2022-02-06 + - Fix a bug due to underestimating the amount of precision required for the prediction stage. + - Fix some bugs found from fuzz testing. + +v0.12.34 - 2022-01-07 + - Fix some misalignment bugs when reading metadata. + +v0.12.33 - 2021-12-22 + - Fix a bug with seeking when the seek table does not start at PCM frame 0. + +v0.12.32 - 2021-12-11 + - Fix a warning with Clang. + +v0.12.31 - 2021-08-16 + - Silence some warnings. + +v0.12.30 - 2021-07-31 + - Fix platform detection for ARM64. + +v0.12.29 - 2021-04-02 + - Fix a bug where the running PCM frame index is set to an invalid value when over-seeking. + - Fix a decoding error due to an incorrect validation check. + +v0.12.28 - 2021-02-21 + - Fix a warning due to referencing _MSC_VER when it is undefined. + +v0.12.27 - 2021-01-31 + - Fix a static analysis warning. + +v0.12.26 - 2021-01-17 + - Fix a compilation warning due to _BSD_SOURCE being deprecated. + +v0.12.25 - 2020-12-26 + - Update documentation. + +v0.12.24 - 2020-11-29 + - Fix ARM64/NEON detection when compiling with MSVC. + +v0.12.23 - 2020-11-21 + - Fix compilation with OpenWatcom. + +v0.12.22 - 2020-11-01 + - Fix an error with the previous release. + +v0.12.21 - 2020-11-01 + - Fix a possible deadlock when seeking. + - Improve compiler support for older versions of GCC. + +v0.12.20 - 2020-09-08 + - Fix a compilation error on older compilers. + +v0.12.19 - 2020-08-30 + - Fix a bug due to an undefined 32-bit shift. + +v0.12.18 - 2020-08-14 + - Fix a crash when compiling with clang-cl. + +v0.12.17 - 2020-08-02 + - Simplify sized types. + +v0.12.16 - 2020-07-25 + - Fix a compilation warning. + +v0.12.15 - 2020-07-06 + - Check for negative LPC shifts and return an error. + +v0.12.14 - 2020-06-23 + - Add include guard for the implementation section. + +v0.12.13 - 2020-05-16 + - Add compile-time and run-time version querying. + - DRFLAC_VERSION_MINOR + - DRFLAC_VERSION_MAJOR + - DRFLAC_VERSION_REVISION + - DRFLAC_VERSION_STRING + - drflac_version() + - drflac_version_string() + +v0.12.12 - 2020-04-30 + - Fix compilation errors with VC6. + +v0.12.11 - 2020-04-19 + - Fix some pedantic warnings. + - Fix some undefined behaviour warnings. + +v0.12.10 - 2020-04-10 + - Fix some bugs when trying to seek with an invalid seek table. + +v0.12.9 - 2020-04-05 + - Fix warnings. + +v0.12.8 - 2020-04-04 + - Add drflac_open_file_w() and drflac_open_file_with_metadata_w(). + - Fix some static analysis warnings. + - Minor documentation updates. + +v0.12.7 - 2020-03-14 + - Fix compilation errors with VC6. + +v0.12.6 - 2020-03-07 + - Fix compilation error with Visual Studio .NET 2003. + +v0.12.5 - 2020-01-30 + - Silence some static analysis warnings. + +v0.12.4 - 2020-01-29 + - Silence some static analysis warnings. + +v0.12.3 - 2019-12-02 + - Fix some warnings when compiling with GCC and the -Og flag. + - Fix a crash in out-of-memory situations. + - Fix potential integer overflow bug. + - Fix some static analysis warnings. + - Fix a possible crash when using custom memory allocators without a custom realloc() implementation. + - Fix a bug with binary search seeking where the bits per sample is not a multiple of 8. + +v0.12.2 - 2019-10-07 + - Internal code clean up. + +v0.12.1 - 2019-09-29 + - Fix some Clang Static Analyzer warnings. + - Fix an unused variable warning. + +v0.12.0 - 2019-09-23 + - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation + routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: + - drflac_open() + - drflac_open_relaxed() + - drflac_open_with_metadata() + - drflac_open_with_metadata_relaxed() + - drflac_open_file() + - drflac_open_file_with_metadata() + - drflac_open_memory() + - drflac_open_memory_with_metadata() + - drflac_open_and_read_pcm_frames_s32() + - drflac_open_and_read_pcm_frames_s16() + - drflac_open_and_read_pcm_frames_f32() + - drflac_open_file_and_read_pcm_frames_s32() + - drflac_open_file_and_read_pcm_frames_s16() + - drflac_open_file_and_read_pcm_frames_f32() + - drflac_open_memory_and_read_pcm_frames_s32() + - drflac_open_memory_and_read_pcm_frames_s16() + - drflac_open_memory_and_read_pcm_frames_f32() + Set this extra parameter to NULL to use defaults which is the same as the previous behaviour. Setting this NULL will use + DRFLAC_MALLOC, DRFLAC_REALLOC and DRFLAC_FREE. + - Remove deprecated APIs: + - drflac_read_s32() + - drflac_read_s16() + - drflac_read_f32() + - drflac_seek_to_sample() + - drflac_open_and_decode_s32() + - drflac_open_and_decode_s16() + - drflac_open_and_decode_f32() + - drflac_open_and_decode_file_s32() + - drflac_open_and_decode_file_s16() + - drflac_open_and_decode_file_f32() + - drflac_open_and_decode_memory_s32() + - drflac_open_and_decode_memory_s16() + - drflac_open_and_decode_memory_f32() + - Remove drflac.totalSampleCount which is now replaced with drflac.totalPCMFrameCount. You can emulate drflac.totalSampleCount + by doing pFlac->totalPCMFrameCount*pFlac->channels. + - Rename drflac.currentFrame to drflac.currentFLACFrame to remove ambiguity with PCM frames. + - Fix errors when seeking to the end of a stream. + - Optimizations to seeking. + - SSE improvements and optimizations. + - ARM NEON optimizations. + - Optimizations to drflac_read_pcm_frames_s16(). + - Optimizations to drflac_read_pcm_frames_s32(). + +v0.11.10 - 2019-06-26 + - Fix a compiler error. + +v0.11.9 - 2019-06-16 + - Silence some ThreadSanitizer warnings. + +v0.11.8 - 2019-05-21 + - Fix warnings. + +v0.11.7 - 2019-05-06 + - C89 fixes. + +v0.11.6 - 2019-05-05 + - Add support for C89. + - Fix a compiler warning when CRC is disabled. + - Change license to choice of public domain or MIT-0. + +v0.11.5 - 2019-04-19 + - Fix a compiler error with GCC. + +v0.11.4 - 2019-04-17 + - Fix some warnings with GCC when compiling with -std=c99. + +v0.11.3 - 2019-04-07 + - Silence warnings with GCC. + +v0.11.2 - 2019-03-10 + - Fix a warning. + +v0.11.1 - 2019-02-17 + - Fix a potential bug with seeking. + +v0.11.0 - 2018-12-16 + - API CHANGE: Deprecated drflac_read_s32(), drflac_read_s16() and drflac_read_f32() and replaced them with + drflac_read_pcm_frames_s32(), drflac_read_pcm_frames_s16() and drflac_read_pcm_frames_f32(). The new APIs take + and return PCM frame counts instead of sample counts. To upgrade you will need to change the input count by + dividing it by the channel count, and then do the same with the return value. + - API_CHANGE: Deprecated drflac_seek_to_sample() and replaced with drflac_seek_to_pcm_frame(). Same rules as + the changes to drflac_read_*() apply. + - API CHANGE: Deprecated drflac_open_and_decode_*() and replaced with drflac_open_*_and_read_*(). Same rules as + the changes to drflac_read_*() apply. + - Optimizations. + +v0.10.0 - 2018-09-11 + - Remove the DR_FLAC_NO_WIN32_IO option and the Win32 file IO functionality. If you need to use Win32 file IO you + need to do it yourself via the callback API. + - Fix the clang build. + - Fix undefined behavior. + - Fix errors with CUESHEET metdata blocks. + - Add an API for iterating over each cuesheet track in the CUESHEET metadata block. This works the same way as the + Vorbis comment API. + - Other miscellaneous bug fixes, mostly relating to invalid FLAC streams. + - Minor optimizations. + +v0.9.11 - 2018-08-29 + - Fix a bug with sample reconstruction. + +v0.9.10 - 2018-08-07 + - Improve 64-bit detection. + +v0.9.9 - 2018-08-05 + - Fix C++ build on older versions of GCC. + +v0.9.8 - 2018-07-24 + - Fix compilation errors. + +v0.9.7 - 2018-07-05 + - Fix a warning. + +v0.9.6 - 2018-06-29 + - Fix some typos. + +v0.9.5 - 2018-06-23 + - Fix some warnings. + +v0.9.4 - 2018-06-14 + - Optimizations to seeking. + - Clean up. + +v0.9.3 - 2018-05-22 + - Bug fix. + +v0.9.2 - 2018-05-12 + - Fix a compilation error due to a missing break statement. + +v0.9.1 - 2018-04-29 + - Fix compilation error with Clang. + +v0.9 - 2018-04-24 + - Fix Clang build. + - Start using major.minor.revision versioning. + +v0.8g - 2018-04-19 + - Fix build on non-x86/x64 architectures. + +v0.8f - 2018-02-02 + - Stop pretending to support changing rate/channels mid stream. + +v0.8e - 2018-02-01 + - Fix a crash when the block size of a frame is larger than the maximum block size defined by the FLAC stream. + - Fix a crash the the Rice partition order is invalid. + +v0.8d - 2017-09-22 + - Add support for decoding streams with ID3 tags. ID3 tags are just skipped. + +v0.8c - 2017-09-07 + - Fix warning on non-x86/x64 architectures. + +v0.8b - 2017-08-19 + - Fix build on non-x86/x64 architectures. + +v0.8a - 2017-08-13 + - A small optimization for the Clang build. + +v0.8 - 2017-08-12 + - API CHANGE: Rename dr_* types to drflac_*. + - Optimizations. This brings dr_flac back to about the same class of efficiency as the reference implementation. + - Add support for custom implementations of malloc(), realloc(), etc. + - Add CRC checking to Ogg encapsulated streams. + - Fix VC++ 6 build. This is only for the C++ compiler. The C compiler is not currently supported. + - Bug fixes. + +v0.7 - 2017-07-23 + - Add support for opening a stream without a header block. To do this, use drflac_open_relaxed() / drflac_open_with_metadata_relaxed(). + +v0.6 - 2017-07-22 + - Add support for recovering from invalid frames. With this change, dr_flac will simply skip over invalid frames as if they + never existed. Frames are checked against their sync code, the CRC-8 of the frame header and the CRC-16 of the whole frame. + +v0.5 - 2017-07-16 + - Fix typos. + - Change drflac_bool* types to unsigned. + - Add CRC checking. This makes dr_flac slower, but can be disabled with #define DR_FLAC_NO_CRC. + +v0.4f - 2017-03-10 + - Fix a couple of bugs with the bitstreaming code. + +v0.4e - 2017-02-17 + - Fix some warnings. + +v0.4d - 2016-12-26 + - Add support for 32-bit floating-point PCM decoding. + - Use drflac_int* and drflac_uint* sized types to improve compiler support. + - Minor improvements to documentation. + +v0.4c - 2016-12-26 + - Add support for signed 16-bit integer PCM decoding. + +v0.4b - 2016-10-23 + - A minor change to drflac_bool8 and drflac_bool32 types. + +v0.4a - 2016-10-11 + - Rename drBool32 to drflac_bool32 for styling consistency. + +v0.4 - 2016-09-29 + - API/ABI CHANGE: Use fixed size 32-bit booleans instead of the built-in bool type. + - API CHANGE: Rename drflac_open_and_decode*() to drflac_open_and_decode*_s32(). + - API CHANGE: Swap the order of "channels" and "sampleRate" parameters in drflac_open_and_decode*(). Rationale for this is to + keep it consistent with drflac_audio. + +v0.3f - 2016-09-21 + - Fix a warning with GCC. + +v0.3e - 2016-09-18 + - Fixed a bug where GCC 4.3+ was not getting properly identified. + - Fixed a few typos. + - Changed date formats to ISO 8601 (YYYY-MM-DD). + +v0.3d - 2016-06-11 + - Minor clean up. + +v0.3c - 2016-05-28 + - Fixed compilation error. + +v0.3b - 2016-05-16 + - Fixed Linux/GCC build. + - Updated documentation. + +v0.3a - 2016-05-15 + - Minor fixes to documentation. + +v0.3 - 2016-05-11 + - Optimizations. Now at about parity with the reference implementation on 32-bit builds. + - Lots of clean up. + +v0.2b - 2016-05-10 + - Bug fixes. + +v0.2a - 2016-05-10 + - Made drflac_open_and_decode() more robust. + - Removed an unused debugging variable + +v0.2 - 2016-05-09 + - Added support for Ogg encapsulation. + - API CHANGE. Have the onSeek callback take a third argument which specifies whether or not the seek + should be relative to the start or the current position. Also changes the seeking rules such that + seeking offsets will never be negative. + - Have drflac_open_and_decode() fail gracefully if the stream has an unknown total sample count. + +v0.1b - 2016-05-07 + - Properly close the file handle in drflac_open_file() and family when the decoder fails to initialize. + - Removed a stale comment. + +v0.1a - 2016-05-05 + - Minor formatting changes. + - Fixed a warning on the GCC build. + +v0.1 - 2016-05-03 + - Initial versioned release. +*/ + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2023 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ diff --git a/lib/All/dr_libs/dr_mp3.h b/lib/All/dr_libs/dr_mp3.h new file mode 100644 index 0000000..c0969c4 --- /dev/null +++ b/lib/All/dr_libs/dr_mp3.h @@ -0,0 +1,5385 @@ +/* +MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file. +dr_mp3 - v0.7.4 - TBD + +David Reid - mackron@gmail.com + +GitHub: https://github.com/mackron/dr_libs + +Based on minimp3 (https://github.com/lieff/minimp3) which is where the real work was done. See the bottom of this file for differences between minimp3 and dr_mp3. +*/ + +/* +Introduction +============= +dr_mp3 is a single file library. To use it, do something like the following in one .c file. + + ```c + #define DR_MP3_IMPLEMENTATION + #include "dr_mp3.h" + ``` + +You can then #include this file in other parts of the program as you would with any other header file. To decode audio data, do something like the following: + + ```c + drmp3 mp3; + if (!drmp3_init_file(&mp3, "MySong.mp3", NULL)) { + // Failed to open file + } + + ... + + drmp3_uint64 framesRead = drmp3_read_pcm_frames_f32(pMP3, framesToRead, pFrames); + ``` + +The drmp3 object is transparent so you can get access to the channel count and sample rate like so: + + ``` + drmp3_uint32 channels = mp3.channels; + drmp3_uint32 sampleRate = mp3.sampleRate; + ``` + +The example above initializes a decoder from a file, but you can also initialize it from a block of memory and read and seek callbacks with +`drmp3_init_memory()` and `drmp3_init()` respectively. + +You do not need to do any annoying memory management when reading PCM frames - this is all managed internally. You can request any number of PCM frames in each +call to `drmp3_read_pcm_frames_f32()` and it will return as many PCM frames as it can, up to the requested amount. + +You can also decode an entire file in one go with `drmp3_open_and_read_pcm_frames_f32()`, `drmp3_open_memory_and_read_pcm_frames_f32()` and +`drmp3_open_file_and_read_pcm_frames_f32()`. + + +Build Options +============= +#define these options before including this file. + +#define DR_MP3_NO_STDIO + Disable drmp3_init_file(), etc. + +#define DR_MP3_NO_SIMD + Disable SIMD optimizations. +*/ + +#ifndef dr_mp3_h +#define dr_mp3_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DRMP3_STRINGIFY(x) #x +#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x) + +#define DRMP3_VERSION_MAJOR 0 +#define DRMP3_VERSION_MINOR 7 +#define DRMP3_VERSION_REVISION 4 +#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION) + +#include /* For size_t. */ + +/* Sized Types */ +typedef signed char drmp3_int8; +typedef unsigned char drmp3_uint8; +typedef signed short drmp3_int16; +typedef unsigned short drmp3_uint16; +typedef signed int drmp3_int32; +typedef unsigned int drmp3_uint32; +#if defined(_MSC_VER) && !defined(__clang__) + typedef signed __int64 drmp3_int64; + typedef unsigned __int64 drmp3_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drmp3_int64; + typedef unsigned long long drmp3_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(__powerpc64__) + typedef drmp3_uint64 drmp3_uintptr; +#else + typedef drmp3_uint32 drmp3_uintptr; +#endif +typedef drmp3_uint8 drmp3_bool8; +typedef drmp3_uint32 drmp3_bool32; +#define DRMP3_TRUE 1 +#define DRMP3_FALSE 0 + +/* Weird shifting syntax is for VC6 compatibility. */ +#define DRMP3_UINT64_MAX (((drmp3_uint64)0xFFFFFFFF << 32) | (drmp3_uint64)0xFFFFFFFF) +/* End Sized Types */ + +/* Decorations */ +#if !defined(DRMP3_API) + #if defined(DRMP3_DLL) + #if defined(_WIN32) + #define DRMP3_DLL_IMPORT __declspec(dllimport) + #define DRMP3_DLL_EXPORT __declspec(dllexport) + #define DRMP3_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRMP3_DLL_IMPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_EXPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRMP3_DLL_IMPORT + #define DRMP3_DLL_EXPORT + #define DRMP3_DLL_PRIVATE static + #endif + #endif + + #if defined(DR_MP3_IMPLEMENTATION) + #define DRMP3_API DRMP3_DLL_EXPORT + #else + #define DRMP3_API DRMP3_DLL_IMPORT + #endif + #define DRMP3_PRIVATE DRMP3_DLL_PRIVATE + #else + #define DRMP3_API extern + #define DRMP3_PRIVATE static + #endif +#endif +/* End Decorations */ + +/* Result Codes */ +typedef drmp3_int32 drmp3_result; +#define DRMP3_SUCCESS 0 +#define DRMP3_ERROR -1 /* A generic error. */ +#define DRMP3_INVALID_ARGS -2 +#define DRMP3_INVALID_OPERATION -3 +#define DRMP3_OUT_OF_MEMORY -4 +#define DRMP3_OUT_OF_RANGE -5 +#define DRMP3_ACCESS_DENIED -6 +#define DRMP3_DOES_NOT_EXIST -7 +#define DRMP3_ALREADY_EXISTS -8 +#define DRMP3_TOO_MANY_OPEN_FILES -9 +#define DRMP3_INVALID_FILE -10 +#define DRMP3_TOO_BIG -11 +#define DRMP3_PATH_TOO_LONG -12 +#define DRMP3_NAME_TOO_LONG -13 +#define DRMP3_NOT_DIRECTORY -14 +#define DRMP3_IS_DIRECTORY -15 +#define DRMP3_DIRECTORY_NOT_EMPTY -16 +#define DRMP3_END_OF_FILE -17 +#define DRMP3_NO_SPACE -18 +#define DRMP3_BUSY -19 +#define DRMP3_IO_ERROR -20 +#define DRMP3_INTERRUPT -21 +#define DRMP3_UNAVAILABLE -22 +#define DRMP3_ALREADY_IN_USE -23 +#define DRMP3_BAD_ADDRESS -24 +#define DRMP3_BAD_SEEK -25 +#define DRMP3_BAD_PIPE -26 +#define DRMP3_DEADLOCK -27 +#define DRMP3_TOO_MANY_LINKS -28 +#define DRMP3_NOT_IMPLEMENTED -29 +#define DRMP3_NO_MESSAGE -30 +#define DRMP3_BAD_MESSAGE -31 +#define DRMP3_NO_DATA_AVAILABLE -32 +#define DRMP3_INVALID_DATA -33 +#define DRMP3_TIMEOUT -34 +#define DRMP3_NO_NETWORK -35 +#define DRMP3_NOT_UNIQUE -36 +#define DRMP3_NOT_SOCKET -37 +#define DRMP3_NO_ADDRESS -38 +#define DRMP3_BAD_PROTOCOL -39 +#define DRMP3_PROTOCOL_UNAVAILABLE -40 +#define DRMP3_PROTOCOL_NOT_SUPPORTED -41 +#define DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRMP3_SOCKET_NOT_SUPPORTED -44 +#define DRMP3_CONNECTION_RESET -45 +#define DRMP3_ALREADY_CONNECTED -46 +#define DRMP3_NOT_CONNECTED -47 +#define DRMP3_CONNECTION_REFUSED -48 +#define DRMP3_NO_HOST -49 +#define DRMP3_IN_PROGRESS -50 +#define DRMP3_CANCELLED -51 +#define DRMP3_MEMORY_ALREADY_MAPPED -52 +#define DRMP3_AT_END -53 +/* End Result Codes */ + +#define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME 1152 +#define DRMP3_MAX_SAMPLES_PER_FRAME (DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2) + +/* Inline */ +#ifdef _MSC_VER + #define DRMP3_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define DRMP3_GNUC_INLINE_HINT __inline__ + #else + #define DRMP3_GNUC_INLINE_HINT inline + #endif + + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) + #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT __attribute__((always_inline)) + #else + #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT + #endif +#elif defined(__WATCOMC__) + #define DRMP3_INLINE __inline +#else + #define DRMP3_INLINE +#endif +/* End Inline */ + + +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision); +DRMP3_API const char* drmp3_version_string(void); + + +/* Allocation Callbacks */ +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drmp3_allocation_callbacks; +/* End Allocation Callbacks */ + + +/* +Low Level Push API +================== +*/ +#define DRMP3_MAX_BITRESERVOIR_BYTES 511 +#define DRMP3_MAX_FREE_FORMAT_FRAME_SIZE 2304 /* more than ISO spec's */ +#define DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES DRMP3_MAX_FREE_FORMAT_FRAME_SIZE /* MUST be >= 320000/8/32000*1152 = 1440 */ + +typedef struct +{ + int frame_bytes, channels, sample_rate, layer, bitrate_kbps; +} drmp3dec_frame_info; + +typedef struct +{ + const drmp3_uint8 *buf; + int pos, limit; +} drmp3_bs; + +typedef struct +{ + const drmp3_uint8 *sfbtab; + drmp3_uint16 part_23_length, big_values, scalefac_compress; + drmp3_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb; + drmp3_uint8 table_select[3], region_count[3], subblock_gain[3]; + drmp3_uint8 preflag, scalefac_scale, count1_table, scfsi; +} drmp3_L3_gr_info; + +typedef struct +{ + drmp3_bs bs; + drmp3_uint8 maindata[DRMP3_MAX_BITRESERVOIR_BYTES + DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES]; + drmp3_L3_gr_info gr_info[4]; + float grbuf[2][576], scf[40], syn[18 + 15][2*32]; + drmp3_uint8 ist_pos[2][39]; +} drmp3dec_scratch; + +typedef struct +{ + float mdct_overlap[2][9*32], qmf_state[15*2*32]; + int reserv, free_format_bytes; + drmp3_uint8 header[4], reserv_buf[511]; + drmp3dec_scratch scratch; +} drmp3dec; + +/* Initializes a low level decoder. */ +DRMP3_API void drmp3dec_init(drmp3dec *dec); + +/* Reads a frame from a low level decoder. */ +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info); + +/* Helper for converting between f32 and s16. */ +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples); + + + +/* +Main API (Pull API) +=================== +*/ +typedef enum +{ + DRMP3_SEEK_SET, + DRMP3_SEEK_CUR, + DRMP3_SEEK_END +} drmp3_seek_origin; + +typedef struct +{ + drmp3_uint64 seekPosInBytes; /* Points to the first byte of an MP3 frame. */ + drmp3_uint64 pcmFrameIndex; /* The index of the PCM frame this seek point targets. */ + drmp3_uint16 mp3FramesToDiscard; /* The number of whole MP3 frames to be discarded before pcmFramesToDiscard. */ + drmp3_uint16 pcmFramesToDiscard; /* The number of leading samples to read and discard. These are discarded after mp3FramesToDiscard. */ +} drmp3_seek_point; + +typedef enum +{ + DRMP3_METADATA_TYPE_ID3V1, + DRMP3_METADATA_TYPE_ID3V2, + DRMP3_METADATA_TYPE_APE, + DRMP3_METADATA_TYPE_XING, + DRMP3_METADATA_TYPE_VBRI +} drmp3_metadata_type; + +typedef struct +{ + drmp3_metadata_type type; + const void* pRawData; /* A pointer to the raw data. */ + size_t rawDataSize; +} drmp3_metadata; + + +/* +Callback for when data is read. Return value is the number of bytes actually read. + +pUserData [in] The user data that was passed to drmp3_init(), and family. +pBufferOut [out] The output buffer. +bytesToRead [in] The number of bytes to read. + +Returns the number of bytes actually read. + +A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until +either the entire bytesToRead is filled or you have reached the end of the stream. +*/ +typedef size_t (* drmp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); + +/* +Callback for when data needs to be seeked. + +pUserData [in] The user data that was passed to drmp3_init(), and family. +offset [in] The number of bytes to move, relative to the origin. Can be negative. +origin [in] The origin of the seek. + +Returns whether or not the seek was successful. +*/ +typedef drmp3_bool32 (* drmp3_seek_proc)(void* pUserData, int offset, drmp3_seek_origin origin); + +/* +Callback for retrieving the current cursor position. + +pUserData [in] The user data that was passed to drmp3_init(), and family. +pCursor [out] The cursor position in bytes from the start of the stream. + +Returns whether or not the cursor position was successfully retrieved. +*/ +typedef drmp3_bool32 (* drmp3_tell_proc)(void* pUserData, drmp3_int64* pCursor); + + +/* +Callback for when metadata is read. + +Only the raw data is provided. The client is responsible for parsing the contents of the data themsevles. +*/ +typedef void (* drmp3_meta_proc)(void* pUserData, const drmp3_metadata* pMetadata); + + +typedef struct +{ + drmp3_uint32 channels; + drmp3_uint32 sampleRate; +} drmp3_config; + +typedef struct +{ + drmp3dec decoder; + drmp3_uint32 channels; + drmp3_uint32 sampleRate; + drmp3_read_proc onRead; + drmp3_seek_proc onSeek; + drmp3_meta_proc onMeta; + void* pUserData; + void* pUserDataMeta; + drmp3_allocation_callbacks allocationCallbacks; + drmp3_uint32 mp3FrameChannels; /* The number of channels in the currently loaded MP3 frame. Internal use only. */ + drmp3_uint32 mp3FrameSampleRate; /* The sample rate of the currently loaded MP3 frame. Internal use only. */ + drmp3_uint32 pcmFramesConsumedInMP3Frame; + drmp3_uint32 pcmFramesRemainingInMP3Frame; + drmp3_uint8 pcmFrames[sizeof(float)*DRMP3_MAX_SAMPLES_PER_FRAME]; /* <-- Multipled by sizeof(float) to ensure there's enough room for DR_MP3_FLOAT_OUTPUT. */ + drmp3_uint64 currentPCMFrame; /* The current PCM frame, globally. */ + drmp3_uint64 streamCursor; /* The current byte the decoder is sitting on in the raw stream. */ + drmp3_uint64 streamLength; /* The length of the stream in bytes. dr_mp3 will not read beyond this. If a ID3v1 or APE tag is present, this will be set to the first byte of the tag. */ + drmp3_uint64 streamStartOffset; /* The offset of the start of the MP3 data. This is used for skipping ID3v2 and VBR tags. */ + drmp3_seek_point* pSeekPoints; /* NULL by default. Set with drmp3_bind_seek_table(). Memory is owned by the client. dr_mp3 will never attempt to free this pointer. */ + drmp3_uint32 seekPointCount; /* The number of items in pSeekPoints. When set to 0 assumes to no seek table. Defaults to zero. */ + drmp3_uint32 delayInPCMFrames; + drmp3_uint32 paddingInPCMFrames; + drmp3_uint64 totalPCMFrameCount; /* Set to DRMP3_UINT64_MAX if the length is unknown. Includes delay and padding. */ + drmp3_bool32 isVBR; + drmp3_bool32 isCBR; + size_t dataSize; + size_t dataCapacity; + size_t dataConsumed; + drmp3_uint8* pData; + drmp3_bool32 atEnd; + struct + { + const drmp3_uint8* pData; + size_t dataSize; + size_t currentReadPos; + } memory; /* Only used for decoders that were opened against a block of memory. */ +} drmp3; + +/* +Initializes an MP3 decoder. + +onRead [in] The function to call when data needs to be read from the client. +onSeek [in] The function to call when the read position of the client data needs to move. +onTell [in] The function to call when the read position of the client data needs to be retrieved. +pUserData [in, optional] A pointer to application defined data that will be passed to onRead and onSeek. + +Returns true if successful; false otherwise. + +Close the loader with drmp3_uninit(). + +See also: drmp3_init_file(), drmp3_init_memory(), drmp3_uninit() +*/ +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, drmp3_meta_proc onMeta, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks); + +/* +Initializes an MP3 decoder from a block of memory. + +This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for +the lifetime of the drmp3 object. + +The buffer should contain the contents of the entire MP3 file. +*/ +DRMP3_API drmp3_bool32 drmp3_init_memory_with_metadata(drmp3* pMP3, const void* pData, size_t dataSize, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_MP3_NO_STDIO +/* +Initializes an MP3 decoder from a file. + +This holds the internal FILE object until drmp3_uninit() is called. Keep this in mind if you're caching drmp3 +objects because the operating system may restrict the number of file handles an application can have open at +any given time. +*/ +DRMP3_API drmp3_bool32 drmp3_init_file_with_metadata(drmp3* pMP3, const char* pFilePath, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_file_with_metadata_w(drmp3* pMP3, const wchar_t* pFilePath, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks); + +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Uninitializes an MP3 decoder. +*/ +DRMP3_API void drmp3_uninit(drmp3* pMP3); + +/* +Reads PCM frames as interleaved 32-bit IEEE floating point PCM. + +Note that framesToRead specifies the number of PCM frames to read, _not_ the number of MP3 frames. +*/ +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut); + +/* +Reads PCM frames as interleaved signed 16-bit integer PCM. + +Note that framesToRead specifies the number of PCM frames to read, _not_ the number of MP3 frames. +*/ +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut); + +/* +Seeks to a specific frame. + +Note that this is _not_ an MP3 frame, but rather a PCM frame. +*/ +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex); + +/* +Calculates the total number of PCM frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. +*/ +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3); + +/* +Calculates the total number of MP3 frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. +*/ +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3); + +/* +Calculates the total number of MP3 and PCM frames in the MP3 stream. Cannot be used for infinite streams such as internet +radio. Runs in linear time. Returns 0 on error. + +This is equivalent to calling drmp3_get_mp3_frame_count() and drmp3_get_pcm_frame_count() except that it's more efficient. +*/ +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount); + +/* +Calculates the seekpoints based on PCM frames. This is slow. + +pSeekpoint count is a pointer to a uint32 containing the seekpoint count. On input it contains the desired count. +On output it contains the actual count. The reason for this design is that the client may request too many +seekpoints, in which case dr_mp3 will return a corrected count. + +Note that seektable seeking is not quite sample exact when the MP3 stream contains inconsistent sample rates. +*/ +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints); + +/* +Binds a seek table to the decoder. + +This does _not_ make a copy of pSeekPoints - it only references it. It is up to the application to ensure this +remains valid while it is bound to the decoder. + +Use drmp3_calculate_seek_points() to calculate the seek points. +*/ +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints); + + +/* +Opens an decodes an entire MP3 stream as a single operation. + +On output pConfig will receive the channel count and sample rate of the stream. + +Free the returned pointer with drmp3_free(). +*/ +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); + +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif + +/* +Allocates a block of memory on the heap. +*/ +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks); + +/* +Frees any memory that was allocated by a public drmp3 API. +*/ +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks); + +#ifdef __cplusplus +} +#endif +#endif /* dr_mp3_h */ + + +/************************************************************************************************************************************************************ + ************************************************************************************************************************************************************ + + IMPLEMENTATION + + ************************************************************************************************************************************************************ + ************************************************************************************************************************************************************/ +#if defined(DR_MP3_IMPLEMENTATION) +#ifndef dr_mp3_c +#define dr_mp3_c + +#include +#include +#include /* For INT_MAX */ + +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRMP3_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = DRMP3_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = DRMP3_VERSION_REVISION; + } +} + +DRMP3_API const char* drmp3_version_string(void) +{ + return DRMP3_VERSION_STRING; +} + +/* Disable SIMD when compiling with TCC for now. */ +#if defined(__TINYC__) +#define DR_MP3_NO_SIMD +#endif + +#define DRMP3_OFFSET_PTR(p, offset) ((void*)((drmp3_uint8*)(p) + (offset))) + +#ifndef DRMP3_MAX_FRAME_SYNC_MATCHES +#define DRMP3_MAX_FRAME_SYNC_MATCHES 10 +#endif + +#define DRMP3_SHORT_BLOCK_TYPE 2 +#define DRMP3_STOP_BLOCK_TYPE 3 +#define DRMP3_MODE_MONO 3 +#define DRMP3_MODE_JOINT_STEREO 1 +#define DRMP3_HDR_SIZE 4 +#define DRMP3_HDR_IS_MONO(h) (((h[3]) & 0xC0) == 0xC0) +#define DRMP3_HDR_IS_MS_STEREO(h) (((h[3]) & 0xE0) == 0x60) +#define DRMP3_HDR_IS_FREE_FORMAT(h) (((h[2]) & 0xF0) == 0) +#define DRMP3_HDR_IS_CRC(h) (!((h[1]) & 1)) +#define DRMP3_HDR_TEST_PADDING(h) ((h[2]) & 0x2) +#define DRMP3_HDR_TEST_MPEG1(h) ((h[1]) & 0x8) +#define DRMP3_HDR_TEST_NOT_MPEG25(h) ((h[1]) & 0x10) +#define DRMP3_HDR_TEST_I_STEREO(h) ((h[3]) & 0x10) +#define DRMP3_HDR_TEST_MS_STEREO(h) ((h[3]) & 0x20) +#define DRMP3_HDR_GET_STEREO_MODE(h) (((h[3]) >> 6) & 3) +#define DRMP3_HDR_GET_STEREO_MODE_EXT(h) (((h[3]) >> 4) & 3) +#define DRMP3_HDR_GET_LAYER(h) (((h[1]) >> 1) & 3) +#define DRMP3_HDR_GET_BITRATE(h) ((h[2]) >> 4) +#define DRMP3_HDR_GET_SAMPLE_RATE(h) (((h[2]) >> 2) & 3) +#define DRMP3_HDR_GET_MY_SAMPLE_RATE(h) (DRMP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3) +#define DRMP3_HDR_IS_FRAME_576(h) ((h[1] & 14) == 2) +#define DRMP3_HDR_IS_LAYER_1(h) ((h[1] & 6) == 6) + +#define DRMP3_BITS_DEQUANTIZER_OUT -1 +#define DRMP3_MAX_SCF (255 + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210) +#define DRMP3_MAX_SCFI ((DRMP3_MAX_SCF + 3) & ~3) + +#define DRMP3_MIN(a, b) ((a) > (b) ? (b) : (a)) +#define DRMP3_MAX(a, b) ((a) < (b) ? (b) : (a)) + +#if !defined(DR_MP3_NO_SIMD) + +#if !defined(DR_MP3_ONLY_SIMD) && ((defined(_MSC_VER) && _MSC_VER >= 1400) && defined(_M_X64)) || ((defined(__i386) || defined(_M_IX86) || defined(__i386__) || defined(__x86_64__)) && ((defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__))) +#define DR_MP3_ONLY_SIMD +#endif +#if !defined(DR_MP3_ONLY_SIMD) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)) +#define DR_MP3_ONLY_SIMD +#endif + +#if ((defined(_MSC_VER) && _MSC_VER >= 1400) && defined(_M_X64)) || ((defined(__i386) || defined(_M_IX86) || defined(__i386__) || defined(__x86_64__)) && ((defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__))) +#if defined(_MSC_VER) +#include +#endif +#include +#define DRMP3_HAVE_SSE 1 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE _mm_storeu_ps +#define DRMP3_VLD _mm_loadu_ps +#define DRMP3_VSET _mm_set1_ps +#define DRMP3_VADD _mm_add_ps +#define DRMP3_VSUB _mm_sub_ps +#define DRMP3_VMUL _mm_mul_ps +#define DRMP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMUL_S(x, s) _mm_mul_ps(x, _mm_set1_ps(s)) +#define DRMP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3)) +typedef __m128 drmp3_f4; +#if (defined(_MSC_VER) || defined(DR_MP3_ONLY_SIMD)) && !defined(__clang__) +#define drmp3_cpuid __cpuid +#else +static __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], const int InfoType) +{ +#if defined(__PIC__) + __asm__ __volatile__( +#if defined(__x86_64__) + "push %%rbx\n" + "cpuid\n" + "xchgl %%ebx, %1\n" + "pop %%rbx\n" +#else + "xchgl %%ebx, %1\n" + "cpuid\n" + "xchgl %%ebx, %1\n" +#endif + : "=a" (CPUInfo[0]), "=r" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#else + __asm__ __volatile__( + "cpuid" + : "=a" (CPUInfo[0]), "=b" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#endif +} +#endif +static int drmp3_have_simd(void) +{ +#ifdef DR_MP3_ONLY_SIMD + return 1; +#else + static int g_have_simd; + int CPUInfo[4]; +#ifdef MINIMP3_TEST + static int g_counter; + if (g_counter++ > 100) + return 0; +#endif + if (g_have_simd) + goto end; + drmp3_cpuid(CPUInfo, 0); + if (CPUInfo[0] > 0) + { + drmp3_cpuid(CPUInfo, 1); + g_have_simd = (CPUInfo[3] & (1 << 26)) + 1; /* SSE2 */ + return g_have_simd - 1; + } + +end: + return g_have_simd - 1; +#endif +} +#elif defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) +#include +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE vst1q_f32 +#define DRMP3_VLD vld1q_f32 +#define DRMP3_VSET vmovq_n_f32 +#define DRMP3_VADD vaddq_f32 +#define DRMP3_VSUB vsubq_f32 +#define DRMP3_VMUL vmulq_f32 +#define DRMP3_VMAC(a, x, y) vmlaq_f32(a, x, y) +#define DRMP3_VMSB(a, x, y) vmlsq_f32(a, x, y) +#define DRMP3_VMUL_S(x, s) vmulq_f32(x, vmovq_n_f32(s)) +#define DRMP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x))) +typedef float32x4_t drmp3_f4; +static int drmp3_have_simd(void) +{ /* TODO: detect neon for !DR_MP3_ONLY_SIMD */ + return 1; +} +#else +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 0 +#ifdef DR_MP3_ONLY_SIMD +#error DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled +#endif +#endif + +#else + +#define DRMP3_HAVE_SIMD 0 + +#endif + +#if defined(__ARM_ARCH) && (__ARM_ARCH >= 6) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(_M_ARM64EC) && !defined(__ARM_ARCH_6M__) +#define DRMP3_HAVE_ARMV6 1 +static __inline__ __attribute__((always_inline)) drmp3_int32 drmp3_clip_int16_arm(drmp3_int32 a) +{ + drmp3_int32 x = 0; + __asm__ ("ssat %0, #16, %1" : "=r"(x) : "r"(a)); + return x; +} +#else +#define DRMP3_HAVE_ARMV6 0 +#endif + + +/* Standard library stuff. */ +#ifndef DRMP3_ASSERT +#include +#define DRMP3_ASSERT(expression) assert(expression) +#endif +#ifndef DRMP3_COPY_MEMORY +#define DRMP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRMP3_MOVE_MEMORY +#define DRMP3_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) +#endif +#ifndef DRMP3_ZERO_MEMORY +#define DRMP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#define DRMP3_ZERO_OBJECT(p) DRMP3_ZERO_MEMORY((p), sizeof(*(p))) +#ifndef DRMP3_MALLOC +#define DRMP3_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRMP3_REALLOC +#define DRMP3_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRMP3_FREE +#define DRMP3_FREE(p) free((p)) +#endif + + + +typedef struct +{ + float scf[3*64]; + drmp3_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64]; +} drmp3_L12_scale_info; + +typedef struct +{ + drmp3_uint8 tab_offset, code_tab_width, band_count; +} drmp3_L12_subband_alloc; + +static void drmp3_bs_init(drmp3_bs *bs, const drmp3_uint8 *data, int bytes) +{ + bs->buf = data; + bs->pos = 0; + bs->limit = bytes*8; +} + +static drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n) +{ + drmp3_uint32 next, cache = 0, s = bs->pos & 7; + int shl = n + s; + const drmp3_uint8 *p = bs->buf + (bs->pos >> 3); + if ((bs->pos += n) > bs->limit) + return 0; + next = *p++ & (255 >> s); + while ((shl -= 8) > 0) + { + cache |= next << shl; + next = *p++; + } + return cache | (next >> -shl); +} + +static int drmp3_hdr_valid(const drmp3_uint8 *h) +{ + return h[0] == 0xff && + ((h[1] & 0xF0) == 0xf0 || (h[1] & 0xFE) == 0xe2) && + (DRMP3_HDR_GET_LAYER(h) != 0) && + (DRMP3_HDR_GET_BITRATE(h) != 15) && + (DRMP3_HDR_GET_SAMPLE_RATE(h) != 3); +} + +static int drmp3_hdr_compare(const drmp3_uint8 *h1, const drmp3_uint8 *h2) +{ + return drmp3_hdr_valid(h2) && + ((h1[1] ^ h2[1]) & 0xFE) == 0 && + ((h1[2] ^ h2[2]) & 0x0C) == 0 && + !(DRMP3_HDR_IS_FREE_FORMAT(h1) ^ DRMP3_HDR_IS_FREE_FORMAT(h2)); +} + +static unsigned drmp3_hdr_bitrate_kbps(const drmp3_uint8 *h) +{ + static const drmp3_uint8 halfrate[2][3][15] = { + { { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,16,24,28,32,40,48,56,64,72,80,88,96,112,128 } }, + { { 0,16,20,24,28,32,40,48,56,64,80,96,112,128,160 }, { 0,16,24,28,32,40,48,56,64,80,96,112,128,160,192 }, { 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224 } }, + }; + return 2*halfrate[!!DRMP3_HDR_TEST_MPEG1(h)][DRMP3_HDR_GET_LAYER(h) - 1][DRMP3_HDR_GET_BITRATE(h)]; +} + +static unsigned drmp3_hdr_sample_rate_hz(const drmp3_uint8 *h) +{ + static const unsigned g_hz[3] = { 44100, 48000, 32000 }; + return g_hz[DRMP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!DRMP3_HDR_TEST_MPEG1(h) >> (int)!DRMP3_HDR_TEST_NOT_MPEG25(h); +} + +static unsigned drmp3_hdr_frame_samples(const drmp3_uint8 *h) +{ + return DRMP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)DRMP3_HDR_IS_FRAME_576(h)); +} + +static int drmp3_hdr_frame_bytes(const drmp3_uint8 *h, int free_format_size) +{ + int frame_bytes = drmp3_hdr_frame_samples(h)*drmp3_hdr_bitrate_kbps(h)*125/drmp3_hdr_sample_rate_hz(h); + if (DRMP3_HDR_IS_LAYER_1(h)) + { + frame_bytes &= ~3; /* slot align */ + } + return frame_bytes ? frame_bytes : free_format_size; +} + +static int drmp3_hdr_padding(const drmp3_uint8 *h) +{ + return DRMP3_HDR_TEST_PADDING(h) ? (DRMP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0; +} + +#ifndef DR_MP3_ONLY_MP3 +static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_uint8 *hdr, drmp3_L12_scale_info *sci) +{ + const drmp3_L12_subband_alloc *alloc; + int mode = DRMP3_HDR_GET_STEREO_MODE(hdr); + int nbands, stereo_bands = (mode == DRMP3_MODE_MONO) ? 0 : (mode == DRMP3_MODE_JOINT_STEREO) ? (DRMP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32; + + if (DRMP3_HDR_IS_LAYER_1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } }; + alloc = g_alloc_L1; + nbands = 32; + } else if (!DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } }; + alloc = g_alloc_L2M2; + nbands = 30; + } else + { + static const drmp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } }; + int sample_rate_idx = DRMP3_HDR_GET_SAMPLE_RATE(hdr); + unsigned kbps = drmp3_hdr_bitrate_kbps(hdr) >> (int)(mode != DRMP3_MODE_MONO); + if (!kbps) /* free-format */ + { + kbps = 192; + } + + alloc = g_alloc_L2M1; + nbands = 27; + if (kbps < 56) + { + static const drmp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } }; + alloc = g_alloc_L2M1_lowrate; + nbands = sample_rate_idx == 2 ? 12 : 8; + } else if (kbps >= 96 && sample_rate_idx != 1) + { + nbands = 30; + } + } + + sci->total_bands = (drmp3_uint8)nbands; + sci->stereo_bands = (drmp3_uint8)DRMP3_MIN(stereo_bands, nbands); + + return alloc; +} + +static void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_uint8 *scfcod, int bands, float *scf) +{ + static const float g_deq_L12[18*3] = { +#define DRMP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x + DRMP3_DQ(3),DRMP3_DQ(7),DRMP3_DQ(15),DRMP3_DQ(31),DRMP3_DQ(63),DRMP3_DQ(127),DRMP3_DQ(255),DRMP3_DQ(511),DRMP3_DQ(1023),DRMP3_DQ(2047),DRMP3_DQ(4095),DRMP3_DQ(8191),DRMP3_DQ(16383),DRMP3_DQ(32767),DRMP3_DQ(65535),DRMP3_DQ(3),DRMP3_DQ(5),DRMP3_DQ(9) + }; + int i, m; + for (i = 0; i < bands; i++) + { + float s = 0; + int ba = *pba++; + int mask = ba ? 4 + ((19 >> scfcod[i]) & 3) : 0; + for (m = 4; m; m >>= 1) + { + if (mask & m) + { + int b = drmp3_bs_get_bits(bs, 6); + s = g_deq_L12[ba*3 - 6 + b % 3]*(int)(1 << 21 >> b/3); + } + *scf++ = s; + } + } +} + +static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp3_L12_scale_info *sci) +{ + static const drmp3_uint8 g_bitalloc_code_tab[] = { + 0,17, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,16, + 0,17,18, 3,19,4,5,16, + 0,17,18,16, + 0,17,18,19, 4,5,6, 7,8, 9,10,11,12,13,14,15, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,14, + 0, 2, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16 + }; + const drmp3_L12_subband_alloc *subband_alloc = drmp3_L12_subband_alloc_table(hdr, sci); + + int i, k = 0, ba_bits = 0; + const drmp3_uint8 *ba_code_tab = g_bitalloc_code_tab; + + for (i = 0; i < sci->total_bands; i++) + { + drmp3_uint8 ba; + if (i == k) + { + k += subband_alloc->band_count; + ba_bits = subband_alloc->code_tab_width; + ba_code_tab = g_bitalloc_code_tab + subband_alloc->tab_offset; + subband_alloc++; + } + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + sci->bitalloc[2*i] = ba; + if (i < sci->stereo_bands) + { + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + } + sci->bitalloc[2*i + 1] = sci->stereo_bands ? ba : 0; + } + + for (i = 0; i < 2*sci->total_bands; i++) + { + sci->scfcod[i] = (drmp3_uint8)(sci->bitalloc[i] ? DRMP3_HDR_IS_LAYER_1(hdr) ? 2 : drmp3_bs_get_bits(bs, 2) : 6); + } + + drmp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf); + + for (i = sci->stereo_bands; i < sci->total_bands; i++) + { + sci->bitalloc[2*i + 1] = 0; + } +} + +static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_scale_info *sci, int group_size) +{ + int i, j, k, choff = 576; + for (j = 0; j < 4; j++) + { + float *dst = grbuf + group_size*j; + for (i = 0; i < 2*sci->total_bands; i++) + { + int ba = sci->bitalloc[i]; + if (ba != 0) + { + if (ba < 17) + { + int half = (1 << (ba - 1)) - 1; + for (k = 0; k < group_size; k++) + { + dst[k] = (float)((int)drmp3_bs_get_bits(bs, ba) - half); + } + } else + { + unsigned mod = (2 << (ba - 17)) + 1; /* 3, 5, 9 */ + unsigned code = drmp3_bs_get_bits(bs, mod + 2 - (mod >> 3)); /* 5, 7, 10 */ + for (k = 0; k < group_size; k++, code /= mod) + { + dst[k] = (float)((int)(code % mod - mod/2)); + } + } + } + dst += choff; + choff = 18 - choff; + } + } + return group_size*4; +} + +static void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, float *dst) +{ + int i, k; + DRMP3_COPY_MEMORY(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float)); + for (i = 0; i < sci->total_bands; i++, dst += 18, scf += 6) + { + for (k = 0; k < 12; k++) + { + dst[k + 0] *= scf[0]; + dst[k + 576] *= scf[3]; + } + } +} +#endif + +static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + static const drmp3_uint8 g_scf_long[8][23] = { + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,54,62,70,76,36,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 4,4,4,4,4,4,6,6,8,8,10,12,16,20,24,28,34,42,50,54,76,158,0 }, + { 4,4,4,4,4,4,6,6,6,8,10,12,16,18,22,28,34,40,46,54,54,192,0 }, + { 4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102,26,0 } + }; + static const drmp3_uint8 g_scf_short[8][40] = { + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 8,8,8,8,8,8,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + static const drmp3_uint8 g_scf_mixed[8][40] = { + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 12,12,12,4,4,4,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + + unsigned tables, scfsi = 0; + int main_data_begin, part_23_sum = 0; + int gr_count = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + int sr_idx = DRMP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0); + + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + gr_count *= 2; + main_data_begin = drmp3_bs_get_bits(bs, 9); + scfsi = drmp3_bs_get_bits(bs, 7 + gr_count); + } else + { + main_data_begin = drmp3_bs_get_bits(bs, 8 + gr_count) >> gr_count; + } + + do + { + if (DRMP3_HDR_IS_MONO(hdr)) + { + scfsi <<= 4; + } + gr->part_23_length = (drmp3_uint16)drmp3_bs_get_bits(bs, 12); + part_23_sum += gr->part_23_length; + gr->big_values = (drmp3_uint16)drmp3_bs_get_bits(bs, 9); + if (gr->big_values > 288) + { + return -1; + } + gr->global_gain = (drmp3_uint8)drmp3_bs_get_bits(bs, 8); + gr->scalefac_compress = (drmp3_uint16)drmp3_bs_get_bits(bs, DRMP3_HDR_TEST_MPEG1(hdr) ? 4 : 9); + gr->sfbtab = g_scf_long[sr_idx]; + gr->n_long_sfb = 22; + gr->n_short_sfb = 0; + if (drmp3_bs_get_bits(bs, 1)) + { + gr->block_type = (drmp3_uint8)drmp3_bs_get_bits(bs, 2); + if (!gr->block_type) + { + return -1; + } + gr->mixed_block_flag = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->region_count[0] = 7; + gr->region_count[1] = 255; + if (gr->block_type == DRMP3_SHORT_BLOCK_TYPE) + { + scfsi &= 0x0F0F; + if (!gr->mixed_block_flag) + { + gr->region_count[0] = 8; + gr->sfbtab = g_scf_short[sr_idx]; + gr->n_long_sfb = 0; + gr->n_short_sfb = 39; + } else + { + gr->sfbtab = g_scf_mixed[sr_idx]; + gr->n_long_sfb = DRMP3_HDR_TEST_MPEG1(hdr) ? 8 : 6; + gr->n_short_sfb = 30; + } + } + tables = drmp3_bs_get_bits(bs, 10); + tables <<= 5; + gr->subblock_gain[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[2] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + } else + { + gr->block_type = 0; + gr->mixed_block_flag = 0; + tables = drmp3_bs_get_bits(bs, 15); + gr->region_count[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 4); + gr->region_count[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->region_count[2] = 255; + } + gr->table_select[0] = (drmp3_uint8)(tables >> 10); + gr->table_select[1] = (drmp3_uint8)((tables >> 5) & 31); + gr->table_select[2] = (drmp3_uint8)((tables) & 31); + gr->preflag = (drmp3_uint8)(DRMP3_HDR_TEST_MPEG1(hdr) ? drmp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500)); + gr->scalefac_scale = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->count1_table = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->scfsi = (drmp3_uint8)((scfsi >> 12) & 15); + scfsi <<= 4; + gr++; + } while(--gr_count); + + if (part_23_sum + bs->pos > bs->limit + main_data_begin*8) + { + return -1; + } + + return main_data_begin; +} + +static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, const drmp3_uint8 *scf_size, const drmp3_uint8 *scf_count, drmp3_bs *bitbuf, int scfsi) +{ + int i, k; + for (i = 0; i < 4 && scf_count[i]; i++, scfsi *= 2) + { + int cnt = scf_count[i]; + if (scfsi & 8) + { + DRMP3_COPY_MEMORY(scf, ist_pos, cnt); + } else + { + int bits = scf_size[i]; + if (!bits) + { + DRMP3_ZERO_MEMORY(scf, cnt); + DRMP3_ZERO_MEMORY(ist_pos, cnt); + } else + { + int max_scf = (scfsi < 0) ? (1 << bits) - 1 : -1; + for (k = 0; k < cnt; k++) + { + int s = drmp3_bs_get_bits(bitbuf, bits); + ist_pos[k] = (drmp3_uint8)(s == max_scf ? -1 : s); + scf[k] = (drmp3_uint8)s; + } + } + } + ist_pos += cnt; + scf += cnt; + } + scf[0] = scf[1] = scf[2] = 0; +} + +static float drmp3_L3_ldexp_q2(float y, int exp_q2) +{ + static const float g_expfrac[4] = { 9.31322575e-10f,7.83145814e-10f,6.58544508e-10f,5.53767716e-10f }; + int e; + do + { + e = DRMP3_MIN(30*4, exp_q2); + y *= g_expfrac[e & 3]*(1 << 30 >> (e >> 2)); + } while ((exp_q2 -= e) > 0); + return y; +} + +/* +I've had reports of GCC 14 throwing an incorrect -Wstringop-overflow warning here. This is an attempt +to silence this warning. +*/ +#if (defined(__GNUC__) && (__GNUC__ >= 13)) && !defined(__clang__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstringop-overflow" +#endif +static void drmp3_L3_decode_scalefactors(const drmp3_uint8 *hdr, drmp3_uint8 *ist_pos, drmp3_bs *bs, const drmp3_L3_gr_info *gr, float *scf, int ch) +{ + static const drmp3_uint8 g_scf_partitions[3][28] = { + { 6,5,5, 5,6,5,5,5,6,5, 7,3,11,10,0,0, 7, 7, 7,0, 6, 6,6,3, 8, 8,5,0 }, + { 8,9,6,12,6,9,9,9,6,9,12,6,15,18,0,0, 6,15,12,0, 6,12,9,6, 6,18,9,0 }, + { 9,9,6,12,9,9,9,9,9,9,12,6,18,18,0,0,12,12,12,0,12, 9,9,6,15,12,9,0 } + }; + const drmp3_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb]; + drmp3_uint8 scf_size[4], iscf[40]; + int i, scf_shift = gr->scalefac_scale + 1, gain_exp, scfsi = gr->scfsi; + float gain; + + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 }; + int part = g_scfc_decode[gr->scalefac_compress]; + scf_size[1] = scf_size[0] = (drmp3_uint8)(part >> 2); + scf_size[3] = scf_size[2] = (drmp3_uint8)(part & 3); + } else + { + static const drmp3_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 }; + int k, modprod, sfc, ist = DRMP3_HDR_TEST_I_STEREO(hdr) && ch; + sfc = gr->scalefac_compress >> ist; + for (k = ist*3*4; sfc >= 0; sfc -= modprod, k += 4) + { + for (modprod = 1, i = 3; i >= 0; i--) + { + scf_size[i] = (drmp3_uint8)(sfc / modprod % g_mod[k + i]); + modprod *= g_mod[k + i]; + } + } + scf_partition += k; + scfsi = -16; + } + drmp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi); + + if (gr->n_short_sfb) + { + int sh = 3 - scf_shift; + for (i = 0; i < gr->n_short_sfb; i += 3) + { + iscf[gr->n_long_sfb + i + 0] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 0] + (gr->subblock_gain[0] << sh)); + iscf[gr->n_long_sfb + i + 1] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 1] + (gr->subblock_gain[1] << sh)); + iscf[gr->n_long_sfb + i + 2] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 2] + (gr->subblock_gain[2] << sh)); + } + } else if (gr->preflag) + { + static const drmp3_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 }; + for (i = 0; i < 10; i++) + { + iscf[11 + i] = (drmp3_uint8)(iscf[11 + i] + g_preamp[i]); + } + } + + gain_exp = gr->global_gain + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210 - (DRMP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0); + gain = drmp3_L3_ldexp_q2(1 << (DRMP3_MAX_SCFI/4), DRMP3_MAX_SCFI - gain_exp); + for (i = 0; i < (int)(gr->n_long_sfb + gr->n_short_sfb); i++) + { + scf[i] = drmp3_L3_ldexp_q2(gain, iscf[i] << scf_shift); + } +} +#if (defined(__GNUC__) && (__GNUC__ >= 13)) && !defined(__clang__) + #pragma GCC diagnostic pop +#endif + +static const float g_drmp3_pow43[129 + 16] = { + 0,-1,-2.519842f,-4.326749f,-6.349604f,-8.549880f,-10.902724f,-13.390518f,-16.000000f,-18.720754f,-21.544347f,-24.463781f,-27.473142f,-30.567351f,-33.741992f,-36.993181f, + 0,1,2.519842f,4.326749f,6.349604f,8.549880f,10.902724f,13.390518f,16.000000f,18.720754f,21.544347f,24.463781f,27.473142f,30.567351f,33.741992f,36.993181f,40.317474f,43.711787f,47.173345f,50.699631f,54.288352f,57.937408f,61.644865f,65.408941f,69.227979f,73.100443f,77.024898f,81.000000f,85.024491f,89.097188f,93.216975f,97.382800f,101.593667f,105.848633f,110.146801f,114.487321f,118.869381f,123.292209f,127.755065f,132.257246f,136.798076f,141.376907f,145.993119f,150.646117f,155.335327f,160.060199f,164.820202f,169.614826f,174.443577f,179.305980f,184.201575f,189.129918f,194.090580f,199.083145f,204.107210f,209.162385f,214.248292f,219.364564f,224.510845f,229.686789f,234.892058f,240.126328f,245.389280f,250.680604f,256.000000f,261.347174f,266.721841f,272.123723f,277.552547f,283.008049f,288.489971f,293.998060f,299.532071f,305.091761f,310.676898f,316.287249f,321.922592f,327.582707f,333.267377f,338.976394f,344.709550f,350.466646f,356.247482f,362.051866f,367.879608f,373.730522f,379.604427f,385.501143f,391.420496f,397.362314f,403.326427f,409.312672f,415.320884f,421.350905f,427.402579f,433.475750f,439.570269f,445.685987f,451.822757f,457.980436f,464.158883f,470.357960f,476.577530f,482.817459f,489.077615f,495.357868f,501.658090f,507.978156f,514.317941f,520.677324f,527.056184f,533.454404f,539.871867f,546.308458f,552.764065f,559.238575f,565.731879f,572.243870f,578.774440f,585.323483f,591.890898f,598.476581f,605.080431f,611.702349f,618.342238f,625.000000f,631.675540f,638.368763f,645.079578f +}; + +static float drmp3_L3_pow_43(int x) +{ + float frac; + int sign, mult = 256; + + if (x < 129) + { + return g_drmp3_pow43[16 + x]; + } + + if (x < 1024) + { + mult = 16; + x <<= 3; + } + + sign = 2*x & 64; + frac = (float)((x & 63) - sign) / ((x & ~63) + sign); + return g_drmp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult; +} + +static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit) +{ + static const drmp3_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785,785,785,785,784,784,784,784,513,513,513,513,513,513,513,513,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, + -255,1313,1298,1282,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,290,288, + -255,1313,1298,1282,769,769,769,769,529,529,529,529,529,529,529,529,528,528,528,528,528,528,528,528,512,512,512,512,512,512,512,512,290,288, + -253,-318,-351,-367,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,819,818,547,547,275,275,275,275,561,560,515,546,289,274,288,258, + -254,-287,1329,1299,1314,1312,1057,1057,1042,1042,1026,1026,784,784,784,784,529,529,529,529,529,529,529,529,769,769,769,769,768,768,768,768,563,560,306,306,291,259, + -252,-413,-477,-542,1298,-575,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-383,-399,1107,1092,1106,1061,849,849,789,789,1104,1091,773,773,1076,1075,341,340,325,309,834,804,577,577,532,532,516,516,832,818,803,816,561,561,531,531,515,546,289,289,288,258, + -252,-429,-493,-559,1057,1057,1042,1042,529,529,529,529,529,529,529,529,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,-382,1077,-415,1106,1061,1104,849,849,789,789,1091,1076,1029,1075,834,834,597,581,340,340,339,324,804,833,532,532,832,772,818,803,817,787,816,771,290,290,290,290,288,258, + -253,-349,-414,-447,-463,1329,1299,-479,1314,1312,1057,1057,1042,1042,1026,1026,785,785,785,785,784,784,784,784,769,769,769,769,768,768,768,768,-319,851,821,-335,836,850,805,849,341,340,325,336,533,533,579,579,564,564,773,832,578,548,563,516,321,276,306,291,304,259, + -251,-572,-733,-830,-863,-879,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,1396,1351,1381,1366,1395,1335,1380,-559,1334,1138,1138,1063,1063,1350,1392,1031,1031,1062,1062,1364,1363,1120,1120,1333,1348,881,881,881,881,375,374,359,373,343,358,341,325,791,791,1123,1122,-703,1105,1045,-719,865,865,790,790,774,774,1104,1029,338,293,323,308,-799,-815,833,788,772,818,803,816,322,292,307,320,561,531,515,546,289,274,288,258, + -251,-525,-605,-685,-765,-831,-846,1298,1057,1057,1312,1282,785,785,785,785,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,1399,1398,1383,1367,1382,1396,1351,-511,1381,1366,1139,1139,1079,1079,1124,1124,1364,1349,1363,1333,882,882,882,882,807,807,807,807,1094,1094,1136,1136,373,341,535,535,881,775,867,822,774,-591,324,338,-671,849,550,550,866,864,609,609,293,336,534,534,789,835,773,-751,834,804,308,307,833,788,832,772,562,562,547,547,305,275,560,515,290,290, + -252,-397,-477,-557,-622,-653,-719,-735,-750,1329,1299,1314,1057,1057,1042,1042,1312,1282,1024,1024,785,785,785,785,784,784,784,784,769,769,769,769,-383,1127,1141,1111,1126,1140,1095,1110,869,869,883,883,1079,1109,882,882,375,374,807,868,838,881,791,-463,867,822,368,263,852,837,836,-543,610,610,550,550,352,336,534,534,865,774,851,821,850,805,593,533,579,564,773,832,578,578,548,548,577,577,307,276,306,291,516,560,259,259, + -250,-2107,-2507,-2764,-2909,-2974,-3007,-3023,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-767,-1052,-1213,-1277,-1358,-1405,-1469,-1535,-1550,-1582,-1614,-1647,-1662,-1694,-1726,-1759,-1774,-1807,-1822,-1854,-1886,1565,-1919,-1935,-1951,-1967,1731,1730,1580,1717,-1983,1729,1564,-1999,1548,-2015,-2031,1715,1595,-2047,1714,-2063,1610,-2079,1609,-2095,1323,1323,1457,1457,1307,1307,1712,1547,1641,1700,1699,1594,1685,1625,1442,1442,1322,1322,-780,-973,-910,1279,1278,1277,1262,1276,1261,1275,1215,1260,1229,-959,974,974,989,989,-943,735,478,478,495,463,506,414,-1039,1003,958,1017,927,942,987,957,431,476,1272,1167,1228,-1183,1256,-1199,895,895,941,941,1242,1227,1212,1135,1014,1014,490,489,503,487,910,1013,985,925,863,894,970,955,1012,847,-1343,831,755,755,984,909,428,366,754,559,-1391,752,486,457,924,997,698,698,983,893,740,740,908,877,739,739,667,667,953,938,497,287,271,271,683,606,590,712,726,574,302,302,738,736,481,286,526,725,605,711,636,724,696,651,589,681,666,710,364,467,573,695,466,466,301,465,379,379,709,604,665,679,316,316,634,633,436,436,464,269,424,394,452,332,438,363,347,408,393,448,331,422,362,407,392,421,346,406,391,376,375,359,1441,1306,-2367,1290,-2383,1337,-2399,-2415,1426,1321,-2431,1411,1336,-2447,-2463,-2479,1169,1169,1049,1049,1424,1289,1412,1352,1319,-2495,1154,1154,1064,1064,1153,1153,416,390,360,404,403,389,344,374,373,343,358,372,327,357,342,311,356,326,1395,1394,1137,1137,1047,1047,1365,1392,1287,1379,1334,1364,1349,1378,1318,1363,792,792,792,792,1152,1152,1032,1032,1121,1121,1046,1046,1120,1120,1030,1030,-2895,1106,1061,1104,849,849,789,789,1091,1076,1029,1090,1060,1075,833,833,309,324,532,532,832,772,818,803,561,561,531,560,515,546,289,274,288,258, + -250,-1179,-1579,-1836,-1996,-2124,-2253,-2333,-2413,-2477,-2542,-2574,-2607,-2622,-2655,1314,1313,1298,1312,1282,785,785,785,785,1040,1040,1025,1025,768,768,768,768,-766,-798,-830,-862,-895,-911,-927,-943,-959,-975,-991,-1007,-1023,-1039,-1055,-1070,1724,1647,-1103,-1119,1631,1767,1662,1738,1708,1723,-1135,1780,1615,1779,1599,1677,1646,1778,1583,-1151,1777,1567,1737,1692,1765,1722,1707,1630,1751,1661,1764,1614,1736,1676,1763,1750,1645,1598,1721,1691,1762,1706,1582,1761,1566,-1167,1749,1629,767,766,751,765,494,494,735,764,719,749,734,763,447,447,748,718,477,506,431,491,446,476,461,505,415,430,475,445,504,399,460,489,414,503,383,474,429,459,502,502,746,752,488,398,501,473,413,472,486,271,480,270,-1439,-1455,1357,-1471,-1487,-1503,1341,1325,-1519,1489,1463,1403,1309,-1535,1372,1448,1418,1476,1356,1462,1387,-1551,1475,1340,1447,1402,1386,-1567,1068,1068,1474,1461,455,380,468,440,395,425,410,454,364,467,466,464,453,269,409,448,268,432,1371,1473,1432,1417,1308,1460,1355,1446,1459,1431,1083,1083,1401,1416,1458,1445,1067,1067,1370,1457,1051,1051,1291,1430,1385,1444,1354,1415,1400,1443,1082,1082,1173,1113,1186,1066,1185,1050,-1967,1158,1128,1172,1097,1171,1081,-1983,1157,1112,416,266,375,400,1170,1142,1127,1065,793,793,1169,1033,1156,1096,1141,1111,1155,1080,1126,1140,898,898,808,808,897,897,792,792,1095,1152,1032,1125,1110,1139,1079,1124,882,807,838,881,853,791,-2319,867,368,263,822,852,837,866,806,865,-2399,851,352,262,534,534,821,836,594,594,549,549,593,593,533,533,848,773,579,579,564,578,548,563,276,276,577,576,306,291,516,560,305,305,275,259, + -251,-892,-2058,-2620,-2828,-2957,-3023,-3039,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,-559,1530,-575,-591,1528,1527,1407,1526,1391,1023,1023,1023,1023,1525,1375,1268,1268,1103,1103,1087,1087,1039,1039,1523,-604,815,815,815,815,510,495,509,479,508,463,507,447,431,505,415,399,-734,-782,1262,-815,1259,1244,-831,1258,1228,-847,-863,1196,-879,1253,987,987,748,-767,493,493,462,477,414,414,686,669,478,446,461,445,474,429,487,458,412,471,1266,1264,1009,1009,799,799,-1019,-1276,-1452,-1581,-1677,-1757,-1821,-1886,-1933,-1997,1257,1257,1483,1468,1512,1422,1497,1406,1467,1496,1421,1510,1134,1134,1225,1225,1466,1451,1374,1405,1252,1252,1358,1480,1164,1164,1251,1251,1238,1238,1389,1465,-1407,1054,1101,-1423,1207,-1439,830,830,1248,1038,1237,1117,1223,1148,1236,1208,411,426,395,410,379,269,1193,1222,1132,1235,1221,1116,976,976,1192,1162,1177,1220,1131,1191,963,963,-1647,961,780,-1663,558,558,994,993,437,408,393,407,829,978,813,797,947,-1743,721,721,377,392,844,950,828,890,706,706,812,859,796,960,948,843,934,874,571,571,-1919,690,555,689,421,346,539,539,944,779,918,873,932,842,903,888,570,570,931,917,674,674,-2575,1562,-2591,1609,-2607,1654,1322,1322,1441,1441,1696,1546,1683,1593,1669,1624,1426,1426,1321,1321,1639,1680,1425,1425,1305,1305,1545,1668,1608,1623,1667,1592,1638,1666,1320,1320,1652,1607,1409,1409,1304,1304,1288,1288,1664,1637,1395,1395,1335,1335,1622,1636,1394,1394,1319,1319,1606,1621,1392,1392,1137,1137,1137,1137,345,390,360,375,404,373,1047,-2751,-2767,-2783,1062,1121,1046,-2799,1077,-2815,1106,1061,789,789,1105,1104,263,355,310,340,325,354,352,262,339,324,1091,1076,1029,1090,1060,1075,833,833,788,788,1088,1028,818,818,803,803,561,561,531,531,816,771,546,546,289,274,288,258, + -253,-317,-381,-446,-478,-509,1279,1279,-811,-1179,-1451,-1756,-1900,-2028,-2189,-2253,-2333,-2414,-2445,-2511,-2526,1313,1298,-2559,1041,1041,1040,1040,1025,1025,1024,1024,1022,1007,1021,991,1020,975,1019,959,687,687,1018,1017,671,671,655,655,1016,1015,639,639,758,758,623,623,757,607,756,591,755,575,754,559,543,543,1009,783,-575,-621,-685,-749,496,-590,750,749,734,748,974,989,1003,958,988,973,1002,942,987,957,972,1001,926,986,941,971,956,1000,910,985,925,999,894,970,-1071,-1087,-1102,1390,-1135,1436,1509,1451,1374,-1151,1405,1358,1480,1420,-1167,1507,1494,1389,1342,1465,1435,1450,1326,1505,1310,1493,1373,1479,1404,1492,1464,1419,428,443,472,397,736,526,464,464,486,457,442,471,484,482,1357,1449,1434,1478,1388,1491,1341,1490,1325,1489,1463,1403,1309,1477,1372,1448,1418,1433,1476,1356,1462,1387,-1439,1475,1340,1447,1402,1474,1324,1461,1371,1473,269,448,1432,1417,1308,1460,-1711,1459,-1727,1441,1099,1099,1446,1386,1431,1401,-1743,1289,1083,1083,1160,1160,1458,1445,1067,1067,1370,1457,1307,1430,1129,1129,1098,1098,268,432,267,416,266,400,-1887,1144,1187,1082,1173,1113,1186,1066,1050,1158,1128,1143,1172,1097,1171,1081,420,391,1157,1112,1170,1142,1127,1065,1169,1049,1156,1096,1141,1111,1155,1080,1126,1154,1064,1153,1140,1095,1048,-2159,1125,1110,1137,-2175,823,823,1139,1138,807,807,384,264,368,263,868,838,853,791,867,822,852,837,866,806,865,790,-2319,851,821,836,352,262,850,805,849,-2399,533,533,835,820,336,261,578,548,563,577,532,532,832,772,562,562,547,547,305,275,560,515,290,290,288,258 }; + static const drmp3_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205}; + static const drmp3_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 }; + static const drmp3_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 }; + static const drmp3_uint8 g_linbits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 }; + +#define DRMP3_PEEK_BITS(n) (bs_cache >> (32 - (n))) +#define DRMP3_FLUSH_BITS(n) { bs_cache <<= (n); bs_sh += (n); } +#define DRMP3_CHECK_BITS while (bs_sh >= 0) { bs_cache |= (drmp3_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; } +#define DRMP3_BSPOS ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh) + + float one = 0.0f; + int ireg = 0, big_val_cnt = gr_info->big_values; + const drmp3_uint8 *sfb = gr_info->sfbtab; + const drmp3_uint8 *bs_next_ptr = bs->buf + bs->pos/8; + drmp3_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7); + int pairs_to_decode, np, bs_sh = (bs->pos & 7) - 8; + bs_next_ptr += 4; + + while (big_val_cnt > 0) + { + int tab_num = gr_info->table_select[ireg]; + int sfb_cnt = gr_info->region_count[ireg++]; + const drmp3_int16 *codebook = tabs + tabindex[tab_num]; + int linbits = g_linbits[tab_num]; + if (linbits) + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + if (lsb == 15) + { + lsb += DRMP3_PEEK_BITS(linbits); + DRMP3_FLUSH_BITS(linbits); + DRMP3_CHECK_BITS; + *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); + } else + { + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + } + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } else + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } + } + + for (np = 1 - big_val_cnt;; dst += 4) + { + const drmp3_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32; + int leaf = codebook_count1[DRMP3_PEEK_BITS(4)]; + if (!(leaf & 8)) + { + leaf = codebook_count1[(leaf >> 3) + (bs_cache << 4 >> (32 - (leaf & 3)))]; + } + DRMP3_FLUSH_BITS(leaf & 7); + if (DRMP3_BSPOS > layer3gr_limit) + { + break; + } +#define DRMP3_RELOAD_SCALEFACTOR if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; } +#define DRMP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((drmp3_int32)bs_cache < 0) ? -one : one; DRMP3_FLUSH_BITS(1) } + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(0); + DRMP3_DEQ_COUNT1(1); + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(2); + DRMP3_DEQ_COUNT1(3); + DRMP3_CHECK_BITS; + } + + bs->pos = layer3gr_limit; +} + +static void drmp3_L3_midside_stereo(float *left, int n) +{ + int i = 0; + float *right = left + 576; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) + { + for (; i < n - 3; i += 4) + { + drmp3_f4 vl = DRMP3_VLD(left + i); + drmp3_f4 vr = DRMP3_VLD(right + i); + DRMP3_VSTORE(left + i, DRMP3_VADD(vl, vr)); + DRMP3_VSTORE(right + i, DRMP3_VSUB(vl, vr)); + } +#ifdef __GNUC__ + /* Workaround for spurious -Waggressive-loop-optimizations warning from gcc. + * For more info see: https://github.com/lieff/minimp3/issues/88 + */ + if (__builtin_constant_p(n % 4 == 0) && n % 4 == 0) + return; +#endif + } +#endif + for (; i < n; i++) + { + float a = left[i]; + float b = right[i]; + left[i] = a + b; + right[i] = a - b; + } +} + +static void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr) +{ + int i; + for (i = 0; i < n; i++) + { + left[i + 576] = left[i]*kr; + left[i] = left[i]*kl; + } +} + +static void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, int nbands, int max_band[3]) +{ + int i, k; + + max_band[0] = max_band[1] = max_band[2] = -1; + + for (i = 0; i < nbands; i++) + { + for (k = 0; k < sfb[i]; k += 2) + { + if (right[k] != 0 || right[k + 1] != 0) + { + max_band[i % 3] = i; + break; + } + } + right += sfb[i]; + } +} + +static void drmp3_L3_stereo_process(float *left, const drmp3_uint8 *ist_pos, const drmp3_uint8 *sfb, const drmp3_uint8 *hdr, int max_band[3], int mpeg2_sh) +{ + static const float g_pan[7*2] = { 0,1,0.21132487f,0.78867513f,0.36602540f,0.63397460f,0.5f,0.5f,0.63397460f,0.36602540f,0.78867513f,0.21132487f,1,0 }; + unsigned i, max_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 7 : 64; + + for (i = 0; sfb[i]; i++) + { + unsigned ipos = ist_pos[i]; + if ((int)i > max_band[i % 3] && ipos < max_pos) + { + float kl, kr, s = DRMP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1; + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + kl = g_pan[2*ipos]; + kr = g_pan[2*ipos + 1]; + } else + { + kl = 1; + kr = drmp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh); + if (ipos & 1) + { + kl = kr; + kr = 1; + } + } + drmp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s); + } else if (DRMP3_HDR_TEST_MS_STEREO(hdr)) + { + drmp3_L3_midside_stereo(left, sfb[i]); + } + left += sfb[i]; + } +} + +static void drmp3_L3_intensity_stereo(float *left, drmp3_uint8 *ist_pos, const drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + int max_band[3], n_sfb = gr->n_long_sfb + gr->n_short_sfb; + int i, max_blocks = gr->n_short_sfb ? 3 : 1; + + drmp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band); + if (gr->n_long_sfb) + { + max_band[0] = max_band[1] = max_band[2] = DRMP3_MAX(DRMP3_MAX(max_band[0], max_band[1]), max_band[2]); + } + for (i = 0; i < max_blocks; i++) + { + int default_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 3 : 0; + int itop = n_sfb - max_blocks + i; + int prev = itop - max_blocks; + ist_pos[itop] = (drmp3_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]); + } + drmp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1); +} + +static void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sfb) +{ + int i, len; + float *src = grbuf, *dst = scratch; + + for (;0 != (len = *sfb); sfb += 3, src += 2*len) + { + for (i = 0; i < len; i++, src++) + { + *dst++ = src[0*len]; + *dst++ = src[1*len]; + *dst++ = src[2*len]; + } + } + DRMP3_COPY_MEMORY(grbuf, scratch, (dst - scratch)*sizeof(float)); +} + +static void drmp3_L3_antialias(float *grbuf, int nbands) +{ + static const float g_aa[2][8] = { + {0.85749293f,0.88174200f,0.94962865f,0.98331459f,0.99551782f,0.99916056f,0.99989920f,0.99999316f}, + {0.51449576f,0.47173197f,0.31337745f,0.18191320f,0.09457419f,0.04096558f,0.01419856f,0.00369997f} + }; + + for (; nbands > 0; nbands--, grbuf += 18) + { + int i = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vu = DRMP3_VLD(grbuf + 18 + i); + drmp3_f4 vd = DRMP3_VLD(grbuf + 14 - i); + drmp3_f4 vc0 = DRMP3_VLD(g_aa[0] + i); + drmp3_f4 vc1 = DRMP3_VLD(g_aa[1] + i); + vd = DRMP3_VREV(vd); + DRMP3_VSTORE(grbuf + 18 + i, DRMP3_VSUB(DRMP3_VMUL(vu, vc0), DRMP3_VMUL(vd, vc1))); + vd = DRMP3_VADD(DRMP3_VMUL(vu, vc1), DRMP3_VMUL(vd, vc0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vd)); + } +#endif +#ifndef DR_MP3_ONLY_SIMD + for(; i < 8; i++) + { + float u = grbuf[18 + i]; + float d = grbuf[17 - i]; + grbuf[18 + i] = u*g_aa[0][i] - d*g_aa[1][i]; + grbuf[17 - i] = u*g_aa[1][i] + d*g_aa[0][i]; + } +#endif + } +} + +static void drmp3_L3_dct3_9(float *y) +{ + float s0, s1, s2, s3, s4, s5, s6, s7, s8, t0, t2, t4; + + s0 = y[0]; s2 = y[2]; s4 = y[4]; s6 = y[6]; s8 = y[8]; + t0 = s0 + s6*0.5f; + s0 -= s6; + t4 = (s4 + s2)*0.93969262f; + t2 = (s8 + s2)*0.76604444f; + s6 = (s4 - s8)*0.17364818f; + s4 += s8 - s2; + + s2 = s0 - s4*0.5f; + y[4] = s4 + s0; + s8 = t0 - t2 + s6; + s0 = t0 - t4 + t2; + s4 = t0 + t4 - s6; + + s1 = y[1]; s3 = y[3]; s5 = y[5]; s7 = y[7]; + + s3 *= 0.86602540f; + t0 = (s5 + s1)*0.98480775f; + t4 = (s5 - s7)*0.34202014f; + t2 = (s1 + s7)*0.64278761f; + s1 = (s1 - s5 - s7)*0.86602540f; + + s5 = t0 - s3 - t2; + s7 = t4 - s3 - t0; + s3 = t4 + s3 - t2; + + y[0] = s4 - s7; + y[1] = s2 + s1; + y[2] = s0 - s3; + y[3] = s8 + s5; + y[5] = s8 - s5; + y[6] = s0 + s3; + y[7] = s2 - s1; + y[8] = s4 + s7; +} + +static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands) +{ + int i, j; + static const float g_twid9[18] = { + 0.73727734f,0.79335334f,0.84339145f,0.88701083f,0.92387953f,0.95371695f,0.97629601f,0.99144486f,0.99904822f,0.67559021f,0.60876143f,0.53729961f,0.46174861f,0.38268343f,0.30070580f,0.21643961f,0.13052619f,0.04361938f + }; + + for (j = 0; j < nbands; j++, grbuf += 18, overlap += 9) + { + float co[9], si[9]; + co[0] = -grbuf[0]; + si[0] = grbuf[17]; + for (i = 0; i < 4; i++) + { + si[8 - 2*i] = grbuf[4*i + 1] - grbuf[4*i + 2]; + co[1 + 2*i] = grbuf[4*i + 1] + grbuf[4*i + 2]; + si[7 - 2*i] = grbuf[4*i + 4] - grbuf[4*i + 3]; + co[2 + 2*i] = -(grbuf[4*i + 3] + grbuf[4*i + 4]); + } + drmp3_L3_dct3_9(co); + drmp3_L3_dct3_9(si); + + si[1] = -si[1]; + si[3] = -si[3]; + si[5] = -si[5]; + si[7] = -si[7]; + + i = 0; + +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vovl = DRMP3_VLD(overlap + i); + drmp3_f4 vc = DRMP3_VLD(co + i); + drmp3_f4 vs = DRMP3_VLD(si + i); + drmp3_f4 vr0 = DRMP3_VLD(g_twid9 + i); + drmp3_f4 vr1 = DRMP3_VLD(g_twid9 + 9 + i); + drmp3_f4 vw0 = DRMP3_VLD(window + i); + drmp3_f4 vw1 = DRMP3_VLD(window + 9 + i); + drmp3_f4 vsum = DRMP3_VADD(DRMP3_VMUL(vc, vr1), DRMP3_VMUL(vs, vr0)); + DRMP3_VSTORE(overlap + i, DRMP3_VSUB(DRMP3_VMUL(vc, vr0), DRMP3_VMUL(vs, vr1))); + DRMP3_VSTORE(grbuf + i, DRMP3_VSUB(DRMP3_VMUL(vovl, vw0), DRMP3_VMUL(vsum, vw1))); + vsum = DRMP3_VADD(DRMP3_VMUL(vovl, vw1), DRMP3_VMUL(vsum, vw0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vsum)); + } +#endif + for (; i < 9; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid9[9 + i] + si[i]*g_twid9[0 + i]; + overlap[i] = co[i]*g_twid9[0 + i] - si[i]*g_twid9[9 + i]; + grbuf[i] = ovl*window[0 + i] - sum*window[9 + i]; + grbuf[17 - i] = ovl*window[9 + i] + sum*window[0 + i]; + } + } +} + +static void drmp3_L3_idct3(float x0, float x1, float x2, float *dst) +{ + float m1 = x1*0.86602540f; + float a1 = x0 - x2*0.5f; + dst[1] = x0 + x2; + dst[0] = a1 + m1; + dst[2] = a1 - m1; +} + +static void drmp3_L3_imdct12(float *x, float *dst, float *overlap) +{ + static const float g_twid3[6] = { 0.79335334f,0.92387953f,0.99144486f, 0.60876143f,0.38268343f,0.13052619f }; + float co[3], si[3]; + int i; + + drmp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co); + drmp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si); + si[1] = -si[1]; + + for (i = 0; i < 3; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid3[3 + i] + si[i]*g_twid3[0 + i]; + overlap[i] = co[i]*g_twid3[0 + i] - si[i]*g_twid3[3 + i]; + dst[i] = ovl*g_twid3[2 - i] - sum*g_twid3[5 - i]; + dst[5 - i] = ovl*g_twid3[5 - i] + sum*g_twid3[2 - i]; + } +} + +static void drmp3_L3_imdct_short(float *grbuf, float *overlap, int nbands) +{ + for (;nbands > 0; nbands--, overlap += 9, grbuf += 18) + { + float tmp[18]; + DRMP3_COPY_MEMORY(tmp, grbuf, sizeof(tmp)); + DRMP3_COPY_MEMORY(grbuf, overlap, 6*sizeof(float)); + drmp3_L3_imdct12(tmp, grbuf + 6, overlap + 6); + drmp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6); + drmp3_L3_imdct12(tmp + 2, overlap, overlap + 6); + } +} + +static void drmp3_L3_change_sign(float *grbuf) +{ + int b, i; + for (b = 0, grbuf += 18; b < 32; b += 2, grbuf += 36) + for (i = 1; i < 18; i += 2) + grbuf[i] = -grbuf[i]; +} + +static void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands) +{ + static const float g_mdct_window[2][18] = { + { 0.99904822f,0.99144486f,0.97629601f,0.95371695f,0.92387953f,0.88701083f,0.84339145f,0.79335334f,0.73727734f,0.04361938f,0.13052619f,0.21643961f,0.30070580f,0.38268343f,0.46174861f,0.53729961f,0.60876143f,0.67559021f }, + { 1,1,1,1,1,1,0.99144486f,0.92387953f,0.79335334f,0,0,0,0,0,0,0.13052619f,0.38268343f,0.60876143f } + }; + if (n_long_bands) + { + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands); + grbuf += 18*n_long_bands; + overlap += 9*n_long_bands; + } + if (block_type == DRMP3_SHORT_BLOCK_TYPE) + drmp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands); + else + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == DRMP3_STOP_BLOCK_TYPE], 32 - n_long_bands); +} + +static void drmp3_L3_save_reservoir(drmp3dec *h, drmp3dec_scratch *s) +{ + int pos = (s->bs.pos + 7)/8u; + int remains = s->bs.limit/8u - pos; + if (remains > DRMP3_MAX_BITRESERVOIR_BYTES) + { + pos += remains - DRMP3_MAX_BITRESERVOIR_BYTES; + remains = DRMP3_MAX_BITRESERVOIR_BYTES; + } + if (remains > 0) + { + DRMP3_MOVE_MEMORY(h->reserv_buf, s->maindata + pos, remains); + } + h->reserv = remains; +} + +static int drmp3_L3_restore_reservoir(drmp3dec *h, drmp3_bs *bs, drmp3dec_scratch *s, int main_data_begin) +{ + int frame_bytes = (bs->limit - bs->pos)/8; + int bytes_have = DRMP3_MIN(h->reserv, main_data_begin); + DRMP3_COPY_MEMORY(s->maindata, h->reserv_buf + DRMP3_MAX(0, h->reserv - main_data_begin), DRMP3_MIN(h->reserv, main_data_begin)); + DRMP3_COPY_MEMORY(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes); + drmp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes); + return h->reserv >= main_data_begin; +} + +static void drmp3_L3_decode(drmp3dec *h, drmp3dec_scratch *s, drmp3_L3_gr_info *gr_info, int nch) +{ + int ch; + + for (ch = 0; ch < nch; ch++) + { + int layer3gr_limit = s->bs.pos + gr_info[ch].part_23_length; + drmp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch); + drmp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit); + } + + if (DRMP3_HDR_TEST_I_STEREO(h->header)) + { + drmp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header); + } else if (DRMP3_HDR_IS_MS_STEREO(h->header)) + { + drmp3_L3_midside_stereo(s->grbuf[0], 576); + } + + for (ch = 0; ch < nch; ch++, gr_info++) + { + int aa_bands = 31; + int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(DRMP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2); + + if (gr_info->n_short_sfb) + { + aa_bands = n_long_bands - 1; + drmp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb); + } + + drmp3_L3_antialias(s->grbuf[ch], aa_bands); + drmp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands); + drmp3_L3_change_sign(s->grbuf[ch]); + } +} + +static void drmp3d_DCT_II(float *grbuf, int n) +{ + static const float g_sec[24] = { + 10.19000816f,0.50060302f,0.50241929f,3.40760851f,0.50547093f,0.52249861f,2.05778098f,0.51544732f,0.56694406f,1.48416460f,0.53104258f,0.64682180f,1.16943991f,0.55310392f,0.78815460f,0.97256821f,0.58293498f,1.06067765f,0.83934963f,0.62250412f,1.72244716f,0.74453628f,0.67480832f,5.10114861f + }; + int i, k = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; k < n; k += 4) + { + drmp3_f4 t[4][8], *x; + float *y = grbuf + k; + + for (x = t[0], i = 0; i < 8; i++, x++) + { + drmp3_f4 x0 = DRMP3_VLD(&y[i*18]); + drmp3_f4 x1 = DRMP3_VLD(&y[(15 - i)*18]); + drmp3_f4 x2 = DRMP3_VLD(&y[(16 + i)*18]); + drmp3_f4 x3 = DRMP3_VLD(&y[(31 - i)*18]); + drmp3_f4 t0 = DRMP3_VADD(x0, x3); + drmp3_f4 t1 = DRMP3_VADD(x1, x2); + drmp3_f4 t2 = DRMP3_VMUL_S(DRMP3_VSUB(x1, x2), g_sec[3*i + 0]); + drmp3_f4 t3 = DRMP3_VMUL_S(DRMP3_VSUB(x0, x3), g_sec[3*i + 1]); + x[0] = DRMP3_VADD(t0, t1); + x[8] = DRMP3_VMUL_S(DRMP3_VSUB(t0, t1), g_sec[3*i + 2]); + x[16] = DRMP3_VADD(t3, t2); + x[24] = DRMP3_VMUL_S(DRMP3_VSUB(t3, t2), g_sec[3*i + 2]); + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + drmp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = DRMP3_VSUB(x0, x7); x0 = DRMP3_VADD(x0, x7); + x7 = DRMP3_VSUB(x1, x6); x1 = DRMP3_VADD(x1, x6); + x6 = DRMP3_VSUB(x2, x5); x2 = DRMP3_VADD(x2, x5); + x5 = DRMP3_VSUB(x3, x4); x3 = DRMP3_VADD(x3, x4); + x4 = DRMP3_VSUB(x0, x3); x0 = DRMP3_VADD(x0, x3); + x3 = DRMP3_VSUB(x1, x2); x1 = DRMP3_VADD(x1, x2); + x[0] = DRMP3_VADD(x0, x1); + x[4] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x1), 0.70710677f); + x5 = DRMP3_VADD(x5, x6); + x6 = DRMP3_VMUL_S(DRMP3_VADD(x6, x7), 0.70710677f); + x7 = DRMP3_VADD(x7, xt); + x3 = DRMP3_VMUL_S(DRMP3_VADD(x3, x4), 0.70710677f); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); /* rotate by PI/8 */ + x7 = DRMP3_VADD(x7, DRMP3_VMUL_S(x5, 0.382683432f)); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); + x0 = DRMP3_VSUB(xt, x6); xt = DRMP3_VADD(xt, x6); + x[1] = DRMP3_VMUL_S(DRMP3_VADD(xt, x7), 0.50979561f); + x[2] = DRMP3_VMUL_S(DRMP3_VADD(x4, x3), 0.54119611f); + x[3] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x5), 0.60134488f); + x[5] = DRMP3_VMUL_S(DRMP3_VADD(x0, x5), 0.89997619f); + x[6] = DRMP3_VMUL_S(DRMP3_VSUB(x4, x3), 1.30656302f); + x[7] = DRMP3_VMUL_S(DRMP3_VSUB(xt, x7), 2.56291556f); + } + + if (k > n - 3) + { +#if DRMP3_HAVE_SSE +#define DRMP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v) +#else +#define DRMP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[(i)*18], vget_low_f32(v)) +#endif + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE2(0, t[0][i]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE2(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE2(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE2(0, t[0][7]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE2(2, t[1][7]); + DRMP3_VSAVE2(3, t[3][7]); + } else + { +#define DRMP3_VSAVE4(i, v) DRMP3_VSTORE(&y[(i)*18], v) + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE4(0, t[0][i]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE4(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE4(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE4(0, t[0][7]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE4(2, t[1][7]); + DRMP3_VSAVE4(3, t[3][7]); + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ +#else + for (; k < n; k++) + { + float t[4][8], *x, *y = grbuf + k; + + for (x = t[0], i = 0; i < 8; i++, x++) + { + float x0 = y[i*18]; + float x1 = y[(15 - i)*18]; + float x2 = y[(16 + i)*18]; + float x3 = y[(31 - i)*18]; + float t0 = x0 + x3; + float t1 = x1 + x2; + float t2 = (x1 - x2)*g_sec[3*i + 0]; + float t3 = (x0 - x3)*g_sec[3*i + 1]; + x[0] = t0 + t1; + x[8] = (t0 - t1)*g_sec[3*i + 2]; + x[16] = t3 + t2; + x[24] = (t3 - t2)*g_sec[3*i + 2]; + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + float x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = x0 - x7; x0 += x7; + x7 = x1 - x6; x1 += x6; + x6 = x2 - x5; x2 += x5; + x5 = x3 - x4; x3 += x4; + x4 = x0 - x3; x0 += x3; + x3 = x1 - x2; x1 += x2; + x[0] = x0 + x1; + x[4] = (x0 - x1)*0.70710677f; + x5 = x5 + x6; + x6 = (x6 + x7)*0.70710677f; + x7 = x7 + xt; + x3 = (x3 + x4)*0.70710677f; + x5 -= x7*0.198912367f; /* rotate by PI/8 */ + x7 += x5*0.382683432f; + x5 -= x7*0.198912367f; + x0 = xt - x6; xt += x6; + x[1] = (xt + x7)*0.50979561f; + x[2] = (x4 + x3)*0.54119611f; + x[3] = (x0 - x5)*0.60134488f; + x[5] = (x0 + x5)*0.89997619f; + x[6] = (x4 - x3)*1.30656302f; + x[7] = (xt - x7)*2.56291556f; + + } + for (i = 0; i < 7; i++, y += 4*18) + { + y[0*18] = t[0][i]; + y[1*18] = t[2][i] + t[3][i] + t[3][i + 1]; + y[2*18] = t[1][i] + t[1][i + 1]; + y[3*18] = t[2][i + 1] + t[3][i] + t[3][i + 1]; + } + y[0*18] = t[0][7]; + y[1*18] = t[2][7] + t[3][7]; + y[2*18] = t[1][7]; + y[3*18] = t[3][7]; + } +#endif +} + +#ifndef DR_MP3_FLOAT_OUTPUT +typedef drmp3_int16 drmp3d_sample_t; + +static drmp3_int16 drmp3d_scale_pcm(float sample) +{ + drmp3_int16 s; +#if DRMP3_HAVE_ARMV6 + drmp3_int32 s32 = (drmp3_int32)(sample + .5f); + s32 -= (s32 < 0); + s = (drmp3_int16)drmp3_clip_int16_arm(s32); +#else + if (sample >= 32766.5f) return (drmp3_int16) 32767; + if (sample <= -32767.5f) return (drmp3_int16)-32768; + s = (drmp3_int16)(sample + .5f); + s -= (s < 0); /* away from zero, to be compliant */ +#endif + return s; +} +#else +typedef float drmp3d_sample_t; + +static float drmp3d_scale_pcm(float sample) +{ + return sample*(1.f/32768.f); +} +#endif + +static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) +{ + float a; + a = (z[14*64] - z[ 0]) * 29; + a += (z[ 1*64] + z[13*64]) * 213; + a += (z[12*64] - z[ 2*64]) * 459; + a += (z[ 3*64] + z[11*64]) * 2037; + a += (z[10*64] - z[ 4*64]) * 5153; + a += (z[ 5*64] + z[ 9*64]) * 6574; + a += (z[ 8*64] - z[ 6*64]) * 37489; + a += z[ 7*64] * 75038; + pcm[0] = drmp3d_scale_pcm(a); + + z += 2; + a = z[14*64] * 104; + a += z[12*64] * 1567; + a += z[10*64] * 9727; + a += z[ 8*64] * 64019; + a += z[ 6*64] * -9975; + a += z[ 4*64] * -45; + a += z[ 2*64] * 146; + a += z[ 0*64] * -5; + pcm[16*nch] = drmp3d_scale_pcm(a); +} + +static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) +{ + int i; + float *xr = xl + 576*(nch - 1); + drmp3d_sample_t *dstr = dstl + (nch - 1); + + static const float g_win[] = { + -1,26,-31,208,218,401,-519,2063,2000,4788,-5517,7134,5959,35640,-39336,74992, + -1,24,-35,202,222,347,-581,2080,1952,4425,-5879,7640,5288,33791,-41176,74856, + -1,21,-38,196,225,294,-645,2087,1893,4063,-6237,8092,4561,31947,-43006,74630, + -1,19,-41,190,227,244,-711,2085,1822,3705,-6589,8492,3776,30112,-44821,74313, + -1,17,-45,183,228,197,-779,2075,1739,3351,-6935,8840,2935,28289,-46617,73908, + -1,16,-49,176,228,153,-848,2057,1644,3004,-7271,9139,2037,26482,-48390,73415, + -2,14,-53,169,227,111,-919,2032,1535,2663,-7597,9389,1082,24694,-50137,72835, + -2,13,-58,161,224,72,-991,2001,1414,2330,-7910,9592,70,22929,-51853,72169, + -2,11,-63,154,221,36,-1064,1962,1280,2006,-8209,9750,-998,21189,-53534,71420, + -2,10,-68,147,215,2,-1137,1919,1131,1692,-8491,9863,-2122,19478,-55178,70590, + -3,9,-73,139,208,-29,-1210,1870,970,1388,-8755,9935,-3300,17799,-56778,69679, + -3,8,-79,132,200,-57,-1283,1817,794,1095,-8998,9966,-4533,16155,-58333,68692, + -4,7,-85,125,189,-83,-1356,1759,605,814,-9219,9959,-5818,14548,-59838,67629, + -4,7,-91,117,177,-106,-1428,1698,402,545,-9416,9916,-7154,12980,-61289,66494, + -5,6,-97,111,163,-127,-1498,1634,185,288,-9585,9838,-8540,11455,-62684,65290 + }; + float *zlin = lins + 15*64; + const float *w = g_win; + + zlin[4*15] = xl[18*16]; + zlin[4*15 + 1] = xr[18*16]; + zlin[4*15 + 2] = xl[0]; + zlin[4*15 + 3] = xr[0]; + + zlin[4*31] = xl[1 + 18*16]; + zlin[4*31 + 1] = xr[1 + 18*16]; + zlin[4*31 + 2] = xl[1]; + zlin[4*31 + 3] = xr[1]; + + drmp3d_synth_pair(dstr, nch, lins + 4*15 + 1); + drmp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1); + drmp3d_synth_pair(dstl, nch, lins + 4*15); + drmp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64); + +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (i = 14; i >= 0; i--) + { +#define DRMP3_VLOAD(k) drmp3_f4 w0 = DRMP3_VSET(*w++); drmp3_f4 w1 = DRMP3_VSET(*w++); drmp3_f4 vz = DRMP3_VLD(&zlin[4*i - 64*k]); drmp3_f4 vy = DRMP3_VLD(&zlin[4*i - 64*(15 - k)]); +#define DRMP3_V0(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0)) ; a = DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1)); } +#define DRMP3_V1(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1))); } +#define DRMP3_V2(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vy, w1), DRMP3_VMUL(vz, w0))); } + drmp3_f4 a, b; + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*i + 64] = xl[1 + 18*(1 + i)]; + zlin[4*i + 64 + 1] = xr[1 + 18*(1 + i)]; + zlin[4*i - 64 + 2] = xl[18*(1 + i)]; + zlin[4*i - 64 + 3] = xr[18*(1 + i)]; + + DRMP3_V0(0) DRMP3_V2(1) DRMP3_V1(2) DRMP3_V2(3) DRMP3_V1(4) DRMP3_V2(5) DRMP3_V1(6) DRMP3_V2(7) + + { +#ifndef DR_MP3_FLOAT_OUTPUT +#if DRMP3_HAVE_SSE + static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; + static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min))); + dstr[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + dstr[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + dstl[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + dstl[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + dstr[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + dstr[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); + dstl[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + dstl[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(dstr + (15 - i)*nch, pcma, 1); + vst1_lane_s16(dstr + (17 + i)*nch, pcmb, 1); + vst1_lane_s16(dstl + (15 - i)*nch, pcma, 0); + vst1_lane_s16(dstl + (17 + i)*nch, pcmb, 0); + vst1_lane_s16(dstr + (47 - i)*nch, pcma, 3); + vst1_lane_s16(dstr + (49 + i)*nch, pcmb, 3); + vst1_lane_s16(dstl + (47 - i)*nch, pcma, 2); + vst1_lane_s16(dstl + (49 + i)*nch, pcmb, 2); +#endif +#else + #if DRMP3_HAVE_SSE + static const drmp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f }; + #else + const drmp3_f4 g_scale = vdupq_n_f32(1.0f/32768.0f); + #endif + a = DRMP3_VMUL(a, g_scale); + b = DRMP3_VMUL(b, g_scale); +#if DRMP3_HAVE_SSE + _mm_store_ss(dstr + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstr + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstl + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstl + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstr + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstr + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstl + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(2, 2, 2, 2))); + _mm_store_ss(dstl + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(2, 2, 2, 2))); +#else + vst1q_lane_f32(dstr + (15 - i)*nch, a, 1); + vst1q_lane_f32(dstr + (17 + i)*nch, b, 1); + vst1q_lane_f32(dstl + (15 - i)*nch, a, 0); + vst1q_lane_f32(dstl + (17 + i)*nch, b, 0); + vst1q_lane_f32(dstr + (47 - i)*nch, a, 3); + vst1q_lane_f32(dstr + (49 + i)*nch, b, 3); + vst1q_lane_f32(dstl + (47 - i)*nch, a, 2); + vst1q_lane_f32(dstl + (49 + i)*nch, b, 2); +#endif +#endif /* DR_MP3_FLOAT_OUTPUT */ + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ +#else + for (i = 14; i >= 0; i--) + { +#define DRMP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64]; +#define DRMP3_S0(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] = vz[j]*w1 + vy[j]*w0, a[j] = vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S1(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S2(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; } + float a[4], b[4]; + + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*(i + 16)] = xl[1 + 18*(1 + i)]; + zlin[4*(i + 16) + 1] = xr[1 + 18*(1 + i)]; + zlin[4*(i - 16) + 2] = xl[18*(1 + i)]; + zlin[4*(i - 16) + 3] = xr[18*(1 + i)]; + + DRMP3_S0(0) DRMP3_S2(1) DRMP3_S1(2) DRMP3_S2(3) DRMP3_S1(4) DRMP3_S2(5) DRMP3_S1(6) DRMP3_S2(7) + + dstr[(15 - i)*nch] = drmp3d_scale_pcm(a[1]); + dstr[(17 + i)*nch] = drmp3d_scale_pcm(b[1]); + dstl[(15 - i)*nch] = drmp3d_scale_pcm(a[0]); + dstl[(17 + i)*nch] = drmp3d_scale_pcm(b[0]); + dstr[(47 - i)*nch] = drmp3d_scale_pcm(a[3]); + dstr[(49 + i)*nch] = drmp3d_scale_pcm(b[3]); + dstl[(47 - i)*nch] = drmp3d_scale_pcm(a[2]); + dstl[(49 + i)*nch] = drmp3d_scale_pcm(b[2]); + } +#endif +} + +static void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, drmp3d_sample_t *pcm, float *lins) +{ + int i; + for (i = 0; i < nch; i++) + { + drmp3d_DCT_II(grbuf + 576*i, nbands); + } + + DRMP3_COPY_MEMORY(lins, qmf_state, sizeof(float)*15*64); + + for (i = 0; i < nbands; i += 2) + { + drmp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64); + } +#ifndef DR_MP3_NONSTANDARD_BUT_LOGICAL + if (nch == 1) + { + for (i = 0; i < 15*64; i += 2) + { + qmf_state[i] = lins[nbands*64 + i]; + } + } else +#endif + { + DRMP3_COPY_MEMORY(qmf_state, lins + nbands*64, sizeof(float)*15*64); + } +} + +static int drmp3d_match_frame(const drmp3_uint8 *hdr, int mp3_bytes, int frame_bytes) +{ + int i, nmatch; + for (i = 0, nmatch = 0; nmatch < DRMP3_MAX_FRAME_SYNC_MATCHES; nmatch++) + { + i += drmp3_hdr_frame_bytes(hdr + i, frame_bytes) + drmp3_hdr_padding(hdr + i); + if (i + DRMP3_HDR_SIZE > mp3_bytes) + return nmatch > 0; + if (!drmp3_hdr_compare(hdr, hdr + i)) + return 0; + } + return 1; +} + +static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes) +{ + int i, k; + for (i = 0; i < mp3_bytes - DRMP3_HDR_SIZE; i++, mp3++) + { + if (drmp3_hdr_valid(mp3)) + { + int frame_bytes = drmp3_hdr_frame_bytes(mp3, *free_format_bytes); + int frame_and_padding = frame_bytes + drmp3_hdr_padding(mp3); + + for (k = DRMP3_HDR_SIZE; !frame_bytes && k < DRMP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - DRMP3_HDR_SIZE; k++) + { + if (drmp3_hdr_compare(mp3, mp3 + k)) + { + int fb = k - drmp3_hdr_padding(mp3); + int nextfb = fb + drmp3_hdr_padding(mp3 + k); + if (i + k + nextfb + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + k + nextfb)) + continue; + frame_and_padding = k; + frame_bytes = fb; + *free_format_bytes = fb; + } + } + + if ((frame_bytes && i + frame_and_padding <= mp3_bytes && + drmp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) || + (!i && frame_and_padding == mp3_bytes)) + { + *ptr_frame_bytes = frame_and_padding; + return i; + } + *free_format_bytes = 0; + } + } + *ptr_frame_bytes = 0; + return mp3_bytes; +} + +DRMP3_API void drmp3dec_init(drmp3dec *dec) +{ + dec->header[0] = 0; +} + +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info) +{ + int i = 0, igr, frame_size = 0, success = 1; + const drmp3_uint8 *hdr; + drmp3_bs bs_frame[1]; + + if (mp3_bytes > 4 && dec->header[0] == 0xff && drmp3_hdr_compare(dec->header, mp3)) + { + frame_size = drmp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + drmp3_hdr_padding(mp3); + if (frame_size != mp3_bytes && (frame_size + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + frame_size))) + { + frame_size = 0; + } + } + if (!frame_size) + { + DRMP3_ZERO_MEMORY(dec, sizeof(drmp3dec)); + i = drmp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size); + if (!frame_size || i + frame_size > mp3_bytes) + { + info->frame_bytes = i; + return 0; + } + } + + hdr = mp3 + i; + DRMP3_COPY_MEMORY(dec->header, hdr, DRMP3_HDR_SIZE); + info->frame_bytes = i + frame_size; + info->channels = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + info->sample_rate = drmp3_hdr_sample_rate_hz(hdr); + info->layer = 4 - DRMP3_HDR_GET_LAYER(hdr); + info->bitrate_kbps = drmp3_hdr_bitrate_kbps(hdr); + + drmp3_bs_init(bs_frame, hdr + DRMP3_HDR_SIZE, frame_size - DRMP3_HDR_SIZE); + if (DRMP3_HDR_IS_CRC(hdr)) + { + drmp3_bs_get_bits(bs_frame, 16); + } + + if (info->layer == 3) + { + int main_data_begin = drmp3_L3_read_side_info(bs_frame, dec->scratch.gr_info, hdr); + if (main_data_begin < 0 || bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + success = drmp3_L3_restore_reservoir(dec, bs_frame, &dec->scratch, main_data_begin); + if (success && pcm != NULL) + { + for (igr = 0; igr < (DRMP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*576*info->channels)) + { + DRMP3_ZERO_MEMORY(dec->scratch.grbuf[0], 576*2*sizeof(float)); + drmp3_L3_decode(dec, &dec->scratch, dec->scratch.gr_info + igr*info->channels, info->channels); + drmp3d_synth_granule(dec->qmf_state, dec->scratch.grbuf[0], 18, info->channels, (drmp3d_sample_t*)pcm, dec->scratch.syn[0]); + } + } + drmp3_L3_save_reservoir(dec, &dec->scratch); + } else + { +#ifdef DR_MP3_ONLY_MP3 + return 0; +#else + drmp3_L12_scale_info sci[1]; + + if (pcm == NULL) { + return drmp3_hdr_frame_samples(hdr); + } + + drmp3_L12_read_scale_info(hdr, bs_frame, sci); + + DRMP3_ZERO_MEMORY(dec->scratch.grbuf[0], 576*2*sizeof(float)); + for (i = 0, igr = 0; igr < 3; igr++) + { + if (12 == (i += drmp3_L12_dequantize_granule(dec->scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1))) + { + i = 0; + drmp3_L12_apply_scf_384(sci, sci->scf + igr, dec->scratch.grbuf[0]); + drmp3d_synth_granule(dec->qmf_state, dec->scratch.grbuf[0], 12, info->channels, (drmp3d_sample_t*)pcm, dec->scratch.syn[0]); + DRMP3_ZERO_MEMORY(dec->scratch.grbuf[0], 576*2*sizeof(float)); + pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*384*info->channels); + } + if (bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + } +#endif + } + + return success*drmp3_hdr_frame_samples(dec->header); +} + +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples) +{ + size_t i = 0; +#if DRMP3_HAVE_SIMD + size_t aligned_count = num_samples & ~7; + for(; i < aligned_count; i+=8) + { + drmp3_f4 scale = DRMP3_VSET(32768.0f); + drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), scale); + drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), scale); +#if DRMP3_HAVE_SSE + drmp3_f4 s16max = DRMP3_VSET( 32767.0f); + drmp3_f4 s16min = DRMP3_VSET(-32768.0f); + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, s16max), s16min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, s16max), s16min))); + out[i ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + out[i+3] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + out[i+4] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + out[i+5] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + out[i+6] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); + out[i+7] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(out+i , pcma, 0); + vst1_lane_s16(out+i+1, pcma, 1); + vst1_lane_s16(out+i+2, pcma, 2); + vst1_lane_s16(out+i+3, pcma, 3); + vst1_lane_s16(out+i+4, pcmb, 0); + vst1_lane_s16(out+i+5, pcmb, 1); + vst1_lane_s16(out+i+6, pcmb, 2); + vst1_lane_s16(out+i+7, pcmb, 3); +#endif + } +#endif + for(; i < num_samples; i++) + { + float sample = in[i] * 32768.0f; + if (sample >= 32766.5f) + out[i] = (drmp3_int16) 32767; + else if (sample <= -32767.5f) + out[i] = (drmp3_int16)-32768; + else + { + short s = (drmp3_int16)(sample + .5f); + s -= (s < 0); /* away from zero, to be compliant */ + out[i] = s; + } + } +} + + + +/************************************************************************************************************************************************************ + + Main Public API + + ************************************************************************************************************************************************************/ +/* SIZE_MAX */ +#if defined(SIZE_MAX) + #define DRMP3_SIZE_MAX SIZE_MAX +#else + #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) + #define DRMP3_SIZE_MAX ((drmp3_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRMP3_SIZE_MAX 0xFFFFFFFF + #endif +#endif +/* End SIZE_MAX */ + +/* Options. */ +#ifndef DRMP3_SEEK_LEADING_MP3_FRAMES +#define DRMP3_SEEK_LEADING_MP3_FRAMES 2 +#endif + +#define DRMP3_MIN_DATA_CHUNK_SIZE 16384 + +/* The size in bytes of each chunk of data to read from the MP3 stream. minimp3 recommends at least 16K, but in an attempt to reduce data movement I'm making this slightly larger. */ +#ifndef DRMP3_DATA_CHUNK_SIZE +#define DRMP3_DATA_CHUNK_SIZE (DRMP3_MIN_DATA_CHUNK_SIZE*4) +#endif + + +#define DRMP3_COUNTOF(x) (sizeof(x) / sizeof(x[0])) +#define DRMP3_CLAMP(x, lo, hi) (DRMP3_MAX(lo, DRMP3_MIN(x, hi))) + +#ifndef DRMP3_PI_D +#define DRMP3_PI_D 3.14159265358979323846264 +#endif + +#define DRMP3_DEFAULT_RESAMPLER_LPF_ORDER 2 + +static DRMP3_INLINE float drmp3_mix_f32(float x, float y, float a) +{ + return x*(1-a) + y*a; +} +static DRMP3_INLINE float drmp3_mix_f32_fast(float x, float y, float a) +{ + float r0 = (y - x); + float r1 = r0*a; + return x + r1; + /*return x + (y - x)*a;*/ +} + + +/* +Greatest common factor using Euclid's algorithm iteratively. +*/ +static DRMP3_INLINE drmp3_uint32 drmp3_gcf_u32(drmp3_uint32 a, drmp3_uint32 b) +{ + for (;;) { + if (b == 0) { + break; + } else { + drmp3_uint32 t = a; + a = b; + b = t % a; + } + } + + return a; +} + + +static void* drmp3__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_MALLOC(sz); +} + +static void* drmp3__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_REALLOC(p, sz); +} + +static void drmp3__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRMP3_FREE(p); +} + + +static void* drmp3__malloc_from_callbacks(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +static void* drmp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + DRMP3_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +static void drmp3__free_from_callbacks(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + + +static drmp3_allocation_callbacks drmp3_copy_allocation_callbacks_or_defaults(const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + /* Copy. */ + return *pAllocationCallbacks; + } else { + /* Defaults. */ + drmp3_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drmp3__malloc_default; + allocationCallbacks.onRealloc = drmp3__realloc_default; + allocationCallbacks.onFree = drmp3__free_default; + return allocationCallbacks; + } +} + + + +static size_t drmp3__on_read(drmp3* pMP3, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRead; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + /* + Don't try reading 0 bytes from the callback. This can happen when the stream is clamped against + ID3v1 or APE tags at the end of the stream. + */ + if (bytesToRead == 0) { + return 0; + } + + bytesRead = pMP3->onRead(pMP3->pUserData, pBufferOut, bytesToRead); + pMP3->streamCursor += bytesRead; + + return bytesRead; +} + +static size_t drmp3__on_read_clamped(drmp3* pMP3, void* pBufferOut, size_t bytesToRead) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + if (pMP3->streamLength == DRMP3_UINT64_MAX) { + return drmp3__on_read(pMP3, pBufferOut, bytesToRead); + } else { + drmp3_uint64 bytesRemaining; + + bytesRemaining = (pMP3->streamLength - pMP3->streamCursor); + if (bytesToRead > bytesRemaining) { + bytesToRead = (size_t)bytesRemaining; + } + + return drmp3__on_read(pMP3, pBufferOut, bytesToRead); + } +} + +static drmp3_bool32 drmp3__on_seek(drmp3* pMP3, int offset, drmp3_seek_origin origin) +{ + DRMP3_ASSERT(offset >= 0); + DRMP3_ASSERT(origin == DRMP3_SEEK_SET || origin == DRMP3_SEEK_CUR); + + if (!pMP3->onSeek(pMP3->pUserData, offset, origin)) { + return DRMP3_FALSE; + } + + if (origin == DRMP3_SEEK_SET) { + pMP3->streamCursor = (drmp3_uint64)offset; + } else{ + pMP3->streamCursor += offset; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3__on_seek_64(drmp3* pMP3, drmp3_uint64 offset, drmp3_seek_origin origin) +{ + if (offset <= 0x7FFFFFFF) { + return drmp3__on_seek(pMP3, (int)offset, origin); + } + + /* Getting here "offset" is too large for a 32-bit integer. We just keep seeking forward until we hit the offset. */ + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; + } + + offset -= 0x7FFFFFFF; + while (offset > 0) { + if (offset <= 0x7FFFFFFF) { + if (!drmp3__on_seek(pMP3, (int)offset, DRMP3_SEEK_CUR)) { + return DRMP3_FALSE; + } + offset = 0; + } else { + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, DRMP3_SEEK_CUR)) { + return DRMP3_FALSE; + } + offset -= 0x7FFFFFFF; + } + } + + return DRMP3_TRUE; +} + +static void drmp3__on_meta(drmp3* pMP3, drmp3_metadata_type type, const void* pRawData, size_t rawDataSize) +{ + if (pMP3->onMeta) { + drmp3_metadata metadata; + + DRMP3_ZERO_OBJECT(&metadata); + metadata.type = type; + metadata.pRawData = pRawData; + metadata.rawDataSize = rawDataSize; + + pMP3->onMeta(pMP3->pUserDataMeta, &metadata); + } +} + + +static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sample_t* pPCMFrames, drmp3dec_frame_info* pMP3FrameInfo, const drmp3_uint8** ppMP3FrameData) +{ + drmp3_uint32 pcmFramesRead = 0; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + if (pMP3->atEnd) { + return 0; + } + + for (;;) { + drmp3dec_frame_info info; + + /* minimp3 recommends doing data submission in chunks of at least 16K. If we don't have at least 16K bytes available, get more. */ + if (pMP3->dataSize < DRMP3_MIN_DATA_CHUNK_SIZE) { + size_t bytesRead; + + /* First we need to move the data down. */ + if (pMP3->pData != NULL) { + DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + } + + pMP3->dataConsumed = 0; + + if (pMP3->dataCapacity < DRMP3_DATA_CHUNK_SIZE) { + drmp3_uint8* pNewData; + size_t newDataCap; + + newDataCap = DRMP3_DATA_CHUNK_SIZE; + + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; /* Out of memory. */ + } + + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + + bytesRead = drmp3__on_read_clamped(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + if (pMP3->dataSize == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* No data. */ + } + } + + pMP3->dataSize += bytesRead; + } + + if (pMP3->dataSize > INT_MAX) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* File too big. */ + } + + DRMP3_ASSERT(pMP3->pData != NULL); + DRMP3_ASSERT(pMP3->dataCapacity > 0); + + /* Do a runtime check here to try silencing a false-positive from clang-analyzer. */ + if (pMP3->pData == NULL) { + return 0; + } + + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->pData + pMP3->dataConsumed, (int)pMP3->dataSize, pPCMFrames, &info); /* <-- Safe size_t -> int conversion thanks to the check above. */ + + /* Consume the data. */ + pMP3->dataConsumed += (size_t)info.frame_bytes; + pMP3->dataSize -= (size_t)info.frame_bytes; + + /* pcmFramesRead will be equal to 0 if decoding failed. If it is zero and info.frame_bytes > 0 then we have successfully decoded the frame. */ + if (pcmFramesRead > 0) { + pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.sample_rate; + + if (pMP3FrameInfo != NULL) { + *pMP3FrameInfo = info; + } + + if (ppMP3FrameData != NULL) { + *ppMP3FrameData = pMP3->pData + pMP3->dataConsumed - (size_t)info.frame_bytes; + } + + break; + } else if (info.frame_bytes == 0) { + /* Need more data. minimp3 recommends doing data submission in 16K chunks. */ + size_t bytesRead; + + /* First we need to move the data down. */ + DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + pMP3->dataConsumed = 0; + + if (pMP3->dataCapacity == pMP3->dataSize) { + /* No room. Expand. */ + drmp3_uint8* pNewData; + size_t newDataCap; + + newDataCap = pMP3->dataCapacity + DRMP3_DATA_CHUNK_SIZE; + + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; /* Out of memory. */ + } + + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + + /* Fill in a chunk. */ + bytesRead = drmp3__on_read_clamped(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; /* Error reading more data. */ + } + + pMP3->dataSize += bytesRead; + } + }; + + return pcmFramesRead; +} + +static drmp3_uint32 drmp3_decode_next_frame_ex__memory(drmp3* pMP3, drmp3d_sample_t* pPCMFrames, drmp3dec_frame_info* pMP3FrameInfo, const drmp3_uint8** ppMP3FrameData) +{ + drmp3_uint32 pcmFramesRead = 0; + drmp3dec_frame_info info; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.pData != NULL); + + if (pMP3->atEnd) { + return 0; + } + + for (;;) { + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->memory.pData + pMP3->memory.currentReadPos, (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos), pPCMFrames, &info); + if (pcmFramesRead > 0) { + pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.sample_rate; + + if (pMP3FrameInfo != NULL) { + *pMP3FrameInfo = info; + } + + if (ppMP3FrameData != NULL) { + *ppMP3FrameData = pMP3->memory.pData + pMP3->memory.currentReadPos; + } + + break; + } else if (info.frame_bytes > 0) { + /* No frames were read, but it looks like we skipped past one. Read the next MP3 frame. */ + pMP3->memory.currentReadPos += (size_t)info.frame_bytes; + pMP3->streamCursor += (size_t)info.frame_bytes; + } else { + /* Nothing at all was read. Abort. */ + break; + } + } + + /* Consume the data. */ + pMP3->memory.currentReadPos += (size_t)info.frame_bytes; + pMP3->streamCursor += (size_t)info.frame_bytes; + + return pcmFramesRead; +} + +static drmp3_uint32 drmp3_decode_next_frame_ex(drmp3* pMP3, drmp3d_sample_t* pPCMFrames, drmp3dec_frame_info* pMP3FrameInfo, const drmp3_uint8** ppMP3FrameData) +{ + if (pMP3->memory.pData != NULL && pMP3->memory.dataSize > 0) { + return drmp3_decode_next_frame_ex__memory(pMP3, pPCMFrames, pMP3FrameInfo, ppMP3FrameData); + } else { + return drmp3_decode_next_frame_ex__callbacks(pMP3, pPCMFrames, pMP3FrameInfo, ppMP3FrameData); + } +} + +static drmp3_uint32 drmp3_decode_next_frame(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + return drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames, NULL, NULL); +} + +#if 0 +static drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3) +{ + drmp3_uint32 pcmFrameCount; + + DRMP3_ASSERT(pMP3 != NULL); + + pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, NULL, NULL, NULL); + if (pcmFrameCount == 0) { + return 0; + } + + /* We have essentially just skipped past the frame, so just set the remaining samples to 0. */ + pMP3->currentPCMFrame += pcmFrameCount; + pMP3->pcmFramesConsumedInMP3Frame = pcmFrameCount; + pMP3->pcmFramesRemainingInMP3Frame = 0; + + return pcmFrameCount; +} +#endif + +static drmp3_bool32 drmp3_init_internal(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, drmp3_meta_proc onMeta, void* pUserData, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3dec_frame_info firstFrameInfo; + const drmp3_uint8* pFirstFrameData; + drmp3_uint32 firstFramePCMFrameCount; + drmp3_uint32 detectedMP3FrameCount = 0xFFFFFFFF; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(onRead != NULL); + + /* This function assumes the output object has already been reset to 0. Do not do that here, otherwise things will break. */ + drmp3dec_init(&pMP3->decoder); + + pMP3->onRead = onRead; + pMP3->onSeek = onSeek; + pMP3->onMeta = onMeta; + pMP3->pUserData = pUserData; + pMP3->pUserDataMeta = pUserDataMeta; + pMP3->allocationCallbacks = drmp3_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + + if (pMP3->allocationCallbacks.onFree == NULL || (pMP3->allocationCallbacks.onMalloc == NULL && pMP3->allocationCallbacks.onRealloc == NULL)) { + return DRMP3_FALSE; /* Invalid allocation callbacks. */ + } + + pMP3->streamCursor = 0; + pMP3->streamLength = DRMP3_UINT64_MAX; + pMP3->streamStartOffset = 0; + pMP3->delayInPCMFrames = 0; + pMP3->paddingInPCMFrames = 0; + pMP3->totalPCMFrameCount = DRMP3_UINT64_MAX; + + /* We'll first check for any ID3v1 or APE tags. */ + #if 1 + if (onSeek != NULL && onTell != NULL) { + if (onSeek(pUserData, 0, DRMP3_SEEK_END)) { + drmp3_int64 streamLen; + int streamEndOffset = 0; + + /* First get the length of the stream. We need this so we can ensure the stream is big enough to store the tags. */ + if (onTell(pUserData, &streamLen)) { + /* ID3v1 */ + if (streamLen > 128) { + char id3[3]; + if (onSeek(pUserData, streamEndOffset - 128, DRMP3_SEEK_END)) { + if (onRead(pUserData, id3, 3) == 3 && id3[0] == 'T' && id3[1] == 'A' && id3[2] == 'G') { + /* We have an ID3v1 tag. */ + streamEndOffset -= 128; + streamLen -= 128; + + /* Fire a metadata callback for the TAG data. */ + if (onMeta != NULL) { + drmp3_uint8 tag[128]; + tag[0] = 'T'; tag[1] = 'A'; tag[2] = 'G'; + + if (onRead(pUserData, tag + 3, 125) == 125) { + drmp3__on_meta(pMP3, DRMP3_METADATA_TYPE_ID3V1, tag, 128); + } + } + } else { + /* No ID3v1 tag. */ + } + } else { + /* Failed to seek to the ID3v1 tag. */ + } + } else { + /* Stream too short. No ID3v1 tag. */ + } + + /* APE */ + if (streamLen > 32) { + char ape[32]; /* The footer. */ + if (onSeek(pUserData, streamEndOffset - 32, DRMP3_SEEK_END)) { + if (onRead(pUserData, ape, 32) == 32 && ape[0] == 'A' && ape[1] == 'P' && ape[2] == 'E' && ape[3] == 'T' && ape[4] == 'A' && ape[5] == 'G' && ape[6] == 'E' && ape[7] == 'X') { + /* We have an APE tag. */ + drmp3_uint32 tagSize = + ((drmp3_uint32)ape[24] << 0) | + ((drmp3_uint32)ape[25] << 8) | + ((drmp3_uint32)ape[26] << 16) | + ((drmp3_uint32)ape[27] << 24); + + if (32 + tagSize < streamLen) { + streamEndOffset -= 32 + tagSize; + streamLen -= 32 + tagSize; + + /* Fire a metadata callback for the APE data. Must include both the main content and footer. */ + if (onMeta != NULL) { + /* We first need to seek to the start of the APE tag. */ + if (onSeek(pUserData, streamEndOffset, DRMP3_SEEK_END)) { + size_t apeTagSize = (size_t)tagSize + 32; + drmp3_uint8* pTagData = (drmp3_uint8*)drmp3_malloc(apeTagSize, pAllocationCallbacks); + if (pTagData != NULL) { + if (onRead(pUserData, pTagData, apeTagSize) == apeTagSize) { + drmp3__on_meta(pMP3, DRMP3_METADATA_TYPE_APE, pTagData, apeTagSize); + } + + drmp3_free(pTagData, pAllocationCallbacks); + } + } + } + } else { + /* The tag size is larger than the stream. Invalid APE tag. */ + } + } + } + } else { + /* Stream too short. No APE tag. */ + } + + /* Seek back to the start. */ + if (!onSeek(pUserData, 0, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; /* Failed to seek back to the start. */ + } + + pMP3->streamLength = (drmp3_uint64)streamLen; + + if (pMP3->memory.pData != NULL) { + pMP3->memory.dataSize = (size_t)pMP3->streamLength; + } + } else { + /* Failed to get the length of the stream. ID3v1 and APE tags cannot be skipped. */ + if (!onSeek(pUserData, 0, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; /* Failed to seek back to the start. */ + } + } + } else { + /* Failed to seek to the end. Cannot skip ID3v1 or APE tags. */ + } + } else { + /* No onSeek or onTell callback. Cannot skip ID3v1 or APE tags. */ + } + #endif + + + /* ID3v2 tags */ + #if 1 + { + char header[10]; + if (onRead(pUserData, header, 10) == 10) { + if (header[0] == 'I' && header[1] == 'D' && header[2] == '3') { + drmp3_uint32 tagSize = + (((drmp3_uint32)header[6] & 0x7F) << 21) | + (((drmp3_uint32)header[7] & 0x7F) << 14) | + (((drmp3_uint32)header[8] & 0x7F) << 7) | + (((drmp3_uint32)header[9] & 0x7F) << 0); + + /* Account for the footer. */ + if (header[5] & 0x10) { + tagSize += 10; + } + + /* Read the tag content and fire a metadata callback. */ + if (onMeta != NULL) { + size_t tagSizeWithHeader = 10 + tagSize; + drmp3_uint8* pTagData = (drmp3_uint8*)drmp3_malloc(tagSizeWithHeader, pAllocationCallbacks); + if (pTagData != NULL) { + DRMP3_COPY_MEMORY(pTagData, header, 10); + + if (onRead(pUserData, pTagData + 10, tagSize) == tagSize) { + drmp3__on_meta(pMP3, DRMP3_METADATA_TYPE_ID3V2, pTagData, tagSizeWithHeader); + } + + drmp3_free(pTagData, pAllocationCallbacks); + } + } else { + /* Don't have a metadata callback, so just skip the tag. */ + if (onSeek != NULL) { + if (!onSeek(pUserData, tagSize, DRMP3_SEEK_CUR)) { + return DRMP3_FALSE; /* Failed to seek past the ID3v2 tag. */ + } + } else { + /* Don't have a seek callback. Read and discard. */ + char discard[1024]; + + while (tagSize > 0) { + size_t bytesToRead = tagSize; + if (bytesToRead > sizeof(discard)) { + bytesToRead = sizeof(discard); + } + + if (onRead(pUserData, discard, bytesToRead) != bytesToRead) { + return DRMP3_FALSE; /* Failed to read data. */ + } + + tagSize -= (drmp3_uint32)bytesToRead; + } + } + } + + pMP3->streamStartOffset += 10 + tagSize; /* +10 for the header. */ + pMP3->streamCursor = pMP3->streamStartOffset; + } else { + /* Not an ID3v2 tag. Seek back to the start. */ + if (onSeek != NULL) { + if (!onSeek(pUserData, 0, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; /* Failed to seek back to the start. */ + } + } else { + /* Don't have a seek callback to move backwards. We'll just fall through and let the decoding process re-sync. The ideal solution here would be to read into the cache. */ + + /* + TODO: Copy the header into the cache. Will need to allocate space. See drmp3_decode_next_frame_ex__callbacks. There is not need + to handle the memory case because that will always have a seek implementation and will never hit this code path. + */ + } + } + } else { + /* Failed to read the header. We can return false here. If we couldn't read 10 bytes there's no way we'll have a valid MP3 stream. */ + return DRMP3_FALSE; + } + } + #endif + + /* + Decode the first frame to confirm that it is indeed a valid MP3 stream. Note that it's possible the first frame + is actually a Xing/LAME/VBRI header. If this is the case we need to skip over it. + */ + firstFramePCMFrameCount = drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames, &firstFrameInfo, &pFirstFrameData); + if (firstFramePCMFrameCount > 0) { + DRMP3_ASSERT(pFirstFrameData != NULL); + + /* + It might be a header. If so, we need to clear out the cached PCM frames in order to trigger a reload of fresh + data when decoding starts. We can assume all validation has already been performed to check if this is a valid + MP3 frame and that there is more than 0 bytes making up the frame. + + We're going to be basing this parsing code off the minimp3_ex implementation. + */ + #if 1 + DRMP3_ASSERT(firstFrameInfo.frame_bytes > 0); + { + drmp3_bs bs; + drmp3_L3_gr_info grInfo[4]; + + drmp3_bs_init(&bs, pFirstFrameData + DRMP3_HDR_SIZE, firstFrameInfo.frame_bytes - DRMP3_HDR_SIZE); + + if (DRMP3_HDR_IS_CRC(pFirstFrameData)) { + drmp3_bs_get_bits(&bs, 16); /* CRC. */ + } + + if (drmp3_L3_read_side_info(&bs, grInfo, pFirstFrameData) >= 0) { + drmp3_bool32 isXing = DRMP3_FALSE; + drmp3_bool32 isInfo = DRMP3_FALSE; + const drmp3_uint8* pTagData; + const drmp3_uint8* pTagDataBeg; + + pTagDataBeg = pFirstFrameData + DRMP3_HDR_SIZE + (bs.pos/8); + pTagData = pTagDataBeg; + + /* Check for both "Xing" and "Info" identifiers. */ + isXing = (pTagData[0] == 'X' && pTagData[1] == 'i' && pTagData[2] == 'n' && pTagData[3] == 'g'); + isInfo = (pTagData[0] == 'I' && pTagData[1] == 'n' && pTagData[2] == 'f' && pTagData[3] == 'o'); + + if (isXing || isInfo) { + drmp3_uint32 bytes = 0; + drmp3_uint32 flags = pTagData[7]; + + pTagData += 8; /* Skip past the ID and flags. */ + + if (flags & 0x01) { /* FRAMES flag. */ + detectedMP3FrameCount = (drmp3_uint32)pTagData[0] << 24 | (drmp3_uint32)pTagData[1] << 16 | (drmp3_uint32)pTagData[2] << 8 | (drmp3_uint32)pTagData[3]; + pTagData += 4; + } + + if (flags & 0x02) { /* BYTES flag. */ + bytes = (drmp3_uint32)pTagData[0] << 24 | (drmp3_uint32)pTagData[1] << 16 | (drmp3_uint32)pTagData[2] << 8 | (drmp3_uint32)pTagData[3]; + (void)bytes; /* <-- Just to silence a warning about `bytes` being assigned but unused. Want to leave this here in case I want to make use of it later. */ + pTagData += 4; + } + + if (flags & 0x04) { /* TOC flag. */ + /* TODO: Extract and bind seek points. */ + pTagData += 100; + } + + if (flags & 0x08) { /* SCALE flag. */ + pTagData += 4; + } + + /* At this point we're done with the Xing/Info header. Now we can look at the LAME data. */ + if (pTagData[0]) { + pTagData += 21; + + if (pTagData - pFirstFrameData + 14 < firstFrameInfo.frame_bytes) { + int delayInPCMFrames; + int paddingInPCMFrames; + + delayInPCMFrames = (( (drmp3_uint32)pTagData[0] << 4) | ((drmp3_uint32)pTagData[1] >> 4)) + (528 + 1); + paddingInPCMFrames = ((((drmp3_uint32)pTagData[1] & 0xF) << 8) | ((drmp3_uint32)pTagData[2] )) - (528 + 1); + if (paddingInPCMFrames < 0) { + paddingInPCMFrames = 0; /* Padding cannot be negative. Probably a malformed file. Ignore. */ + } + + pMP3->delayInPCMFrames = (drmp3_uint32)delayInPCMFrames; + pMP3->paddingInPCMFrames = (drmp3_uint32)paddingInPCMFrames; + } + } + + /* + My understanding is that if the "Xing" header is present we can consider this to be a VBR stream and if the "Info" header is + present it's a CBR stream. If this is not the case let me know! I'm just tracking this for the time being in case I want to + look at doing some CBR optimizations later on, such as faster seeking. + */ + if (isXing) { + pMP3->isVBR = DRMP3_TRUE; + } else if (isInfo) { + pMP3->isCBR = DRMP3_TRUE; + } + + /* Post the raw data of the tag to the metadata callback. */ + if (onMeta != NULL) { + drmp3_metadata_type metadataType = isXing ? DRMP3_METADATA_TYPE_XING : DRMP3_METADATA_TYPE_VBRI; + size_t tagDataSize; + + tagDataSize = (size_t)firstFrameInfo.frame_bytes; + tagDataSize -= (size_t)(pTagDataBeg - pFirstFrameData); + + drmp3__on_meta(pMP3, metadataType, pTagDataBeg, tagDataSize); + } + + /* Since this was identified as a tag, we don't want to treat it as audio. We need to clear out the PCM cache. */ + pMP3->pcmFramesRemainingInMP3Frame = 0; + + /* The start offset needs to be moved to the end of this frame so it's not included in any audio processing after seeking. */ + pMP3->streamStartOffset += (drmp3_uint32)(firstFrameInfo.frame_bytes); + pMP3->streamCursor = pMP3->streamStartOffset; + + /* + The internal decoder needs to be reset to clear out any state. If we don't reset this state, it's possible for + there to be inconsistencies in the number of samples read when reading to the end of the stream depending on + whether or not the caller seeks to the start of the stream. + */ + drmp3dec_init(&pMP3->decoder); + } + } else { + /* Failed to read the side info. */ + } + } + #endif + } else { + /* Not a valid MP3 stream. */ + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); /* The call above may have allocated memory. Need to make sure it's freed before aborting. */ + return DRMP3_FALSE; + } + + if (detectedMP3FrameCount != 0xFFFFFFFF) { + pMP3->totalPCMFrameCount = detectedMP3FrameCount * firstFramePCMFrameCount; + } + + pMP3->channels = pMP3->mp3FrameChannels; + pMP3->sampleRate = pMP3->mp3FrameSampleRate; + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, drmp3_meta_proc onMeta, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pMP3 == NULL || onRead == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + return drmp3_init_internal(pMP3, onRead, onSeek, onTell, onMeta, pUserData, pUserData, pAllocationCallbacks); +} + + +static size_t drmp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + drmp3* pMP3 = (drmp3*)pUserData; + size_t bytesRemaining; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.dataSize >= pMP3->memory.currentReadPos); + + bytesRemaining = pMP3->memory.dataSize - pMP3->memory.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + DRMP3_COPY_MEMORY(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead); + pMP3->memory.currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +static drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3_seek_origin origin) +{ + drmp3* pMP3 = (drmp3*)pUserData; + drmp3_int64 newCursor; + + DRMP3_ASSERT(pMP3 != NULL); + + if (origin == DRMP3_SEEK_SET) { + newCursor = 0; + } else if (origin == DRMP3_SEEK_CUR) { + newCursor = (drmp3_int64)pMP3->memory.currentReadPos; + } else if (origin == DRMP3_SEEK_END) { + newCursor = (drmp3_int64)pMP3->memory.dataSize; + } else { + DRMP3_ASSERT(!"Invalid seek origin"); + return DRMP3_FALSE; + } + + newCursor += byteOffset; + + if (newCursor < 0) { + return DRMP3_FALSE; /* Trying to seek prior to the start of the buffer. */ + } + if ((size_t)newCursor > pMP3->memory.dataSize) { + return DRMP3_FALSE; /* Trying to seek beyond the end of the buffer. */ + } + + pMP3->memory.currentReadPos = (size_t)newCursor; + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3__on_tell_memory(void* pUserData, drmp3_int64* pCursor) +{ + drmp3* pMP3 = (drmp3*)pUserData; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pCursor != NULL); + + *pCursor = (drmp3_int64)pMP3->memory.currentReadPos; + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_memory_with_metadata(drmp3* pMP3, const void* pData, size_t dataSize, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + + if (pData == NULL || dataSize == 0) { + return DRMP3_FALSE; + } + + pMP3->memory.pData = (const drmp3_uint8*)pData; + pMP3->memory.dataSize = dataSize; + pMP3->memory.currentReadPos = 0; + + result = drmp3_init_internal(pMP3, drmp3__on_read_memory, drmp3__on_seek_memory, drmp3__on_tell_memory, onMeta, pMP3, pUserDataMeta, pAllocationCallbacks); + if (result == DRMP3_FALSE) { + return DRMP3_FALSE; + } + + /* Adjust the length of the memory stream to account for ID3v1 and APE tags. */ + if (pMP3->streamLength <= (drmp3_uint64)DRMP3_SIZE_MAX) { + pMP3->memory.dataSize = (size_t)pMP3->streamLength; /* Safe cast. */ + } + + if (pMP3->streamStartOffset > (drmp3_uint64)DRMP3_SIZE_MAX) { + return DRMP3_FALSE; /* Tags too big. */ + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + return drmp3_init_memory_with_metadata(pMP3, pData, dataSize, NULL, NULL, pAllocationCallbacks); +} + + +#ifndef DR_MP3_NO_STDIO +#include +#include /* For wcslen(), wcsrtombs() */ + +/* Errno */ +/* drmp3_result_from_errno() is only used inside DR_MP3_NO_STDIO for now. Move this out if it's ever used elsewhere. */ +#include +static drmp3_result drmp3_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRMP3_SUCCESS; + #ifdef EPERM + case EPERM: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRMP3_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRMP3_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRMP3_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRMP3_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRMP3_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRMP3_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRMP3_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRMP3_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRMP3_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRMP3_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRMP3_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRMP3_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRMP3_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRMP3_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRMP3_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRMP3_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRMP3_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRMP3_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRMP3_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRMP3_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRMP3_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRMP3_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRMP3_NOT_IMPLEMENTED; + #endif + #if defined(ENOTEMPTY) && ENOTEMPTY != EEXIST /* In AIX, ENOTEMPTY and EEXIST use the same value. */ + case ENOTEMPTY: return DRMP3_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRMP3_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRMP3_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRMP3_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRMP3_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRMP3_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRMP3_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRMP3_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRMP3_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRMP3_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRMP3_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRMP3_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRMP3_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRMP3_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRMP3_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRMP3_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRMP3_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRMP3_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRMP3_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRMP3_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRMP3_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRMP3_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRMP3_ERROR; + #endif + #ifdef EADV + case EADV: return DRMP3_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRMP3_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRMP3_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRMP3_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRMP3_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRMP3_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRMP3_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRMP3_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRMP3_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRMP3_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRMP3_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRMP3_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRMP3_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRMP3_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRMP3_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRMP3_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRMP3_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRMP3_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRMP3_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRMP3_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRMP3_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRMP3_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRMP3_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRMP3_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRMP3_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRMP3_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRMP3_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRMP3_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRMP3_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRMP3_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRMP3_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRMP3_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRMP3_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRMP3_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRMP3_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRMP3_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRMP3_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRMP3_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRMP3_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRMP3_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRMP3_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRMP3_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRMP3_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRMP3_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRMP3_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRMP3_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRMP3_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRMP3_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRMP3_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRMP3_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRMP3_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRMP3_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRMP3_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRMP3_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRMP3_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRMP3_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRMP3_ERROR; + #endif + default: return DRMP3_ERROR; + } +} +/* End Errno */ + +/* fopen */ +static drmp3_result drmp3_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drmp3_result result = drmp3_result_from_errno(errno); + if (result == DRMP3_SUCCESS) { + result = DRMP3_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return DRMP3_SUCCESS; +} + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRMP3_HAS_WFOPEN + #endif +#endif + +static drmp3_result drmp3_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } + +#if defined(DRMP3_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drmp3_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because + fopen() is locale specific. The only real way I can think of to do this is with wcsrtombs(). Note + that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler + error I'll look into improving compatibility. + */ + + /* + Some compilers don't support wchar_t or wcsrtombs() which we're using below. In this case we just + need to abort with an error. If you encounter a compiler lacking such support, add it to this list + and submit a bug report and it'll be added to the library upstream. + */ + #if defined(__DJGPP__) + { + /* Nothing to do here. This will fall through to the error check below. */ + } + #else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + DRMP3_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drmp3_result_from_errno(errno); + } + + pFilePathMB = (char*)drmp3__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRMP3_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + DRMP3_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + drmp3__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + #endif + + if (*ppFile == NULL) { + return DRMP3_ERROR; + } +#endif + + return DRMP3_SUCCESS; +} +/* End fopen */ + + +static size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); +} + +static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek_origin origin) +{ + int whence = SEEK_SET; + if (origin == DRMP3_SEEK_CUR) { + whence = SEEK_CUR; + } else if (origin == DRMP3_SEEK_END) { + whence = SEEK_END; + } + + return fseek((FILE*)pUserData, offset, whence) == 0; +} + +static drmp3_bool32 drmp3__on_tell_stdio(void* pUserData, drmp3_int64* pCursor) +{ + FILE* pFileStdio = (FILE*)pUserData; + drmp3_int64 result; + + /* These were all validated at a higher level. */ + DRMP3_ASSERT(pFileStdio != NULL); + DRMP3_ASSERT(pCursor != NULL); + +#if defined(_WIN32) && !defined(NXDK) + #if defined(_MSC_VER) && _MSC_VER > 1200 + result = _ftelli64(pFileStdio); + #else + result = ftell(pFileStdio); + #endif +#else + result = ftell(pFileStdio); +#endif + + *pCursor = result; + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_file_with_metadata(drmp3* pMP3, const char* pFilePath, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + + if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + + result = drmp3_init_internal(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, drmp3__on_tell_stdio, onMeta, (void*)pFile, pUserDataMeta, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_file_with_metadata_w(drmp3* pMP3, const wchar_t* pFilePath, drmp3_meta_proc onMeta, void* pUserDataMeta, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + DRMP3_ZERO_OBJECT(pMP3); + + if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + + result = drmp3_init_internal(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, drmp3__on_tell_stdio, onMeta, (void*)pFile, pUserDataMeta, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + return drmp3_init_file_with_metadata(pMP3, pFilePath, NULL, NULL, pAllocationCallbacks); +} + +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + return drmp3_init_file_with_metadata_w(pMP3, pFilePath, NULL, NULL, pAllocationCallbacks); +} +#endif + +DRMP3_API void drmp3_uninit(drmp3* pMP3) +{ + if (pMP3 == NULL) { + return; + } + +#ifndef DR_MP3_NO_STDIO + if (pMP3->onRead == drmp3__on_read_stdio) { + FILE* pFile = (FILE*)pMP3->pUserData; + if (pFile != NULL) { + fclose(pFile); + pMP3->pUserData = NULL; /* Make sure the file handle is cleared to NULL to we don't attempt to close it a second time. */ + } + } +#endif + + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); +} + +#if defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_f32_to_s16(drmp3_int16* dst, const float* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + drmp3_uint64 i4; + drmp3_uint64 sampleCount4; + + /* Unrolled. */ + i = 0; + sampleCount4 = sampleCount >> 2; + for (i4 = 0; i4 < sampleCount4; i4 += 1) { + float x0 = src[i+0]; + float x1 = src[i+1]; + float x2 = src[i+2]; + float x3 = src[i+3]; + + x0 = ((x0 < -1) ? -1 : ((x0 > 1) ? 1 : x0)); + x1 = ((x1 < -1) ? -1 : ((x1 > 1) ? 1 : x1)); + x2 = ((x2 < -1) ? -1 : ((x2 > 1) ? 1 : x2)); + x3 = ((x3 < -1) ? -1 : ((x3 > 1) ? 1 : x3)); + + x0 = x0 * 32767.0f; + x1 = x1 * 32767.0f; + x2 = x2 * 32767.0f; + x3 = x3 * 32767.0f; + + dst[i+0] = (drmp3_int16)x0; + dst[i+1] = (drmp3_int16)x1; + dst[i+2] = (drmp3_int16)x2; + dst[i+3] = (drmp3_int16)x3; + + i += 4; + } + + /* Leftover. */ + for (; i < sampleCount; i += 1) { + float x = src[i]; + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst[i] = (drmp3_int16)x; + } +} +#endif + +#if !defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_s16_to_f32(float* dst, const drmp3_int16* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + for (i = 0; i < sampleCount; i += 1) { + float x = (float)src[i]; + x = x * 0.000030517578125f; /* -32768..32767 to -1..0.999969482421875 */ + dst[i] = x; + } +} +#endif + + +static drmp3_uint64 drmp3_read_pcm_frames_raw(drmp3* pMP3, drmp3_uint64 framesToRead, void* pBufferOut) +{ + drmp3_uint64 totalFramesRead = 0; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + + while (framesToRead > 0) { + drmp3_uint32 framesToConsume; + + /* Skip frames if necessary. */ + if (pMP3->currentPCMFrame < pMP3->delayInPCMFrames) { + drmp3_uint32 framesToSkip = (drmp3_uint32)DRMP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, pMP3->delayInPCMFrames - pMP3->currentPCMFrame); + + pMP3->currentPCMFrame += framesToSkip; + pMP3->pcmFramesConsumedInMP3Frame += framesToSkip; + pMP3->pcmFramesRemainingInMP3Frame -= framesToSkip; + } + + framesToConsume = (drmp3_uint32)DRMP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, framesToRead); + + /* Clamp the number of frames to read to the padding. */ + if (pMP3->totalPCMFrameCount != DRMP3_UINT64_MAX && pMP3->totalPCMFrameCount > pMP3->paddingInPCMFrames) { + if (pMP3->currentPCMFrame < (pMP3->totalPCMFrameCount - pMP3->paddingInPCMFrames)) { + drmp3_uint64 framesRemainigToPadding = (pMP3->totalPCMFrameCount - pMP3->paddingInPCMFrames) - pMP3->currentPCMFrame; + if (framesToConsume > framesRemainigToPadding) { + framesToConsume = (drmp3_uint32)framesRemainigToPadding; + } + } else { + /* We're into the padding. Abort. */ + break; + } + } + + if (pBufferOut != NULL) { + #if defined(DR_MP3_FLOAT_OUTPUT) + { + /* f32 */ + float* pFramesOutF32 = (float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalFramesRead * pMP3->channels); + float* pFramesInF32 = (float*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(float) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutF32, pFramesInF32, sizeof(float) * framesToConsume * pMP3->channels); + } + #else + { + /* s16 */ + drmp3_int16* pFramesOutS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalFramesRead * pMP3->channels); + drmp3_int16* pFramesInS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(drmp3_int16) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutS16, pFramesInS16, sizeof(drmp3_int16) * framesToConsume * pMP3->channels); + } + #endif + } + + pMP3->currentPCMFrame += framesToConsume; + pMP3->pcmFramesConsumedInMP3Frame += framesToConsume; + pMP3->pcmFramesRemainingInMP3Frame -= framesToConsume; + totalFramesRead += framesToConsume; + framesToRead -= framesToConsume; + + if (framesToRead == 0) { + break; + } + + /* If the cursor is already at the padding we need to abort. */ + if (pMP3->totalPCMFrameCount != DRMP3_UINT64_MAX && pMP3->totalPCMFrameCount > pMP3->paddingInPCMFrames && pMP3->currentPCMFrame >= (pMP3->totalPCMFrameCount - pMP3->paddingInPCMFrames)) { + break; + } + + DRMP3_ASSERT(pMP3->pcmFramesRemainingInMP3Frame == 0); + + /* At this point we have exhausted our in-memory buffer so we need to re-fill. */ + if (drmp3_decode_next_frame(pMP3) == 0) { + break; + } + } + + return totalFramesRead; +} + + +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } + +#if defined(DR_MP3_FLOAT_OUTPUT) + /* Fast path. No conversion required. */ + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + /* Slow path. Convert from s16 to f32. */ + { + drmp3_int16 pTempS16[8192]; + drmp3_uint64 totalPCMFramesRead = 0; + + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempS16) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempS16); + if (framesJustRead == 0) { + break; + } + + drmp3_s16_to_f32((float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalPCMFramesRead * pMP3->channels), pTempS16, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + + return totalPCMFramesRead; + } +#endif +} + +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } + +#if !defined(DR_MP3_FLOAT_OUTPUT) + /* Fast path. No conversion required. */ + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + /* Slow path. Convert from f32 to s16. */ + { + float pTempF32[4096]; + drmp3_uint64 totalPCMFramesRead = 0; + + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempF32) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempF32); + if (framesJustRead == 0) { + break; + } + + drmp3_f32_to_s16((drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalPCMFramesRead * pMP3->channels), pTempF32, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + + return totalPCMFramesRead; + } +#endif +} + +static void drmp3_reset(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = 0; + pMP3->currentPCMFrame = 0; + pMP3->dataSize = 0; + pMP3->atEnd = DRMP3_FALSE; + drmp3dec_init(&pMP3->decoder); +} + +static drmp3_bool32 drmp3_seek_to_start_of_stream(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onSeek != NULL); + + /* Seek to the start of the stream to begin with. */ + if (!drmp3__on_seek_64(pMP3, pMP3->streamStartOffset, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; + } + + /* Clear any cached data. */ + drmp3_reset(pMP3); + return DRMP3_TRUE; +} + + +static drmp3_bool32 drmp3_seek_forward_by_pcm_frames__brute_force(drmp3* pMP3, drmp3_uint64 frameOffset) +{ + drmp3_uint64 framesRead; + + /* + Just using a dumb read-and-discard for now. What would be nice is to parse only the header of the MP3 frame, and then skip over leading + frames without spending the time doing a full decode. I cannot see an easy way to do this in minimp3, however, so it may involve some + kind of manual processing. + */ +#if defined(DR_MP3_FLOAT_OUTPUT) + framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL); +#else + framesRead = drmp3_read_pcm_frames_s16(pMP3, frameOffset, NULL); +#endif + if (framesRead != frameOffset) { + return DRMP3_FALSE; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3_seek_to_pcm_frame__brute_force(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + DRMP3_ASSERT(pMP3 != NULL); + + if (frameIndex == pMP3->currentPCMFrame) { + return DRMP3_TRUE; + } + + /* + If we're moving foward we just read from where we're at. Otherwise we need to move back to the start of + the stream and read from the beginning. + */ + if (frameIndex < pMP3->currentPCMFrame) { + /* Moving backward. Move to the start of the stream and then move forward. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + } + + DRMP3_ASSERT(frameIndex >= pMP3->currentPCMFrame); + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame)); +} + +static drmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 frameIndex, drmp3_uint32* pSeekPointIndex) +{ + drmp3_uint32 iSeekPoint; + + DRMP3_ASSERT(pSeekPointIndex != NULL); + + *pSeekPointIndex = 0; + + if (frameIndex < pMP3->pSeekPoints[0].pcmFrameIndex) { + return DRMP3_FALSE; + } + + /* Linear search for simplicity to begin with while I'm getting this thing working. Once it's all working change this to a binary search. */ + for (iSeekPoint = 0; iSeekPoint < pMP3->seekPointCount; ++iSeekPoint) { + if (pMP3->pSeekPoints[iSeekPoint].pcmFrameIndex > frameIndex) { + break; /* Found it. */ + } + + *pSeekPointIndex = iSeekPoint; + } + + return DRMP3_TRUE; +} + +static drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + drmp3_seek_point seekPoint; + drmp3_uint32 priorSeekPointIndex; + drmp3_uint16 iMP3Frame; + drmp3_uint64 leftoverFrames; + + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->pSeekPoints != NULL); + DRMP3_ASSERT(pMP3->seekPointCount > 0); + + /* If there is no prior seekpoint it means the target PCM frame comes before the first seek point. Just assume a seekpoint at the start of the file in this case. */ + if (drmp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) { + seekPoint = pMP3->pSeekPoints[priorSeekPointIndex]; + } else { + seekPoint.seekPosInBytes = 0; + seekPoint.pcmFrameIndex = 0; + seekPoint.mp3FramesToDiscard = 0; + seekPoint.pcmFramesToDiscard = 0; + } + + /* First thing to do is seek to the first byte of the relevant MP3 frame. */ + if (!drmp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, DRMP3_SEEK_SET)) { + return DRMP3_FALSE; /* Failed to seek. */ + } + + /* Clear any cached data. */ + drmp3_reset(pMP3); + + /* Whole MP3 frames need to be discarded first. */ + for (iMP3Frame = 0; iMP3Frame < seekPoint.mp3FramesToDiscard; ++iMP3Frame) { + drmp3_uint32 pcmFramesRead; + drmp3d_sample_t* pPCMFrames; + + /* Pass in non-null for the last frame because we want to ensure the sample rate converter is preloaded correctly. */ + pPCMFrames = NULL; + if (iMP3Frame == seekPoint.mp3FramesToDiscard-1) { + pPCMFrames = (drmp3d_sample_t*)pMP3->pcmFrames; + } + + /* We first need to decode the next frame. */ + pcmFramesRead = drmp3_decode_next_frame_ex(pMP3, pPCMFrames, NULL, NULL); + if (pcmFramesRead == 0) { + return DRMP3_FALSE; + } + } + + /* We seeked to an MP3 frame in the raw stream so we need to make sure the current PCM frame is set correctly. */ + pMP3->currentPCMFrame = seekPoint.pcmFrameIndex - seekPoint.pcmFramesToDiscard; + + /* + Now at this point we can follow the same process as the brute force technique where we just skip over unnecessary MP3 frames and then + read-and-discard at least 2 whole MP3 frames. + */ + leftoverFrames = frameIndex - pMP3->currentPCMFrame; + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames); +} + +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + if (pMP3 == NULL || pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + + if (frameIndex == 0) { + return drmp3_seek_to_start_of_stream(pMP3); + } + + /* Use the seek table if we have one. */ + if (pMP3->pSeekPoints != NULL && pMP3->seekPointCount > 0) { + return drmp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex); + } else { + return drmp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex); + } +} + +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount) +{ + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalPCMFrameCount; + drmp3_uint64 totalMP3FrameCount; + + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + /* + The way this works is we move back to the start of the stream, iterate over each MP3 frame and calculate the frame count based + on our output sample rate, the seek back to the PCM frame we were sitting on before calling this function. + */ + + /* The stream must support seeking for this to work. */ + if (pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + + /* We'll need to seek back to where we were, so grab the PCM frame we're currently sitting on so we can restore later. */ + currentPCMFrame = pMP3->currentPCMFrame; + + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + totalPCMFrameCount = 0; + totalMP3FrameCount = 0; + + for (;;) { + drmp3_uint32 pcmFramesInCurrentMP3Frame; + + pcmFramesInCurrentMP3Frame = drmp3_decode_next_frame_ex(pMP3, NULL, NULL, NULL); + if (pcmFramesInCurrentMP3Frame == 0) { + break; + } + + totalPCMFrameCount += pcmFramesInCurrentMP3Frame; + totalMP3FrameCount += 1; + } + + /* Finally, we need to seek back to where we were. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + + if (pMP3FrameCount != NULL) { + *pMP3FrameCount = totalMP3FrameCount; + } + if (pPCMFrameCount != NULL) { + *pPCMFrameCount = totalPCMFrameCount; + } + + return DRMP3_TRUE; +} + +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalPCMFrameCount; + + if (pMP3 == NULL) { + return 0; + } + + if (pMP3->totalPCMFrameCount != DRMP3_UINT64_MAX) { + totalPCMFrameCount = pMP3->totalPCMFrameCount; + + if (totalPCMFrameCount >= pMP3->delayInPCMFrames) { + totalPCMFrameCount -= pMP3->delayInPCMFrames; + } else { + /* The delay is greater than the frame count reported by the Xing/Info tag. Assume it's invalid and ignore. */ + } + + if (totalPCMFrameCount >= pMP3->paddingInPCMFrames) { + totalPCMFrameCount -= pMP3->paddingInPCMFrames; + } else { + /* The padding is greater than the frame count reported by the Xing/Info tag. Assume it's invalid and ignore. */ + } + + return totalPCMFrameCount; + } else { + /* Unknown frame count. Need to calculate it. */ + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) { + return 0; + } + + return totalPCMFrameCount; + } +} + +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalMP3FrameCount; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) { + return 0; + } + + return totalMP3FrameCount; +} + +static void drmp3__accumulate_running_pcm_frame_count(drmp3* pMP3, drmp3_uint32 pcmFrameCountIn, drmp3_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart) +{ + float srcRatio; + float pcmFrameCountOutF; + drmp3_uint32 pcmFrameCountOut; + + srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate; + DRMP3_ASSERT(srcRatio > 0); + + pcmFrameCountOutF = *pRunningPCMFrameCountFractionalPart + (pcmFrameCountIn / srcRatio); + pcmFrameCountOut = (drmp3_uint32)pcmFrameCountOutF; + *pRunningPCMFrameCountFractionalPart = pcmFrameCountOutF - pcmFrameCountOut; + *pRunningPCMFrameCount += pcmFrameCountOut; +} + +typedef struct +{ + drmp3_uint64 bytePos; + drmp3_uint64 pcmFrameIndex; /* <-- After sample rate conversion. */ +} drmp3__seeking_mp3_frame_info; + +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints) +{ + drmp3_uint32 seekPointCount; + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalMP3FrameCount; + drmp3_uint64 totalPCMFrameCount; + + if (pMP3 == NULL || pSeekPointCount == NULL || pSeekPoints == NULL) { + return DRMP3_FALSE; /* Invalid args. */ + } + + seekPointCount = *pSeekPointCount; + if (seekPointCount == 0) { + return DRMP3_FALSE; /* The client has requested no seek points. Consider this to be invalid arguments since the client has probably not intended this. */ + } + + /* We'll need to seek back to the current sample after calculating the seekpoints so we need to go ahead and grab the current location at the top. */ + currentPCMFrame = pMP3->currentPCMFrame; + + /* We never do more than the total number of MP3 frames and we limit it to 32-bits. */ + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) { + return DRMP3_FALSE; + } + + /* If there's less than DRMP3_SEEK_LEADING_MP3_FRAMES+1 frames we just report 1 seek point which will be the very start of the stream. */ + if (totalMP3FrameCount < DRMP3_SEEK_LEADING_MP3_FRAMES+1) { + seekPointCount = 1; + pSeekPoints[0].seekPosInBytes = 0; + pSeekPoints[0].pcmFrameIndex = 0; + pSeekPoints[0].mp3FramesToDiscard = 0; + pSeekPoints[0].pcmFramesToDiscard = 0; + } else { + drmp3_uint64 pcmFramesBetweenSeekPoints; + drmp3__seeking_mp3_frame_info mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES+1]; + drmp3_uint64 runningPCMFrameCount = 0; + float runningPCMFrameCountFractionalPart = 0; + drmp3_uint64 nextTargetPCMFrame; + drmp3_uint32 iMP3Frame; + drmp3_uint32 iSeekPoint; + + if (seekPointCount > totalMP3FrameCount-1) { + seekPointCount = (drmp3_uint32)totalMP3FrameCount-1; + } + + pcmFramesBetweenSeekPoints = totalPCMFrameCount / (seekPointCount+1); + + /* + Here is where we actually calculate the seek points. We need to start by moving the start of the stream. We then enumerate over each + MP3 frame. + */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + + /* + We need to cache the byte positions of the previous MP3 frames. As a new MP3 frame is iterated, we cycle the byte positions in this + array. The value in the first item in this array is the byte position that will be reported in the next seek point. + */ + + /* We need to initialize the array of MP3 byte positions for the leading MP3 frames. */ + for (iMP3Frame = 0; iMP3Frame < DRMP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) { + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + + /* The byte position of the next frame will be the stream's cursor position, minus whatever is sitting in the buffer. */ + DRMP3_ASSERT(pMP3->streamCursor >= pMP3->dataSize); + mp3FrameInfo[iMP3Frame].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[iMP3Frame].pcmFrameIndex = runningPCMFrameCount; + + /* We need to get information about this frame so we can know how many samples it contained. */ + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL, NULL, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + return DRMP3_FALSE; /* This should never happen. */ + } + + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + + /* + At this point we will have extracted the byte positions of the leading MP3 frames. We can now start iterating over each seek point and + calculate them. + */ + nextTargetPCMFrame = 0; + for (iSeekPoint = 0; iSeekPoint < seekPointCount; ++iSeekPoint) { + nextTargetPCMFrame += pcmFramesBetweenSeekPoints; + + for (;;) { + if (nextTargetPCMFrame < runningPCMFrameCount) { + /* The next seek point is in the current MP3 frame. */ + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } else { + size_t i; + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + + /* + The next seek point is not in the current MP3 frame, so continue on to the next one. The first thing to do is cycle the cached + MP3 frame info. + */ + for (i = 0; i < DRMP3_COUNTOF(mp3FrameInfo)-1; ++i) { + mp3FrameInfo[i] = mp3FrameInfo[i+1]; + } + + /* Cache previous MP3 frame info. */ + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount; + + /* + Go to the next MP3 frame. This shouldn't ever fail, but just in case it does we just set the seek point and break. If it happens, it + should only ever do it for the last seek point. + */ + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL, NULL, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } + + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + } + } + + /* Finally, we need to seek back to where we were. */ + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + } + + *pSeekPointCount = seekPointCount; + return DRMP3_TRUE; +} + +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints) +{ + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + + if (seekPointCount == 0 || pSeekPoints == NULL) { + /* Unbinding. */ + pMP3->seekPointCount = 0; + pMP3->pSeekPoints = NULL; + } else { + /* Binding. */ + pMP3->seekPointCount = seekPointCount; + pMP3->pSeekPoints = pSeekPoints; + } + + return DRMP3_TRUE; +} + + +static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + float* pFrames = NULL; + float temp[4096]; + + DRMP3_ASSERT(pMP3 != NULL); + + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + + /* Reallocate the output buffer if there's not enough room. */ + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 newFramesCap; + float* pNewFrames; + + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(float); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(float); + if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + break; + } + + pNewFrames = (float*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + pFrames = NULL; + totalFramesRead = 0; + break; + } + + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float))); + totalFramesRead += framesJustRead; + + /* If the number of frames we asked for is less that what we actually read it means we've reached the end. */ + if (framesJustRead != framesToReadRightNow) { + break; + } + } + + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + + drmp3_uninit(pMP3); + + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + + return pFrames; +} + +static drmp3_int16* drmp3__full_read_and_close_s16(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + drmp3_int16* pFrames = NULL; + drmp3_int16 temp[4096]; + + DRMP3_ASSERT(pMP3 != NULL); + + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_s16(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + + /* Reallocate the output buffer if there's not enough room. */ + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesCap; + drmp3_int16* pNewFrames; + + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(drmp3_int16); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(drmp3_int16); + if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + break; + } + + pNewFrames = (drmp3_int16*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + pFrames = NULL; + totalFramesRead = 0; + break; + } + + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(drmp3_int16))); + totalFramesRead += framesJustRead; + + /* If the number of frames we asked for is less that what we actually read it means we've reached the end. */ + if (framesJustRead != framesToReadRightNow) { + break; + } + } + + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + + drmp3_uninit(pMP3); + + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + + return pFrames; +} + + +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, onTell, NULL, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, drmp3_tell_proc onTell, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, onTell, NULL, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} + + +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} + + +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} + +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} +#endif + +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return drmp3__malloc_from_callbacks(sz, pAllocationCallbacks); + } else { + return drmp3__malloc_default(sz, NULL); + } +} + +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drmp3__free_from_callbacks(p, pAllocationCallbacks); + } else { + drmp3__free_default(p, NULL); + } +} + +#endif /* dr_mp3_c */ +#endif /*DR_MP3_IMPLEMENTATION*/ + +/* +DIFFERENCES BETWEEN minimp3 AND dr_mp3 +====================================== +- First, keep in mind that minimp3 (https://github.com/lieff/minimp3) is where all the real work was done. All of the + code relating to the actual decoding remains mostly unmodified, apart from some namespacing changes. +- dr_mp3 adds a pulling style API which allows you to deliver raw data via callbacks. So, rather than pushing data + to the decoder, the decoder _pulls_ data from your callbacks. +- In addition to callbacks, a decoder can be initialized from a block of memory and a file. +- The dr_mp3 pull API reads PCM frames rather than whole MP3 frames. +- dr_mp3 adds convenience APIs for opening and decoding entire files in one go. +- dr_mp3 is fully namespaced, including the implementation section, which is more suitable when compiling projects + as a single translation unit (aka unity builds). At the time of writing this, a unity build is not possible when + using minimp3 in conjunction with stb_vorbis. dr_mp3 addresses this. +*/ + +/* +REVISION HISTORY +================ +v0.7.4 - TBD + - Improvements to SIMD detection. + +v0.7.3 - 2026-01-17 + - Fix an error in drmp3_open_and_read_pcm_frames_s16() and family when memory allocation fails. + - Fix some compilation warnings. + +v0.7.2 - 2025-12-02 + - Reduce stack space to improve robustness on embedded systems. + - Fix a compilation error with MSVC Clang toolset relating to cpuid. + - Fix an error with APE tag parsing. + +v0.7.1 - 2025-09-10 + - Silence a warning with GCC. + - Fix an error with the NXDK build. + - Fix a decoding inconsistency when seeking. Prior to this change, reading to the end of the stream immediately after initializing will result in a different number of samples read than if the stream is seeked to the start and read to the end. + +v0.7.0 - 2025-07-23 + - The old `DRMP3_IMPLEMENTATION` has been removed. Use `DR_MP3_IMPLEMENTATION` instead. The reason for this change is that in the future everything will eventually be using the underscored naming convention in the future, so `drmp3` will become `dr_mp3`. + - API CHANGE: Seek origins have been renamed to match the naming convention used by dr_wav and my other libraries. + - drmp3_seek_origin_start -> DRMP3_SEEK_SET + - drmp3_seek_origin_current -> DRMP3_SEEK_CUR + - DRMP3_SEEK_END (new) + - API CHANGE: Add DRMP3_SEEK_END as a seek origin for the seek callback. This is required for detection of ID3v1 and APE tags. + - API CHANGE: Add onTell callback to `drmp3_init()`. This is needed in order to track the location of ID3v1 and APE tags. + - API CHANGE: Add onMeta callback to `drmp3_init()`. This is used for reporting tag data back to the caller. Currently this only reports the raw tag data which means applications need to parse the data themselves. + - API CHANGE: Rename `drmp3dec_frame_info.hz` to `drmp3dec_frame_info.sample_rate`. + - Add detection of ID3v2, ID3v1, APE and Xing/VBRI tags. This should fix errors with some files where the decoder was reading tags as audio data. + - Delay and padding samples from LAME tags are now handled. + - Fix compilation for AIX OS. + +v0.6.40 - 2024-12-17 + - Improve detection of ARM64EC + +v0.6.39 - 2024-02-27 + - Fix a Wdouble-promotion warning. + +v0.6.38 - 2023-11-02 + - Fix build for ARMv6-M. + +v0.6.37 - 2023-07-07 + - Silence a static analysis warning. + +v0.6.36 - 2023-06-17 + - Fix an incorrect date in revision history. No functional change. + +v0.6.35 - 2023-05-22 + - Minor code restructure. No functional change. + +v0.6.34 - 2022-09-17 + - Fix compilation with DJGPP. + - Fix compilation when compiling with x86 with no SSE2. + - Remove an unnecessary variable from the drmp3 structure. + +v0.6.33 - 2022-04-10 + - Fix compilation error with the MSVC ARM64 build. + - Fix compilation error on older versions of GCC. + - Remove some unused functions. + +v0.6.32 - 2021-12-11 + - Fix a warning with Clang. + +v0.6.31 - 2021-08-22 + - Fix a bug when loading from memory. + +v0.6.30 - 2021-08-16 + - Silence some warnings. + - Replace memory operations with DRMP3_* macros. + +v0.6.29 - 2021-08-08 + - Bring up to date with minimp3. + +v0.6.28 - 2021-07-31 + - Fix platform detection for ARM64. + - Fix a compilation error with C89. + +v0.6.27 - 2021-02-21 + - Fix a warning due to referencing _MSC_VER when it is undefined. + +v0.6.26 - 2021-01-31 + - Bring up to date with minimp3. + +v0.6.25 - 2020-12-26 + - Remove DRMP3_DEFAULT_CHANNELS and DRMP3_DEFAULT_SAMPLE_RATE which are leftovers from some removed APIs. + +v0.6.24 - 2020-12-07 + - Fix a typo in version date for 0.6.23. + +v0.6.23 - 2020-12-03 + - Fix an error where a file can be closed twice when initialization of the decoder fails. + +v0.6.22 - 2020-12-02 + - Fix an error where it's possible for a file handle to be left open when initialization of the decoder fails. + +v0.6.21 - 2020-11-28 + - Bring up to date with minimp3. + +v0.6.20 - 2020-11-21 + - Fix compilation with OpenWatcom. + +v0.6.19 - 2020-11-13 + - Minor code clean up. + +v0.6.18 - 2020-11-01 + - Improve compiler support for older versions of GCC. + +v0.6.17 - 2020-09-28 + - Bring up to date with minimp3. + +v0.6.16 - 2020-08-02 + - Simplify sized types. + +v0.6.15 - 2020-07-25 + - Fix a compilation warning. + +v0.6.14 - 2020-07-23 + - Fix undefined behaviour with memmove(). + +v0.6.13 - 2020-07-06 + - Fix a bug when converting from s16 to f32 in drmp3_read_pcm_frames_f32(). + +v0.6.12 - 2020-06-23 + - Add include guard for the implementation section. + +v0.6.11 - 2020-05-26 + - Fix use of uninitialized variable error. + +v0.6.10 - 2020-05-16 + - Add compile-time and run-time version querying. + - DRMP3_VERSION_MINOR + - DRMP3_VERSION_MAJOR + - DRMP3_VERSION_REVISION + - DRMP3_VERSION_STRING + - drmp3_version() + - drmp3_version_string() + +v0.6.9 - 2020-04-30 + - Change the `pcm` parameter of drmp3dec_decode_frame() to a `const drmp3_uint8*` for consistency with internal APIs. + +v0.6.8 - 2020-04-26 + - Optimizations to decoding when initializing from memory. + +v0.6.7 - 2020-04-25 + - Fix a compilation error with DR_MP3_NO_STDIO + - Optimization to decoding by reducing some data movement. + +v0.6.6 - 2020-04-23 + - Fix a minor bug with the running PCM frame counter. + +v0.6.5 - 2020-04-19 + - Fix compilation error on ARM builds. + +v0.6.4 - 2020-04-19 + - Bring up to date with changes to minimp3. + +v0.6.3 - 2020-04-13 + - Fix some pedantic warnings. + +v0.6.2 - 2020-04-10 + - Fix a crash in drmp3_open_*_and_read_pcm_frames_*() if the output config object is NULL. + +v0.6.1 - 2020-04-05 + - Fix warnings. + +v0.6.0 - 2020-04-04 + - API CHANGE: Remove the pConfig parameter from the following APIs: + - drmp3_init() + - drmp3_init_memory() + - drmp3_init_file() + - Add drmp3_init_file_w() for opening a file from a wchar_t encoded path. + +v0.5.6 - 2020-02-12 + - Bring up to date with minimp3. + +v0.5.5 - 2020-01-29 + - Fix a memory allocation bug in high level s16 decoding APIs. + +v0.5.4 - 2019-12-02 + - Fix a possible null pointer dereference when using custom memory allocators for realloc(). + +v0.5.3 - 2019-11-14 + - Fix typos in documentation. + +v0.5.2 - 2019-11-02 + - Bring up to date with minimp3. + +v0.5.1 - 2019-10-08 + - Fix a warning with GCC. + +v0.5.0 - 2019-10-07 + - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation + routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: + - drmp3_init() + - drmp3_init_file() + - drmp3_init_memory() + - drmp3_open_and_read_pcm_frames_f32() + - drmp3_open_and_read_pcm_frames_s16() + - drmp3_open_memory_and_read_pcm_frames_f32() + - drmp3_open_memory_and_read_pcm_frames_s16() + - drmp3_open_file_and_read_pcm_frames_f32() + - drmp3_open_file_and_read_pcm_frames_s16() + - API CHANGE: Renamed the following APIs: + - drmp3_open_and_read_f32() -> drmp3_open_and_read_pcm_frames_f32() + - drmp3_open_and_read_s16() -> drmp3_open_and_read_pcm_frames_s16() + - drmp3_open_memory_and_read_f32() -> drmp3_open_memory_and_read_pcm_frames_f32() + - drmp3_open_memory_and_read_s16() -> drmp3_open_memory_and_read_pcm_frames_s16() + - drmp3_open_file_and_read_f32() -> drmp3_open_file_and_read_pcm_frames_f32() + - drmp3_open_file_and_read_s16() -> drmp3_open_file_and_read_pcm_frames_s16() + +v0.4.7 - 2019-07-28 + - Fix a compiler error. + +v0.4.6 - 2019-06-14 + - Fix a compiler error. + +v0.4.5 - 2019-06-06 + - Bring up to date with minimp3. + +v0.4.4 - 2019-05-06 + - Fixes to the VC6 build. + +v0.4.3 - 2019-05-05 + - Use the channel count and/or sample rate of the first MP3 frame instead of DRMP3_DEFAULT_CHANNELS and + DRMP3_DEFAULT_SAMPLE_RATE when they are set to 0. To use the old behaviour, just set the relevant property to + DRMP3_DEFAULT_CHANNELS or DRMP3_DEFAULT_SAMPLE_RATE. + - Add s16 reading APIs + - drmp3_read_pcm_frames_s16 + - drmp3_open_memory_and_read_pcm_frames_s16 + - drmp3_open_and_read_pcm_frames_s16 + - drmp3_open_file_and_read_pcm_frames_s16 + - Add drmp3_get_mp3_and_pcm_frame_count() to the public header section. + - Add support for C89. + - Change license to choice of public domain or MIT-0. + +v0.4.2 - 2019-02-21 + - Fix a warning. + +v0.4.1 - 2018-12-30 + - Fix a warning. + +v0.4.0 - 2018-12-16 + - API CHANGE: Rename some APIs: + - drmp3_read_f32 -> to drmp3_read_pcm_frames_f32 + - drmp3_seek_to_frame -> drmp3_seek_to_pcm_frame + - drmp3_open_and_decode_f32 -> drmp3_open_and_read_pcm_frames_f32 + - drmp3_open_and_decode_memory_f32 -> drmp3_open_memory_and_read_pcm_frames_f32 + - drmp3_open_and_decode_file_f32 -> drmp3_open_file_and_read_pcm_frames_f32 + - Add drmp3_get_pcm_frame_count(). + - Add drmp3_get_mp3_frame_count(). + - Improve seeking performance. + +v0.3.2 - 2018-09-11 + - Fix a couple of memory leaks. + - Bring up to date with minimp3. + +v0.3.1 - 2018-08-25 + - Fix C++ build. + +v0.3.0 - 2018-08-25 + - Bring up to date with minimp3. This has a minor API change: the "pcm" parameter of drmp3dec_decode_frame() has + been changed from short* to void* because it can now output both s16 and f32 samples, depending on whether or + not the DR_MP3_FLOAT_OUTPUT option is set. + +v0.2.11 - 2018-08-08 + - Fix a bug where the last part of a file is not read. + +v0.2.10 - 2018-08-07 + - Improve 64-bit detection. + +v0.2.9 - 2018-08-05 + - Fix C++ build on older versions of GCC. + - Bring up to date with minimp3. + +v0.2.8 - 2018-08-02 + - Fix compilation errors with older versions of GCC. + +v0.2.7 - 2018-07-13 + - Bring up to date with minimp3. + +v0.2.6 - 2018-07-12 + - Bring up to date with minimp3. + +v0.2.5 - 2018-06-22 + - Bring up to date with minimp3. + +v0.2.4 - 2018-05-12 + - Bring up to date with minimp3. + +v0.2.3 - 2018-04-29 + - Fix TCC build. + +v0.2.2 - 2018-04-28 + - Fix bug when opening a decoder from memory. + +v0.2.1 - 2018-04-27 + - Efficiency improvements when the decoder reaches the end of the stream. + +v0.2 - 2018-04-21 + - Bring up to date with minimp3. + - Start using major.minor.revision versioning. + +v0.1d - 2018-03-30 + - Bring up to date with minimp3. + +v0.1c - 2018-03-11 + - Fix C++ build error. + +v0.1b - 2018-03-07 + - Bring up to date with minimp3. + +v0.1a - 2018-02-28 + - Fix compilation error on GCC/Clang. + - Fix some warnings. + +v0.1 - 2018-02-xx + - Initial versioned release. +*/ + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2023 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +/* + https://github.com/lieff/minimp3 + To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. + This software is distributed without any warranty. + See . +*/ diff --git a/lib/All/dr_libs/dr_wav.h b/lib/All/dr_libs/dr_wav.h new file mode 100644 index 0000000..c7bd89f --- /dev/null +++ b/lib/All/dr_libs/dr_wav.h @@ -0,0 +1,9060 @@ +/* +WAV audio loader and writer. Choice of public domain or MIT-0. See license statements at the end of this file. +dr_wav - v0.14.5 - 2026-03-03 + +David Reid - mackron@gmail.com + +GitHub: https://github.com/mackron/dr_libs +*/ + +/* +Introduction +============ +This is a single file library. To use it, do something like the following in one .c file. + + ```c + #define DR_WAV_IMPLEMENTATION + #include "dr_wav.h" + ``` + +You can then #include this file in other parts of the program as you would with any other header file. Do something like the following to read audio data: + + ```c + drwav wav; + if (!drwav_init_file(&wav, "my_song.wav", NULL)) { + // Error opening WAV file. + } + + drwav_int32* pDecodedInterleavedPCMFrames = malloc(wav.totalPCMFrameCount * wav.channels * sizeof(drwav_int32)); + size_t numberOfSamplesActuallyDecoded = drwav_read_pcm_frames_s32(&wav, wav.totalPCMFrameCount, pDecodedInterleavedPCMFrames); + + ... + + drwav_uninit(&wav); + ``` + +If you just want to quickly open and read the audio data in a single operation you can do something like this: + + ```c + unsigned int channels; + unsigned int sampleRate; + drwav_uint64 totalPCMFrameCount; + float* pSampleData = drwav_open_file_and_read_pcm_frames_f32("my_song.wav", &channels, &sampleRate, &totalPCMFrameCount, NULL); + if (pSampleData == NULL) { + // Error opening and reading WAV file. + } + + ... + + drwav_free(pSampleData, NULL); + ``` + +The examples above use versions of the API that convert the audio data to a consistent format (32-bit signed PCM, in this case), but you can still output the +audio data in its internal format (see notes below for supported formats): + + ```c + size_t framesRead = drwav_read_pcm_frames(&wav, wav.totalPCMFrameCount, pDecodedInterleavedPCMFrames); + ``` + +You can also read the raw bytes of audio data, which could be useful if dr_wav does not have native support for a particular data format: + + ```c + size_t bytesRead = drwav_read_raw(&wav, bytesToRead, pRawDataBuffer); + ``` + +dr_wav can also be used to output WAV files. This does not currently support compressed formats. To use this, look at `drwav_init_write()`, +`drwav_init_file_write()`, etc. Use `drwav_write_pcm_frames()` to write samples, or `drwav_write_raw()` to write raw data in the "data" chunk. + + ```c + drwav_data_format format; + format.container = drwav_container_riff; // <-- drwav_container_riff = normal WAV files, drwav_container_w64 = Sony Wave64. + format.format = DR_WAVE_FORMAT_PCM; // <-- Any of the DR_WAVE_FORMAT_* codes. + format.channels = 2; + format.sampleRate = 44100; + format.bitsPerSample = 16; + drwav_init_file_write(&wav, "data/recording.wav", &format, NULL); + + ... + + drwav_uint64 framesWritten = drwav_write_pcm_frames(pWav, frameCount, pSamples); + ``` + +Note that writing to AIFF or RIFX is not supported. + +dr_wav has support for decoding from a number of different encapsulation formats. See below for details. + + +Build Options +============= +#define these options before including this file. + +#define DR_WAV_NO_CONVERSION_API + Disables conversion APIs such as `drwav_read_pcm_frames_f32()` and `drwav_s16_to_f32()`. + +#define DR_WAV_NO_STDIO + Disables APIs that initialize a decoder from a file such as `drwav_init_file()`, `drwav_init_file_write()`, etc. + +#define DR_WAV_NO_WCHAR + Disables all functions ending with `_w`. Use this if your compiler does not provide wchar.h. Not required if DR_WAV_NO_STDIO is also defined. + + +Supported Encapsulations +======================== +- RIFF (Regular WAV) +- RIFX (Big-Endian) +- AIFF (Does not currently support ADPCM) +- RF64 +- W64 + +Note that AIFF and RIFX do not support write mode, nor do they support reading of metadata. + + +Supported Encodings +=================== +- Unsigned 8-bit PCM +- Signed 12-bit PCM +- Signed 16-bit PCM +- Signed 24-bit PCM +- Signed 32-bit PCM +- IEEE 32-bit floating point +- IEEE 64-bit floating point +- A-law and u-law +- Microsoft ADPCM +- IMA ADPCM (DVI, format code 0x11) + +8-bit PCM encodings are always assumed to be unsigned. Signed 8-bit encoding can only be read with `drwav_read_raw()`. + +Note that ADPCM is not currently supported with AIFF. Contributions welcome. + + +Notes +===== +- Samples are always interleaved. +- The default read function does not do any data conversion. Use `drwav_read_pcm_frames_f32()`, `drwav_read_pcm_frames_s32()` and `drwav_read_pcm_frames_s16()` + to read and convert audio data to 32-bit floating point, signed 32-bit integer and signed 16-bit integer samples respectively. +- dr_wav will try to read the WAV file as best it can, even if it's not strictly conformant to the WAV format. +*/ + +#ifndef dr_wav_h +#define dr_wav_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define DRWAV_STRINGIFY(x) #x +#define DRWAV_XSTRINGIFY(x) DRWAV_STRINGIFY(x) + +#define DRWAV_VERSION_MAJOR 0 +#define DRWAV_VERSION_MINOR 14 +#define DRWAV_VERSION_REVISION 5 +#define DRWAV_VERSION_STRING DRWAV_XSTRINGIFY(DRWAV_VERSION_MAJOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_MINOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_REVISION) + +#include /* For size_t. */ + +/* Sized Types */ +typedef signed char drwav_int8; +typedef unsigned char drwav_uint8; +typedef signed short drwav_int16; +typedef unsigned short drwav_uint16; +typedef signed int drwav_int32; +typedef unsigned int drwav_uint32; +#if defined(_MSC_VER) && !defined(__clang__) + typedef signed __int64 drwav_int64; + typedef unsigned __int64 drwav_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drwav_int64; + typedef unsigned long long drwav_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(__powerpc64__) + typedef drwav_uint64 drwav_uintptr; +#else + typedef drwav_uint32 drwav_uintptr; +#endif +typedef drwav_uint8 drwav_bool8; +typedef drwav_uint32 drwav_bool32; +#define DRWAV_TRUE 1 +#define DRWAV_FALSE 0 +/* End Sized Types */ + +/* Decorations */ +#if !defined(DRWAV_API) + #if defined(DRWAV_DLL) + #if defined(_WIN32) + #define DRWAV_DLL_IMPORT __declspec(dllimport) + #define DRWAV_DLL_EXPORT __declspec(dllexport) + #define DRWAV_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRWAV_DLL_IMPORT __attribute__((visibility("default"))) + #define DRWAV_DLL_EXPORT __attribute__((visibility("default"))) + #define DRWAV_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRWAV_DLL_IMPORT + #define DRWAV_DLL_EXPORT + #define DRWAV_DLL_PRIVATE static + #endif + #endif + + #if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) + #define DRWAV_API DRWAV_DLL_EXPORT + #else + #define DRWAV_API DRWAV_DLL_IMPORT + #endif + #define DRWAV_PRIVATE DRWAV_DLL_PRIVATE + #else + #define DRWAV_API extern + #define DRWAV_PRIVATE static + #endif +#endif +/* End Decorations */ + +/* Result Codes */ +typedef drwav_int32 drwav_result; +#define DRWAV_SUCCESS 0 +#define DRWAV_ERROR -1 /* A generic error. */ +#define DRWAV_INVALID_ARGS -2 +#define DRWAV_INVALID_OPERATION -3 +#define DRWAV_OUT_OF_MEMORY -4 +#define DRWAV_OUT_OF_RANGE -5 +#define DRWAV_ACCESS_DENIED -6 +#define DRWAV_DOES_NOT_EXIST -7 +#define DRWAV_ALREADY_EXISTS -8 +#define DRWAV_TOO_MANY_OPEN_FILES -9 +#define DRWAV_INVALID_FILE -10 +#define DRWAV_TOO_BIG -11 +#define DRWAV_PATH_TOO_LONG -12 +#define DRWAV_NAME_TOO_LONG -13 +#define DRWAV_NOT_DIRECTORY -14 +#define DRWAV_IS_DIRECTORY -15 +#define DRWAV_DIRECTORY_NOT_EMPTY -16 +#define DRWAV_END_OF_FILE -17 +#define DRWAV_NO_SPACE -18 +#define DRWAV_BUSY -19 +#define DRWAV_IO_ERROR -20 +#define DRWAV_INTERRUPT -21 +#define DRWAV_UNAVAILABLE -22 +#define DRWAV_ALREADY_IN_USE -23 +#define DRWAV_BAD_ADDRESS -24 +#define DRWAV_BAD_SEEK -25 +#define DRWAV_BAD_PIPE -26 +#define DRWAV_DEADLOCK -27 +#define DRWAV_TOO_MANY_LINKS -28 +#define DRWAV_NOT_IMPLEMENTED -29 +#define DRWAV_NO_MESSAGE -30 +#define DRWAV_BAD_MESSAGE -31 +#define DRWAV_NO_DATA_AVAILABLE -32 +#define DRWAV_INVALID_DATA -33 +#define DRWAV_TIMEOUT -34 +#define DRWAV_NO_NETWORK -35 +#define DRWAV_NOT_UNIQUE -36 +#define DRWAV_NOT_SOCKET -37 +#define DRWAV_NO_ADDRESS -38 +#define DRWAV_BAD_PROTOCOL -39 +#define DRWAV_PROTOCOL_UNAVAILABLE -40 +#define DRWAV_PROTOCOL_NOT_SUPPORTED -41 +#define DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRWAV_SOCKET_NOT_SUPPORTED -44 +#define DRWAV_CONNECTION_RESET -45 +#define DRWAV_ALREADY_CONNECTED -46 +#define DRWAV_NOT_CONNECTED -47 +#define DRWAV_CONNECTION_REFUSED -48 +#define DRWAV_NO_HOST -49 +#define DRWAV_IN_PROGRESS -50 +#define DRWAV_CANCELLED -51 +#define DRWAV_MEMORY_ALREADY_MAPPED -52 +#define DRWAV_AT_END -53 +/* End Result Codes */ + +/* Common data formats. */ +#define DR_WAVE_FORMAT_PCM 0x1 +#define DR_WAVE_FORMAT_ADPCM 0x2 +#define DR_WAVE_FORMAT_IEEE_FLOAT 0x3 +#define DR_WAVE_FORMAT_ALAW 0x6 +#define DR_WAVE_FORMAT_MULAW 0x7 +#define DR_WAVE_FORMAT_DVI_ADPCM 0x11 +#define DR_WAVE_FORMAT_EXTENSIBLE 0xFFFE + +/* Flags to pass into drwav_init_ex(), etc. */ +#define DRWAV_SEQUENTIAL 0x00000001 +#define DRWAV_WITH_METADATA 0x00000002 + +DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision); +DRWAV_API const char* drwav_version_string(void); + +/* Allocation Callbacks */ +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drwav_allocation_callbacks; +/* End Allocation Callbacks */ + +typedef enum +{ + DRWAV_SEEK_SET, + DRWAV_SEEK_CUR, + DRWAV_SEEK_END +} drwav_seek_origin; + +typedef enum +{ + drwav_container_riff, + drwav_container_rifx, + drwav_container_w64, + drwav_container_rf64, + drwav_container_aiff +} drwav_container; + +typedef struct +{ + union + { + drwav_uint8 fourcc[4]; + drwav_uint8 guid[16]; + } id; + + /* The size in bytes of the chunk. */ + drwav_uint64 sizeInBytes; + + /* + RIFF = 2 byte alignment. + W64 = 8 byte alignment. + */ + unsigned int paddingSize; +} drwav_chunk_header; + +typedef struct +{ + /* + The format tag exactly as specified in the wave file's "fmt" chunk. This can be used by applications + that require support for data formats not natively supported by dr_wav. + */ + drwav_uint16 formatTag; + + /* The number of channels making up the audio data. When this is set to 1 it is mono, 2 is stereo, etc. */ + drwav_uint16 channels; + + /* The sample rate. Usually set to something like 44100. */ + drwav_uint32 sampleRate; + + /* Average bytes per second. You probably don't need this, but it's left here for informational purposes. */ + drwav_uint32 avgBytesPerSec; + + /* Block align. This is equal to the number of channels * bytes per sample. */ + drwav_uint16 blockAlign; + + /* Bits per sample. */ + drwav_uint16 bitsPerSample; + + /* The size of the extended data. Only used internally for validation, but left here for informational purposes. */ + drwav_uint16 extendedSize; + + /* + The number of valid bits per sample. When is equal to WAVE_FORMAT_EXTENSIBLE, + is always rounded up to the nearest multiple of 8. This variable contains information about exactly how + many bits are valid per sample. Mainly used for informational purposes. + */ + drwav_uint16 validBitsPerSample; + + /* The channel mask. Not used at the moment. */ + drwav_uint32 channelMask; + + /* The sub-format, exactly as specified by the wave file. */ + drwav_uint8 subFormat[16]; +} drwav_fmt; + +DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT); + + +/* +Callback for when data is read. Return value is the number of bytes actually read. + +pUserData [in] The user data that was passed to drwav_init() and family. +pBufferOut [out] The output buffer. +bytesToRead [in] The number of bytes to read. + +Returns the number of bytes actually read. + +A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until +either the entire bytesToRead is filled or you have reached the end of the stream. +*/ +typedef size_t (* drwav_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); + +/* +Callback for when data is written. Returns value is the number of bytes actually written. + +pUserData [in] The user data that was passed to drwav_init_write() and family. +pData [out] A pointer to the data to write. +bytesToWrite [in] The number of bytes to write. + +Returns the number of bytes actually written. + +If the return value differs from bytesToWrite, it indicates an error. +*/ +typedef size_t (* drwav_write_proc)(void* pUserData, const void* pData, size_t bytesToWrite); + +/* +Callback for when data needs to be seeked. + +pUserData [in] The user data that was passed to drwav_init() and family. +offset [in] The number of bytes to move, relative to the origin. Will never be negative. +origin [in] The origin of the seek - the current position or the start of the stream. + +Returns whether or not the seek was successful. + +Whether or not it is relative to the beginning or current position is determined by the "origin" parameter which will be either DRWAV_SEEK_SET or +DRWAV_SEEK_CUR. +*/ +typedef drwav_bool32 (* drwav_seek_proc)(void* pUserData, int offset, drwav_seek_origin origin); + +/* +Callback for when the current position in the stream needs to be retrieved. + +pUserData [in] The user data that was passed to drwav_init() and family. +pCursor [out] A pointer to a variable to receive the current position in the stream. + +Returns whether or not the operation was successful. +*/ +typedef drwav_bool32 (* drwav_tell_proc)(void* pUserData, drwav_int64* pCursor); + +/* +Callback for when drwav_init_ex() finds a chunk. + +pChunkUserData [in] The user data that was passed to the pChunkUserData parameter of drwav_init_ex() and family. +onRead [in] A pointer to the function to call when reading. +onSeek [in] A pointer to the function to call when seeking. +pReadSeekUserData [in] The user data that was passed to the pReadSeekUserData parameter of drwav_init_ex() and family. +pChunkHeader [in] A pointer to an object containing basic header information about the chunk. Use this to identify the chunk. +container [in] Whether or not the WAV file is a RIFF or Wave64 container. If you're unsure of the difference, assume RIFF. +pFMT [in] A pointer to the object containing the contents of the "fmt" chunk. + +Returns the number of bytes read + seeked. + +To read data from the chunk, call onRead(), passing in pReadSeekUserData as the first parameter. Do the same for seeking with onSeek(). The return value must +be the total number of bytes you have read _plus_ seeked. + +Use the `container` argument to discriminate the fields in `pChunkHeader->id`. If the container is `drwav_container_riff` or `drwav_container_rf64` you should +use `id.fourcc`, otherwise you should use `id.guid`. + +The `pFMT` parameter can be used to determine the data format of the wave file. Use `drwav_fmt_get_format()` to get the sample format, which will be one of the +`DR_WAVE_FORMAT_*` identifiers. + +The read pointer will be sitting on the first byte after the chunk's header. You must not attempt to read beyond the boundary of the chunk. +*/ +typedef drwav_uint64 (* drwav_chunk_proc)(void* pChunkUserData, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_chunk_header* pChunkHeader, drwav_container container, const drwav_fmt* pFMT); + + +/* Structure for internal use. Only used for loaders opened with drwav_init_memory(). */ +typedef struct +{ + const drwav_uint8* data; + size_t dataSize; + size_t currentReadPos; +} drwav__memory_stream; + +/* Structure for internal use. Only used for writers opened with drwav_init_memory_write(). */ +typedef struct +{ + void** ppData; + size_t* pDataSize; + size_t dataSize; + size_t dataCapacity; + size_t currentWritePos; +} drwav__memory_stream_write; + +typedef struct +{ + drwav_container container; /* RIFF, W64. */ + drwav_uint32 format; /* DR_WAVE_FORMAT_* */ + drwav_uint32 channels; + drwav_uint32 sampleRate; + drwav_uint32 bitsPerSample; +} drwav_data_format; + +typedef enum +{ + drwav_metadata_type_none = 0, + + /* + Unknown simply means a chunk that drwav does not handle specifically. You can still ask to + receive these chunks as metadata objects. It is then up to you to interpret the chunk's data. + You can also write unknown metadata to a wav file. Be careful writing unknown chunks if you + have also edited the audio data. The unknown chunks could represent offsets/sizes that no + longer correctly correspond to the audio data. + */ + drwav_metadata_type_unknown = 1 << 0, + + /* Only 1 of each of these metadata items are allowed in a wav file. */ + drwav_metadata_type_smpl = 1 << 1, + drwav_metadata_type_inst = 1 << 2, + drwav_metadata_type_cue = 1 << 3, + drwav_metadata_type_acid = 1 << 4, + drwav_metadata_type_bext = 1 << 5, + + /* + Wav files often have a LIST chunk. This is a chunk that contains a set of subchunks. For this + higher-level metadata API, we don't make a distinction between a regular chunk and a LIST + subchunk. Instead, they are all just 'metadata' items. + + There can be multiple of these metadata items in a wav file. + */ + drwav_metadata_type_list_label = 1 << 6, + drwav_metadata_type_list_note = 1 << 7, + drwav_metadata_type_list_labelled_cue_region = 1 << 8, + + drwav_metadata_type_list_info_software = 1 << 9, + drwav_metadata_type_list_info_copyright = 1 << 10, + drwav_metadata_type_list_info_title = 1 << 11, + drwav_metadata_type_list_info_artist = 1 << 12, + drwav_metadata_type_list_info_comment = 1 << 13, + drwav_metadata_type_list_info_date = 1 << 14, + drwav_metadata_type_list_info_genre = 1 << 15, + drwav_metadata_type_list_info_album = 1 << 16, + drwav_metadata_type_list_info_tracknumber = 1 << 17, + drwav_metadata_type_list_info_location = 1 << 18, + drwav_metadata_type_list_info_organization = 1 << 19, + drwav_metadata_type_list_info_keywords = 1 << 20, + drwav_metadata_type_list_info_medium = 1 << 21, + drwav_metadata_type_list_info_description = 1 << 22, + + /* Other type constants for convenience. */ + drwav_metadata_type_list_all_info_strings = drwav_metadata_type_list_info_software + | drwav_metadata_type_list_info_copyright + | drwav_metadata_type_list_info_title + | drwav_metadata_type_list_info_artist + | drwav_metadata_type_list_info_comment + | drwav_metadata_type_list_info_date + | drwav_metadata_type_list_info_genre + | drwav_metadata_type_list_info_album + | drwav_metadata_type_list_info_tracknumber + | drwav_metadata_type_list_info_location + | drwav_metadata_type_list_info_organization + | drwav_metadata_type_list_info_keywords + | drwav_metadata_type_list_info_medium + | drwav_metadata_type_list_info_description, + + drwav_metadata_type_list_all_adtl = drwav_metadata_type_list_label + | drwav_metadata_type_list_note + | drwav_metadata_type_list_labelled_cue_region, + + drwav_metadata_type_all = -2, /*0xFFFFFFFF & ~drwav_metadata_type_unknown,*/ + drwav_metadata_type_all_including_unknown = -1 /*0xFFFFFFFF,*/ +} drwav_metadata_type; + +/* +Sampler Metadata + +The sampler chunk contains information about how a sound should be played in the context of a whole +audio production, and when used in a sampler. See https://en.wikipedia.org/wiki/Sample-based_synthesis. +*/ +typedef enum +{ + drwav_smpl_loop_type_forward = 0, + drwav_smpl_loop_type_pingpong = 1, + drwav_smpl_loop_type_backward = 2 +} drwav_smpl_loop_type; + +typedef struct +{ + /* The ID of the associated cue point, see drwav_cue and drwav_cue_point. As with all cue point IDs, this can correspond to a label chunk to give this loop a name, see drwav_list_label_or_note. */ + drwav_uint32 cuePointId; + + /* See drwav_smpl_loop_type. */ + drwav_uint32 type; + + /* The offset of the first sample to be played in the loop. */ + drwav_uint32 firstSampleOffset; + + /* The offset into the audio data of the last sample to be played in the loop. */ + drwav_uint32 lastSampleOffset; + + /* A value to represent that playback should occur at a point between samples. This value ranges from 0 to UINT32_MAX. Where a value of 0 means no fraction, and a value of (UINT32_MAX / 2) would mean half a sample. */ + drwav_uint32 sampleFraction; + + /* Number of times to play the loop. 0 means loop infinitely. */ + drwav_uint32 playCount; +} drwav_smpl_loop; + +typedef struct +{ + /* IDs for a particular MIDI manufacturer. 0 if not used. */ + drwav_uint32 manufacturerId; + drwav_uint32 productId; + + /* The period of 1 sample in nanoseconds. */ + drwav_uint32 samplePeriodNanoseconds; + + /* The MIDI root note of this file. 0 to 127. */ + drwav_uint32 midiUnityNote; + + /* The fraction of a semitone up from the given MIDI note. This is a value from 0 to UINT32_MAX, where 0 means no change and (UINT32_MAX / 2) is half a semitone (AKA 50 cents). */ + drwav_uint32 midiPitchFraction; + + /* Data relating to SMPTE standards which are used for syncing audio and video. 0 if not used. */ + drwav_uint32 smpteFormat; + drwav_uint32 smpteOffset; + + /* drwav_smpl_loop loops. */ + drwav_uint32 sampleLoopCount; + + /* Optional sampler-specific data. */ + drwav_uint32 samplerSpecificDataSizeInBytes; + + drwav_smpl_loop* pLoops; + drwav_uint8* pSamplerSpecificData; +} drwav_smpl; + +/* +Instrument Metadata + +The inst metadata contains data about how a sound should be played as part of an instrument. This +commonly read by samplers. See https://en.wikipedia.org/wiki/Sample-based_synthesis. +*/ +typedef struct +{ + drwav_int8 midiUnityNote; /* The root note of the audio as a MIDI note number. 0 to 127. */ + drwav_int8 fineTuneCents; /* -50 to +50 */ + drwav_int8 gainDecibels; /* -64 to +64 */ + drwav_int8 lowNote; /* 0 to 127 */ + drwav_int8 highNote; /* 0 to 127 */ + drwav_int8 lowVelocity; /* 1 to 127 */ + drwav_int8 highVelocity; /* 1 to 127 */ +} drwav_inst; + +/* +Cue Metadata + +Cue points are markers at specific points in the audio. They often come with an associated piece of +drwav_list_label_or_note metadata which contains the text for the marker. +*/ +typedef struct +{ + /* Unique identification value. */ + drwav_uint32 id; + + /* Set to 0. This is only relevant if there is a 'playlist' chunk - which is not supported by dr_wav. */ + drwav_uint32 playOrderPosition; + + /* Should always be "data". This represents the fourcc value of the chunk that this cue point corresponds to. dr_wav only supports a single data chunk so this should always be "data". */ + drwav_uint8 dataChunkId[4]; + + /* Set to 0. This is only relevant if there is a wave list chunk. dr_wav, like lots of readers/writers, do not support this. */ + drwav_uint32 chunkStart; + + /* Set to 0 for uncompressed formats. Else the last byte in compressed wave data where decompression can begin to find the value of the corresponding sample value. */ + drwav_uint32 blockStart; + + /* For uncompressed formats this is the offset of the cue point into the audio data. For compressed formats this is relative to the block specified with blockStart. */ + drwav_uint32 sampleOffset; +} drwav_cue_point; + +typedef struct +{ + drwav_uint32 cuePointCount; + drwav_cue_point *pCuePoints; +} drwav_cue; + +/* +Acid Metadata + +This chunk contains some information about the time signature and the tempo of the audio. +*/ +typedef enum +{ + drwav_acid_flag_one_shot = 1, /* If this is not set, then it is a loop instead of a one-shot. */ + drwav_acid_flag_root_note_set = 2, + drwav_acid_flag_stretch = 4, + drwav_acid_flag_disk_based = 8, + drwav_acid_flag_acidizer = 16 /* Not sure what this means. */ +} drwav_acid_flag; + +typedef struct +{ + /* A bit-field, see drwav_acid_flag. */ + drwav_uint32 flags; + + /* Valid if flags contains drwav_acid_flag_root_note_set. It represents the MIDI root note the file - a value from 0 to 127. */ + drwav_uint16 midiUnityNote; + + /* Reserved values that should probably be ignored. reserved1 seems to often be 128 and reserved2 is 0. */ + drwav_uint16 reserved1; + float reserved2; + + /* Number of beats. */ + drwav_uint32 numBeats; + + /* The time signature of the audio. */ + drwav_uint16 meterDenominator; + drwav_uint16 meterNumerator; + + /* Beats per minute of the track. Setting a value of 0 suggests that there is no tempo. */ + float tempo; +} drwav_acid; + +/* +Cue Label or Note metadata + +These are 2 different types of metadata, but they have the exact same format. Labels tend to be the +more common and represent a short name for a cue point. Notes might be used to represent a longer +comment. +*/ +typedef struct +{ + /* The ID of a cue point that this label or note corresponds to. */ + drwav_uint32 cuePointId; + + /* Size of the string not including any null terminator. */ + drwav_uint32 stringLength; + + /* The string. The *init_with_metadata functions null terminate this for convenience. */ + char* pString; +} drwav_list_label_or_note; + +/* +BEXT metadata, also known as Broadcast Wave Format (BWF) + +This metadata adds some extra description to an audio file. You must check the version field to +determine if the UMID or the loudness fields are valid. +*/ +typedef struct +{ + /* + These top 3 fields, and the umid field are actually defined in the standard as a statically + sized buffers. In order to reduce the size of this struct (and therefore the union in the + metadata struct), we instead store these as pointers. + */ + char* pDescription; /* Can be NULL or a null-terminated string, must be <= 256 characters. */ + char* pOriginatorName; /* Can be NULL or a null-terminated string, must be <= 32 characters. */ + char* pOriginatorReference; /* Can be NULL or a null-terminated string, must be <= 32 characters. */ + char pOriginationDate[10]; /* ASCII "yyyy:mm:dd". */ + char pOriginationTime[8]; /* ASCII "hh:mm:ss". */ + drwav_uint64 timeReference; /* First sample count since midnight. */ + drwav_uint16 version; /* Version of the BWF, check this to see if the fields below are valid. */ + + /* + Unrestricted ASCII characters containing a collection of strings terminated by CR/LF. Each + string shall contain a description of a coding process applied to the audio data. + */ + char* pCodingHistory; + drwav_uint32 codingHistorySize; + + /* Fields below this point are only valid if the version is 1 or above. */ + drwav_uint8* pUMID; /* Exactly 64 bytes of SMPTE UMID */ + + /* Fields below this point are only valid if the version is 2 or above. */ + drwav_uint16 loudnessValue; /* Integrated Loudness Value of the file in LUFS (multiplied by 100). */ + drwav_uint16 loudnessRange; /* Loudness Range of the file in LU (multiplied by 100). */ + drwav_uint16 maxTruePeakLevel; /* Maximum True Peak Level of the file expressed as dBTP (multiplied by 100). */ + drwav_uint16 maxMomentaryLoudness; /* Highest value of the Momentary Loudness Level of the file in LUFS (multiplied by 100). */ + drwav_uint16 maxShortTermLoudness; /* Highest value of the Short-Term Loudness Level of the file in LUFS (multiplied by 100). */ +} drwav_bext; + +/* +Info Text Metadata + +There a many different types of information text that can be saved in this format. This is where +things like the album name, the artists, the year it was produced, etc are saved. See +drwav_metadata_type for the full list of types that dr_wav supports. +*/ +typedef struct +{ + /* Size of the string not including any null terminator. */ + drwav_uint32 stringLength; + + /* The string. The *init_with_metadata functions null terminate this for convenience. */ + char* pString; +} drwav_list_info_text; + +/* +Labelled Cue Region Metadata + +The labelled cue region metadata is used to associate some region of audio with text. The region +starts at a cue point, and extends for the given number of samples. +*/ +typedef struct +{ + /* The ID of a cue point that this object corresponds to. */ + drwav_uint32 cuePointId; + + /* The number of samples from the cue point forwards that should be considered this region */ + drwav_uint32 sampleLength; + + /* Four characters used to say what the purpose of this region is. */ + drwav_uint8 purposeId[4]; + + /* Unsure of the exact meanings of these. It appears to be acceptable to set them all to 0. */ + drwav_uint16 country; + drwav_uint16 language; + drwav_uint16 dialect; + drwav_uint16 codePage; + + /* Size of the string not including any null terminator. */ + drwav_uint32 stringLength; + + /* The string. The *init_with_metadata functions null terminate this for convenience. */ + char* pString; +} drwav_list_labelled_cue_region; + +/* +Unknown Metadata + +This chunk just represents a type of chunk that dr_wav does not understand. + +Unknown metadata has a location attached to it. This is because wav files can have a LIST chunk +that contains subchunks. These LIST chunks can be one of two types. An adtl list, or an INFO +list. This enum is used to specify the location of a chunk that dr_wav currently doesn't support. +*/ +typedef enum +{ + drwav_metadata_location_invalid, + drwav_metadata_location_top_level, + drwav_metadata_location_inside_info_list, + drwav_metadata_location_inside_adtl_list +} drwav_metadata_location; + +typedef struct +{ + drwav_uint8 id[4]; + drwav_metadata_location chunkLocation; + drwav_uint32 dataSizeInBytes; + drwav_uint8* pData; +} drwav_unknown_metadata; + +/* +Metadata is saved as a union of all the supported types. +*/ +typedef struct +{ + /* Determines which item in the union is valid. */ + drwav_metadata_type type; + + union + { + drwav_cue cue; + drwav_smpl smpl; + drwav_acid acid; + drwav_inst inst; + drwav_bext bext; + drwav_list_label_or_note labelOrNote; /* List label or list note. */ + drwav_list_labelled_cue_region labelledCueRegion; + drwav_list_info_text infoText; /* Any of the list info types. */ + drwav_unknown_metadata unknown; + } data; +} drwav_metadata; + +typedef struct +{ + /* A pointer to the function to call when more data is needed. */ + drwav_read_proc onRead; + + /* A pointer to the function to call when data needs to be written. Only used when the drwav object is opened in write mode. */ + drwav_write_proc onWrite; + + /* A pointer to the function to call when the wav file needs to be seeked. */ + drwav_seek_proc onSeek; + + /* A pointer to the function to call when the position of the stream needs to be retrieved. */ + drwav_tell_proc onTell; + + /* The user data to pass to callbacks. */ + void* pUserData; + + /* Allocation callbacks. */ + drwav_allocation_callbacks allocationCallbacks; + + + /* Whether or not the WAV file is formatted as a standard RIFF file or W64. */ + drwav_container container; + + + /* Structure containing format information exactly as specified by the wav file. */ + drwav_fmt fmt; + + /* The sample rate. Will be set to something like 44100. */ + drwav_uint32 sampleRate; + + /* The number of channels. This will be set to 1 for monaural streams, 2 for stereo, etc. */ + drwav_uint16 channels; + + /* The bits per sample. Will be set to something like 16, 24, etc. */ + drwav_uint16 bitsPerSample; + + /* Equal to fmt.formatTag, or the value specified by fmt.subFormat if fmt.formatTag is equal to 65534 (WAVE_FORMAT_EXTENSIBLE). */ + drwav_uint16 translatedFormatTag; + + /* The total number of PCM frames making up the audio data. */ + drwav_uint64 totalPCMFrameCount; + + + /* The size in bytes of the data chunk. */ + drwav_uint64 dataChunkDataSize; + + /* The position in the stream of the first data byte of the data chunk. This is used for seeking. */ + drwav_uint64 dataChunkDataPos; + + /* The number of bytes remaining in the data chunk. */ + drwav_uint64 bytesRemaining; + + /* The current read position in PCM frames. */ + drwav_uint64 readCursorInPCMFrames; + + + /* + Only used in sequential write mode. Keeps track of the desired size of the "data" chunk at the point of initialization time. Always + set to 0 for non-sequential writes and when the drwav object is opened in read mode. Used for validation. + */ + drwav_uint64 dataChunkDataSizeTargetWrite; + + /* Keeps track of whether or not the wav writer was initialized in sequential mode. */ + drwav_bool32 isSequentialWrite; + + + /* A array of metadata. This is valid after the *init_with_metadata call returns. It will be valid until drwav_uninit() is called. You can take ownership of this data with drwav_take_ownership_of_metadata(). */ + drwav_metadata* pMetadata; + drwav_uint32 metadataCount; + + + /* A hack to avoid a DRWAV_MALLOC() when opening a decoder with drwav_init_memory(). */ + drwav__memory_stream memoryStream; + drwav__memory_stream_write memoryStreamWrite; + + + /* Microsoft ADPCM specific data. */ + struct + { + drwav_uint32 bytesRemainingInBlock; + drwav_uint16 predictor[2]; + drwav_int32 delta[2]; + drwav_int32 cachedFrames[4]; /* Samples are stored in this cache during decoding. */ + drwav_uint32 cachedFrameCount; + drwav_int32 prevFrames[2][2]; /* The previous 2 samples for each channel (2 channels at most). */ + } msadpcm; + + /* IMA ADPCM specific data. */ + struct + { + drwav_uint32 bytesRemainingInBlock; + drwav_int32 predictor[2]; + drwav_int32 stepIndex[2]; + drwav_int32 cachedFrames[16]; /* Samples are stored in this cache during decoding. */ + drwav_uint32 cachedFrameCount; + } ima; + + /* AIFF specific data. */ + struct + { + drwav_bool8 isLE; /* Will be set to true if the audio data is little-endian encoded. */ + drwav_bool8 isUnsigned; /* Only used for 8-bit samples. When set to true, will be treated as unsigned. */ + } aiff; +} drwav; + + +/* +Initializes a pre-allocated drwav object for reading. + +pWav [out] A pointer to the drwav object being initialized. +onRead [in] The function to call when data needs to be read from the client. +onSeek [in] The function to call when the read position of the client data needs to move. +onChunk [in, optional] The function to call when a chunk is enumerated at initialized time. +pUserData, pReadSeekUserData [in, optional] A pointer to application defined data that will be passed to onRead and onSeek. +pChunkUserData [in, optional] A pointer to application defined data that will be passed to onChunk. +flags [in, optional] A set of flags for controlling how things are loaded. + +Returns true if successful; false otherwise. + +Close the loader with drwav_uninit(). + +This is the lowest level function for initializing a WAV file. You can also use drwav_init_file() and drwav_init_memory() +to open the stream from a file or from a block of memory respectively. + +Possible values for flags: + DRWAV_SEQUENTIAL: Never perform a backwards seek while loading. This disables the chunk callback and will cause this function + to return as soon as the data chunk is found. Any chunks after the data chunk will be ignored. + +drwav_init() is equivalent to "drwav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0);". + +The onChunk callback is not called for the WAVE or FMT chunks. The contents of the FMT chunk can be read from pWav->fmt +after the function returns. + +See also: drwav_init_file(), drwav_init_memory(), drwav_uninit() +*/ +DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, drwav_chunk_proc onChunk, void* pReadSeekTellUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_with_metadata(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); + +/* +Initializes a pre-allocated drwav object for writing. + +onWrite [in] The function to call when data needs to be written. +onSeek [in] The function to call when the write position needs to move. +pUserData [in, optional] A pointer to application defined data that will be passed to onWrite and onSeek. +metadata, numMetadata [in, optional] An array of metadata objects that should be written to the file. The array is not edited. You are responsible for this metadata memory and it must maintain valid until drwav_uninit() is called. + +Returns true if successful; false otherwise. + +Close the writer with drwav_uninit(). + +This is the lowest level function for initializing a WAV file. You can also use drwav_init_file_write() and drwav_init_memory_write() +to open the stream from a file or from a block of memory respectively. + +If the total sample count is known, you can use drwav_init_write_sequential(). This avoids the need for dr_wav to perform +a post-processing step for storing the total sample count and the size of the data chunk which requires a backwards seek. + +See also: drwav_init_file_write(), drwav_init_memory_write(), drwav_uninit() +*/ +DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write_with_metadata(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks, drwav_metadata* pMetadata, drwav_uint32 metadataCount); + +/* +Utility function to determine the target size of the entire data to be written (including all headers and chunks). + +Returns the target size in bytes. + +The metadata argument can be NULL meaning no metadata exists. + +Useful if the application needs to know the size to allocate. + +Only writing to the RIFF chunk and one data chunk is currently supported. + +See also: drwav_init_write(), drwav_init_file_write(), drwav_init_memory_write() +*/ +DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalFrameCount, drwav_metadata* pMetadata, drwav_uint32 metadataCount); + +/* +Take ownership of the metadata objects that were allocated via one of the init_with_metadata() function calls. The init_with_metdata functions perform a single heap allocation for this metadata. + +Useful if you want the data to persist beyond the lifetime of the drwav object. + +You must free the data returned from this function using drwav_free(). +*/ +DRWAV_API drwav_metadata* drwav_take_ownership_of_metadata(drwav* pWav); + +/* +Uninitializes the given drwav object. + +Use this only for objects initialized with drwav_init*() functions (drwav_init(), drwav_init_ex(), drwav_init_write(), drwav_init_write_sequential()). +*/ +DRWAV_API drwav_result drwav_uninit(drwav* pWav); + + +/* +Reads raw audio data. + +This is the lowest level function for reading audio data. It simply reads the given number of +bytes of the raw internal sample data. + +Consider using drwav_read_pcm_frames_s16(), drwav_read_pcm_frames_s32() or drwav_read_pcm_frames_f32() for +reading sample data in a consistent format. + +pBufferOut can be NULL in which case a seek will be performed. + +Returns the number of bytes actually read. +*/ +DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut); + +/* +Reads up to the specified number of PCM frames from the WAV file. + +The output data will be in the file's internal format, converted to native-endian byte order. Use +drwav_read_pcm_frames_s16/f32/s32() to read data in a specific format. + +If the return value is less than it means the end of the file has been reached or +you have requested more PCM frames than can possibly fit in the output buffer. + +This function will only work when sample data is of a fixed size and uncompressed. If you are +using a compressed format consider using drwav_read_raw() or drwav_read_pcm_frames_s16/s32/f32(). + +pBufferOut can be NULL in which case a seek will be performed. +*/ +DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); + +/* +Seeks to the given PCM frame. + +Returns true if successful; false otherwise. +*/ +DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex); + +/* +Retrieves the current read position in pcm frames. +*/ +DRWAV_API drwav_result drwav_get_cursor_in_pcm_frames(drwav* pWav, drwav_uint64* pCursor); + +/* +Retrieves the length of the file. +*/ +DRWAV_API drwav_result drwav_get_length_in_pcm_frames(drwav* pWav, drwav_uint64* pLength); + + +/* +Writes raw audio data. + +Returns the number of bytes actually written. If this differs from bytesToWrite, it indicates an error. +*/ +DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData); + +/* +Writes PCM frames. + +Returns the number of PCM frames written. + +Input samples need to be in native-endian byte order. On big-endian architectures the input data will be converted to +little-endian. Use drwav_write_raw() to write raw audio data without performing any conversion. +*/ +DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); +DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); +DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); + +/* Conversion Utilities */ +#ifndef DR_WAV_NO_CONVERSION_API + +/* +Reads a chunk of audio data and converts it to signed 16-bit PCM samples. + +pBufferOut can be NULL in which case a seek will be performed. + +Returns the number of PCM frames actually read. + +If the return value is less than it means the end of the file has been reached. +*/ +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); + +/* Low-level function for converting unsigned 8-bit PCM samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting signed 24-bit PCM samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting signed 32-bit PCM samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount); + +/* Low-level function for converting IEEE 32-bit floating point samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount); + +/* Low-level function for converting IEEE 64-bit floating point samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount); + +/* Low-level function for converting A-law samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting u-law samples to signed 16-bit PCM samples. */ +DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); + + +/* +Reads a chunk of audio data and converts it to IEEE 32-bit floating point samples. + +pBufferOut can be NULL in which case a seek will be performed. + +Returns the number of PCM frames actually read. + +If the return value is less than it means the end of the file has been reached. +*/ +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); + +/* Low-level function for converting unsigned 8-bit PCM samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting signed 16-bit PCM samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount); + +/* Low-level function for converting signed 24-bit PCM samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting signed 32-bit PCM samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount); + +/* Low-level function for converting IEEE 64-bit floating point samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount); + +/* Low-level function for converting A-law samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting u-law samples to IEEE 32-bit floating point samples. */ +DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); + + +/* +Reads a chunk of audio data and converts it to signed 32-bit PCM samples. + +pBufferOut can be NULL in which case a seek will be performed. + +Returns the number of PCM frames actually read. + +If the return value is less than it means the end of the file has been reached. +*/ +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); + +/* Low-level function for converting unsigned 8-bit PCM samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting signed 16-bit PCM samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount); + +/* Low-level function for converting signed 24-bit PCM samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting IEEE 32-bit floating point samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount); + +/* Low-level function for converting IEEE 64-bit floating point samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount); + +/* Low-level function for converting A-law samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); + +/* Low-level function for converting u-law samples to signed 32-bit PCM samples. */ +DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); + +#endif /* DR_WAV_NO_CONVERSION_API */ + + +/* High-Level Convenience Helpers */ + +#ifndef DR_WAV_NO_STDIO +/* +Helper for initializing a wave file for reading using stdio. + +This holds the internal FILE object until drwav_uninit() is called. Keep this in mind if you're caching drwav +objects because the operating system may restrict the number of file handles an application can have open at +any given time. +*/ +DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_with_metadata(drwav* pWav, const char* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_with_metadata_w(drwav* pWav, const wchar_t* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); + + +/* +Helper for initializing a wave file for writing using stdio. + +This holds the internal FILE object until drwav_uninit() is called. Keep this in mind if you're caching drwav +objects because the operating system may restrict the number of file handles an application can have open at +any given time. +*/ +DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif /* DR_WAV_NO_STDIO */ + +/* +Helper for initializing a loader from a pre-allocated memory buffer. + +This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for +the lifetime of the drwav object. + +The buffer should contain the contents of the entire wave file, not just the sample data. +*/ +DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_with_metadata(drwav* pWav, const void* data, size_t dataSize, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); + +/* +Helper for initializing a writer which outputs data to a memory buffer. + +dr_wav will manage the memory allocations, however it is up to the caller to free the data with drwav_free(). + +The buffer will remain allocated even after drwav_uninit() is called. The buffer should not be considered valid +until after drwav_uninit() has been called. +*/ +DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); + + +#ifndef DR_WAV_NO_CONVERSION_API +/* +Opens and reads an entire wav file in a single operation. + +The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. +*/ +DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_WAV_NO_STDIO +/* +Opens and decodes an entire wav file in a single operation. + +The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. +*/ +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif +/* +Opens and decodes an entire wav file from a block of memory in a single operation. + +The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. +*/ +DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif + +/* Frees data that was allocated internally by dr_wav. */ +DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks); + +/* Converts bytes from a wav stream to a sized type of native endian. */ +DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data); +DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data); +DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data); +DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data); +DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data); +DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data); +DRWAV_API float drwav_bytes_to_f32(const drwav_uint8* data); + +/* Compares a GUID for the purpose of checking the type of a Wave64 chunk. */ +DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]); + +/* Compares a four-character-code for the purpose of checking the type of a RIFF chunk. */ +DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b); + +#ifdef __cplusplus +} +#endif +#endif /* dr_wav_h */ + + +/************************************************************************************************************************************************************ + ************************************************************************************************************************************************************ + + IMPLEMENTATION + + ************************************************************************************************************************************************************ + ************************************************************************************************************************************************************/ +#if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) +#ifndef dr_wav_c +#define dr_wav_c + +#ifdef __MRC__ +/* MrC currently doesn't compile dr_wav correctly with any optimizations enabled. */ +#pragma options opt off +#endif + +#include +#include +#include /* For INT_MAX */ + +#ifndef DR_WAV_NO_STDIO +#include +#ifndef DR_WAV_NO_WCHAR +#include +#endif +#endif + +/* Standard library stuff. */ +#ifndef DRWAV_ASSERT +#include +#define DRWAV_ASSERT(expression) assert(expression) +#endif +#ifndef DRWAV_MALLOC +#define DRWAV_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRWAV_REALLOC +#define DRWAV_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRWAV_FREE +#define DRWAV_FREE(p) free((p)) +#endif +#ifndef DRWAV_COPY_MEMORY +#define DRWAV_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRWAV_ZERO_MEMORY +#define DRWAV_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#ifndef DRWAV_ZERO_OBJECT +#define DRWAV_ZERO_OBJECT(p) DRWAV_ZERO_MEMORY((p), sizeof(*p)) +#endif + +#define drwav_countof(x) (sizeof(x) / sizeof(x[0])) +#define drwav_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) +#define drwav_min(a, b) (((a) < (b)) ? (a) : (b)) +#define drwav_max(a, b) (((a) > (b)) ? (a) : (b)) +#define drwav_clamp(x, lo, hi) (drwav_max((lo), drwav_min((hi), (x)))) +#define drwav_offset_ptr(p, offset) (((drwav_uint8*)(p)) + (offset)) + +#define DRWAV_MAX_SIMD_VECTOR_SIZE 32 + +/* Architecture Detection */ +#if defined(__x86_64__) || (defined(_M_X64) && !defined(_M_ARM64EC)) + #define DRWAV_X64 +#elif defined(__i386) || defined(_M_IX86) + #define DRWAV_X86 +#elif defined(__arm__) || defined(_M_ARM) + #define DRWAV_ARM +#endif +/* End Architecture Detection */ + +/* Inline */ +#ifdef _MSC_VER + #define DRWAV_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define DRWAV_GNUC_INLINE_HINT __inline__ + #else + #define DRWAV_GNUC_INLINE_HINT inline + #endif + + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) + #define DRWAV_INLINE DRWAV_GNUC_INLINE_HINT __attribute__((always_inline)) + #else + #define DRWAV_INLINE DRWAV_GNUC_INLINE_HINT + #endif +#elif defined(__WATCOMC__) + #define DRWAV_INLINE __inline +#else + #define DRWAV_INLINE +#endif +/* End Inline */ + +/* SIZE_MAX */ +#if defined(SIZE_MAX) + #define DRWAV_SIZE_MAX SIZE_MAX +#else + #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) + #define DRWAV_SIZE_MAX ((drwav_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRWAV_SIZE_MAX 0xFFFFFFFF + #endif +#endif +/* End SIZE_MAX */ + +/* Weird bit manipulation is for C89 compatibility (no direct support for 64-bit integers). */ +#define DRWAV_INT64_MIN ((drwav_int64) ((drwav_uint64)0x80000000 << 32)) +#define DRWAV_INT64_MAX ((drwav_int64)(((drwav_uint64)0x7FFFFFFF << 32) | 0xFFFFFFFF)) + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #define DRWAV_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_bswap16) + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap32) + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap64) + #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #endif + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #endif +#endif + +DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRWAV_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = DRWAV_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = DRWAV_VERSION_REVISION; + } +} + +DRWAV_API const char* drwav_version_string(void) +{ + return DRWAV_VERSION_STRING; +} + +/* +These limits are used for basic validation when initializing the decoder. If you exceed these limits, first of all: what on Earth are +you doing?! (Let me know, I'd be curious!) Second, you can adjust these by #define-ing them before the dr_wav implementation. +*/ +#ifndef DRWAV_MAX_SAMPLE_RATE +#define DRWAV_MAX_SAMPLE_RATE 384000 +#endif +#ifndef DRWAV_MAX_CHANNELS +#define DRWAV_MAX_CHANNELS 256 +#endif +#ifndef DRWAV_MAX_BITS_PER_SAMPLE +#define DRWAV_MAX_BITS_PER_SAMPLE 64 +#endif + +static const drwav_uint8 drwavGUID_W64_RIFF[16] = {0x72,0x69,0x66,0x66, 0x2E,0x91, 0xCF,0x11, 0xA5,0xD6, 0x28,0xDB,0x04,0xC1,0x00,0x00}; /* 66666972-912E-11CF-A5D6-28DB04C10000 */ +static const drwav_uint8 drwavGUID_W64_WAVE[16] = {0x77,0x61,0x76,0x65, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 65766177-ACF3-11D3-8CD1-00C04F8EDB8A */ +/*static const drwav_uint8 drwavGUID_W64_JUNK[16] = {0x6A,0x75,0x6E,0x6B, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A};*/ /* 6B6E756A-ACF3-11D3-8CD1-00C04F8EDB8A */ +static const drwav_uint8 drwavGUID_W64_FMT [16] = {0x66,0x6D,0x74,0x20, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 20746D66-ACF3-11D3-8CD1-00C04F8EDB8A */ +static const drwav_uint8 drwavGUID_W64_FACT[16] = {0x66,0x61,0x63,0x74, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 74636166-ACF3-11D3-8CD1-00C04F8EDB8A */ +static const drwav_uint8 drwavGUID_W64_DATA[16] = {0x64,0x61,0x74,0x61, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 61746164-ACF3-11D3-8CD1-00C04F8EDB8A */ +/*static const drwav_uint8 drwavGUID_W64_SMPL[16] = {0x73,0x6D,0x70,0x6C, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A};*/ /* 6C706D73-ACF3-11D3-8CD1-00C04F8EDB8A */ + + +static DRWAV_INLINE int drwav__is_little_endian(void) +{ +#if defined(DRWAV_X86) || defined(DRWAV_X64) + return DRWAV_TRUE; +#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN + return DRWAV_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} + + +static DRWAV_INLINE void drwav_bytes_to_guid(const drwav_uint8* data, drwav_uint8* guid) +{ + int i; + for (i = 0; i < 16; ++i) { + guid[i] = data[i]; + } +} + + +static DRWAV_INLINE drwav_uint16 drwav__bswap16(drwav_uint16 n) +{ +#ifdef DRWAV_HAS_BYTESWAP16_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_ushort(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap16(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF00) >> 8) | + ((n & 0x00FF) << 8); +#endif +} + +static DRWAV_INLINE drwav_uint32 drwav__bswap32(drwav_uint32 n) +{ +#ifdef DRWAV_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(DRWAV_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRWAV_64BIT) /* <-- 64-bit inline assembly has not been tested, so disabling for now. */ + /* Inline assembly optimized implementation for ARM. In my testing, GCC does not generate optimized code with __builtin_bswap32(). */ + drwav_uint32 r; + __asm__ __volatile__ ( + #if defined(DRWAV_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} + +static DRWAV_INLINE drwav_uint64 drwav__bswap64(drwav_uint64 n) +{ +#ifdef DRWAV_HAS_BYTESWAP64_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_uint64(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap64(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + /* Weird "<< 32" bitshift is required for C89 because it doesn't support 64-bit constants. Should be optimized out by a good compiler. */ + return ((n & ((drwav_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((drwav_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((drwav_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((drwav_uint64)0x000000FF << 32)) >> 8) | + ((n & ((drwav_uint64)0xFF000000 )) << 8) | + ((n & ((drwav_uint64)0x00FF0000 )) << 24) | + ((n & ((drwav_uint64)0x0000FF00 )) << 40) | + ((n & ((drwav_uint64)0x000000FF )) << 56); +#endif +} + + +static DRWAV_INLINE drwav_int16 drwav__bswap_s16(drwav_int16 n) +{ + return (drwav_int16)drwav__bswap16((drwav_uint16)n); +} + +static DRWAV_INLINE void drwav__bswap_samples_s16(drwav_int16* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_s16(pSamples[iSample]); + } +} + + +static DRWAV_INLINE void drwav__bswap_s24(drwav_uint8* p) +{ + drwav_uint8 t; + t = p[0]; + p[0] = p[2]; + p[2] = t; +} + +static DRWAV_INLINE void drwav__bswap_samples_s24(drwav_uint8* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + drwav_uint8* pSample = pSamples + (iSample*3); + drwav__bswap_s24(pSample); + } +} + + +static DRWAV_INLINE drwav_int32 drwav__bswap_s32(drwav_int32 n) +{ + return (drwav_int32)drwav__bswap32((drwav_uint32)n); +} + +static DRWAV_INLINE void drwav__bswap_samples_s32(drwav_int32* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_s32(pSamples[iSample]); + } +} + + +static DRWAV_INLINE drwav_int64 drwav__bswap_s64(drwav_int64 n) +{ + return (drwav_int64)drwav__bswap64((drwav_uint64)n); +} + +static DRWAV_INLINE void drwav__bswap_samples_s64(drwav_int64* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_s64(pSamples[iSample]); + } +} + + +static DRWAV_INLINE float drwav__bswap_f32(float n) +{ + union { + drwav_uint32 i; + float f; + } x; + x.f = n; + x.i = drwav__bswap32(x.i); + + return x.f; +} + +static DRWAV_INLINE void drwav__bswap_samples_f32(float* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_f32(pSamples[iSample]); + } +} + + +static DRWAV_INLINE void drwav__bswap_samples(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) +{ + switch (bytesPerSample) + { + case 1: + { + /* No-op. */ + } break; + case 2: + { + drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); + } break; + case 3: + { + drwav__bswap_samples_s24((drwav_uint8*)pSamples, sampleCount); + } break; + case 4: + { + drwav__bswap_samples_s32((drwav_int32*)pSamples, sampleCount); + } break; + case 8: + { + drwav__bswap_samples_s64((drwav_int64*)pSamples, sampleCount); + } break; + default: + { + /* Unsupported format. */ + DRWAV_ASSERT(DRWAV_FALSE); + } break; + } +} + + + +DRWAV_PRIVATE DRWAV_INLINE drwav_bool32 drwav_is_container_be(drwav_container container) +{ + if (container == drwav_container_rifx || container == drwav_container_aiff) { + return DRWAV_TRUE; + } else { + return DRWAV_FALSE; + } +} + + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint16 drwav_bytes_to_u16_le(const drwav_uint8* data) +{ + return ((drwav_uint16)data[0] << 0) | ((drwav_uint16)data[1] << 8); +} + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint16 drwav_bytes_to_u16_be(const drwav_uint8* data) +{ + return ((drwav_uint16)data[1] << 0) | ((drwav_uint16)data[0] << 8); +} + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint16 drwav_bytes_to_u16_ex(const drwav_uint8* data, drwav_container container) +{ + if (drwav_is_container_be(container)) { + return drwav_bytes_to_u16_be(data); + } else { + return drwav_bytes_to_u16_le(data); + } +} + + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint32 drwav_bytes_to_u32_le(const drwav_uint8* data) +{ + return ((drwav_uint32)data[0] << 0) | ((drwav_uint32)data[1] << 8) | ((drwav_uint32)data[2] << 16) | ((drwav_uint32)data[3] << 24); +} + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint32 drwav_bytes_to_u32_be(const drwav_uint8* data) +{ + return ((drwav_uint32)data[3] << 0) | ((drwav_uint32)data[2] << 8) | ((drwav_uint32)data[1] << 16) | ((drwav_uint32)data[0] << 24); +} + +DRWAV_PRIVATE DRWAV_INLINE drwav_uint32 drwav_bytes_to_u32_ex(const drwav_uint8* data, drwav_container container) +{ + if (drwav_is_container_be(container)) { + return drwav_bytes_to_u32_be(data); + } else { + return drwav_bytes_to_u32_le(data); + } +} + + + +DRWAV_PRIVATE drwav_int64 drwav_aiff_extented_to_s64(const drwav_uint8* data) +{ + drwav_uint32 exponent = ((drwav_uint32)data[0] << 8) | data[1]; + drwav_uint64 hi = ((drwav_uint64)data[2] << 24) | ((drwav_uint64)data[3] << 16) | ((drwav_uint64)data[4] << 8) | ((drwav_uint64)data[5] << 0); + drwav_uint64 lo = ((drwav_uint64)data[6] << 24) | ((drwav_uint64)data[7] << 16) | ((drwav_uint64)data[8] << 8) | ((drwav_uint64)data[9] << 0); + drwav_uint64 significand = (hi << 32) | lo; + int sign = exponent >> 15; + + /* Remove sign bit. */ + exponent &= 0x7FFF; + + /* Special cases. */ + if (exponent == 0 && significand == 0) { + return 0; + } else if (exponent == 0x7FFF) { + return sign ? DRWAV_INT64_MIN : DRWAV_INT64_MAX; /* Infinite. */ + } + + exponent -= 16383; + + if (exponent > 63) { + return sign ? DRWAV_INT64_MIN : DRWAV_INT64_MAX; /* Too big for a 64-bit integer. */ + } else if (exponent < 1) { + return 0; /* Number is less than 1, so rounds down to 0. */ + } + + significand >>= (63 - exponent); + + if (sign) { + return -(drwav_int64)significand; + } else { + return (drwav_int64)significand; + } +} + + +DRWAV_PRIVATE void* drwav__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRWAV_MALLOC(sz); +} + +DRWAV_PRIVATE void* drwav__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRWAV_REALLOC(p, sz); +} + +DRWAV_PRIVATE void drwav__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRWAV_FREE(p); +} + + +DRWAV_PRIVATE void* drwav__malloc_from_callbacks(size_t sz, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +DRWAV_PRIVATE void* drwav__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + DRWAV_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +DRWAV_PRIVATE void drwav__free_from_callbacks(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + + +DRWAV_PRIVATE drwav_allocation_callbacks drwav_copy_allocation_callbacks_or_defaults(const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + /* Copy. */ + return *pAllocationCallbacks; + } else { + /* Defaults. */ + drwav_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drwav__malloc_default; + allocationCallbacks.onRealloc = drwav__realloc_default; + allocationCallbacks.onFree = drwav__free_default; + return allocationCallbacks; + } +} + + +static DRWAV_INLINE drwav_bool32 drwav__is_compressed_format_tag(drwav_uint16 formatTag) +{ + return + formatTag == DR_WAVE_FORMAT_ADPCM || + formatTag == DR_WAVE_FORMAT_DVI_ADPCM; +} + +DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_riff(drwav_uint64 chunkSize) +{ + return (unsigned int)(chunkSize % 2); +} + +DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_w64(drwav_uint64 chunkSize) +{ + return (unsigned int)(chunkSize % 8); +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); +DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); + +DRWAV_PRIVATE drwav_result drwav__read_chunk_header(drwav_read_proc onRead, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_chunk_header* pHeaderOut) +{ + if (container == drwav_container_riff || container == drwav_container_rifx || container == drwav_container_rf64 || container == drwav_container_aiff) { + drwav_uint8 sizeInBytes[4]; + + if (onRead(pUserData, pHeaderOut->id.fourcc, 4) != 4) { + return DRWAV_AT_END; + } + + if (onRead(pUserData, sizeInBytes, 4) != 4) { + return DRWAV_INVALID_FILE; + } + + pHeaderOut->sizeInBytes = drwav_bytes_to_u32_ex(sizeInBytes, container); + pHeaderOut->paddingSize = drwav__chunk_padding_size_riff(pHeaderOut->sizeInBytes); + + *pRunningBytesReadOut += 8; + } else if (container == drwav_container_w64) { + drwav_uint8 sizeInBytes[8]; + + if (onRead(pUserData, pHeaderOut->id.guid, 16) != 16) { + return DRWAV_AT_END; + } + + if (onRead(pUserData, sizeInBytes, 8) != 8) { + return DRWAV_INVALID_FILE; + } + + pHeaderOut->sizeInBytes = drwav_bytes_to_u64(sizeInBytes) - 24; /* <-- Subtract 24 because w64 includes the size of the header. */ + pHeaderOut->paddingSize = drwav__chunk_padding_size_w64(pHeaderOut->sizeInBytes); + *pRunningBytesReadOut += 24; + } else { + return DRWAV_INVALID_FILE; + } + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE drwav_bool32 drwav__seek_forward(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +{ + drwav_uint64 bytesRemainingToSeek = offset; + while (bytesRemainingToSeek > 0) { + if (bytesRemainingToSeek > 0x7FFFFFFF) { + if (!onSeek(pUserData, 0x7FFFFFFF, DRWAV_SEEK_CUR)) { + return DRWAV_FALSE; + } + bytesRemainingToSeek -= 0x7FFFFFFF; + } else { + if (!onSeek(pUserData, (int)bytesRemainingToSeek, DRWAV_SEEK_CUR)) { + return DRWAV_FALSE; + } + bytesRemainingToSeek = 0; + } + } + + return DRWAV_TRUE; +} + +DRWAV_PRIVATE drwav_bool32 drwav__seek_from_start(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +{ + if (offset <= 0x7FFFFFFF) { + return onSeek(pUserData, (int)offset, DRWAV_SEEK_SET); + } + + /* Larger than 32-bit seek. */ + if (!onSeek(pUserData, 0x7FFFFFFF, DRWAV_SEEK_SET)) { + return DRWAV_FALSE; + } + offset -= 0x7FFFFFFF; + + for (;;) { + if (offset <= 0x7FFFFFFF) { + return onSeek(pUserData, (int)offset, DRWAV_SEEK_CUR); + } + + if (!onSeek(pUserData, 0x7FFFFFFF, DRWAV_SEEK_CUR)) { + return DRWAV_FALSE; + } + offset -= 0x7FFFFFFF; + } + + /* Should never get here. */ + /*return DRWAV_TRUE; */ +} + + + +DRWAV_PRIVATE size_t drwav__on_read(drwav_read_proc onRead, void* pUserData, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) +{ + size_t bytesRead; + + DRWAV_ASSERT(onRead != NULL); + DRWAV_ASSERT(pCursor != NULL); + + bytesRead = onRead(pUserData, pBufferOut, bytesToRead); + *pCursor += bytesRead; + return bytesRead; +} + +#if 0 +DRWAV_PRIVATE drwav_bool32 drwav__on_seek(drwav_seek_proc onSeek, void* pUserData, int offset, drwav_seek_origin origin, drwav_uint64* pCursor) +{ + DRWAV_ASSERT(onSeek != NULL); + DRWAV_ASSERT(pCursor != NULL); + + if (!onSeek(pUserData, offset, origin)) { + return DRWAV_FALSE; + } + + if (origin == DRWAV_SEEK_SET) { + *pCursor = offset; + } else { + *pCursor += offset; + } + + return DRWAV_TRUE; +} +#endif + + +#define DRWAV_SMPL_BYTES 36 +#define DRWAV_SMPL_LOOP_BYTES 24 +#define DRWAV_INST_BYTES 7 +#define DRWAV_ACID_BYTES 24 +#define DRWAV_CUE_BYTES 4 +#define DRWAV_BEXT_BYTES 602 +#define DRWAV_BEXT_DESCRIPTION_BYTES 256 +#define DRWAV_BEXT_ORIGINATOR_NAME_BYTES 32 +#define DRWAV_BEXT_ORIGINATOR_REF_BYTES 32 +#define DRWAV_BEXT_RESERVED_BYTES 180 +#define DRWAV_BEXT_UMID_BYTES 64 +#define DRWAV_CUE_POINT_BYTES 24 +#define DRWAV_LIST_LABEL_OR_NOTE_BYTES 4 +#define DRWAV_LIST_LABELLED_TEXT_BYTES 20 + +#define DRWAV_METADATA_ALIGNMENT 8 + +typedef enum +{ + drwav__metadata_parser_stage_count, + drwav__metadata_parser_stage_read +} drwav__metadata_parser_stage; + +typedef struct +{ + drwav_read_proc onRead; + drwav_seek_proc onSeek; + void *pReadSeekUserData; + drwav__metadata_parser_stage stage; + drwav_metadata *pMetadata; + drwav_uint32 metadataCount; + drwav_uint8 *pData; + drwav_uint8 *pDataCursor; + drwav_uint64 metadataCursor; + drwav_uint64 extraCapacity; +} drwav__metadata_parser; + +DRWAV_PRIVATE size_t drwav__metadata_memory_capacity(drwav__metadata_parser* pParser) +{ + drwav_uint64 cap = sizeof(drwav_metadata) * (drwav_uint64)pParser->metadataCount + pParser->extraCapacity; + if (cap > DRWAV_SIZE_MAX) { + return 0; /* Too big. */ + } + + return (size_t)cap; /* Safe cast thanks to the check above. */ +} + +DRWAV_PRIVATE drwav_uint8* drwav__metadata_get_memory(drwav__metadata_parser* pParser, size_t size, size_t align) +{ + drwav_uint8* pResult; + + if (align) { + drwav_uintptr modulo = (drwav_uintptr)pParser->pDataCursor % align; + if (modulo != 0) { + pParser->pDataCursor += align - modulo; + } + } + + pResult = pParser->pDataCursor; + + /* + Getting to the point where this function is called means there should always be memory + available. Out of memory checks should have been done at an earlier stage. + */ + DRWAV_ASSERT((pResult + size) <= (pParser->pData + drwav__metadata_memory_capacity(pParser))); + + pParser->pDataCursor += size; + return pResult; +} + +DRWAV_PRIVATE void drwav__metadata_request_extra_memory_for_stage_2(drwav__metadata_parser* pParser, size_t bytes, size_t align) +{ + size_t extra = bytes + (align ? (align - 1) : 0); + pParser->extraCapacity += extra; +} + +DRWAV_PRIVATE drwav_result drwav__metadata_alloc(drwav__metadata_parser* pParser, drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pParser->extraCapacity != 0 || pParser->metadataCount != 0) { + pAllocationCallbacks->onFree(pParser->pData, pAllocationCallbacks->pUserData); + + pParser->pData = (drwav_uint8*)pAllocationCallbacks->onMalloc(drwav__metadata_memory_capacity(pParser), pAllocationCallbacks->pUserData); + pParser->pDataCursor = pParser->pData; + + if (pParser->pData == NULL) { + return DRWAV_OUT_OF_MEMORY; + } + + /* + We don't need to worry about specifying an alignment here because malloc always returns something + of suitable alignment. This also means pParser->pMetadata is all that we need to store in order + for us to free when we are done. + */ + pParser->pMetadata = (drwav_metadata*)drwav__metadata_get_memory(pParser, sizeof(drwav_metadata) * pParser->metadataCount, 1); + pParser->metadataCursor = 0; + } + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE size_t drwav__metadata_parser_read(drwav__metadata_parser* pParser, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) +{ + if (pCursor != NULL) { + return drwav__on_read(pParser->onRead, pParser->pReadSeekUserData, pBufferOut, bytesToRead, pCursor); + } else { + return pParser->onRead(pParser->pReadSeekUserData, pBufferOut, bytesToRead); + } +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_smpl_to_metadata_obj(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata* pMetadata) +{ + drwav_uint8 smplHeaderData[DRWAV_SMPL_BYTES]; + drwav_uint64 totalBytesRead = 0; + size_t bytesJustRead; + + if (pMetadata == NULL) { + return 0; + } + + bytesJustRead = drwav__metadata_parser_read(pParser, smplHeaderData, sizeof(smplHeaderData), &totalBytesRead); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + DRWAV_ASSERT(pChunkHeader != NULL); + + if (pMetadata != NULL && bytesJustRead == sizeof(smplHeaderData)) { + drwav_uint32 iSampleLoop; + drwav_uint32 loopCount; + drwav_uint32 calculatedLoopCount; + + /* + When we calcualted the amount of memory required for the "smpl" chunk we excluded the chunk entirely + if the loop count in the header did not match with the calculated count based on the size of the + chunk. When this happens, the second stage will still hit this path but the `pMetadata` will be + non-null, but will either be pointing at the very end of the allocation or at the start of another + chunk. We need to check the loop counts for consistency *before* dereferencing the pMetadata object + so it's consistent with how we do it in the first stage. + */ + loopCount = drwav_bytes_to_u32(smplHeaderData + 28); + calculatedLoopCount = (pChunkHeader->sizeInBytes - DRWAV_SMPL_BYTES) / DRWAV_SMPL_LOOP_BYTES; + if (loopCount != calculatedLoopCount) { + return totalBytesRead; + } + + pMetadata->type = drwav_metadata_type_smpl; + pMetadata->data.smpl.manufacturerId = drwav_bytes_to_u32(smplHeaderData + 0); + pMetadata->data.smpl.productId = drwav_bytes_to_u32(smplHeaderData + 4); + pMetadata->data.smpl.samplePeriodNanoseconds = drwav_bytes_to_u32(smplHeaderData + 8); + pMetadata->data.smpl.midiUnityNote = drwav_bytes_to_u32(smplHeaderData + 12); + pMetadata->data.smpl.midiPitchFraction = drwav_bytes_to_u32(smplHeaderData + 16); + pMetadata->data.smpl.smpteFormat = drwav_bytes_to_u32(smplHeaderData + 20); + pMetadata->data.smpl.smpteOffset = drwav_bytes_to_u32(smplHeaderData + 24); + pMetadata->data.smpl.sampleLoopCount = drwav_bytes_to_u32(smplHeaderData + 28); + pMetadata->data.smpl.samplerSpecificDataSizeInBytes = drwav_bytes_to_u32(smplHeaderData + 32); + + /* + The loop count needs to be validated against the size of the chunk for safety so we don't + attempt to read over the boundary of the chunk. + */ + if (pMetadata->data.smpl.sampleLoopCount == calculatedLoopCount) { + pMetadata->data.smpl.pLoops = (drwav_smpl_loop*)drwav__metadata_get_memory(pParser, sizeof(drwav_smpl_loop) * pMetadata->data.smpl.sampleLoopCount, DRWAV_METADATA_ALIGNMENT); + + for (iSampleLoop = 0; iSampleLoop < pMetadata->data.smpl.sampleLoopCount; ++iSampleLoop) { + drwav_uint8 smplLoopData[DRWAV_SMPL_LOOP_BYTES]; + bytesJustRead = drwav__metadata_parser_read(pParser, smplLoopData, sizeof(smplLoopData), &totalBytesRead); + + if (bytesJustRead == sizeof(smplLoopData)) { + pMetadata->data.smpl.pLoops[iSampleLoop].cuePointId = drwav_bytes_to_u32(smplLoopData + 0); + pMetadata->data.smpl.pLoops[iSampleLoop].type = drwav_bytes_to_u32(smplLoopData + 4); + pMetadata->data.smpl.pLoops[iSampleLoop].firstSampleOffset = drwav_bytes_to_u32(smplLoopData + 8); + pMetadata->data.smpl.pLoops[iSampleLoop].lastSampleOffset = drwav_bytes_to_u32(smplLoopData + 12); + pMetadata->data.smpl.pLoops[iSampleLoop].sampleFraction = drwav_bytes_to_u32(smplLoopData + 16); + pMetadata->data.smpl.pLoops[iSampleLoop].playCount = drwav_bytes_to_u32(smplLoopData + 20); + } else { + break; + } + } + + if (pMetadata->data.smpl.samplerSpecificDataSizeInBytes > 0) { + pMetadata->data.smpl.pSamplerSpecificData = drwav__metadata_get_memory(pParser, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, 1); + DRWAV_ASSERT(pMetadata->data.smpl.pSamplerSpecificData != NULL); + + drwav__metadata_parser_read(pParser, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, &totalBytesRead); + } + } else { + /* + Getting here means the loop count in the header does not match up with the size of the + chunk. Clear out the data to zero just to be safe. + + This should never actually get hit because we check for it above, but keeping this here + for added safety. + */ + DRWAV_ZERO_OBJECT(&pMetadata->data.smpl); + } + } + + return totalBytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_cue_to_metadata_obj(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata* pMetadata) +{ + drwav_uint8 cueHeaderSectionData[DRWAV_CUE_BYTES]; + drwav_uint64 totalBytesRead = 0; + size_t bytesJustRead; + + if (pMetadata == NULL) { + return 0; + } + + bytesJustRead = drwav__metadata_parser_read(pParser, cueHeaderSectionData, sizeof(cueHeaderSectionData), &totalBytesRead); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesJustRead == sizeof(cueHeaderSectionData)) { + pMetadata->type = drwav_metadata_type_cue; + pMetadata->data.cue.cuePointCount = drwav_bytes_to_u32(cueHeaderSectionData); + + /* + We need to validate the cue point count against the size of the chunk so we don't read + beyond the chunk. + */ + if (pMetadata->data.cue.cuePointCount == (pChunkHeader->sizeInBytes - DRWAV_CUE_BYTES) / DRWAV_CUE_POINT_BYTES) { + pMetadata->data.cue.pCuePoints = (drwav_cue_point*)drwav__metadata_get_memory(pParser, sizeof(drwav_cue_point) * pMetadata->data.cue.cuePointCount, DRWAV_METADATA_ALIGNMENT); + DRWAV_ASSERT(pMetadata->data.cue.pCuePoints != NULL); + + if (pMetadata->data.cue.cuePointCount > 0) { + drwav_uint32 iCuePoint; + + for (iCuePoint = 0; iCuePoint < pMetadata->data.cue.cuePointCount; ++iCuePoint) { + drwav_uint8 cuePointData[DRWAV_CUE_POINT_BYTES]; + bytesJustRead = drwav__metadata_parser_read(pParser, cuePointData, sizeof(cuePointData), &totalBytesRead); + + if (bytesJustRead == sizeof(cuePointData)) { + pMetadata->data.cue.pCuePoints[iCuePoint].id = drwav_bytes_to_u32(cuePointData + 0); + pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition = drwav_bytes_to_u32(cuePointData + 4); + pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[0] = cuePointData[8]; + pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[1] = cuePointData[9]; + pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[2] = cuePointData[10]; + pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[3] = cuePointData[11]; + pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart = drwav_bytes_to_u32(cuePointData + 12); + pMetadata->data.cue.pCuePoints[iCuePoint].blockStart = drwav_bytes_to_u32(cuePointData + 16); + pMetadata->data.cue.pCuePoints[iCuePoint].sampleOffset = drwav_bytes_to_u32(cuePointData + 20); + } else { + break; + } + } + } + } + } + + return totalBytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_inst_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata) +{ + drwav_uint8 instData[DRWAV_INST_BYTES]; + drwav_uint64 bytesRead; + + if (pMetadata == NULL) { + return 0; + } + + bytesRead = drwav__metadata_parser_read(pParser, instData, sizeof(instData), NULL); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesRead == sizeof(instData)) { + pMetadata->type = drwav_metadata_type_inst; + pMetadata->data.inst.midiUnityNote = (drwav_int8)instData[0]; + pMetadata->data.inst.fineTuneCents = (drwav_int8)instData[1]; + pMetadata->data.inst.gainDecibels = (drwav_int8)instData[2]; + pMetadata->data.inst.lowNote = (drwav_int8)instData[3]; + pMetadata->data.inst.highNote = (drwav_int8)instData[4]; + pMetadata->data.inst.lowVelocity = (drwav_int8)instData[5]; + pMetadata->data.inst.highVelocity = (drwav_int8)instData[6]; + } + + return bytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_acid_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata) +{ + drwav_uint8 acidData[DRWAV_ACID_BYTES]; + drwav_uint64 bytesRead; + + if (pMetadata == NULL) { + return 0; + } + + bytesRead = drwav__metadata_parser_read(pParser, acidData, sizeof(acidData), NULL); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesRead == sizeof(acidData)) { + pMetadata->type = drwav_metadata_type_acid; + pMetadata->data.acid.flags = drwav_bytes_to_u32(acidData + 0); + pMetadata->data.acid.midiUnityNote = drwav_bytes_to_u16(acidData + 4); + pMetadata->data.acid.reserved1 = drwav_bytes_to_u16(acidData + 6); + pMetadata->data.acid.reserved2 = drwav_bytes_to_f32(acidData + 8); + pMetadata->data.acid.numBeats = drwav_bytes_to_u32(acidData + 12); + pMetadata->data.acid.meterDenominator = drwav_bytes_to_u16(acidData + 16); + pMetadata->data.acid.meterNumerator = drwav_bytes_to_u16(acidData + 18); + pMetadata->data.acid.tempo = drwav_bytes_to_f32(acidData + 20); + } + + return bytesRead; +} + +DRWAV_PRIVATE size_t drwav__strlen(const char* str) +{ + size_t result = 0; + + while (*str++) { + result += 1; + } + + return result; +} + +DRWAV_PRIVATE size_t drwav__strlen_clamped(const char* str, size_t maxToRead) +{ + size_t result = 0; + + while (*str++ && result < maxToRead) { + result += 1; + } + + return result; +} + +DRWAV_PRIVATE char* drwav__metadata_copy_string(drwav__metadata_parser* pParser, const char* str, size_t maxToRead) +{ + size_t len = drwav__strlen_clamped(str, maxToRead); + + if (len) { + char* result = (char*)drwav__metadata_get_memory(pParser, len + 1, 1); + DRWAV_ASSERT(result != NULL); + + DRWAV_COPY_MEMORY(result, str, len); + result[len] = '\0'; + + return result; + } else { + return NULL; + } +} + +typedef struct +{ + const void* pBuffer; + size_t sizeInBytes; + size_t cursor; +} drwav_buffer_reader; + +DRWAV_PRIVATE drwav_result drwav_buffer_reader_init(const void* pBuffer, size_t sizeInBytes, drwav_buffer_reader* pReader) +{ + DRWAV_ASSERT(pBuffer != NULL); + DRWAV_ASSERT(pReader != NULL); + + DRWAV_ZERO_OBJECT(pReader); + + pReader->pBuffer = pBuffer; + pReader->sizeInBytes = sizeInBytes; + pReader->cursor = 0; + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE const void* drwav_buffer_reader_ptr(const drwav_buffer_reader* pReader) +{ + DRWAV_ASSERT(pReader != NULL); + + return drwav_offset_ptr(pReader->pBuffer, pReader->cursor); +} + +DRWAV_PRIVATE drwav_result drwav_buffer_reader_seek(drwav_buffer_reader* pReader, size_t bytesToSeek) +{ + DRWAV_ASSERT(pReader != NULL); + + if (pReader->cursor + bytesToSeek > pReader->sizeInBytes) { + return DRWAV_BAD_SEEK; /* Seeking too far forward. */ + } + + pReader->cursor += bytesToSeek; + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE drwav_result drwav_buffer_reader_read(drwav_buffer_reader* pReader, void* pDst, size_t bytesToRead, size_t* pBytesRead) +{ + drwav_result result = DRWAV_SUCCESS; + size_t bytesRemaining; + + DRWAV_ASSERT(pReader != NULL); + + if (pBytesRead != NULL) { + *pBytesRead = 0; + } + + bytesRemaining = (pReader->sizeInBytes - pReader->cursor); + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (pDst == NULL) { + /* Seek. */ + result = drwav_buffer_reader_seek(pReader, bytesToRead); + } else { + /* Read. */ + DRWAV_COPY_MEMORY(pDst, drwav_buffer_reader_ptr(pReader), bytesToRead); + pReader->cursor += bytesToRead; + } + + DRWAV_ASSERT(pReader->cursor <= pReader->sizeInBytes); + + if (result == DRWAV_SUCCESS) { + if (pBytesRead != NULL) { + *pBytesRead = bytesToRead; + } + } + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE drwav_result drwav_buffer_reader_read_u16(drwav_buffer_reader* pReader, drwav_uint16* pDst) +{ + drwav_result result; + size_t bytesRead; + drwav_uint8 data[2]; + + DRWAV_ASSERT(pReader != NULL); + DRWAV_ASSERT(pDst != NULL); + + *pDst = 0; /* Safety. */ + + result = drwav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); + if (result != DRWAV_SUCCESS || bytesRead != sizeof(*pDst)) { + return result; + } + + *pDst = drwav_bytes_to_u16(data); + + return DRWAV_SUCCESS; +} + +DRWAV_PRIVATE drwav_result drwav_buffer_reader_read_u32(drwav_buffer_reader* pReader, drwav_uint32* pDst) +{ + drwav_result result; + size_t bytesRead; + drwav_uint8 data[4]; + + DRWAV_ASSERT(pReader != NULL); + DRWAV_ASSERT(pDst != NULL); + + *pDst = 0; /* Safety. */ + + result = drwav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); + if (result != DRWAV_SUCCESS || bytesRead != sizeof(*pDst)) { + return result; + } + + *pDst = drwav_bytes_to_u32(data); + + return DRWAV_SUCCESS; +} + + + +DRWAV_PRIVATE drwav_uint64 drwav__read_bext_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize) +{ + drwav_uint8 bextData[DRWAV_BEXT_BYTES]; + size_t bytesRead = drwav__metadata_parser_read(pParser, bextData, sizeof(bextData), NULL); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesRead == sizeof(bextData)) { + drwav_buffer_reader reader; + drwav_uint32 timeReferenceLow; + drwav_uint32 timeReferenceHigh; + size_t extraBytes; + + pMetadata->type = drwav_metadata_type_bext; + + if (drwav_buffer_reader_init(bextData, bytesRead, &reader) == DRWAV_SUCCESS) { + pMetadata->data.bext.pDescription = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_DESCRIPTION_BYTES); + drwav_buffer_reader_seek(&reader, DRWAV_BEXT_DESCRIPTION_BYTES); + + pMetadata->data.bext.pOriginatorName = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_ORIGINATOR_NAME_BYTES); + drwav_buffer_reader_seek(&reader, DRWAV_BEXT_ORIGINATOR_NAME_BYTES); + + pMetadata->data.bext.pOriginatorReference = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_ORIGINATOR_REF_BYTES); + drwav_buffer_reader_seek(&reader, DRWAV_BEXT_ORIGINATOR_REF_BYTES); + + drwav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate), NULL); + drwav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime), NULL); + + drwav_buffer_reader_read_u32(&reader, &timeReferenceLow); + drwav_buffer_reader_read_u32(&reader, &timeReferenceHigh); + pMetadata->data.bext.timeReference = ((drwav_uint64)timeReferenceHigh << 32) + timeReferenceLow; + + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.version); + + pMetadata->data.bext.pUMID = drwav__metadata_get_memory(pParser, DRWAV_BEXT_UMID_BYTES, 1); + drwav_buffer_reader_read(&reader, pMetadata->data.bext.pUMID, DRWAV_BEXT_UMID_BYTES, NULL); + + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessValue); + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessRange); + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxTruePeakLevel); + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxMomentaryLoudness); + drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxShortTermLoudness); + + DRWAV_ASSERT((drwav_offset_ptr(drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_RESERVED_BYTES)) == (bextData + DRWAV_BEXT_BYTES)); + + extraBytes = (size_t)(chunkSize - DRWAV_BEXT_BYTES); + if (extraBytes > 0) { + pMetadata->data.bext.pCodingHistory = (char*)drwav__metadata_get_memory(pParser, extraBytes + 1, 1); + DRWAV_ASSERT(pMetadata->data.bext.pCodingHistory != NULL); + + bytesRead += drwav__metadata_parser_read(pParser, pMetadata->data.bext.pCodingHistory, extraBytes, NULL); + pMetadata->data.bext.codingHistorySize = (drwav_uint32)drwav__strlen(pMetadata->data.bext.pCodingHistory); + } else { + pMetadata->data.bext.pCodingHistory = NULL; + pMetadata->data.bext.codingHistorySize = 0; + } + } + } + + return bytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_list_label_or_note_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize, drwav_metadata_type type) +{ + drwav_uint8 cueIDBuffer[DRWAV_LIST_LABEL_OR_NOTE_BYTES]; + drwav_uint64 totalBytesRead = 0; + size_t bytesJustRead = drwav__metadata_parser_read(pParser, cueIDBuffer, sizeof(cueIDBuffer), &totalBytesRead); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesJustRead == sizeof(cueIDBuffer)) { + drwav_uint32 sizeIncludingNullTerminator; + + pMetadata->type = type; + pMetadata->data.labelOrNote.cuePointId = drwav_bytes_to_u32(cueIDBuffer); + + sizeIncludingNullTerminator = (drwav_uint32)chunkSize - DRWAV_LIST_LABEL_OR_NOTE_BYTES; + if (sizeIncludingNullTerminator > 0) { + pMetadata->data.labelOrNote.stringLength = sizeIncludingNullTerminator - 1; + pMetadata->data.labelOrNote.pString = (char*)drwav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); + DRWAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); + + drwav__metadata_parser_read(pParser, pMetadata->data.labelOrNote.pString, sizeIncludingNullTerminator, &totalBytesRead); + } else { + pMetadata->data.labelOrNote.stringLength = 0; + pMetadata->data.labelOrNote.pString = NULL; + } + } + + return totalBytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__read_list_labelled_cue_region_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize) +{ + drwav_uint8 buffer[DRWAV_LIST_LABELLED_TEXT_BYTES]; + drwav_uint64 totalBytesRead = 0; + size_t bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &totalBytesRead); + + DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + + if (bytesJustRead == sizeof(buffer)) { + drwav_uint32 sizeIncludingNullTerminator; + + pMetadata->type = drwav_metadata_type_list_labelled_cue_region; + pMetadata->data.labelledCueRegion.cuePointId = drwav_bytes_to_u32(buffer + 0); + pMetadata->data.labelledCueRegion.sampleLength = drwav_bytes_to_u32(buffer + 4); + pMetadata->data.labelledCueRegion.purposeId[0] = buffer[8]; + pMetadata->data.labelledCueRegion.purposeId[1] = buffer[9]; + pMetadata->data.labelledCueRegion.purposeId[2] = buffer[10]; + pMetadata->data.labelledCueRegion.purposeId[3] = buffer[11]; + pMetadata->data.labelledCueRegion.country = drwav_bytes_to_u16(buffer + 12); + pMetadata->data.labelledCueRegion.language = drwav_bytes_to_u16(buffer + 14); + pMetadata->data.labelledCueRegion.dialect = drwav_bytes_to_u16(buffer + 16); + pMetadata->data.labelledCueRegion.codePage = drwav_bytes_to_u16(buffer + 18); + + sizeIncludingNullTerminator = (drwav_uint32)chunkSize - DRWAV_LIST_LABELLED_TEXT_BYTES; + if (sizeIncludingNullTerminator > 0) { + pMetadata->data.labelledCueRegion.stringLength = sizeIncludingNullTerminator - 1; + pMetadata->data.labelledCueRegion.pString = (char*)drwav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); + DRWAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); + + drwav__metadata_parser_read(pParser, pMetadata->data.labelledCueRegion.pString, sizeIncludingNullTerminator, &totalBytesRead); + } else { + pMetadata->data.labelledCueRegion.stringLength = 0; + pMetadata->data.labelledCueRegion.pString = NULL; + } + } + + return totalBytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_info_text_chunk(drwav__metadata_parser* pParser, drwav_uint64 chunkSize, drwav_metadata_type type) +{ + drwav_uint64 bytesRead = 0; + drwav_uint32 stringSizeWithNullTerminator = (drwav_uint32)chunkSize; + + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + drwav__metadata_request_extra_memory_for_stage_2(pParser, stringSizeWithNullTerminator, 1); + } else { + drwav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; + pMetadata->type = type; + if (stringSizeWithNullTerminator > 0) { + pMetadata->data.infoText.stringLength = stringSizeWithNullTerminator - 1; + pMetadata->data.infoText.pString = (char*)drwav__metadata_get_memory(pParser, stringSizeWithNullTerminator, 1); + DRWAV_ASSERT(pMetadata->data.infoText.pString != NULL); + + bytesRead = drwav__metadata_parser_read(pParser, pMetadata->data.infoText.pString, (size_t)stringSizeWithNullTerminator, NULL); + if (bytesRead == chunkSize) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } else { + pMetadata->data.infoText.stringLength = 0; + pMetadata->data.infoText.pString = NULL; + pParser->metadataCursor += 1; + } + } + + return bytesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_unknown_chunk(drwav__metadata_parser* pParser, const drwav_uint8* pChunkId, drwav_uint64 chunkSize, drwav_metadata_location location) +{ + drwav_uint64 bytesRead = 0; + + if (location == drwav_metadata_location_invalid) { + return 0; + } + + if (drwav_fourcc_equal(pChunkId, "data") || drwav_fourcc_equal(pChunkId, "fmt ") || drwav_fourcc_equal(pChunkId, "fact")) { + return 0; + } + + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)chunkSize, 1); + } else { + drwav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; + pMetadata->type = drwav_metadata_type_unknown; + pMetadata->data.unknown.chunkLocation = location; + pMetadata->data.unknown.id[0] = pChunkId[0]; + pMetadata->data.unknown.id[1] = pChunkId[1]; + pMetadata->data.unknown.id[2] = pChunkId[2]; + pMetadata->data.unknown.id[3] = pChunkId[3]; + pMetadata->data.unknown.dataSizeInBytes = (drwav_uint32)chunkSize; + pMetadata->data.unknown.pData = (drwav_uint8 *)drwav__metadata_get_memory(pParser, (size_t)chunkSize, 1); + DRWAV_ASSERT(pMetadata->data.unknown.pData != NULL); + + bytesRead = drwav__metadata_parser_read(pParser, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes, NULL); + if (bytesRead == pMetadata->data.unknown.dataSizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to read. */ + } + } + + return bytesRead; +} + +DRWAV_PRIVATE drwav_bool32 drwav__chunk_matches(drwav_metadata_type allowedMetadataTypes, const drwav_uint8* pChunkID, drwav_metadata_type type, const char* pID) +{ + return (allowedMetadataTypes & type) && drwav_fourcc_equal(pChunkID, pID); +} + +DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata_type allowedMetadataTypes) +{ + const drwav_uint8 *pChunkID = pChunkHeader->id.fourcc; + drwav_uint64 bytesRead = 0; + + if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_smpl, "smpl")) { + if (pChunkHeader->sizeInBytes >= DRWAV_SMPL_BYTES) { + if (pParser->stage == drwav__metadata_parser_stage_count) { + drwav_uint8 buffer[4]; + size_t bytesJustRead; + + if (!pParser->onSeek(pParser->pReadSeekUserData, 28, DRWAV_SEEK_CUR)) { + return bytesRead; + } + bytesRead += 28; + + bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); + if (bytesJustRead == sizeof(buffer)) { + drwav_uint32 loopCount = drwav_bytes_to_u32(buffer); + drwav_uint64 calculatedLoopCount; + + /* The loop count must be validated against the size of the chunk. */ + calculatedLoopCount = (pChunkHeader->sizeInBytes - DRWAV_SMPL_BYTES) / DRWAV_SMPL_LOOP_BYTES; + if (calculatedLoopCount == loopCount) { + bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); + if (bytesJustRead == sizeof(buffer)) { + drwav_uint32 samplerSpecificDataSizeInBytes = drwav_bytes_to_u32(buffer); + + pParser->metadataCount += 1; + drwav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(drwav_smpl_loop) * loopCount, DRWAV_METADATA_ALIGNMENT); + drwav__metadata_request_extra_memory_for_stage_2(pParser, samplerSpecificDataSizeInBytes, 1); + } + } else { + /* Loop count in header does not match the size of the chunk. */ + } + } + } else { + bytesRead = drwav__read_smpl_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); + if (bytesRead == pChunkHeader->sizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_inst, "inst")) { + if (pChunkHeader->sizeInBytes == DRWAV_INST_BYTES) { + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + } else { + bytesRead = drwav__read_inst_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); + if (bytesRead == pChunkHeader->sizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_acid, "acid")) { + if (pChunkHeader->sizeInBytes == DRWAV_ACID_BYTES) { + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + } else { + bytesRead = drwav__read_acid_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); + if (bytesRead == pChunkHeader->sizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_cue, "cue ")) { + if (pChunkHeader->sizeInBytes >= DRWAV_CUE_BYTES) { + if (pParser->stage == drwav__metadata_parser_stage_count) { + size_t cueCount; + + pParser->metadataCount += 1; + cueCount = (size_t)(pChunkHeader->sizeInBytes - DRWAV_CUE_BYTES) / DRWAV_CUE_POINT_BYTES; + drwav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(drwav_cue_point) * cueCount, DRWAV_METADATA_ALIGNMENT); + } else { + bytesRead = drwav__read_cue_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); + if (bytesRead == pChunkHeader->sizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_bext, "bext")) { + if (pChunkHeader->sizeInBytes >= DRWAV_BEXT_BYTES) { + if (pParser->stage == drwav__metadata_parser_stage_count) { + /* The description field is the largest one in a bext chunk, so that is the max size of this temporary buffer. */ + char buffer[DRWAV_BEXT_DESCRIPTION_BYTES + 1]; + size_t allocSizeNeeded = DRWAV_BEXT_UMID_BYTES; /* We know we will need SMPTE umid size. */ + size_t bytesJustRead; + + buffer[DRWAV_BEXT_DESCRIPTION_BYTES] = '\0'; + bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_DESCRIPTION_BYTES, &bytesRead); + if (bytesJustRead != DRWAV_BEXT_DESCRIPTION_BYTES) { + return bytesRead; + } + allocSizeNeeded += drwav__strlen(buffer) + 1; + + buffer[DRWAV_BEXT_ORIGINATOR_NAME_BYTES] = '\0'; + bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_ORIGINATOR_NAME_BYTES, &bytesRead); + if (bytesJustRead != DRWAV_BEXT_ORIGINATOR_NAME_BYTES) { + return bytesRead; + } + allocSizeNeeded += drwav__strlen(buffer) + 1; + + buffer[DRWAV_BEXT_ORIGINATOR_REF_BYTES] = '\0'; + bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_ORIGINATOR_REF_BYTES, &bytesRead); + if (bytesJustRead != DRWAV_BEXT_ORIGINATOR_REF_BYTES) { + return bytesRead; + } + allocSizeNeeded += drwav__strlen(buffer) + 1; + allocSizeNeeded += (size_t)pChunkHeader->sizeInBytes - DRWAV_BEXT_BYTES + 1; /* Coding history. */ + + drwav__metadata_request_extra_memory_for_stage_2(pParser, allocSizeNeeded, 1); + + pParser->metadataCount += 1; + } else { + bytesRead = drwav__read_bext_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], pChunkHeader->sizeInBytes); + if (bytesRead == pChunkHeader->sizeInBytes) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav_fourcc_equal(pChunkID, "LIST") || drwav_fourcc_equal(pChunkID, "list")) { + drwav_metadata_location listType = drwav_metadata_location_invalid; + while (bytesRead < pChunkHeader->sizeInBytes) { + drwav_uint8 subchunkId[4]; + drwav_uint8 subchunkSizeBuffer[4]; + drwav_uint64 subchunkDataSize; + drwav_uint64 subchunkBytesRead = 0; + drwav_uint64 bytesJustRead = drwav__metadata_parser_read(pParser, subchunkId, sizeof(subchunkId), &bytesRead); + if (bytesJustRead != sizeof(subchunkId)) { + break; + } + + /* + The first thing in a list chunk should be "adtl" or "INFO". + + - adtl means this list is a Associated Data List Chunk and will contain labels, notes + or labelled cue regions. + - INFO means this list is an Info List Chunk containing info text chunks such as IPRD + which would specifies the album of this wav file. + + No data follows the adtl or INFO id so we just make note of what type this list is and + continue. + */ + if (drwav_fourcc_equal(subchunkId, "adtl")) { + listType = drwav_metadata_location_inside_adtl_list; + continue; + } else if (drwav_fourcc_equal(subchunkId, "INFO")) { + listType = drwav_metadata_location_inside_info_list; + continue; + } + + bytesJustRead = drwav__metadata_parser_read(pParser, subchunkSizeBuffer, sizeof(subchunkSizeBuffer), &bytesRead); + if (bytesJustRead != sizeof(subchunkSizeBuffer)) { + break; + } + subchunkDataSize = drwav_bytes_to_u32(subchunkSizeBuffer); + + if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_label, "labl") || drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_note, "note")) { + if (subchunkDataSize >= DRWAV_LIST_LABEL_OR_NOTE_BYTES) { + drwav_uint64 stringSizeWithNullTerm = subchunkDataSize - DRWAV_LIST_LABEL_OR_NOTE_BYTES; + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerm, 1); + } else { + subchunkBytesRead = drwav__read_list_label_or_note_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize, drwav_fourcc_equal(subchunkId, "labl") ? drwav_metadata_type_list_label : drwav_metadata_type_list_note); + if (subchunkBytesRead == subchunkDataSize) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_labelled_cue_region, "ltxt")) { + if (subchunkDataSize >= DRWAV_LIST_LABELLED_TEXT_BYTES) { + drwav_uint64 stringSizeWithNullTerminator = subchunkDataSize - DRWAV_LIST_LABELLED_TEXT_BYTES; + if (pParser->stage == drwav__metadata_parser_stage_count) { + pParser->metadataCount += 1; + drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerminator, 1); + } else { + subchunkBytesRead = drwav__read_list_labelled_cue_region_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize); + if (subchunkBytesRead == subchunkDataSize) { + pParser->metadataCursor += 1; + } else { + /* Failed to parse. */ + } + } + } else { + /* Incorrectly formed chunk. */ + } + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_software, "ISFT")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_software); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_copyright, "ICOP")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_copyright); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_title, "INAM")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_title); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_artist, "IART")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_artist); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_comment, "ICMT")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_comment); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_date, "ICRD")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_date); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_genre, "IGNR")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_genre); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_album, "IPRD")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_album); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_tracknumber, "ITRK")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_tracknumber); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_location, "IARL")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_location); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_organization, "ICMS")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_organization); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_keywords, "IKEY")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_keywords); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_medium, "IMED")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_medium); + } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_description, "ISBJ")) { + subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_description); + } else if ((allowedMetadataTypes & drwav_metadata_type_unknown) != 0) { + subchunkBytesRead = drwav__metadata_process_unknown_chunk(pParser, subchunkId, subchunkDataSize, listType); + } + + bytesRead += subchunkBytesRead; + DRWAV_ASSERT(subchunkBytesRead <= subchunkDataSize); + + if (subchunkBytesRead < subchunkDataSize) { + drwav_uint64 bytesToSeek = subchunkDataSize - subchunkBytesRead; + + if (!pParser->onSeek(pParser->pReadSeekUserData, (int)bytesToSeek, DRWAV_SEEK_CUR)) { + break; + } + bytesRead += bytesToSeek; + } + + if ((subchunkDataSize % 2) == 1) { + if (!pParser->onSeek(pParser->pReadSeekUserData, 1, DRWAV_SEEK_CUR)) { + break; + } + bytesRead += 1; + } + } + } else if ((allowedMetadataTypes & drwav_metadata_type_unknown) != 0) { + bytesRead = drwav__metadata_process_unknown_chunk(pParser, pChunkID, pChunkHeader->sizeInBytes, drwav_metadata_location_top_level); + } + + return bytesRead; +} + + +DRWAV_PRIVATE drwav_uint32 drwav_get_bytes_per_pcm_frame(drwav* pWav) +{ + drwav_uint32 bytesPerFrame; + + /* + The bytes per frame is a bit ambiguous. It can be either be based on the bits per sample, or the block align. The way I'm doing it here + is that if the bits per sample is a multiple of 8, use floor(bitsPerSample*channels/8), otherwise fall back to the block align. + */ + if ((pWav->bitsPerSample & 0x7) == 0) { + /* Bits per sample is a multiple of 8. */ + bytesPerFrame = (pWav->bitsPerSample * pWav->fmt.channels) >> 3; + } else { + bytesPerFrame = pWav->fmt.blockAlign; + } + + /* Validation for known formats. a-law and mu-law should be 1 byte per channel. If it's not, it's not decodable. */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW || pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + if (bytesPerFrame != pWav->fmt.channels) { + return 0; /* Invalid file. */ + } + } + + return bytesPerFrame; +} + +DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT) +{ + if (pFMT == NULL) { + return 0; + } + + if (pFMT->formatTag != DR_WAVE_FORMAT_EXTENSIBLE) { + return pFMT->formatTag; + } else { + return drwav_bytes_to_u16(pFMT->subFormat); /* Only the first two bytes are required. */ + } +} + +DRWAV_PRIVATE drwav_bool32 drwav_preinit(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pReadSeekTellUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pWav == NULL || onRead == NULL || onSeek == NULL) { /* <-- onTell is optional. */ + return DRWAV_FALSE; + } + + DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + pWav->onRead = onRead; + pWav->onSeek = onSeek; + pWav->onTell = onTell; + pWav->pUserData = pReadSeekTellUserData; + pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + + if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { + return DRWAV_FALSE; /* Invalid allocation callbacks. */ + } + + return DRWAV_TRUE; +} + +DRWAV_PRIVATE drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags) +{ + /* This function assumes drwav_preinit() has been called beforehand. */ + drwav_result result; + drwav_uint64 cursor; /* <-- Keeps track of the byte position so we can seek to specific locations. */ + drwav_bool32 sequential; + drwav_uint8 riff[4]; + drwav_fmt fmt; + unsigned short translatedFormatTag; + drwav_uint64 dataChunkSize = 0; /* <-- Important! Don't explicitly set this to 0 anywhere else. Calculation of the size of the data chunk is performed in different paths depending on the container. */ + drwav_uint64 sampleCountFromFactChunk = 0; /* Same as dataChunkSize - make sure this is the only place this is initialized to 0. */ + drwav_uint64 metadataStartPos; + drwav__metadata_parser metadataParser; + drwav_bool8 isProcessingMetadata = DRWAV_FALSE; + drwav_bool8 foundChunk_fmt = DRWAV_FALSE; + drwav_bool8 foundChunk_data = DRWAV_FALSE; + drwav_bool8 isAIFCFormType = DRWAV_FALSE; /* Only used with AIFF. */ + drwav_uint64 aiffFrameCount = 0; + + cursor = 0; + sequential = (flags & DRWAV_SEQUENTIAL) != 0; + DRWAV_ZERO_OBJECT(&fmt); + + /* The first 4 bytes should be the RIFF identifier. */ + if (drwav__on_read(pWav->onRead, pWav->pUserData, riff, sizeof(riff), &cursor) != sizeof(riff)) { + return DRWAV_FALSE; + } + + /* + The first 4 bytes can be used to identify the container. For RIFF files it will start with "RIFF" and for + w64 it will start with "riff". + */ + if (drwav_fourcc_equal(riff, "RIFF")) { + pWav->container = drwav_container_riff; + } else if (drwav_fourcc_equal(riff, "RIFX")) { + pWav->container = drwav_container_rifx; + } else if (drwav_fourcc_equal(riff, "riff")) { + int i; + drwav_uint8 riff2[12]; + + pWav->container = drwav_container_w64; + + /* Check the rest of the GUID for validity. */ + if (drwav__on_read(pWav->onRead, pWav->pUserData, riff2, sizeof(riff2), &cursor) != sizeof(riff2)) { + return DRWAV_FALSE; + } + + for (i = 0; i < 12; ++i) { + if (riff2[i] != drwavGUID_W64_RIFF[i+4]) { + return DRWAV_FALSE; + } + } + } else if (drwav_fourcc_equal(riff, "RF64")) { + pWav->container = drwav_container_rf64; + } else if (drwav_fourcc_equal(riff, "FORM")) { + pWav->container = drwav_container_aiff; + } else { + return DRWAV_FALSE; /* Unknown or unsupported container. */ + } + + + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx || pWav->container == drwav_container_rf64) { + drwav_uint8 chunkSizeBytes[4]; + drwav_uint8 wave[4]; + + if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return DRWAV_FALSE; + } + + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx) { + if (drwav_bytes_to_u32_ex(chunkSizeBytes, pWav->container) < 36) { + /* + I've had a report of a WAV file failing to load when the size of the WAVE chunk is not encoded + and is instead just set to 0. I'm going to relax the validation here to allow these files to + load. Considering the chunk size isn't actually used this should be safe. With this change my + test suite still passes. + */ + /*return DRWAV_FALSE;*/ /* Chunk size should always be at least 36 bytes. */ + } + } else if (pWav->container == drwav_container_rf64) { + if (drwav_bytes_to_u32_le(chunkSizeBytes) != 0xFFFFFFFF) { + return DRWAV_FALSE; /* Chunk size should always be set to -1/0xFFFFFFFF for RF64. The actual size is retrieved later. */ + } + } else { + return DRWAV_FALSE; /* Should never hit this. */ + } + + if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return DRWAV_FALSE; + } + + if (!drwav_fourcc_equal(wave, "WAVE")) { + return DRWAV_FALSE; /* Expecting "WAVE". */ + } + } else if (pWav->container == drwav_container_w64) { + drwav_uint8 chunkSizeBytes[8]; + drwav_uint8 wave[16]; + + if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return DRWAV_FALSE; + } + + if (drwav_bytes_to_u64(chunkSizeBytes) < 80) { + return DRWAV_FALSE; + } + + if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return DRWAV_FALSE; + } + + if (!drwav_guid_equal(wave, drwavGUID_W64_WAVE)) { + return DRWAV_FALSE; + } + } else if (pWav->container == drwav_container_aiff) { + drwav_uint8 chunkSizeBytes[4]; + drwav_uint8 aiff[4]; + + if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return DRWAV_FALSE; + } + + if (drwav_bytes_to_u32_be(chunkSizeBytes) < 18) { + return DRWAV_FALSE; + } + + if (drwav__on_read(pWav->onRead, pWav->pUserData, aiff, sizeof(aiff), &cursor) != sizeof(aiff)) { + return DRWAV_FALSE; + } + + if (drwav_fourcc_equal(aiff, "AIFF")) { + isAIFCFormType = DRWAV_FALSE; + } else if (drwav_fourcc_equal(aiff, "AIFC")) { + isAIFCFormType = DRWAV_TRUE; + } else { + return DRWAV_FALSE; /* Expecting "AIFF" or "AIFC". */ + } + } else { + return DRWAV_FALSE; + } + + + /* For RF64, the "ds64" chunk must come next, before the "fmt " chunk. */ + if (pWav->container == drwav_container_rf64) { + drwav_uint8 sizeBytes[8]; + drwav_uint64 bytesRemainingInChunk; + drwav_chunk_header header; + result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + if (!drwav_fourcc_equal(header.id.fourcc, "ds64")) { + return DRWAV_FALSE; /* Expecting "ds64". */ + } + + bytesRemainingInChunk = header.sizeInBytes + header.paddingSize; + + /* We don't care about the size of the RIFF chunk - skip it. */ + if (!drwav__seek_forward(pWav->onSeek, 8, pWav->pUserData)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + cursor += 8; + + + /* Next 8 bytes is the size of the "data" chunk. */ + if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + dataChunkSize = drwav_bytes_to_u64(sizeBytes); + + + /* Next 8 bytes is the same count which we would usually derived from the FACT chunk if it was available. */ + if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + sampleCountFromFactChunk = drwav_bytes_to_u64(sizeBytes); + + + /* Skip over everything else. */ + if (!drwav__seek_forward(pWav->onSeek, bytesRemainingInChunk, pWav->pUserData)) { + return DRWAV_FALSE; + } + cursor += bytesRemainingInChunk; + } + + + metadataStartPos = cursor; + + /* + Whether or not we are processing metadata controls how we load. We can load more efficiently when + metadata is not being processed, but we also cannot process metadata for Wave64 because I have not + been able to test it. If someone is able to test this and provide a patch I'm happy to enable it. + + Seqential mode cannot support metadata because it involves seeking backwards. + */ + isProcessingMetadata = !sequential && ((flags & DRWAV_WITH_METADATA) != 0); + + /* Don't allow processing of metadata with untested containers. */ + if (pWav->container != drwav_container_riff && pWav->container != drwav_container_rf64) { + isProcessingMetadata = DRWAV_FALSE; + } + + DRWAV_ZERO_MEMORY(&metadataParser, sizeof(metadataParser)); + if (isProcessingMetadata) { + metadataParser.onRead = pWav->onRead; + metadataParser.onSeek = pWav->onSeek; + metadataParser.pReadSeekUserData = pWav->pUserData; + metadataParser.stage = drwav__metadata_parser_stage_count; + } + + + /* + From here on out, chunks might be in any order. In order to robustly handle metadata we'll need + to loop through every chunk and handle them as we find them. In sequential mode we need to get + out of the loop as soon as we find the data chunk because we won't be able to seek back. + */ + for (;;) { /* For each chunk... */ + drwav_chunk_header header; + drwav_uint64 chunkSize; + + result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != DRWAV_SUCCESS) { + break; + } + + chunkSize = header.sizeInBytes; + + + /* + Always tell the caller about this chunk. We cannot do this in sequential mode because the + callback is allowed to read from the file, in which case we'll need to rewind. + */ + if (!sequential && onChunk != NULL) { + drwav_uint64 callbackBytesRead = onChunk(pChunkUserData, pWav->onRead, pWav->onSeek, pWav->pUserData, &header, pWav->container, &fmt); + + /* + dr_wav may need to read the contents of the chunk, so we now need to seek back to the position before + we called the callback. + */ + if (callbackBytesRead > 0) { + if (drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + } + } + + + /* Explicitly handle known chunks first. */ + + /* "fmt " */ + if (((pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx || pWav->container == drwav_container_rf64) && drwav_fourcc_equal(header.id.fourcc, "fmt ")) || + ((pWav->container == drwav_container_w64) && drwav_guid_equal(header.id.guid, drwavGUID_W64_FMT))) { + drwav_uint8 fmtData[16]; + + foundChunk_fmt = DRWAV_TRUE; + + if (pWav->onRead(pWav->pUserData, fmtData, sizeof(fmtData)) != sizeof(fmtData)) { + return DRWAV_FALSE; + } + cursor += sizeof(fmtData); + + fmt.formatTag = drwav_bytes_to_u16_ex(fmtData + 0, pWav->container); + fmt.channels = drwav_bytes_to_u16_ex(fmtData + 2, pWav->container); + fmt.sampleRate = drwav_bytes_to_u32_ex(fmtData + 4, pWav->container); + fmt.avgBytesPerSec = drwav_bytes_to_u32_ex(fmtData + 8, pWav->container); + fmt.blockAlign = drwav_bytes_to_u16_ex(fmtData + 12, pWav->container); + fmt.bitsPerSample = drwav_bytes_to_u16_ex(fmtData + 14, pWav->container); + + fmt.extendedSize = 0; + fmt.validBitsPerSample = 0; + fmt.channelMask = 0; + DRWAV_ZERO_MEMORY(fmt.subFormat, sizeof(fmt.subFormat)); + + if (header.sizeInBytes > 16) { + drwav_uint8 fmt_cbSize[2]; + int bytesReadSoFar = 0; + + if (pWav->onRead(pWav->pUserData, fmt_cbSize, sizeof(fmt_cbSize)) != sizeof(fmt_cbSize)) { + return DRWAV_FALSE; /* Expecting more data. */ + } + cursor += sizeof(fmt_cbSize); + + bytesReadSoFar = 18; + + fmt.extendedSize = drwav_bytes_to_u16_ex(fmt_cbSize, pWav->container); + if (fmt.extendedSize > 0) { + /* Simple validation. */ + if (fmt.formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + if (fmt.extendedSize != 22) { + return DRWAV_FALSE; + } + } + + if (fmt.formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + drwav_uint8 fmtext[22]; + + if (pWav->onRead(pWav->pUserData, fmtext, fmt.extendedSize) != fmt.extendedSize) { + return DRWAV_FALSE; /* Expecting more data. */ + } + + fmt.validBitsPerSample = drwav_bytes_to_u16_ex(fmtext + 0, pWav->container); + fmt.channelMask = drwav_bytes_to_u32_ex(fmtext + 2, pWav->container); + drwav_bytes_to_guid(fmtext + 6, fmt.subFormat); + } else { + if (pWav->onSeek(pWav->pUserData, fmt.extendedSize, DRWAV_SEEK_CUR) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + } + cursor += fmt.extendedSize; + + bytesReadSoFar += fmt.extendedSize; + } + + /* Seek past any leftover bytes. For w64 the leftover will be defined based on the chunk size. */ + if (pWav->onSeek(pWav->pUserData, (int)(header.sizeInBytes - bytesReadSoFar), DRWAV_SEEK_CUR) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + cursor += (header.sizeInBytes - bytesReadSoFar); + } + + if (header.paddingSize > 0) { + if (drwav__seek_forward(pWav->onSeek, header.paddingSize, pWav->pUserData) == DRWAV_FALSE) { + break; + } + cursor += header.paddingSize; + } + + /* Go to the next chunk. Don't include this chunk in metadata. */ + continue; + } + + /* "data" */ + if (((pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx || pWav->container == drwav_container_rf64) && drwav_fourcc_equal(header.id.fourcc, "data")) || + ((pWav->container == drwav_container_w64) && drwav_guid_equal(header.id.guid, drwavGUID_W64_DATA))) { + foundChunk_data = DRWAV_TRUE; + + pWav->dataChunkDataPos = cursor; + + if (pWav->container != drwav_container_rf64) { /* The data chunk size for RF64 will always be set to 0xFFFFFFFF here. It was set to it's true value earlier. */ + dataChunkSize = chunkSize; + } + + /* If we're running in sequential mode, or we're not reading metadata, we have enough now that we can get out of the loop. */ + if (sequential || !isProcessingMetadata) { + break; /* No need to keep reading beyond the data chunk. */ + } else { + chunkSize += header.paddingSize; /* <-- Make sure we seek past the padding. */ + if (drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == DRWAV_FALSE) { + break; + } + cursor += chunkSize; + + continue; /* There may be some more metadata to read. */ + } + } + + /* "fact". This is optional. Can use this to get the sample count which is useful for compressed formats. For RF64 we retrieved the sample count from the ds64 chunk earlier. */ + if (((pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx || pWav->container == drwav_container_rf64) && drwav_fourcc_equal(header.id.fourcc, "fact")) || + ((pWav->container == drwav_container_w64) && drwav_guid_equal(header.id.guid, drwavGUID_W64_FACT))) { + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx) { + drwav_uint8 sampleCount[4]; + if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCount, 4, &cursor) != 4) { + return DRWAV_FALSE; + } + + chunkSize -= 4; + + /* + The sample count in the "fact" chunk is either unreliable, or I'm not understanding it properly. For now I am only enabling this + for Microsoft ADPCM formats. + */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + sampleCountFromFactChunk = drwav_bytes_to_u32_ex(sampleCount, pWav->container); + } else { + sampleCountFromFactChunk = 0; + } + } else if (pWav->container == drwav_container_w64) { + if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCountFromFactChunk, 8, &cursor) != 8) { + return DRWAV_FALSE; + } + + chunkSize -= 8; + } else if (pWav->container == drwav_container_rf64) { + /* We retrieved the sample count from the ds64 chunk earlier so no need to do that here. */ + } + + /* Seek to the next chunk in preparation for the next iteration. */ + chunkSize += header.paddingSize; /* <-- Make sure we seek past the padding. */ + if (drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == DRWAV_FALSE) { + break; + } + cursor += chunkSize; + + continue; + } + + + /* "COMM". AIFF/AIFC only. */ + if (pWav->container == drwav_container_aiff && drwav_fourcc_equal(header.id.fourcc, "COMM")) { + drwav_uint8 commData[24]; + drwav_uint32 commDataBytesToRead; + drwav_uint16 channels; + drwav_uint32 frameCount; + drwav_uint16 sampleSizeInBits; + drwav_int64 sampleRate; + drwav_uint16 compressionFormat; + + foundChunk_fmt = DRWAV_TRUE; + + if (isAIFCFormType) { + commDataBytesToRead = 24; + if (header.sizeInBytes < commDataBytesToRead) { + return DRWAV_FALSE; /* Invalid COMM chunk. */ + } + } else { + commDataBytesToRead = 18; + if (header.sizeInBytes != commDataBytesToRead) { + return DRWAV_FALSE; /* INVALID COMM chunk. */ + } + } + + if (drwav__on_read(pWav->onRead, pWav->pUserData, commData, commDataBytesToRead, &cursor) != commDataBytesToRead) { + return DRWAV_FALSE; + } + + + channels = drwav_bytes_to_u16_ex (commData + 0, pWav->container); + frameCount = drwav_bytes_to_u32_ex (commData + 2, pWav->container); + sampleSizeInBits = drwav_bytes_to_u16_ex (commData + 6, pWav->container); + sampleRate = drwav_aiff_extented_to_s64(commData + 8); + + if (sampleRate < 0 || sampleRate > 0xFFFFFFFF) { + return DRWAV_FALSE; /* Invalid sample rate. */ + } + + if (isAIFCFormType) { + const drwav_uint8* type = commData + 18; + + if (drwav_fourcc_equal(type, "NONE")) { + compressionFormat = DR_WAVE_FORMAT_PCM; /* PCM, big-endian. */ + } else if (drwav_fourcc_equal(type, "raw ")) { + compressionFormat = DR_WAVE_FORMAT_PCM; + + /* In my testing, it looks like when the "raw " compression type is used, 8-bit samples should be considered unsigned. */ + if (sampleSizeInBits == 8) { + pWav->aiff.isUnsigned = DRWAV_TRUE; + } + } else if (drwav_fourcc_equal(type, "sowt")) { + compressionFormat = DR_WAVE_FORMAT_PCM; /* PCM, little-endian. */ + pWav->aiff.isLE = DRWAV_TRUE; + } else if (drwav_fourcc_equal(type, "fl32") || drwav_fourcc_equal(type, "fl64") || drwav_fourcc_equal(type, "FL32") || drwav_fourcc_equal(type, "FL64")) { + compressionFormat = DR_WAVE_FORMAT_IEEE_FLOAT; + } else if (drwav_fourcc_equal(type, "alaw") || drwav_fourcc_equal(type, "ALAW")) { + compressionFormat = DR_WAVE_FORMAT_ALAW; + } else if (drwav_fourcc_equal(type, "ulaw") || drwav_fourcc_equal(type, "ULAW")) { + compressionFormat = DR_WAVE_FORMAT_MULAW; + } else if (drwav_fourcc_equal(type, "ima4")) { + compressionFormat = DR_WAVE_FORMAT_DVI_ADPCM; + sampleSizeInBits = 4; + + /* + I haven't been able to figure out how to get correct decoding for IMA ADPCM. Until this is figured out + we'll need to abort when we encounter such an encoding. Advice welcome! + */ + (void)compressionFormat; + (void)sampleSizeInBits; + + return DRWAV_FALSE; + } else { + return DRWAV_FALSE; /* Unknown or unsupported compression format. Need to abort. */ + } + } else { + compressionFormat = DR_WAVE_FORMAT_PCM; /* It's a standard AIFF form which is always compressed. */ + } + + /* With AIFF we want to use the explicitly defined frame count rather than deriving it from the size of the chunk. */ + aiffFrameCount = frameCount; + + /* We should now have enough information to fill out our fmt structure. */ + fmt.formatTag = compressionFormat; + fmt.channels = channels; + fmt.sampleRate = (drwav_uint32)sampleRate; + fmt.bitsPerSample = sampleSizeInBits; + fmt.blockAlign = (drwav_uint16)(fmt.channels * fmt.bitsPerSample / 8); + fmt.avgBytesPerSec = fmt.blockAlign * fmt.sampleRate; + + if (fmt.blockAlign == 0 && compressionFormat == DR_WAVE_FORMAT_DVI_ADPCM) { + fmt.blockAlign = 34 * fmt.channels; + } + + /* + Weird one. I've seen some alaw and ulaw encoded files that for some reason set the bits per sample to 16 when + it should be 8. To get this working I need to explicitly check for this and change it. + */ + if (compressionFormat == DR_WAVE_FORMAT_ALAW || compressionFormat == DR_WAVE_FORMAT_MULAW) { + if (fmt.bitsPerSample > 8) { + fmt.bitsPerSample = 8; + fmt.blockAlign = fmt.channels; + } + } + + /* In AIFF, samples are padded to 8 byte boundaries. We need to round up our bits per sample here. */ + fmt.bitsPerSample += (fmt.bitsPerSample & 7); + + + /* If the form type is AIFC there will be some additional data in the chunk. We need to seek past it. */ + if (isAIFCFormType) { + if (drwav__seek_forward(pWav->onSeek, (chunkSize - commDataBytesToRead), pWav->pUserData) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + cursor += (chunkSize - commDataBytesToRead); + } + + /* Don't fall through or else we'll end up treating this chunk as metadata which is incorrect. */ + continue; + } + + + /* "SSND". AIFF/AIFC only. This is the AIFF equivalent of the "data" chunk. */ + if (pWav->container == drwav_container_aiff && drwav_fourcc_equal(header.id.fourcc, "SSND")) { + drwav_uint8 offsetAndBlockSizeData[8]; + drwav_uint32 offset; + + foundChunk_data = DRWAV_TRUE; + + if (drwav__on_read(pWav->onRead, pWav->pUserData, offsetAndBlockSizeData, sizeof(offsetAndBlockSizeData), &cursor) != sizeof(offsetAndBlockSizeData)) { + return DRWAV_FALSE; + } + + /* The position of the audio data starts at an offset. */ + offset = drwav_bytes_to_u32_ex(offsetAndBlockSizeData + 0, pWav->container); + pWav->dataChunkDataPos = cursor + offset; + + /* The data chunk size needs to be reduced by the offset or else seeking will break. */ + dataChunkSize = chunkSize; + if (dataChunkSize > offset) { + dataChunkSize -= offset; + } else { + dataChunkSize = 0; + } + + if (sequential) { + if (foundChunk_fmt) { /* <-- Name is misleading, but will be set to true if the COMM chunk has been parsed. */ + /* + Getting here means we're opening in sequential mode and we've found the SSND (data) and COMM (fmt) chunks. We need + to get out of the loop here or else we'll end up going past the data chunk and will have no way of getting back to + it since we're not allowed to seek backwards. + + One subtle detail here is that there is an offset with the SSND chunk. We need to make sure we seek past this offset + so we're left sitting on the first byte of actual audio data. + */ + if (drwav__seek_forward(pWav->onSeek, offset, pWav->pUserData) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + cursor += offset; + + break; + } else { + /* + Getting here means the COMM chunk was not found. In sequential mode, if we haven't yet found the COMM chunk + we'll need to abort because we can't be doing a backwards seek back to the SSND chunk in order to read the + data. For this reason, this configuration of AIFF files are not supported with sequential mode. + */ + return DRWAV_FALSE; + } + } else { + chunkSize += header.paddingSize; /* <-- Make sure we seek past the padding. */ + chunkSize -= sizeof(offsetAndBlockSizeData); /* <-- This was read earlier. */ + + if (drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == DRWAV_FALSE) { + break; + } + cursor += chunkSize; + + continue; /* There may be some more metadata to read. */ + } + } + + + /* Getting here means it's not a chunk that we care about internally, but might need to be handled as metadata by the caller. */ + if (isProcessingMetadata) { + drwav__metadata_process_chunk(&metadataParser, &header, drwav_metadata_type_all_including_unknown); + + /* Go back to the start of the chunk so we can normalize the position of the cursor. */ + if (drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData) == DRWAV_FALSE) { + break; /* Failed to seek. Can't reliable read the remaining chunks. Get out. */ + } + } + + + /* Make sure we skip past the content of this chunk before we go to the next one. */ + chunkSize += header.paddingSize; /* <-- Make sure we seek past the padding. */ + if (drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == DRWAV_FALSE) { + break; + } + cursor += chunkSize; + } + + /* There's some mandatory chunks that must exist. If they were not found in the iteration above we must abort. */ + if (!foundChunk_fmt || !foundChunk_data) { + return DRWAV_FALSE; + } + + /* Basic validation. */ + if ((fmt.sampleRate == 0 || fmt.sampleRate > DRWAV_MAX_SAMPLE_RATE ) || + (fmt.channels == 0 || fmt.channels > DRWAV_MAX_CHANNELS ) || + (fmt.bitsPerSample == 0 || fmt.bitsPerSample > DRWAV_MAX_BITS_PER_SAMPLE) || + fmt.blockAlign == 0) { + return DRWAV_FALSE; /* Probably an invalid WAV file. */ + } + + /* Translate the internal format. */ + translatedFormatTag = fmt.formatTag; + if (translatedFormatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + translatedFormatTag = drwav_bytes_to_u16_ex(fmt.subFormat + 0, pWav->container); + } + + /* We may have moved passed the data chunk. If so we need to move back. If running in sequential mode we can assume we are already sitting on the data chunk. */ + if (!sequential) { + if (!drwav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData)) { + return DRWAV_FALSE; + } + cursor = pWav->dataChunkDataPos; + } + + + /* + At this point we should have done the initial parsing of each of our chunks, but we now need to + do a second pass to extract the actual contents of the metadata (the first pass just calculated + the length of the memory allocation). + + We only do this if we've actually got metadata to parse. + */ + if (isProcessingMetadata && metadataParser.metadataCount > 0) { + if (drwav__seek_from_start(pWav->onSeek, metadataStartPos, pWav->pUserData) == DRWAV_FALSE) { + return DRWAV_FALSE; + } + + result = drwav__metadata_alloc(&metadataParser, &pWav->allocationCallbacks); + if (result != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + metadataParser.stage = drwav__metadata_parser_stage_read; + + for (;;) { + drwav_chunk_header header; + drwav_uint64 metadataBytesRead; + + result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != DRWAV_SUCCESS) { + break; + } + + metadataBytesRead = drwav__metadata_process_chunk(&metadataParser, &header, drwav_metadata_type_all_including_unknown); + + /* Move to the end of the chunk so we can keep iterating. */ + if (drwav__seek_forward(pWav->onSeek, (header.sizeInBytes + header.paddingSize) - metadataBytesRead, pWav->pUserData) == DRWAV_FALSE) { + drwav_free(metadataParser.pMetadata, &pWav->allocationCallbacks); + return DRWAV_FALSE; + } + } + + /* Getting here means we're finished parsing the metadata. */ + pWav->pMetadata = metadataParser.pMetadata; + pWav->metadataCount = metadataParser.metadataCount; + } + + /* + It's possible for the size reported in the data chunk to be greater than that of the file. We + need to do a validation check here to make sure we don't exceed the file size. To skip this + check, set the onTell callback to NULL. + */ + if (pWav->onTell != NULL && pWav->onSeek != NULL) { + if (pWav->onSeek(pWav->pUserData, 0, DRWAV_SEEK_END) == DRWAV_TRUE) { + drwav_int64 fileSize; + if (pWav->onTell(pWav->pUserData, &fileSize)) { + if (dataChunkSize + pWav->dataChunkDataPos > (drwav_uint64)fileSize) { + dataChunkSize = (drwav_uint64)fileSize - pWav->dataChunkDataPos; + } + } + } else { + /* + Failed to seek to the end of the file. It might not be supported by the backend so in + this case we cannot perform the validation check. + */ + } + } + + /* + I've seen a WAV file in the wild where a RIFF-ecapsulated file has the size of it's "RIFF" and + "data" chunks set to 0xFFFFFFFF when the file is definitely not that big. In this case we're + going to have to calculate the size by reading and discarding bytes, and then seeking back. We + cannot do this in sequential mode. We just assume that the rest of the file is audio data. + */ + if (dataChunkSize == 0xFFFFFFFF && (pWav->container == drwav_container_riff || pWav->container == drwav_container_rifx) && pWav->isSequentialWrite == DRWAV_FALSE) { + dataChunkSize = 0; + + for (;;) { + drwav_uint8 temp[4096]; + size_t bytesRead = pWav->onRead(pWav->pUserData, temp, sizeof(temp)); + dataChunkSize += bytesRead; + + if (bytesRead < sizeof(temp)) { + break; + } + } + } + + /* At this point we want to be sitting on the first byte of the raw audio data. */ + if (drwav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData) == DRWAV_FALSE) { + drwav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return DRWAV_FALSE; + } + + + pWav->fmt = fmt; + pWav->sampleRate = fmt.sampleRate; + pWav->channels = fmt.channels; + pWav->bitsPerSample = fmt.bitsPerSample; + pWav->translatedFormatTag = translatedFormatTag; + + /* + I've had a report where files would start glitching after seeking. The reason for this is the data + chunk is not a clean multiple of the PCM frame size in bytes. Where this becomes a problem is when + seeking, because the number of bytes remaining in the data chunk is used to calculate the current + byte position. If this byte position is not aligned to the number of bytes in a PCM frame, it will + result in the seek not being cleanly positioned at the start of the PCM frame thereby resulting in + all decoded frames after that being corrupted. + + To address this, we need to round the data chunk size down to the nearest multiple of the frame size. + */ + if (!drwav__is_compressed_format_tag(translatedFormatTag)) { + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame > 0) { + dataChunkSize -= (dataChunkSize % bytesPerFrame); + } + } + + pWav->bytesRemaining = dataChunkSize; + pWav->dataChunkDataSize = dataChunkSize; + + if (sampleCountFromFactChunk != 0) { + pWav->totalPCMFrameCount = sampleCountFromFactChunk; + } else if (aiffFrameCount != 0) { + pWav->totalPCMFrameCount = aiffFrameCount; + } else { + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + drwav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return DRWAV_FALSE; /* Invalid file. */ + } + + pWav->totalPCMFrameCount = dataChunkSize / bytesPerFrame; + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + drwav_uint64 totalBlockHeaderSizeInBytes; + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + + /* Make sure any trailing partial block is accounted for. */ + if ((blockCount * fmt.blockAlign) < dataChunkSize) { + blockCount += 1; + } + + /* We decode two samples per byte. There will be blockCount headers in the data chunk. This is enough to know how to calculate the total PCM frame count. */ + totalBlockHeaderSizeInBytes = blockCount * (6*fmt.channels); + pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + drwav_uint64 totalBlockHeaderSizeInBytes; + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + + /* Make sure any trailing partial block is accounted for. */ + if ((blockCount * fmt.blockAlign) < dataChunkSize) { + blockCount += 1; + } + + /* We decode two samples per byte. There will be blockCount headers in the data chunk. This is enough to know how to calculate the total PCM frame count. */ + totalBlockHeaderSizeInBytes = blockCount * (4*fmt.channels); + pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; + + /* The header includes a decoded sample for each channel which acts as the initial predictor sample. */ + pWav->totalPCMFrameCount += blockCount; + } + } + + /* Some formats only support a certain number of channels. */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + if (pWav->channels > 2) { + drwav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return DRWAV_FALSE; + } + } + + /* The number of bytes per frame must be known. If not, it's an invalid file and not decodable. */ + if (drwav_get_bytes_per_pcm_frame(pWav) == 0) { + drwav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return DRWAV_FALSE; + } + +#ifdef DR_WAV_LIBSNDFILE_COMPAT + /* + I use libsndfile as a benchmark for testing, however in the version I'm using (from the Windows installer on the libsndfile website), + it appears the total sample count libsndfile uses for MS-ADPCM is incorrect. It would seem they are computing the total sample count + from the number of blocks, however this results in the inclusion of extra silent samples at the end of the last block. The correct + way to know the total sample count is to inspect the "fact" chunk, which should always be present for compressed formats, and should + always include the sample count. This little block of code below is only used to emulate the libsndfile logic so I can properly run my + correctness tests against libsndfile, and is disabled by default. + */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (6*pWav->channels))) * 2)) / fmt.channels; /* x2 because two samples per byte. */ + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (4*pWav->channels))) * 2) + (blockCount * pWav->channels)) / fmt.channels; + } +#endif + + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_ex(pWav, onRead, onSeek, onTell, NULL, pUserData, NULL, 0, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, drwav_chunk_proc onChunk, void* pReadSeekTellUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit(pWav, onRead, onSeek, onTell, pReadSeekTellUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); +} + +DRWAV_API drwav_bool32 drwav_init_with_metadata(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit(pWav, onRead, onSeek, onTell, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + return drwav_init__internal(pWav, NULL, NULL, flags | DRWAV_WITH_METADATA); +} + +DRWAV_API drwav_metadata* drwav_take_ownership_of_metadata(drwav* pWav) +{ + drwav_metadata *result = pWav->pMetadata; + + pWav->pMetadata = NULL; + pWav->metadataCount = 0; + + return result; +} + + +DRWAV_PRIVATE size_t drwav__write(drwav* pWav, const void* pData, size_t dataSize) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + /* Generic write. Assumes no byte reordering required. */ + return pWav->onWrite(pWav->pUserData, pData, dataSize); +} + +DRWAV_PRIVATE size_t drwav__write_byte(drwav* pWav, drwav_uint8 byte) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + return pWav->onWrite(pWav->pUserData, &byte, 1); +} + +DRWAV_PRIVATE size_t drwav__write_u16ne_to_le(drwav* pWav, drwav_uint16 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + if (!drwav__is_little_endian()) { + value = drwav__bswap16(value); + } + + return drwav__write(pWav, &value, 2); +} + +DRWAV_PRIVATE size_t drwav__write_u32ne_to_le(drwav* pWav, drwav_uint32 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + if (!drwav__is_little_endian()) { + value = drwav__bswap32(value); + } + + return drwav__write(pWav, &value, 4); +} + +DRWAV_PRIVATE size_t drwav__write_u64ne_to_le(drwav* pWav, drwav_uint64 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + if (!drwav__is_little_endian()) { + value = drwav__bswap64(value); + } + + return drwav__write(pWav, &value, 8); +} + +DRWAV_PRIVATE size_t drwav__write_f32ne_to_le(drwav* pWav, float value) +{ + union { + drwav_uint32 u32; + float f32; + } u; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + + u.f32 = value; + + if (!drwav__is_little_endian()) { + u.u32 = drwav__bswap32(u.u32); + } + + return drwav__write(pWav, &u.u32, 4); +} + +DRWAV_PRIVATE size_t drwav__write_or_count(drwav* pWav, const void* pData, size_t dataSize) +{ + if (pWav == NULL) { + return dataSize; + } + + return drwav__write(pWav, pData, dataSize); +} + +DRWAV_PRIVATE size_t drwav__write_or_count_byte(drwav* pWav, drwav_uint8 byte) +{ + if (pWav == NULL) { + return 1; + } + + return drwav__write_byte(pWav, byte); +} + +DRWAV_PRIVATE size_t drwav__write_or_count_u16ne_to_le(drwav* pWav, drwav_uint16 value) +{ + if (pWav == NULL) { + return 2; + } + + return drwav__write_u16ne_to_le(pWav, value); +} + +DRWAV_PRIVATE size_t drwav__write_or_count_u32ne_to_le(drwav* pWav, drwav_uint32 value) +{ + if (pWav == NULL) { + return 4; + } + + return drwav__write_u32ne_to_le(pWav, value); +} + +#if 0 /* Unused for now. */ +DRWAV_PRIVATE size_t drwav__write_or_count_u64ne_to_le(drwav* pWav, drwav_uint64 value) +{ + if (pWav == NULL) { + return 8; + } + + return drwav__write_u64ne_to_le(pWav, value); +} +#endif + +DRWAV_PRIVATE size_t drwav__write_or_count_f32ne_to_le(drwav* pWav, float value) +{ + if (pWav == NULL) { + return 4; + } + + return drwav__write_f32ne_to_le(pWav, value); +} + +DRWAV_PRIVATE size_t drwav__write_or_count_string_to_fixed_size_buf(drwav* pWav, char* str, size_t bufFixedSize) +{ + size_t len; + + if (pWav == NULL) { + return bufFixedSize; + } + + len = drwav__strlen_clamped(str, bufFixedSize); + drwav__write_or_count(pWav, str, len); + + if (len < bufFixedSize) { + size_t i; + for (i = 0; i < bufFixedSize - len; ++i) { + drwav__write_byte(pWav, 0); + } + } + + return bufFixedSize; +} + + +/* pWav can be NULL meaning just count the bytes that would be written. */ +DRWAV_PRIVATE size_t drwav__write_or_count_metadata(drwav* pWav, drwav_metadata* pMetadatas, drwav_uint32 metadataCount) +{ + size_t bytesWritten = 0; + drwav_bool32 hasListAdtl = DRWAV_FALSE; + drwav_bool32 hasListInfo = DRWAV_FALSE; + drwav_uint32 iMetadata; + + if (pMetadatas == NULL || metadataCount == 0) { + return 0; + } + + for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { + drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + drwav_uint32 chunkSize = 0; + + if ((pMetadata->type & drwav_metadata_type_list_all_info_strings) || (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list)) { + hasListInfo = DRWAV_TRUE; + } + + if ((pMetadata->type & drwav_metadata_type_list_all_adtl) || (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list)) { + hasListAdtl = DRWAV_TRUE; + } + + switch (pMetadata->type) { + case drwav_metadata_type_smpl: + { + drwav_uint32 iLoop; + + chunkSize = DRWAV_SMPL_BYTES + DRWAV_SMPL_LOOP_BYTES * pMetadata->data.smpl.sampleLoopCount + pMetadata->data.smpl.samplerSpecificDataSizeInBytes; + + bytesWritten += drwav__write_or_count(pWav, "smpl", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.manufacturerId); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.productId); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplePeriodNanoseconds); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiUnityNote); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiPitchFraction); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteFormat); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteOffset); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.sampleLoopCount); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); + + for (iLoop = 0; iLoop < pMetadata->data.smpl.sampleLoopCount; ++iLoop) { + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].cuePointId); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].type); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].firstSampleOffset); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].lastSampleOffset); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].sampleFraction); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].playCount); + } + + if (pMetadata->data.smpl.samplerSpecificDataSizeInBytes > 0) { + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); + } + } break; + + case drwav_metadata_type_inst: + { + chunkSize = DRWAV_INST_BYTES; + + bytesWritten += drwav__write_or_count(pWav, "inst", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.midiUnityNote, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.fineTuneCents, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.gainDecibels, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.lowNote, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.highNote, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.lowVelocity, 1); + bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.highVelocity, 1); + } break; + + case drwav_metadata_type_cue: + { + drwav_uint32 iCuePoint; + + chunkSize = DRWAV_CUE_BYTES + DRWAV_CUE_POINT_BYTES * pMetadata->data.cue.cuePointCount; + + bytesWritten += drwav__write_or_count(pWav, "cue ", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.cuePointCount); + for (iCuePoint = 0; iCuePoint < pMetadata->data.cue.cuePointCount; ++iCuePoint) { + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].id); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId, 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].blockStart); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].sampleOffset); + } + } break; + + case drwav_metadata_type_acid: + { + chunkSize = DRWAV_ACID_BYTES; + + bytesWritten += drwav__write_or_count(pWav, "acid", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.flags); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.midiUnityNote); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.reserved1); + bytesWritten += drwav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.reserved2); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.numBeats); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterDenominator); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterNumerator); + bytesWritten += drwav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.tempo); + } break; + + case drwav_metadata_type_bext: + { + char reservedBuf[DRWAV_BEXT_RESERVED_BYTES]; + drwav_uint32 timeReferenceLow; + drwav_uint32 timeReferenceHigh; + + chunkSize = DRWAV_BEXT_BYTES + pMetadata->data.bext.codingHistorySize; + + bytesWritten += drwav__write_or_count(pWav, "bext", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + + bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pDescription, DRWAV_BEXT_DESCRIPTION_BYTES); + bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorName, DRWAV_BEXT_ORIGINATOR_NAME_BYTES); + bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorReference, DRWAV_BEXT_ORIGINATOR_REF_BYTES); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate)); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime)); + + timeReferenceLow = (drwav_uint32)(pMetadata->data.bext.timeReference & 0xFFFFFFFF); + timeReferenceHigh = (drwav_uint32)(pMetadata->data.bext.timeReference >> 32); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, timeReferenceLow); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, timeReferenceHigh); + + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.version); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pUMID, DRWAV_BEXT_UMID_BYTES); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessValue); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessRange); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxTruePeakLevel); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxMomentaryLoudness); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxShortTermLoudness); + + DRWAV_ZERO_MEMORY(reservedBuf, sizeof(reservedBuf)); + bytesWritten += drwav__write_or_count(pWav, reservedBuf, sizeof(reservedBuf)); + + if (pMetadata->data.bext.codingHistorySize > 0) { + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pCodingHistory, pMetadata->data.bext.codingHistorySize); + } + } break; + + case drwav_metadata_type_unknown: + { + if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_top_level) { + chunkSize = pMetadata->data.unknown.dataSizeInBytes; + + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes); + } + } break; + + default: break; + } + if ((chunkSize % 2) != 0) { + bytesWritten += drwav__write_or_count_byte(pWav, 0); + } + } + + if (hasListInfo) { + drwav_uint32 chunkSize = 4; /* Start with 4 bytes for "INFO". */ + for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { + drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + + if ((pMetadata->type & drwav_metadata_type_list_all_info_strings)) { + chunkSize += 8; /* For id and string size. */ + chunkSize += pMetadata->data.infoText.stringLength + 1; /* Include null terminator. */ + } else if (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list) { + chunkSize += 8; /* For id string size. */ + chunkSize += pMetadata->data.unknown.dataSizeInBytes; + } + + if ((chunkSize % 2) != 0) { + chunkSize += 1; + } + } + + bytesWritten += drwav__write_or_count(pWav, "LIST", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count(pWav, "INFO", 4); + + for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { + drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + drwav_uint32 subchunkSize = 0; + + if (pMetadata->type & drwav_metadata_type_list_all_info_strings) { + const char* pID = NULL; + + switch (pMetadata->type) { + case drwav_metadata_type_list_info_software: pID = "ISFT"; break; + case drwav_metadata_type_list_info_copyright: pID = "ICOP"; break; + case drwav_metadata_type_list_info_title: pID = "INAM"; break; + case drwav_metadata_type_list_info_artist: pID = "IART"; break; + case drwav_metadata_type_list_info_comment: pID = "ICMT"; break; + case drwav_metadata_type_list_info_date: pID = "ICRD"; break; + case drwav_metadata_type_list_info_genre: pID = "IGNR"; break; + case drwav_metadata_type_list_info_album: pID = "IPRD"; break; + case drwav_metadata_type_list_info_tracknumber: pID = "ITRK"; break; + case drwav_metadata_type_list_info_location: pID = "IARL"; break; + case drwav_metadata_type_list_info_organization: pID = "ICMS"; break; + case drwav_metadata_type_list_info_keywords: pID = "IKEY"; break; + case drwav_metadata_type_list_info_medium: pID = "IMED"; break; + case drwav_metadata_type_list_info_description: pID = "ISBJ"; break; + default: break; + } + + DRWAV_ASSERT(pID != NULL); + + if (pMetadata->data.infoText.stringLength) { + subchunkSize = pMetadata->data.infoText.stringLength + 1; + bytesWritten += drwav__write_or_count(pWav, pID, 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.infoText.pString, pMetadata->data.infoText.stringLength); + bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + } + } else if (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list) { + if (pMetadata->data.unknown.dataSizeInBytes) { + subchunkSize = pMetadata->data.unknown.dataSizeInBytes; + + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.unknown.dataSizeInBytes); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); + } + } + + if ((subchunkSize % 2) != 0) { + bytesWritten += drwav__write_or_count_byte(pWav, 0); + } + } + } + + if (hasListAdtl) { + drwav_uint32 chunkSize = 4; /* start with 4 bytes for "adtl" */ + + for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { + drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + + switch (pMetadata->type) + { + case drwav_metadata_type_list_label: + case drwav_metadata_type_list_note: + { + chunkSize += 8; /* for id and chunk size */ + chunkSize += DRWAV_LIST_LABEL_OR_NOTE_BYTES; + + if (pMetadata->data.labelOrNote.stringLength > 0) { + chunkSize += pMetadata->data.labelOrNote.stringLength + 1; + } + } break; + + case drwav_metadata_type_list_labelled_cue_region: + { + chunkSize += 8; /* for id and chunk size */ + chunkSize += DRWAV_LIST_LABELLED_TEXT_BYTES; + + if (pMetadata->data.labelledCueRegion.stringLength > 0) { + chunkSize += pMetadata->data.labelledCueRegion.stringLength + 1; + } + } break; + + case drwav_metadata_type_unknown: + { + if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list) { + chunkSize += 8; /* for id and chunk size */ + chunkSize += pMetadata->data.unknown.dataSizeInBytes; + } + } break; + + default: break; + } + + if ((chunkSize % 2) != 0) { + chunkSize += 1; + } + } + + bytesWritten += drwav__write_or_count(pWav, "LIST", 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += drwav__write_or_count(pWav, "adtl", 4); + + for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { + drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + drwav_uint32 subchunkSize = 0; + + switch (pMetadata->type) + { + case drwav_metadata_type_list_label: + case drwav_metadata_type_list_note: + { + if (pMetadata->data.labelOrNote.stringLength > 0) { + const char *pID = NULL; + + if (pMetadata->type == drwav_metadata_type_list_label) { + pID = "labl"; + } + else if (pMetadata->type == drwav_metadata_type_list_note) { + pID = "note"; + } + + DRWAV_ASSERT(pID != NULL); + DRWAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); + + subchunkSize = DRWAV_LIST_LABEL_OR_NOTE_BYTES; + + bytesWritten += drwav__write_or_count(pWav, pID, 4); + subchunkSize += pMetadata->data.labelOrNote.stringLength + 1; + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); + + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelOrNote.cuePointId); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelOrNote.pString, pMetadata->data.labelOrNote.stringLength); + bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + } + } break; + + case drwav_metadata_type_list_labelled_cue_region: + { + subchunkSize = DRWAV_LIST_LABELLED_TEXT_BYTES; + + bytesWritten += drwav__write_or_count(pWav, "ltxt", 4); + if (pMetadata->data.labelledCueRegion.stringLength > 0) { + subchunkSize += pMetadata->data.labelledCueRegion.stringLength + 1; + } + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.cuePointId); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.sampleLength); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelledCueRegion.purposeId, 4); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.country); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.language); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.dialect); + bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.codePage); + + if (pMetadata->data.labelledCueRegion.stringLength > 0) { + DRWAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); + + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelledCueRegion.pString, pMetadata->data.labelledCueRegion.stringLength); + bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + } + } break; + + case drwav_metadata_type_unknown: + { + if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list) { + subchunkSize = pMetadata->data.unknown.dataSizeInBytes; + + DRWAV_ASSERT(pMetadata->data.unknown.pData != NULL); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); + } + } break; + + default: break; + } + + if ((subchunkSize % 2) != 0) { + bytesWritten += drwav__write_or_count_byte(pWav, 0); + } + } + } + + DRWAV_ASSERT((bytesWritten % 2) == 0); + + return bytesWritten; +} + +DRWAV_PRIVATE drwav_uint32 drwav__riff_chunk_size_riff(drwav_uint64 dataChunkSize, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +{ + drwav_uint64 chunkSize = 4 + 24 + (drwav_uint64)drwav__write_or_count_metadata(NULL, pMetadata, metadataCount) + 8 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); /* 4 = "WAVE". 24 = "fmt " chunk. 8 = "data" + u32 data size. */ + if (chunkSize > 0xFFFFFFFFUL) { + chunkSize = 0xFFFFFFFFUL; + } + + return (drwav_uint32)chunkSize; /* Safe cast due to the clamp above. */ +} + +DRWAV_PRIVATE drwav_uint32 drwav__data_chunk_size_riff(drwav_uint64 dataChunkSize) +{ + if (dataChunkSize <= 0xFFFFFFFFUL) { + return (drwav_uint32)dataChunkSize; + } else { + return 0xFFFFFFFFUL; + } +} + +DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_w64(drwav_uint64 dataChunkSize) +{ + drwav_uint64 dataSubchunkPaddingSize = drwav__chunk_padding_size_w64(dataChunkSize); + + return 80 + 24 + dataChunkSize + dataSubchunkPaddingSize; /* +24 because W64 includes the size of the GUID and size fields. */ +} + +DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_w64(drwav_uint64 dataChunkSize) +{ + return 24 + dataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ +} + +DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_rf64(drwav_uint64 dataChunkSize, drwav_metadata *metadata, drwav_uint32 numMetadata) +{ + drwav_uint64 chunkSize = 4 + 36 + 24 + (drwav_uint64)drwav__write_or_count_metadata(NULL, metadata, numMetadata) + 8 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); /* 4 = "WAVE". 36 = "ds64" chunk. 24 = "fmt " chunk. 8 = "data" + u32 data size. */ + if (chunkSize > 0xFFFFFFFFUL) { + chunkSize = 0xFFFFFFFFUL; + } + + return chunkSize; +} + +DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_rf64(drwav_uint64 dataChunkSize) +{ + return dataChunkSize; +} + + + +DRWAV_PRIVATE drwav_bool32 drwav_preinit_write(drwav* pWav, const drwav_data_format* pFormat, drwav_bool32 isSequential, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pWav == NULL || onWrite == NULL) { + return DRWAV_FALSE; + } + + if (!isSequential && onSeek == NULL) { + return DRWAV_FALSE; /* <-- onSeek is required when in non-sequential mode. */ + } + + /* Not currently supporting compressed formats. Will need to add support for the "fact" chunk before we enable this. */ + if (pFormat->format == DR_WAVE_FORMAT_EXTENSIBLE) { + return DRWAV_FALSE; + } + if (pFormat->format == DR_WAVE_FORMAT_ADPCM || pFormat->format == DR_WAVE_FORMAT_DVI_ADPCM) { + return DRWAV_FALSE; + } + + DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + pWav->onWrite = onWrite; + pWav->onSeek = onSeek; + pWav->pUserData = pUserData; + pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + + if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { + return DRWAV_FALSE; /* Invalid allocation callbacks. */ + } + + pWav->fmt.formatTag = (drwav_uint16)pFormat->format; + pWav->fmt.channels = (drwav_uint16)pFormat->channels; + pWav->fmt.sampleRate = pFormat->sampleRate; + pWav->fmt.avgBytesPerSec = (drwav_uint32)((pFormat->bitsPerSample * pFormat->sampleRate * pFormat->channels) / 8); + pWav->fmt.blockAlign = (drwav_uint16)((pFormat->channels * pFormat->bitsPerSample) / 8); + pWav->fmt.bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; + pWav->fmt.extendedSize = 0; + pWav->isSequentialWrite = isSequential; + + return DRWAV_TRUE; +} + + +DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) +{ + /* The function assumes drwav_preinit_write() was called beforehand. */ + + size_t runningPos = 0; + drwav_uint64 initialDataChunkSize = 0; + drwav_uint64 chunkSizeFMT; + + /* + The initial values for the "RIFF" and "data" chunks depends on whether or not we are initializing in sequential mode or not. In + sequential mode we set this to its final values straight away since they can be calculated from the total sample count. In non- + sequential mode we initialize it all to zero and fill it out in drwav_uninit() using a backwards seek. + */ + if (pWav->isSequentialWrite) { + initialDataChunkSize = (totalSampleCount * pWav->fmt.bitsPerSample) / 8; + + /* + The RIFF container has a limit on the number of samples. drwav is not allowing this. There's no practical limits for Wave64 + so for the sake of simplicity I'm not doing any validation for that. + */ + if (pFormat->container == drwav_container_riff) { + if (initialDataChunkSize > (0xFFFFFFFFUL - 36)) { + return DRWAV_FALSE; /* Not enough room to store every sample. */ + } + } + } + + pWav->dataChunkDataSizeTargetWrite = initialDataChunkSize; + + + /* "RIFF" chunk. */ + if (pFormat->container == drwav_container_riff) { + drwav_uint32 chunkSizeRIFF = 36 + (drwav_uint32)initialDataChunkSize; /* +36 = "WAVE" + [sizeof "fmt " chunk] + [data chunk header] */ + runningPos += drwav__write(pWav, "RIFF", 4); + runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeRIFF); + runningPos += drwav__write(pWav, "WAVE", 4); + } else if (pFormat->container == drwav_container_w64) { + drwav_uint64 chunkSizeRIFF = 80 + 24 + initialDataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ + runningPos += drwav__write(pWav, drwavGUID_W64_RIFF, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeRIFF); + runningPos += drwav__write(pWav, drwavGUID_W64_WAVE, 16); + } else if (pFormat->container == drwav_container_rf64) { + runningPos += drwav__write(pWav, "RF64", 4); + runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); /* Always 0xFFFFFFFF for RF64. Set to a proper value in the "ds64" chunk. */ + runningPos += drwav__write(pWav, "WAVE", 4); + } else { + return DRWAV_FALSE; /* Container not supported for writing. */ + } + + + /* "ds64" chunk (RF64 only). */ + if (pFormat->container == drwav_container_rf64) { + drwav_uint32 initialds64ChunkSize = 28; /* 28 = [Size of RIFF (8 bytes)] + [Size of DATA (8 bytes)] + [Sample Count (8 bytes)] + [Table Length (4 bytes)]. Table length always set to 0. */ + drwav_uint64 initialRiffChunkSize = 8 + initialds64ChunkSize + initialDataChunkSize; /* +8 for the ds64 header. */ + + runningPos += drwav__write(pWav, "ds64", 4); + runningPos += drwav__write_u32ne_to_le(pWav, initialds64ChunkSize); /* Size of ds64. */ + runningPos += drwav__write_u64ne_to_le(pWav, initialRiffChunkSize); /* Size of RIFF. Set to true value at the end. */ + runningPos += drwav__write_u64ne_to_le(pWav, initialDataChunkSize); /* Size of DATA. Set to true value at the end. */ + runningPos += drwav__write_u64ne_to_le(pWav, totalSampleCount); /* Sample count. */ + runningPos += drwav__write_u32ne_to_le(pWav, 0); /* Table length. Always set to zero in our case since we're not doing any other chunks than "DATA". */ + } + + + /* "fmt " chunk. */ + if (pFormat->container == drwav_container_riff || pFormat->container == drwav_container_rf64) { + chunkSizeFMT = 16; + runningPos += drwav__write(pWav, "fmt ", 4); + runningPos += drwav__write_u32ne_to_le(pWav, (drwav_uint32)chunkSizeFMT); + } else if (pFormat->container == drwav_container_w64) { + chunkSizeFMT = 40; + runningPos += drwav__write(pWav, drwavGUID_W64_FMT, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeFMT); + } + + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.formatTag); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.channels); + runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.sampleRate); + runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.avgBytesPerSec); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.blockAlign); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.bitsPerSample); + + /* TODO: is a 'fact' chunk required for DR_WAVE_FORMAT_IEEE_FLOAT? */ + + if (!pWav->isSequentialWrite && pWav->pMetadata != NULL && pWav->metadataCount > 0 && (pFormat->container == drwav_container_riff || pFormat->container == drwav_container_rf64)) { + runningPos += drwav__write_or_count_metadata(pWav, pWav->pMetadata, pWav->metadataCount); + } + + pWav->dataChunkDataPos = runningPos; + + /* "data" chunk. */ + if (pFormat->container == drwav_container_riff) { + drwav_uint32 chunkSizeDATA = (drwav_uint32)initialDataChunkSize; + runningPos += drwav__write(pWav, "data", 4); + runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == drwav_container_w64) { + drwav_uint64 chunkSizeDATA = 24 + initialDataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ + runningPos += drwav__write(pWav, drwavGUID_W64_DATA, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == drwav_container_rf64) { + runningPos += drwav__write(pWav, "data", 4); + runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); /* Always set to 0xFFFFFFFF for RF64. The true size of the data chunk is specified in the ds64 chunk. */ + } + + /* Set some properties for the client's convenience. */ + pWav->container = pFormat->container; + pWav->channels = (drwav_uint16)pFormat->channels; + pWav->sampleRate = pFormat->sampleRate; + pWav->bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; + pWav->translatedFormatTag = (drwav_uint16)pFormat->format; + pWav->dataChunkDataPos = runningPos; + + return DRWAV_TRUE; +} + + +DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + return drwav_init_write__internal(pWav, pFormat, 0); /* DRWAV_FALSE = Not Sequential */ +} + +DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit_write(pWav, pFormat, DRWAV_TRUE, onWrite, NULL, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + return drwav_init_write__internal(pWav, pFormat, totalSampleCount); /* DRWAV_TRUE = Sequential */ +} + +DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + + return drwav_init_write_sequential(pWav, pFormat, totalPCMFrameCount*pFormat->channels, onWrite, pUserData, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_write_with_metadata(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +{ + if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + pWav->pMetadata = pMetadata; + pWav->metadataCount = metadataCount; + + return drwav_init_write__internal(pWav, pFormat, 0); +} + + +DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalFrameCount, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +{ + /* Casting totalFrameCount to drwav_int64 for VC6 compatibility. No issues in practice because nobody is going to exhaust the whole 63 bits. */ + drwav_uint64 targetDataSizeBytes = (drwav_uint64)((drwav_int64)totalFrameCount * pFormat->channels * pFormat->bitsPerSample/8.0); + drwav_uint64 riffChunkSizeBytes; + drwav_uint64 fileSizeBytes = 0; + + if (pFormat->container == drwav_container_riff) { + riffChunkSizeBytes = drwav__riff_chunk_size_riff(targetDataSizeBytes, pMetadata, metadataCount); + fileSizeBytes = (8 + riffChunkSizeBytes); /* +8 because WAV doesn't include the size of the ChunkID and ChunkSize fields. */ + } else if (pFormat->container == drwav_container_w64) { + riffChunkSizeBytes = drwav__riff_chunk_size_w64(targetDataSizeBytes); + fileSizeBytes = riffChunkSizeBytes; + } else if (pFormat->container == drwav_container_rf64) { + riffChunkSizeBytes = drwav__riff_chunk_size_rf64(targetDataSizeBytes, pMetadata, metadataCount); + fileSizeBytes = (8 + riffChunkSizeBytes); /* +8 because WAV doesn't include the size of the ChunkID and ChunkSize fields. */ + } + + return fileSizeBytes; +} + + +#ifndef DR_WAV_NO_STDIO + +/* Errno */ +/* drwav_result_from_errno() is only used for fopen() and wfopen() so putting it inside DR_WAV_NO_STDIO for now. If something else needs this later we can move it out. */ +#include +DRWAV_PRIVATE drwav_result drwav_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRWAV_SUCCESS; + #ifdef EPERM + case EPERM: return DRWAV_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRWAV_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRWAV_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRWAV_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRWAV_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRWAV_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRWAV_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRWAV_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRWAV_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRWAV_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRWAV_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRWAV_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRWAV_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRWAV_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRWAV_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRWAV_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRWAV_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRWAV_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRWAV_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRWAV_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRWAV_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRWAV_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRWAV_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRWAV_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRWAV_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRWAV_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRWAV_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRWAV_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRWAV_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRWAV_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRWAV_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRWAV_NOT_IMPLEMENTED; + #endif + #if defined(ENOTEMPTY) && ENOTEMPTY != EEXIST /* In AIX, ENOTEMPTY and EEXIST use the same value. */ + case ENOTEMPTY: return DRWAV_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRWAV_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRWAV_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRWAV_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRWAV_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRWAV_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRWAV_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRWAV_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRWAV_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRWAV_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRWAV_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRWAV_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRWAV_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRWAV_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRWAV_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRWAV_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRWAV_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRWAV_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRWAV_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRWAV_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRWAV_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRWAV_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRWAV_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRWAV_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRWAV_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRWAV_ERROR; + #endif + #ifdef EADV + case EADV: return DRWAV_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRWAV_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRWAV_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRWAV_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRWAV_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRWAV_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRWAV_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRWAV_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRWAV_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRWAV_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRWAV_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRWAV_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRWAV_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRWAV_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRWAV_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRWAV_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRWAV_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRWAV_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRWAV_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRWAV_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRWAV_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRWAV_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRWAV_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRWAV_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRWAV_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRWAV_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRWAV_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRWAV_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRWAV_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRWAV_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRWAV_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRWAV_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRWAV_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRWAV_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRWAV_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRWAV_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRWAV_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRWAV_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRWAV_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRWAV_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRWAV_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRWAV_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRWAV_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRWAV_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRWAV_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRWAV_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRWAV_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRWAV_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRWAV_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRWAV_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRWAV_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRWAV_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRWAV_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRWAV_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRWAV_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRWAV_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRWAV_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRWAV_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRWAV_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRWAV_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRWAV_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRWAV_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRWAV_ERROR; + #endif + default: return DRWAV_ERROR; + } +} +/* End Errno */ + +/* fopen */ +DRWAV_PRIVATE drwav_result drwav_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRWAV_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drwav_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drwav_result result = drwav_result_from_errno(errno); + if (result == DRWAV_SUCCESS) { + result = DRWAV_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return DRWAV_SUCCESS; +} + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRWAV_HAS_WFOPEN + #endif +#endif + +#ifndef DR_WAV_NO_WCHAR +DRWAV_PRIVATE drwav_result drwav_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRWAV_INVALID_ARGS; + } + +#if defined(DRWAV_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drwav_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drwav_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because + fopen() is locale specific. The only real way I can think of to do this is with wcsrtombs(). Note + that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler + error I'll look into improving compatibility. + */ + + /* + Some compilers don't support wchar_t or wcsrtombs() which we're using below. In this case we just + need to abort with an error. If you encounter a compiler lacking such support, add it to this list + and submit a bug report and it'll be added to the library upstream. + */ + #if defined(__DJGPP__) + { + /* Nothing to do here. This will fall through to the error check below. */ + } + #else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + DRWAV_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drwav_result_from_errno(errno); + } + + pFilePathMB = (char*)drwav__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRWAV_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + DRWAV_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + drwav__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + #endif + + if (*ppFile == NULL) { + return DRWAV_ERROR; + } +#endif + + return DRWAV_SUCCESS; +} +#endif +/* End fopen */ + + +DRWAV_PRIVATE size_t drwav__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); +} + +DRWAV_PRIVATE size_t drwav__on_write_stdio(void* pUserData, const void* pData, size_t bytesToWrite) +{ + return fwrite(pData, 1, bytesToWrite, (FILE*)pUserData); +} + +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_stdio(void* pUserData, int offset, drwav_seek_origin origin) +{ + int whence = SEEK_SET; + if (origin == DRWAV_SEEK_CUR) { + whence = SEEK_CUR; + } else if (origin == DRWAV_SEEK_END) { + whence = SEEK_END; + } + + return fseek((FILE*)pUserData, offset, whence) == 0; +} + +DRWAV_PRIVATE drwav_bool32 drwav__on_tell_stdio(void* pUserData, drwav_int64* pCursor) +{ + FILE* pFileStdio = (FILE*)pUserData; + drwav_int64 result; + + /* These were all validated at a higher level. */ + DRWAV_ASSERT(pFileStdio != NULL); + DRWAV_ASSERT(pCursor != NULL); + +#if defined(_WIN32) && !defined(NXDK) + #if defined(_MSC_VER) && _MSC_VER > 1200 + result = _ftelli64(pFileStdio); + #else + result = ftell(pFileStdio); + #endif +#else + result = ftell(pFileStdio); +#endif + + *pCursor = result; + + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_ex(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); +} + + +DRWAV_PRIVATE drwav_bool32 drwav_init_file__internal_FILE(drwav* pWav, FILE* pFile, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav_bool32 result; + + result = drwav_preinit(pWav, drwav__on_read_stdio, drwav__on_seek_stdio, drwav__on_tell_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + + result = drwav_init__internal(pWav, onChunk, pChunkUserData, flags); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); +} + +#ifndef DR_WAV_NO_WCHAR +DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_ex_w(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); +} +#endif + +DRWAV_API drwav_bool32 drwav_init_file_with_metadata(drwav* pWav, const char* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags | DRWAV_WITH_METADATA, pAllocationCallbacks); +} + +#ifndef DR_WAV_NO_WCHAR +DRWAV_API drwav_bool32 drwav_init_file_with_metadata_w(drwav* pWav, const wchar_t* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags | DRWAV_WITH_METADATA, pAllocationCallbacks); +} +#endif + + +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal_FILE(drwav* pWav, FILE* pFile, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav_bool32 result; + + result = drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + + result = drwav_init_write__internal(pWav, pFormat, totalSampleCount); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + + return DRWAV_TRUE; +} + +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_fopen(&pFile, filename, "wb") != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} + +#ifndef DR_WAV_NO_WCHAR +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write_w__internal(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_wfopen(&pFile, filename, L"wb", pAllocationCallbacks) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + + /* This takes ownership of the FILE* object. */ + return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} +#endif + +DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + + return drwav_init_file_write_sequential(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} + +#ifndef DR_WAV_NO_WCHAR +DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write_w__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write_w__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + + return drwav_init_file_write_sequential_w(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +#endif +#endif /* DR_WAV_NO_STDIO */ + + +DRWAV_PRIVATE size_t drwav__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + drwav* pWav = (drwav*)pUserData; + size_t bytesRemaining; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->memoryStream.dataSize >= pWav->memoryStream.currentReadPos); + + bytesRemaining = pWav->memoryStream.dataSize - pWav->memoryStream.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + DRWAV_COPY_MEMORY(pBufferOut, pWav->memoryStream.data + pWav->memoryStream.currentReadPos, bytesToRead); + pWav->memoryStream.currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory(void* pUserData, int offset, drwav_seek_origin origin) +{ + drwav* pWav = (drwav*)pUserData; + drwav_int64 newCursor; + + DRWAV_ASSERT(pWav != NULL); + + if (origin == DRWAV_SEEK_SET) { + newCursor = 0; + } else if (origin == DRWAV_SEEK_CUR) { + newCursor = (drwav_int64)pWav->memoryStream.currentReadPos; + } else if (origin == DRWAV_SEEK_END) { + newCursor = (drwav_int64)pWav->memoryStream.dataSize; + } else { + DRWAV_ASSERT(!"Invalid seek origin"); + return DRWAV_FALSE; + } + + newCursor += offset; + + if (newCursor < 0) { + return DRWAV_FALSE; /* Trying to seek prior to the start of the buffer. */ + } + if ((size_t)newCursor > pWav->memoryStream.dataSize) { + return DRWAV_FALSE; /* Trying to seek beyond the end of the buffer. */ + } + + pWav->memoryStream.currentReadPos = (size_t)newCursor; + + return DRWAV_TRUE; +} + +DRWAV_PRIVATE size_t drwav__on_write_memory(void* pUserData, const void* pDataIn, size_t bytesToWrite) +{ + drwav* pWav = (drwav*)pUserData; + size_t bytesRemaining; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->memoryStreamWrite.dataCapacity >= pWav->memoryStreamWrite.currentWritePos); + + bytesRemaining = pWav->memoryStreamWrite.dataCapacity - pWav->memoryStreamWrite.currentWritePos; + if (bytesRemaining < bytesToWrite) { + /* Need to reallocate. */ + void* pNewData; + size_t newDataCapacity = (pWav->memoryStreamWrite.dataCapacity == 0) ? 256 : pWav->memoryStreamWrite.dataCapacity * 2; + + /* If doubling wasn't enough, just make it the minimum required size to write the data. */ + if ((newDataCapacity - pWav->memoryStreamWrite.currentWritePos) < bytesToWrite) { + newDataCapacity = pWav->memoryStreamWrite.currentWritePos + bytesToWrite; + } + + pNewData = drwav__realloc_from_callbacks(*pWav->memoryStreamWrite.ppData, newDataCapacity, pWav->memoryStreamWrite.dataCapacity, &pWav->allocationCallbacks); + if (pNewData == NULL) { + return 0; + } + + *pWav->memoryStreamWrite.ppData = pNewData; + pWav->memoryStreamWrite.dataCapacity = newDataCapacity; + } + + DRWAV_COPY_MEMORY(((drwav_uint8*)(*pWav->memoryStreamWrite.ppData)) + pWav->memoryStreamWrite.currentWritePos, pDataIn, bytesToWrite); + + pWav->memoryStreamWrite.currentWritePos += bytesToWrite; + if (pWav->memoryStreamWrite.dataSize < pWav->memoryStreamWrite.currentWritePos) { + pWav->memoryStreamWrite.dataSize = pWav->memoryStreamWrite.currentWritePos; + } + + *pWav->memoryStreamWrite.pDataSize = pWav->memoryStreamWrite.dataSize; + + return bytesToWrite; +} + +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory_write(void* pUserData, int offset, drwav_seek_origin origin) +{ + drwav* pWav = (drwav*)pUserData; + drwav_int64 newCursor; + + DRWAV_ASSERT(pWav != NULL); + + if (origin == DRWAV_SEEK_SET) { + newCursor = 0; + } else if (origin == DRWAV_SEEK_CUR) { + newCursor = (drwav_int64)pWav->memoryStreamWrite.currentWritePos; + } else if (origin == DRWAV_SEEK_END) { + newCursor = (drwav_int64)pWav->memoryStreamWrite.dataSize; + } else { + DRWAV_ASSERT(!"Invalid seek origin"); + return DRWAV_FALSE; + } + + newCursor += offset; + + if (newCursor < 0) { + return DRWAV_FALSE; /* Trying to seek prior to the start of the buffer. */ + } + if ((size_t)newCursor > pWav->memoryStreamWrite.dataSize) { + return DRWAV_FALSE; /* Trying to seek beyond the end of the buffer. */ + } + + pWav->memoryStreamWrite.currentWritePos = (size_t)newCursor; + + return DRWAV_TRUE; +} + +DRWAV_PRIVATE drwav_bool32 drwav__on_tell_memory(void* pUserData, drwav_int64* pCursor) +{ + drwav* pWav = (drwav*)pUserData; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pCursor != NULL); + + *pCursor = (drwav_int64)pWav->memoryStream.currentReadPos; + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_ex(pWav, data, dataSize, NULL, NULL, 0, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (data == NULL || dataSize == 0) { + return DRWAV_FALSE; + } + + if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, drwav__on_tell_memory, pWav, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + pWav->memoryStream.data = (const drwav_uint8*)data; + pWav->memoryStream.dataSize = dataSize; + pWav->memoryStream.currentReadPos = 0; + + return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); +} + +DRWAV_API drwav_bool32 drwav_init_memory_with_metadata(drwav* pWav, const void* data, size_t dataSize, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (data == NULL || dataSize == 0) { + return DRWAV_FALSE; + } + + if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, drwav__on_tell_memory, pWav, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + pWav->memoryStream.data = (const drwav_uint8*)data; + pWav->memoryStream.dataSize = dataSize; + pWav->memoryStream.currentReadPos = 0; + + return drwav_init__internal(pWav, NULL, NULL, flags | DRWAV_WITH_METADATA); +} + + +DRWAV_PRIVATE drwav_bool32 drwav_init_memory_write__internal(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (ppData == NULL || pDataSize == NULL) { + return DRWAV_FALSE; + } + + *ppData = NULL; /* Important because we're using realloc()! */ + *pDataSize = 0; + + if (!drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_memory, drwav__on_seek_memory_write, pWav, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + + pWav->memoryStreamWrite.ppData = ppData; + pWav->memoryStreamWrite.pDataSize = pDataSize; + pWav->memoryStreamWrite.dataSize = 0; + pWav->memoryStreamWrite.dataCapacity = 0; + pWav->memoryStreamWrite.currentWritePos = 0; + + return drwav_init_write__internal(pWav, pFormat, totalSampleCount); +} + +DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} + +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + + return drwav_init_memory_write_sequential(pWav, ppData, pDataSize, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} + + + +DRWAV_API drwav_result drwav_uninit(drwav* pWav) +{ + drwav_result result = DRWAV_SUCCESS; + + if (pWav == NULL) { + return DRWAV_INVALID_ARGS; + } + + /* + If the drwav object was opened in write mode we'll need to finalize a few things: + - Make sure the "data" chunk is aligned to 16-bits for RIFF containers, or 64 bits for W64 containers. + - Set the size of the "data" chunk. + */ + if (pWav->onWrite != NULL) { + drwav_uint32 paddingSize = 0; + + /* Padding. Do not adjust pWav->dataChunkDataSize - this should not include the padding. */ + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { + paddingSize = drwav__chunk_padding_size_riff(pWav->dataChunkDataSize); + } else { + paddingSize = drwav__chunk_padding_size_w64(pWav->dataChunkDataSize); + } + + if (paddingSize > 0) { + drwav_uint64 paddingData = 0; + drwav__write(pWav, &paddingData, paddingSize); /* Byte order does not matter for this. */ + } + + /* + Chunk sizes. When using sequential mode, these will have been filled in at initialization time. We only need + to do this when using non-sequential mode. + */ + if (pWav->onSeek && !pWav->isSequentialWrite) { + if (pWav->container == drwav_container_riff) { + /* The "RIFF" chunk size. */ + if (pWav->onSeek(pWav->pUserData, 4, DRWAV_SEEK_SET)) { + drwav_uint32 riffChunkSize = drwav__riff_chunk_size_riff(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); + drwav__write_u32ne_to_le(pWav, riffChunkSize); + } + + /* The "data" chunk size. */ + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 4, DRWAV_SEEK_SET)) { + drwav_uint32 dataChunkSize = drwav__data_chunk_size_riff(pWav->dataChunkDataSize); + drwav__write_u32ne_to_le(pWav, dataChunkSize); + } + } else if (pWav->container == drwav_container_w64) { + /* The "RIFF" chunk size. */ + if (pWav->onSeek(pWav->pUserData, 16, DRWAV_SEEK_SET)) { + drwav_uint64 riffChunkSize = drwav__riff_chunk_size_w64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, riffChunkSize); + } + + /* The "data" chunk size. */ + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 8, DRWAV_SEEK_SET)) { + drwav_uint64 dataChunkSize = drwav__data_chunk_size_w64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, dataChunkSize); + } + } else if (pWav->container == drwav_container_rf64) { + /* We only need to update the ds64 chunk. The "RIFF" and "data" chunks always have their sizes set to 0xFFFFFFFF for RF64. */ + int ds64BodyPos = 12 + 8; + + /* The "RIFF" chunk size. */ + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 0, DRWAV_SEEK_SET)) { + drwav_uint64 riffChunkSize = drwav__riff_chunk_size_rf64(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); + drwav__write_u64ne_to_le(pWav, riffChunkSize); + } + + /* The "data" chunk size. */ + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 8, DRWAV_SEEK_SET)) { + drwav_uint64 dataChunkSize = drwav__data_chunk_size_rf64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, dataChunkSize); + } + } + } + + /* Validation for sequential mode. */ + if (pWav->isSequentialWrite) { + if (pWav->dataChunkDataSize != pWav->dataChunkDataSizeTargetWrite) { + result = DRWAV_INVALID_FILE; + } + } + } else { + drwav_free(pWav->pMetadata, &pWav->allocationCallbacks); + } + +#ifndef DR_WAV_NO_STDIO + /* + If we opened the file with drwav_open_file() we will want to close the file handle. We can know whether or not drwav_open_file() + was used by looking at the onRead and onSeek callbacks. + */ + if (pWav->onRead == drwav__on_read_stdio || pWav->onWrite == drwav__on_write_stdio) { + fclose((FILE*)pWav->pUserData); + } +#endif + + return result; +} + + + +DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut) +{ + size_t bytesRead; + drwav_uint32 bytesPerFrame; + + if (pWav == NULL || bytesToRead == 0) { + return 0; /* Invalid args. */ + } + + if (bytesToRead > pWav->bytesRemaining) { + bytesToRead = (size_t)pWav->bytesRemaining; + } + + if (bytesToRead == 0) { + return 0; /* At end. */ + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; /* Could not determine the bytes per frame. */ + } + + if (pBufferOut != NULL) { + bytesRead = pWav->onRead(pWav->pUserData, pBufferOut, bytesToRead); + } else { + /* We need to seek. If we fail, we need to read-and-discard to make sure we get a good byte count. */ + bytesRead = 0; + while (bytesRead < bytesToRead) { + size_t bytesToSeek = (bytesToRead - bytesRead); + if (bytesToSeek > 0x7FFFFFFF) { + bytesToSeek = 0x7FFFFFFF; + } + + if (pWav->onSeek(pWav->pUserData, (int)bytesToSeek, DRWAV_SEEK_CUR) == DRWAV_FALSE) { + break; + } + + bytesRead += bytesToSeek; + } + + /* When we get here we may need to read-and-discard some data. */ + while (bytesRead < bytesToRead) { + drwav_uint8 buffer[4096]; + size_t bytesSeeked; + size_t bytesToSeek = (bytesToRead - bytesRead); + if (bytesToSeek > sizeof(buffer)) { + bytesToSeek = sizeof(buffer); + } + + bytesSeeked = pWav->onRead(pWav->pUserData, buffer, bytesToSeek); + bytesRead += bytesSeeked; + + if (bytesSeeked < bytesToSeek) { + break; /* Reached the end. */ + } + } + } + + pWav->readCursorInPCMFrames += bytesRead / bytesPerFrame; + + pWav->bytesRemaining -= bytesRead; + return bytesRead; +} + + + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + drwav_uint32 bytesPerFrame; + drwav_uint64 bytesToRead; /* Intentionally uint64 instead of size_t so we can do a check that we're not reading too much on 32-bit builds. */ + drwav_uint64 framesRemainingInFile; + + if (pWav == NULL || framesToRead == 0) { + return 0; + } + + /* Cannot use this function for compressed formats. */ + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + return 0; + } + + framesRemainingInFile = pWav->totalPCMFrameCount - pWav->readCursorInPCMFrames; + if (framesToRead > framesRemainingInFile) { + framesToRead = framesRemainingInFile; + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + /* Don't try to read more samples than can potentially fit in the output buffer. */ + bytesToRead = framesToRead * bytesPerFrame; + if (bytesToRead > DRWAV_SIZE_MAX) { + bytesToRead = (DRWAV_SIZE_MAX / bytesPerFrame) * bytesPerFrame; /* Round the number of bytes to read to a clean frame boundary. */ + } + + /* + Doing an explicit check here just to make it clear that we don't want to be attempt to read anything if there's no bytes to read. There + *could* be a time where it evaluates to 0 due to overflowing. + */ + if (bytesToRead == 0) { + return 0; + } + + return drwav_read_raw(pWav, (size_t)bytesToRead, pBufferOut) / bytesPerFrame; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + + if (pBufferOut != NULL) { + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; /* Could not get the bytes per frame which means bytes per sample cannot be determined and we don't know how to byte swap. */ + } + + drwav__bswap_samples(pBufferOut, framesRead*pWav->channels, bytesPerFrame/pWav->channels); + } + + return framesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + drwav_uint64 framesRead = 0; + + if (drwav_is_container_be(pWav->container)) { + /* + Special case for AIFF. AIFF is a big-endian encoded format, but it supports a format that is + PCM in little-endian encoding. In this case, we fall through this branch and treate it as + little-endian. + */ + if (pWav->container != drwav_container_aiff || pWav->aiff.isLE == DRWAV_FALSE) { + if (drwav__is_little_endian()) { + framesRead = drwav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + } else { + framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + } + + goto post_process; + } + } + + /* Getting here means the data should be considered little-endian. */ + if (drwav__is_little_endian()) { + framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + } else { + framesRead = drwav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + } + + /* + Here is where we check if we need to do a signed/unsigned conversion for AIFF. The reason we need to do this + is because dr_wav always assumes an 8-bit sample is unsigned, whereas AIFF can have signed 8-bit formats. + */ + post_process: + { + if (pWav->container == drwav_container_aiff && pWav->bitsPerSample == 8 && pWav->aiff.isUnsigned == DRWAV_FALSE) { + if (pBufferOut != NULL) { + drwav_uint64 iSample; + + for (iSample = 0; iSample < framesRead * pWav->channels; iSample += 1) { + ((drwav_uint8*)pBufferOut)[iSample] += 128; + } + } + } + } + + return framesRead; +} + + + +DRWAV_PRIVATE drwav_bool32 drwav_seek_to_first_pcm_frame(drwav* pWav) +{ + if (pWav->onWrite != NULL) { + return DRWAV_FALSE; /* No seeking in write mode. */ + } + + if (!pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos, DRWAV_SEEK_SET)) { + return DRWAV_FALSE; + } + + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + /* Cached data needs to be cleared for compressed formats. */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + DRWAV_ZERO_OBJECT(&pWav->msadpcm); + } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + DRWAV_ZERO_OBJECT(&pWav->ima); + } else { + DRWAV_ASSERT(DRWAV_FALSE); /* If this assertion is triggered it means I've implemented a new compressed format but forgot to add a branch for it here. */ + } + } + + pWav->readCursorInPCMFrames = 0; + pWav->bytesRemaining = pWav->dataChunkDataSize; + + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex) +{ + /* Seeking should be compatible with wave files > 2GB. */ + + if (pWav == NULL || pWav->onSeek == NULL) { + return DRWAV_FALSE; + } + + /* No seeking in write mode. */ + if (pWav->onWrite != NULL) { + return DRWAV_FALSE; + } + + /* If there are no samples, just return DRWAV_TRUE without doing anything. */ + if (pWav->totalPCMFrameCount == 0) { + return DRWAV_TRUE; + } + + /* Make sure the sample is clamped. */ + if (targetFrameIndex > pWav->totalPCMFrameCount) { + targetFrameIndex = pWav->totalPCMFrameCount; + } + + /* + For compressed formats we just use a slow generic seek. If we are seeking forward we just seek forward. If we are going backwards we need + to seek back to the start. + */ + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + /* TODO: This can be optimized. */ + + /* + If we're seeking forward it's simple - just keep reading samples until we hit the sample we're requesting. If we're seeking backwards, + we first need to seek back to the start and then just do the same thing as a forward seek. + */ + if (targetFrameIndex < pWav->readCursorInPCMFrames) { + if (!drwav_seek_to_first_pcm_frame(pWav)) { + return DRWAV_FALSE; + } + } + + if (targetFrameIndex > pWav->readCursorInPCMFrames) { + drwav_uint64 offsetInFrames = targetFrameIndex - pWav->readCursorInPCMFrames; + + drwav_int16 devnull[2048]; + while (offsetInFrames > 0) { + drwav_uint64 framesRead = 0; + drwav_uint64 framesToRead = offsetInFrames; + if (framesToRead > drwav_countof(devnull)/pWav->channels) { + framesToRead = drwav_countof(devnull)/pWav->channels; + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + framesRead = drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, devnull); + } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + framesRead = drwav_read_pcm_frames_s16__ima(pWav, framesToRead, devnull); + } else { + DRWAV_ASSERT(DRWAV_FALSE); /* If this assertion is triggered it means I've implemented a new compressed format but forgot to add a branch for it here. */ + } + + if (framesRead != framesToRead) { + return DRWAV_FALSE; + } + + offsetInFrames -= framesRead; + } + } + } else { + drwav_uint64 totalSizeInBytes; + drwav_uint64 currentBytePos; + drwav_uint64 targetBytePos; + drwav_uint64 offset; + drwav_uint32 bytesPerFrame; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return DRWAV_FALSE; /* Not able to calculate offset. */ + } + + totalSizeInBytes = pWav->totalPCMFrameCount * bytesPerFrame; + /*DRWAV_ASSERT(totalSizeInBytes >= pWav->bytesRemaining);*/ + + currentBytePos = totalSizeInBytes - pWav->bytesRemaining; + targetBytePos = targetFrameIndex * bytesPerFrame; + + if (currentBytePos < targetBytePos) { + /* Offset forwards. */ + offset = (targetBytePos - currentBytePos); + } else { + /* Offset backwards. */ + if (!drwav_seek_to_first_pcm_frame(pWav)) { + return DRWAV_FALSE; + } + offset = targetBytePos; + } + + while (offset > 0) { + int offset32 = ((offset > INT_MAX) ? INT_MAX : (int)offset); + if (!pWav->onSeek(pWav->pUserData, offset32, DRWAV_SEEK_CUR)) { + return DRWAV_FALSE; + } + + pWav->readCursorInPCMFrames += offset32 / bytesPerFrame; + pWav->bytesRemaining -= offset32; + offset -= offset32; + } + } + + return DRWAV_TRUE; +} + +DRWAV_API drwav_result drwav_get_cursor_in_pcm_frames(drwav* pWav, drwav_uint64* pCursor) +{ + if (pCursor == NULL) { + return DRWAV_INVALID_ARGS; + } + + *pCursor = 0; /* Safety. */ + + if (pWav == NULL) { + return DRWAV_INVALID_ARGS; + } + + *pCursor = pWav->readCursorInPCMFrames; + + return DRWAV_SUCCESS; +} + +DRWAV_API drwav_result drwav_get_length_in_pcm_frames(drwav* pWav, drwav_uint64* pLength) +{ + if (pLength == NULL) { + return DRWAV_INVALID_ARGS; + } + + *pLength = 0; /* Safety. */ + + if (pWav == NULL) { + return DRWAV_INVALID_ARGS; + } + + *pLength = pWav->totalPCMFrameCount; + + return DRWAV_SUCCESS; +} + + +DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData) +{ + size_t bytesWritten; + + if (pWav == NULL || bytesToWrite == 0 || pData == NULL) { + return 0; + } + + bytesWritten = pWav->onWrite(pWav->pUserData, pData, bytesToWrite); + pWav->dataChunkDataSize += bytesWritten; + + return bytesWritten; +} + +DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + drwav_uint64 bytesToWrite; + drwav_uint64 bytesWritten; + const drwav_uint8* pRunningData; + + if (pWav == NULL || framesToWrite == 0 || pData == NULL) { + return 0; + } + + bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); + if (bytesToWrite > DRWAV_SIZE_MAX) { + return 0; + } + + bytesWritten = 0; + pRunningData = (const drwav_uint8*)pData; + + while (bytesToWrite > 0) { + size_t bytesJustWritten; + drwav_uint64 bytesToWriteThisIteration; + + bytesToWriteThisIteration = bytesToWrite; + DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); /* <-- This is checked above. */ + + bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, pRunningData); + if (bytesJustWritten == 0) { + break; + } + + bytesToWrite -= bytesJustWritten; + bytesWritten += bytesJustWritten; + pRunningData += bytesJustWritten; + } + + return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; +} + +DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + drwav_uint64 bytesToWrite; + drwav_uint64 bytesWritten; + drwav_uint32 bytesPerSample; + const drwav_uint8* pRunningData; + + if (pWav == NULL || framesToWrite == 0 || pData == NULL) { + return 0; + } + + bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); + if (bytesToWrite > DRWAV_SIZE_MAX) { + return 0; + } + + bytesWritten = 0; + pRunningData = (const drwav_uint8*)pData; + + bytesPerSample = drwav_get_bytes_per_pcm_frame(pWav) / pWav->channels; + if (bytesPerSample == 0) { + return 0; /* Cannot determine bytes per sample, or bytes per sample is less than one byte. */ + } + + while (bytesToWrite > 0) { + drwav_uint8 temp[4096]; + drwav_uint32 sampleCount; + size_t bytesJustWritten; + drwav_uint64 bytesToWriteThisIteration; + + bytesToWriteThisIteration = bytesToWrite; + DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); /* <-- This is checked above. */ + + /* + WAV files are always little-endian. We need to byte swap on big-endian architectures. Since our input buffer is read-only we need + to use an intermediary buffer for the conversion. + */ + sampleCount = sizeof(temp)/bytesPerSample; + + if (bytesToWriteThisIteration > ((drwav_uint64)sampleCount)*bytesPerSample) { + bytesToWriteThisIteration = ((drwav_uint64)sampleCount)*bytesPerSample; + } + + DRWAV_COPY_MEMORY(temp, pRunningData, (size_t)bytesToWriteThisIteration); + drwav__bswap_samples(temp, sampleCount, bytesPerSample); + + bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, temp); + if (bytesJustWritten == 0) { + break; + } + + bytesToWrite -= bytesJustWritten; + bytesWritten += bytesJustWritten; + pRunningData += bytesJustWritten; + } + + return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; +} + +DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + if (drwav__is_little_endian()) { + return drwav_write_pcm_frames_le(pWav, framesToWrite, pData); + } else { + return drwav_write_pcm_frames_be(pWav, framesToWrite, pData); + } +} + + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + + static const drwav_int32 adaptationTable[] = { + 230, 230, 230, 230, 307, 409, 512, 614, + 768, 614, 512, 409, 307, 230, 230, 230 + }; + static const drwav_int32 coeff1Table[] = { 256, 512, 0, 192, 240, 460, 392 }; + static const drwav_int32 coeff2Table[] = { 0, -256, 0, 64, 0, -208, -232 }; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(framesToRead > 0); + + /* TODO: Lots of room for optimization here. */ + + while (pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { + DRWAV_ASSERT(framesToRead > 0); /* This loop iteration will never get hit with framesToRead == 0 because it's asserted at the top, and we check for 0 inside the loop just below. */ + + /* If there are no cached frames we need to load a new block. */ + if (pWav->msadpcm.cachedFrameCount == 0 && pWav->msadpcm.bytesRemainingInBlock == 0) { + if (pWav->channels == 1) { + /* Mono. */ + drwav_uint8 header[7]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + + pWav->msadpcm.predictor[0] = header[0]; + pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 1); + pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 3); + pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 5); + pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][0]; + pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.cachedFrameCount = 2; + + /* The predictor is used as an index into coeff1Table so we'll need to validate to ensure it never overflows. */ + if (pWav->msadpcm.predictor[0] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[0] >= drwav_countof(coeff2Table)) { + return totalFramesRead; /* Invalid file. */ + } + } else { + /* Stereo. */ + drwav_uint8 header[14]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + + pWav->msadpcm.predictor[0] = header[0]; + pWav->msadpcm.predictor[1] = header[1]; + pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 2); + pWav->msadpcm.delta[1] = drwav_bytes_to_s16(header + 4); + pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 6); + pWav->msadpcm.prevFrames[1][1] = (drwav_int32)drwav_bytes_to_s16(header + 8); + pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 10); + pWav->msadpcm.prevFrames[1][0] = (drwav_int32)drwav_bytes_to_s16(header + 12); + + pWav->msadpcm.cachedFrames[0] = pWav->msadpcm.prevFrames[0][0]; + pWav->msadpcm.cachedFrames[1] = pWav->msadpcm.prevFrames[1][0]; + pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[1][1]; + pWav->msadpcm.cachedFrameCount = 2; + + /* The predictor is used as an index into coeff1Table so we'll need to validate to ensure it never overflows. */ + if (pWav->msadpcm.predictor[0] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[0] >= drwav_countof(coeff2Table) || + pWav->msadpcm.predictor[1] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[1] >= drwav_countof(coeff2Table)) { + return totalFramesRead; /* Invalid file. */ + } + } + } + + /* Output anything that's cached. */ + while (framesToRead > 0 && pWav->msadpcm.cachedFrameCount > 0 && pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { + if (pBufferOut != NULL) { + drwav_uint32 iSample = 0; + for (iSample = 0; iSample < pWav->channels; iSample += 1) { + pBufferOut[iSample] = (drwav_int16)pWav->msadpcm.cachedFrames[(drwav_countof(pWav->msadpcm.cachedFrames) - (pWav->msadpcm.cachedFrameCount*pWav->channels)) + iSample]; + } + + pBufferOut += pWav->channels; + } + + framesToRead -= 1; + totalFramesRead += 1; + pWav->readCursorInPCMFrames += 1; + pWav->msadpcm.cachedFrameCount -= 1; + } + + if (framesToRead == 0) { + break; + } + + + /* + If there's nothing left in the cache, just go ahead and load more. If there's nothing left to load in the current block we just continue to the next + loop iteration which will trigger the loading of a new block. + */ + if (pWav->msadpcm.cachedFrameCount == 0) { + if (pWav->msadpcm.bytesRemainingInBlock == 0) { + continue; + } else { + drwav_uint8 nibbles; + drwav_int32 nibble0; + drwav_int32 nibble1; + + if (pWav->onRead(pWav->pUserData, &nibbles, 1) != 1) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock -= 1; + + /* TODO: Optimize away these if statements. */ + nibble0 = ((nibbles & 0xF0) >> 4); if ((nibbles & 0x80)) { nibble0 |= 0xFFFFFFF0UL; } + nibble1 = ((nibbles & 0x0F) >> 0); if ((nibbles & 0x08)) { nibble1 |= 0xFFFFFFF0UL; } + + if (pWav->channels == 1) { + /* Mono. */ + drwav_int32 newSample0; + drwav_int32 newSample1; + + /* The predictor is read from the file and then indexed into a table. Check that it's in bounds. */ + if (pWav->msadpcm.predictor[0] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[0] >= drwav_countof(coeff2Table)) { + return totalFramesRead; + } + + newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample0 += nibble0 * pWav->msadpcm.delta[0]; + newSample0 = drwav_clamp(newSample0, -32768, 32767); + + pWav->msadpcm.delta[0] = (drwav_int32)drwav_clamp(((drwav_int64)adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8, 16, 0x7FFFFFFF); + + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample0; + + + newSample1 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample1 += nibble1 * pWav->msadpcm.delta[0]; + newSample1 = drwav_clamp(newSample1, -32768, 32767); + + pWav->msadpcm.delta[0] = (drwav_int32)drwav_clamp(((drwav_int64)adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[0]) >> 8, 16, 0x7FFFFFFF); + + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample1; + + pWav->msadpcm.cachedFrames[2] = newSample0; + pWav->msadpcm.cachedFrames[3] = newSample1; + pWav->msadpcm.cachedFrameCount = 2; + } else { + /* Stereo. */ + drwav_int32 newSample0; + drwav_int32 newSample1; + + /* Left. */ + if (pWav->msadpcm.predictor[0] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[0] >= drwav_countof(coeff2Table)) { + return totalFramesRead; /* Out of bounds. Invalid file. */ + } + + newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample0 += nibble0 * pWav->msadpcm.delta[0]; + newSample0 = drwav_clamp(newSample0, -32768, 32767); + + pWav->msadpcm.delta[0] = (drwav_int32)drwav_clamp(((drwav_int64)adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8, 16, 0x7FFFFFFF); + + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample0; + + + /* Right. */ + if (pWav->msadpcm.predictor[1] >= drwav_countof(coeff1Table) || pWav->msadpcm.predictor[1] >= drwav_countof(coeff2Table)) { + return totalFramesRead; /* Out of bounds. Invalid file. */ + } + + newSample1 = ((pWav->msadpcm.prevFrames[1][1] * coeff1Table[pWav->msadpcm.predictor[1]]) + (pWav->msadpcm.prevFrames[1][0] * coeff2Table[pWav->msadpcm.predictor[1]])) >> 8; + newSample1 += nibble1 * pWav->msadpcm.delta[1]; + newSample1 = drwav_clamp(newSample1, -32768, 32767); + + pWav->msadpcm.delta[1] = (drwav_int32)drwav_clamp(((drwav_int64)adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[1]) >> 8, 16, 0x7FFFFFFF); + + pWav->msadpcm.prevFrames[1][0] = pWav->msadpcm.prevFrames[1][1]; + pWav->msadpcm.prevFrames[1][1] = newSample1; + + pWav->msadpcm.cachedFrames[2] = newSample0; + pWav->msadpcm.cachedFrames[3] = newSample1; + pWav->msadpcm.cachedFrameCount = 1; + } + } + } + } + + return totalFramesRead; +} + + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_uint32 iChannel; + + static const drwav_int32 indexTable[16] = { + -1, -1, -1, -1, 2, 4, 6, 8, + -1, -1, -1, -1, 2, 4, 6, 8 + }; + + static const drwav_int32 stepTable[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, + 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, + 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, + 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, + 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, + 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, + 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, + 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; + + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(framesToRead > 0); + + /* TODO: Lots of room for optimization here. */ + + while (pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { + DRWAV_ASSERT(framesToRead > 0); /* This loop iteration will never get hit with framesToRead == 0 because it's asserted at the top, and we check for 0 inside the loop just below. */ + + /* If there are no cached samples we need to load a new block. */ + if (pWav->ima.cachedFrameCount == 0 && pWav->ima.bytesRemainingInBlock == 0) { + if (pWav->channels == 1) { + /* Mono. */ + drwav_uint8 header[4]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + + if (header[2] >= drwav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, DRWAV_SEEK_CUR); + pWav->ima.bytesRemainingInBlock = 0; + return totalFramesRead; /* Invalid data. */ + } + + pWav->ima.predictor[0] = (drwav_int16)drwav_bytes_to_u16(header + 0); + pWav->ima.stepIndex[0] = drwav_clamp(header[2], 0, (drwav_int32)drwav_countof(stepTable)-1); /* Clamp not necessary because we checked above, but adding here to silence a static analysis warning. */ + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[0]; + pWav->ima.cachedFrameCount = 1; + } else { + /* Stereo. */ + drwav_uint8 header[8]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + + if (header[2] >= drwav_countof(stepTable) || header[6] >= drwav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, DRWAV_SEEK_CUR); + pWav->ima.bytesRemainingInBlock = 0; + return totalFramesRead; /* Invalid data. */ + } + + pWav->ima.predictor[0] = drwav_bytes_to_s16(header + 0); + pWav->ima.stepIndex[0] = drwav_clamp(header[2], 0, (drwav_int32)drwav_countof(stepTable)-1); /* Clamp not necessary because we checked above, but adding here to silence a static analysis warning. */ + pWav->ima.predictor[1] = drwav_bytes_to_s16(header + 4); + pWav->ima.stepIndex[1] = drwav_clamp(header[6], 0, (drwav_int32)drwav_countof(stepTable)-1); /* Clamp not necessary because we checked above, but adding here to silence a static analysis warning. */ + + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 2] = pWav->ima.predictor[0]; + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[1]; + pWav->ima.cachedFrameCount = 1; + } + } + + /* Output anything that's cached. */ + while (framesToRead > 0 && pWav->ima.cachedFrameCount > 0 && pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { + if (pBufferOut != NULL) { + drwav_uint32 iSample; + for (iSample = 0; iSample < pWav->channels; iSample += 1) { + pBufferOut[iSample] = (drwav_int16)pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + iSample]; + } + pBufferOut += pWav->channels; + } + + framesToRead -= 1; + totalFramesRead += 1; + pWav->readCursorInPCMFrames += 1; + pWav->ima.cachedFrameCount -= 1; + } + + if (framesToRead == 0) { + break; + } + + /* + If there's nothing left in the cache, just go ahead and load more. If there's nothing left to load in the current block we just continue to the next + loop iteration which will trigger the loading of a new block. + */ + if (pWav->ima.cachedFrameCount == 0) { + if (pWav->ima.bytesRemainingInBlock == 0) { + continue; + } else { + /* + From what I can tell with stereo streams, it looks like every 4 bytes (8 samples) is for one channel. So it goes 4 bytes for the + left channel, 4 bytes for the right channel. + */ + pWav->ima.cachedFrameCount = 8; + for (iChannel = 0; iChannel < pWav->channels; ++iChannel) { + drwav_uint32 iByte; + drwav_uint8 nibbles[4]; + if (pWav->onRead(pWav->pUserData, &nibbles, 4) != 4) { + pWav->ima.cachedFrameCount = 0; + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock -= 4; + + for (iByte = 0; iByte < 4; ++iByte) { + drwav_uint8 nibble0 = ((nibbles[iByte] & 0x0F) >> 0); + drwav_uint8 nibble1 = ((nibbles[iByte] & 0xF0) >> 4); + + drwav_int32 step = stepTable[pWav->ima.stepIndex[iChannel]]; + drwav_int32 predictor = pWav->ima.predictor[iChannel]; + + drwav_int32 diff = step >> 3; + if (nibble0 & 1) diff += step >> 2; + if (nibble0 & 2) diff += step >> 1; + if (nibble0 & 4) diff += step; + if (nibble0 & 8) diff = -diff; + + predictor = drwav_clamp(predictor + diff, -32768, 32767); + pWav->ima.predictor[iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble0], 0, (drwav_int32)drwav_countof(stepTable)-1); + pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+0)*pWav->channels + iChannel] = predictor; + + + step = stepTable[pWav->ima.stepIndex[iChannel]]; + predictor = pWav->ima.predictor[iChannel]; + + diff = step >> 3; + if (nibble1 & 1) diff += step >> 2; + if (nibble1 & 2) diff += step >> 1; + if (nibble1 & 4) diff += step; + if (nibble1 & 8) diff = -diff; + + predictor = drwav_clamp(predictor + diff, -32768, 32767); + pWav->ima.predictor[iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble1], 0, (drwav_int32)drwav_countof(stepTable)-1); + pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+1)*pWav->channels + iChannel] = predictor; + } + } + } + } + } + + return totalFramesRead; +} + + +#ifndef DR_WAV_NO_CONVERSION_API +static const unsigned short g_drwavAlawTable[256] = { + 0xEA80, 0xEB80, 0xE880, 0xE980, 0xEE80, 0xEF80, 0xEC80, 0xED80, 0xE280, 0xE380, 0xE080, 0xE180, 0xE680, 0xE780, 0xE480, 0xE580, + 0xF540, 0xF5C0, 0xF440, 0xF4C0, 0xF740, 0xF7C0, 0xF640, 0xF6C0, 0xF140, 0xF1C0, 0xF040, 0xF0C0, 0xF340, 0xF3C0, 0xF240, 0xF2C0, + 0xAA00, 0xAE00, 0xA200, 0xA600, 0xBA00, 0xBE00, 0xB200, 0xB600, 0x8A00, 0x8E00, 0x8200, 0x8600, 0x9A00, 0x9E00, 0x9200, 0x9600, + 0xD500, 0xD700, 0xD100, 0xD300, 0xDD00, 0xDF00, 0xD900, 0xDB00, 0xC500, 0xC700, 0xC100, 0xC300, 0xCD00, 0xCF00, 0xC900, 0xCB00, + 0xFEA8, 0xFEB8, 0xFE88, 0xFE98, 0xFEE8, 0xFEF8, 0xFEC8, 0xFED8, 0xFE28, 0xFE38, 0xFE08, 0xFE18, 0xFE68, 0xFE78, 0xFE48, 0xFE58, + 0xFFA8, 0xFFB8, 0xFF88, 0xFF98, 0xFFE8, 0xFFF8, 0xFFC8, 0xFFD8, 0xFF28, 0xFF38, 0xFF08, 0xFF18, 0xFF68, 0xFF78, 0xFF48, 0xFF58, + 0xFAA0, 0xFAE0, 0xFA20, 0xFA60, 0xFBA0, 0xFBE0, 0xFB20, 0xFB60, 0xF8A0, 0xF8E0, 0xF820, 0xF860, 0xF9A0, 0xF9E0, 0xF920, 0xF960, + 0xFD50, 0xFD70, 0xFD10, 0xFD30, 0xFDD0, 0xFDF0, 0xFD90, 0xFDB0, 0xFC50, 0xFC70, 0xFC10, 0xFC30, 0xFCD0, 0xFCF0, 0xFC90, 0xFCB0, + 0x1580, 0x1480, 0x1780, 0x1680, 0x1180, 0x1080, 0x1380, 0x1280, 0x1D80, 0x1C80, 0x1F80, 0x1E80, 0x1980, 0x1880, 0x1B80, 0x1A80, + 0x0AC0, 0x0A40, 0x0BC0, 0x0B40, 0x08C0, 0x0840, 0x09C0, 0x0940, 0x0EC0, 0x0E40, 0x0FC0, 0x0F40, 0x0CC0, 0x0C40, 0x0DC0, 0x0D40, + 0x5600, 0x5200, 0x5E00, 0x5A00, 0x4600, 0x4200, 0x4E00, 0x4A00, 0x7600, 0x7200, 0x7E00, 0x7A00, 0x6600, 0x6200, 0x6E00, 0x6A00, + 0x2B00, 0x2900, 0x2F00, 0x2D00, 0x2300, 0x2100, 0x2700, 0x2500, 0x3B00, 0x3900, 0x3F00, 0x3D00, 0x3300, 0x3100, 0x3700, 0x3500, + 0x0158, 0x0148, 0x0178, 0x0168, 0x0118, 0x0108, 0x0138, 0x0128, 0x01D8, 0x01C8, 0x01F8, 0x01E8, 0x0198, 0x0188, 0x01B8, 0x01A8, + 0x0058, 0x0048, 0x0078, 0x0068, 0x0018, 0x0008, 0x0038, 0x0028, 0x00D8, 0x00C8, 0x00F8, 0x00E8, 0x0098, 0x0088, 0x00B8, 0x00A8, + 0x0560, 0x0520, 0x05E0, 0x05A0, 0x0460, 0x0420, 0x04E0, 0x04A0, 0x0760, 0x0720, 0x07E0, 0x07A0, 0x0660, 0x0620, 0x06E0, 0x06A0, + 0x02B0, 0x0290, 0x02F0, 0x02D0, 0x0230, 0x0210, 0x0270, 0x0250, 0x03B0, 0x0390, 0x03F0, 0x03D0, 0x0330, 0x0310, 0x0370, 0x0350 +}; + +static const unsigned short g_drwavMulawTable[256] = { + 0x8284, 0x8684, 0x8A84, 0x8E84, 0x9284, 0x9684, 0x9A84, 0x9E84, 0xA284, 0xA684, 0xAA84, 0xAE84, 0xB284, 0xB684, 0xBA84, 0xBE84, + 0xC184, 0xC384, 0xC584, 0xC784, 0xC984, 0xCB84, 0xCD84, 0xCF84, 0xD184, 0xD384, 0xD584, 0xD784, 0xD984, 0xDB84, 0xDD84, 0xDF84, + 0xE104, 0xE204, 0xE304, 0xE404, 0xE504, 0xE604, 0xE704, 0xE804, 0xE904, 0xEA04, 0xEB04, 0xEC04, 0xED04, 0xEE04, 0xEF04, 0xF004, + 0xF0C4, 0xF144, 0xF1C4, 0xF244, 0xF2C4, 0xF344, 0xF3C4, 0xF444, 0xF4C4, 0xF544, 0xF5C4, 0xF644, 0xF6C4, 0xF744, 0xF7C4, 0xF844, + 0xF8A4, 0xF8E4, 0xF924, 0xF964, 0xF9A4, 0xF9E4, 0xFA24, 0xFA64, 0xFAA4, 0xFAE4, 0xFB24, 0xFB64, 0xFBA4, 0xFBE4, 0xFC24, 0xFC64, + 0xFC94, 0xFCB4, 0xFCD4, 0xFCF4, 0xFD14, 0xFD34, 0xFD54, 0xFD74, 0xFD94, 0xFDB4, 0xFDD4, 0xFDF4, 0xFE14, 0xFE34, 0xFE54, 0xFE74, + 0xFE8C, 0xFE9C, 0xFEAC, 0xFEBC, 0xFECC, 0xFEDC, 0xFEEC, 0xFEFC, 0xFF0C, 0xFF1C, 0xFF2C, 0xFF3C, 0xFF4C, 0xFF5C, 0xFF6C, 0xFF7C, + 0xFF88, 0xFF90, 0xFF98, 0xFFA0, 0xFFA8, 0xFFB0, 0xFFB8, 0xFFC0, 0xFFC8, 0xFFD0, 0xFFD8, 0xFFE0, 0xFFE8, 0xFFF0, 0xFFF8, 0x0000, + 0x7D7C, 0x797C, 0x757C, 0x717C, 0x6D7C, 0x697C, 0x657C, 0x617C, 0x5D7C, 0x597C, 0x557C, 0x517C, 0x4D7C, 0x497C, 0x457C, 0x417C, + 0x3E7C, 0x3C7C, 0x3A7C, 0x387C, 0x367C, 0x347C, 0x327C, 0x307C, 0x2E7C, 0x2C7C, 0x2A7C, 0x287C, 0x267C, 0x247C, 0x227C, 0x207C, + 0x1EFC, 0x1DFC, 0x1CFC, 0x1BFC, 0x1AFC, 0x19FC, 0x18FC, 0x17FC, 0x16FC, 0x15FC, 0x14FC, 0x13FC, 0x12FC, 0x11FC, 0x10FC, 0x0FFC, + 0x0F3C, 0x0EBC, 0x0E3C, 0x0DBC, 0x0D3C, 0x0CBC, 0x0C3C, 0x0BBC, 0x0B3C, 0x0ABC, 0x0A3C, 0x09BC, 0x093C, 0x08BC, 0x083C, 0x07BC, + 0x075C, 0x071C, 0x06DC, 0x069C, 0x065C, 0x061C, 0x05DC, 0x059C, 0x055C, 0x051C, 0x04DC, 0x049C, 0x045C, 0x041C, 0x03DC, 0x039C, + 0x036C, 0x034C, 0x032C, 0x030C, 0x02EC, 0x02CC, 0x02AC, 0x028C, 0x026C, 0x024C, 0x022C, 0x020C, 0x01EC, 0x01CC, 0x01AC, 0x018C, + 0x0174, 0x0164, 0x0154, 0x0144, 0x0134, 0x0124, 0x0114, 0x0104, 0x00F4, 0x00E4, 0x00D4, 0x00C4, 0x00B4, 0x00A4, 0x0094, 0x0084, + 0x0078, 0x0070, 0x0068, 0x0060, 0x0058, 0x0050, 0x0048, 0x0040, 0x0038, 0x0030, 0x0028, 0x0020, 0x0018, 0x0010, 0x0008, 0x0000 +}; + +static DRWAV_INLINE drwav_int16 drwav__alaw_to_s16(drwav_uint8 sampleIn) +{ + return (short)g_drwavAlawTable[sampleIn]; +} + +static DRWAV_INLINE drwav_int16 drwav__mulaw_to_s16(drwav_uint8 sampleIn) +{ + return (short)g_drwavMulawTable[sampleIn]; +} + + + +DRWAV_PRIVATE void drwav__pcm_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + size_t i; + + /* Special case for 8-bit sample data because it's treated as unsigned. */ + if (bytesPerSample == 1) { + drwav_u8_to_s16(pOut, pIn, totalSampleCount); + return; + } + + + /* Slightly more optimal implementation for common formats. */ + if (bytesPerSample == 2) { + for (i = 0; i < totalSampleCount; ++i) { + *pOut++ = ((const drwav_int16*)pIn)[i]; + } + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_s16(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 4) { + drwav_s32_to_s16(pOut, (const drwav_int32*)pIn, totalSampleCount); + return; + } + + + /* Anything more than 64 bits per sample is not supported. */ + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } + + + /* Generic, slow converter. */ + for (i = 0; i < totalSampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + + pIn += j; + *pOut++ = (drwav_int16)((drwav_int64)sample >> 48); + } +} + +DRWAV_PRIVATE void drwav__ieee_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + drwav_f32_to_s16(pOut, (const float*)pIn, totalSampleCount); + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_s16(pOut, (const double*)pIn, totalSampleCount); + return; + } else { + /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + /* Fast path. */ + if ((pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 16) || pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__pcm_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__ieee_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); /* Safe cast. */ + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_alaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + + /* + For some reason libsndfile seems to be returning samples of the opposite sign for a-law, but only + with AIFF files. For WAV files it seems to be the same as dr_wav. This is resulting in dr_wav's + automated tests failing. I'm not sure which is correct, but will assume dr_wav. If we're enforcing + libsndfile compatibility we'll swap the signs here. + */ + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_mulaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + + /* + Just like with alaw, for some reason the signs between libsndfile and dr_wav are opposite. We just need to + swap the sign if we're compiling with libsndfile compatiblity so our automated tests don't fail. + */ + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + /* Don't try to read more samples than can potentially fit in the output buffer. */ + if (framesToRead * pWav->channels * sizeof(drwav_int16) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int16) / pWav->channels; + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_s16__pcm(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_s16__ieee(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_s16__alaw(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_s16__mulaw(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + return drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_s16__ima(pWav, framesToRead, pBufferOut); + } + + return 0; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + + +DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = pIn[i]; + r = x << 8; + r = r - 32768; + pOut[i] = (short)r; + } +} + +DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = ((int)(((unsigned int)(((const drwav_uint8*)pIn)[i*3+0]) << 8) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+1]) << 16) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+2])) << 24)) >> 8; + r = x >> 8; + pOut[i] = (short)r; + } +} + +DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = pIn[i]; + r = x >> 16; + pOut[i] = (short)r; + } +} + +DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + float x = pIn[i]; + float c; + c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); + c = c + 1; + r = (int)(c * 32767.5f); + r = r - 32768; + pOut[i] = (short)r; + } +} + +DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + double x = pIn[i]; + double c; + c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); + c = c + 1; + r = (int)(c * 32767.5); + r = r - 32768; + pOut[i] = (short)r; + } +} + +DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + for (i = 0; i < sampleCount; ++i) { + pOut[i] = drwav__alaw_to_s16(pIn[i]); + } +} + +DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + for (i = 0; i < sampleCount; ++i) { + pOut[i] = drwav__mulaw_to_s16(pIn[i]); + } +} + + +DRWAV_PRIVATE void drwav__pcm_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +{ + unsigned int i; + + /* Special case for 8-bit sample data because it's treated as unsigned. */ + if (bytesPerSample == 1) { + drwav_u8_to_f32(pOut, pIn, sampleCount); + return; + } + + /* Slightly more optimal implementation for common formats. */ + if (bytesPerSample == 2) { + drwav_s16_to_f32(pOut, (const drwav_int16*)pIn, sampleCount); + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_f32(pOut, pIn, sampleCount); + return; + } + if (bytesPerSample == 4) { + drwav_s32_to_f32(pOut, (const drwav_int32*)pIn, sampleCount); + return; + } + + + /* Anything more than 64 bits per sample is not supported. */ + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + return; + } + + + /* Generic, slow converter. */ + for (i = 0; i < sampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + + pIn += j; + *pOut++ = (float)((drwav_int64)sample / 9223372036854775807.0); + } +} + +DRWAV_PRIVATE void drwav__ieee_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + unsigned int i; + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((const float*)pIn)[i]; + } + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_f32(pOut, (const double*)pIn, sampleCount); + return; + } else { + /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ + DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + return; + } +} + + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__pcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__pcm_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__msadpcm_ima(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + /* + We're just going to borrow the implementation from the drwav_read_s16() since ADPCM is a little bit more complicated than other formats and I don't + want to duplicate that code. + */ + drwav_uint64 totalFramesRead; + drwav_int16 samples16[2048]; + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels); + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ + + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__ieee(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + /* Fast path. */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT && pWav->bitsPerSample == 32) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__ieee_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__alaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_alaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__mulaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_mulaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + /* Don't try to read more samples than can potentially fit in the output buffer. */ + if (framesToRead * pWav->channels * sizeof(float) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(float) / pWav->channels; + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_f32__pcm(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_f32__msadpcm_ima(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_f32__ieee(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_f32__alaw(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_f32__mulaw(pWav, framesToRead, pBufferOut); + } + + return 0; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + + +DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + +#ifdef DR_WAV_LIBSNDFILE_COMPAT + /* + It appears libsndfile uses slightly different logic for the u8 -> f32 conversion to dr_wav, which in my opinion is incorrect. It appears + libsndfile performs the conversion something like "f32 = (u8 / 256) * 2 - 1", however I think it should be "f32 = (u8 / 255) * 2 - 1" (note + the divisor of 256 vs 255). I use libsndfile as a benchmark for testing, so I'm therefore leaving this block here just for my automated + correctness testing. This is disabled by default. + */ + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (pIn[i] / 256.0f) * 2 - 1; + } +#else + for (i = 0; i < sampleCount; ++i) { + float x = pIn[i]; + x = x * 0.00784313725490196078f; /* 0..255 to 0..2 */ + x = x - 1; /* 0..2 to -1..1 */ + + *pOut++ = x; + } +#endif +} + +DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = pIn[i] * 0.000030517578125f; + } +} + +DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + double x; + drwav_uint32 a = ((drwav_uint32)(pIn[i*3+0]) << 8); + drwav_uint32 b = ((drwav_uint32)(pIn[i*3+1]) << 16); + drwav_uint32 c = ((drwav_uint32)(pIn[i*3+2]) << 24); + + x = (double)((drwav_int32)(a | b | c) >> 8); + *pOut++ = (float)(x * 0.00000011920928955078125); + } +} + +DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (float)(pIn[i] / 2147483648.0); + } +} + +DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (float)pIn[i]; + } +} + +DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = drwav__alaw_to_s16(pIn[i]) / 32768.0f; + } +} + +DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = drwav__mulaw_to_s16(pIn[i]) / 32768.0f; + } +} + + + +DRWAV_PRIVATE void drwav__pcm_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + unsigned int i; + + /* Special case for 8-bit sample data because it's treated as unsigned. */ + if (bytesPerSample == 1) { + drwav_u8_to_s32(pOut, pIn, totalSampleCount); + return; + } + + /* Slightly more optimal implementation for common formats. */ + if (bytesPerSample == 2) { + drwav_s16_to_s32(pOut, (const drwav_int16*)pIn, totalSampleCount); + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_s32(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 4) { + for (i = 0; i < totalSampleCount; ++i) { + *pOut++ = ((const drwav_int32*)pIn)[i]; + } + return; + } + + + /* Anything more than 64 bits per sample is not supported. */ + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } + + + /* Generic, slow converter. */ + for (i = 0; i < totalSampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + + pIn += j; + *pOut++ = (drwav_int32)((drwav_int64)sample >> 32); + } +} + +DRWAV_PRIVATE void drwav__ieee_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + drwav_f32_to_s32(pOut, (const float*)pIn, totalSampleCount); + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_s32(pOut, (const double*)pIn, totalSampleCount); + return; + } else { + /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } +} + + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + /* Fast path. */ + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 32) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__pcm_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__msadpcm_ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + /* + We're just going to borrow the implementation from the drwav_read_s16() since ADPCM is a little bit more complicated than other formats and I don't + want to duplicate that code. + */ + drwav_uint64 totalFramesRead = 0; + drwav_int16 samples16[2048]; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels); + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ + + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav__ieee_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_alaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096] = {0}; + drwav_uint32 bytesPerFrame; + drwav_uint32 bytesPerSample; + drwav_uint64 samplesRead; + + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + + bytesPerSample = bytesPerFrame / pWav->channels; + if (bytesPerSample == 0 || (bytesPerFrame % pWav->channels) != 0) { + return 0; /* Only byte-aligned formats are supported. */ + } + + totalFramesRead = 0; + + while (framesToRead > 0) { + drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + if (framesRead == 0) { + break; + } + + DRWAV_ASSERT(framesRead <= framesToReadThisIteration); /* If this fails it means there's a bug in drwav_read_pcm_frames(). */ + + /* Validation to ensure we don't read too much from out intermediary buffer. This is to protect from invalid files. */ + samplesRead = framesRead * pWav->channels; + if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { + DRWAV_ASSERT(DRWAV_FALSE); /* This should never happen with a valid file. */ + break; + } + + drwav_mulaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + + #ifdef DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == drwav_container_aiff) { + drwav_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif + + pBufferOut += samplesRead; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + + return totalFramesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + + /* Don't try to read more samples than can potentially fit in the output buffer. */ + if (framesToRead * pWav->channels * sizeof(drwav_int32) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int32) / pWav->channels; + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_s32__pcm(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_s32__msadpcm_ima(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_s32__ieee(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_s32__alaw(pWav, framesToRead, pBufferOut); + } + + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_s32__mulaw(pWav, framesToRead, pBufferOut); + } + + return 0; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + } + + return framesRead; +} + + +DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((int)pIn[i] - 128) << 24; + } +} + +DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = pIn[i] << 16; + } +} + +DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + unsigned int s0 = pIn[i*3 + 0]; + unsigned int s1 = pIn[i*3 + 1]; + unsigned int s2 = pIn[i*3 + 2]; + + drwav_int32 sample32 = (drwav_int32)((s0 << 8) | (s1 << 16) | (s2 << 24)); + *pOut++ = sample32; + } +} + +DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (drwav_int32)(2147483648.0f * pIn[i]); + } +} + +DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); + } +} + +DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((drwav_int32)drwav__alaw_to_s16(pIn[i])) << 16; + } +} + +DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + + if (pOut == NULL || pIn == NULL) { + return; + } + + for (i= 0; i < sampleCount; ++i) { + *pOut++ = ((drwav_int32)drwav__mulaw_to_s16(pIn[i])) << 16; + } +} + + + +DRWAV_PRIVATE drwav_int16* drwav__read_pcm_frames_and_close_s16(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + drwav_int16* pSampleData; + drwav_uint64 framesRead; + + DRWAV_ASSERT(pWav != NULL); + + /* Check for overflow before multiplication. */ + if (pWav->channels == 0 || pWav->totalPCMFrameCount > DRWAV_SIZE_MAX / pWav->channels / sizeof(drwav_int16)) { + drwav_uninit(pWav); + return NULL; /* Overflow or invalid channels. */ + } + + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int16); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; /* File's too big. */ + } + + pSampleData = (drwav_int16*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; /* Failed to allocate memory. */ + } + + framesRead = drwav_read_pcm_frames_s16(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; /* There was an error reading the samples. */ + } + + drwav_uninit(pWav); + + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + + return pSampleData; +} + +DRWAV_PRIVATE float* drwav__read_pcm_frames_and_close_f32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + float* pSampleData; + drwav_uint64 framesRead; + + DRWAV_ASSERT(pWav != NULL); + + /* Check for overflow before multiplication. */ + if (pWav->channels == 0 || pWav->totalPCMFrameCount > DRWAV_SIZE_MAX / pWav->channels / sizeof(float)) { + drwav_uninit(pWav); + return NULL; /* Overflow or invalid channels. */ + } + + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(float); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; /* File's too big. */ + } + + pSampleData = (float*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; /* Failed to allocate memory. */ + } + + framesRead = drwav_read_pcm_frames_f32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; /* There was an error reading the samples. */ + } + + drwav_uninit(pWav); + + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + + return pSampleData; +} + +DRWAV_PRIVATE drwav_int32* drwav__read_pcm_frames_and_close_s32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + drwav_int32* pSampleData; + drwav_uint64 framesRead; + + DRWAV_ASSERT(pWav != NULL); + + /* Check for overflow before multiplication. */ + if (pWav->channels == 0 || pWav->totalPCMFrameCount > DRWAV_SIZE_MAX / pWav->channels / sizeof(drwav_int32)) { + drwav_uninit(pWav); + return NULL; /* Overflow or invalid channels. */ + } + + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int32); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; /* File's too big. */ + } + + pSampleData = (drwav_int32*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; /* Failed to allocate memory. */ + } + + framesRead = drwav_read_pcm_frames_s32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; /* There was an error reading the samples. */ + } + + drwav_uninit(pWav); + + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + + return pSampleData; +} + + + +DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init(&wav, onRead, onSeek, onTell, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init(&wav, onRead, onSeek, onTell, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_tell_proc onTell, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init(&wav, onRead, onSeek, onTell, pUserData, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +#ifndef DR_WAV_NO_STDIO +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + + +#ifndef DR_WAV_NO_WCHAR +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +#endif /* DR_WAV_NO_WCHAR */ +#endif /* DR_WAV_NO_STDIO */ + +DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} + +DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +#endif /* DR_WAV_NO_CONVERSION_API */ + + +DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drwav__free_from_callbacks(p, pAllocationCallbacks); + } else { + drwav__free_default(p, NULL); + } +} + +DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data) +{ + return ((drwav_uint16)data[0] << 0) | ((drwav_uint16)data[1] << 8); +} + +DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data) +{ + return (drwav_int16)drwav_bytes_to_u16(data); +} + +DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data) +{ + return drwav_bytes_to_u32_le(data); +} + +DRWAV_API float drwav_bytes_to_f32(const drwav_uint8* data) +{ + union { + drwav_uint32 u32; + float f32; + } value; + + value.u32 = drwav_bytes_to_u32(data); + return value.f32; +} + +DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data) +{ + return (drwav_int32)drwav_bytes_to_u32(data); +} + +DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data) +{ + return + ((drwav_uint64)data[0] << 0) | ((drwav_uint64)data[1] << 8) | ((drwav_uint64)data[2] << 16) | ((drwav_uint64)data[3] << 24) | + ((drwav_uint64)data[4] << 32) | ((drwav_uint64)data[5] << 40) | ((drwav_uint64)data[6] << 48) | ((drwav_uint64)data[7] << 56); +} + +DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data) +{ + return (drwav_int64)drwav_bytes_to_u64(data); +} + + +DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]) +{ + int i; + for (i = 0; i < 16; i += 1) { + if (a[i] != b[i]) { + return DRWAV_FALSE; + } + } + + return DRWAV_TRUE; +} + +DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) +{ + return + a[0] == b[0] && + a[1] == b[1] && + a[2] == b[2] && + a[3] == b[3]; +} + +#ifdef __MRC__ +/* Undo the pragma at the beginning of this file. */ +#pragma options opt reset +#endif + +#endif /* dr_wav_c */ +#endif /* DR_WAV_IMPLEMENTATION */ + +/* +REVISION HISTORY +================ +v0.14.5 - 2026-03-03 + - Fix a crash when loading files with a malformed "smpl" chunk. + - Fix a signed overflow bug with the MS-ADPCM decoder. + +v0.14.4 - 2026-01-17 + - Fix some compilation warnings. + +v0.14.3 - 2025-12-14 + - Fix a possible out-of-bounds read when reading from MS-ADPCM encoded files. + - Fix a possible integer overflow error. + +v0.14.2 - 2025-12-02 + - Fix a compilation warning. + +v0.14.1 - 2025-09-10 + - Fix an error with the NXDK build. + +v0.14.0 - 2025-07-23 + - API CHANGE: Seek origin enums have been renamed to the following: + - drwav_seek_origin_start -> DRWAV_SEEK_SET + - drwav_seek_origin_current -> DRWAV_SEEK_CUR + - DRWAV_SEEK_END (new) + - API CHANGE: A new seek origin has been added to allow seeking from the end of the file. If you implement your own `onSeek` callback, you must now handle `DRWAV_SEEK_END`. If you only use `*_init_file()` or `*_init_memory()`, you need not change anything. + - API CHANGE: An `onTell` callback has been added to the following functions: + - drwav_init() + - drwav_init_ex() + - drwav_init_with_metadata() + - drwav_open_and_read_pcm_frames_s16() + - drwav_open_and_read_pcm_frames_f32() + - drwav_open_and_read_pcm_frames_s32() + - API CHANGE: The `firstSampleByteOffset`, `lastSampleByteOffset` and `sampleByteOffset` members of `drwav_cue_point` have been renamed to `firstSampleOffset`, `lastSampleOffset` and `sampleOffset`, respectively. + - Fix a static analysis warning. + - Fix compilation for AIX OS. + +v0.13.17 - 2024-12-17 + - Fix a possible crash when reading from MS-ADPCM encoded files. + - Improve detection of ARM64EC + +v0.13.16 - 2024-02-27 + - Fix a Wdouble-promotion warning. + +v0.13.15 - 2024-01-23 + - Relax some unnecessary validation that prevented some files from loading. + +v0.13.14 - 2023-12-02 + - Fix a warning about an unused variable. + +v0.13.13 - 2023-11-02 + - Fix a warning when compiling with Clang. + +v0.13.12 - 2023-08-07 + - Fix a possible crash in drwav_read_pcm_frames(). + +v0.13.11 - 2023-07-07 + - AIFF compatibility improvements. + +v0.13.10 - 2023-05-29 + - Fix a bug where drwav_init_with_metadata() does not decode any frames after initializtion. + +v0.13.9 - 2023-05-22 + - Add support for AIFF decoding (writing and metadata not supported). + - Add support for RIFX decoding (writing and metadata not supported). + - Fix a bug where metadata is not processed if it's located before the "fmt " chunk. + - Add a workaround for a type of malformed WAV file where the size of the "RIFF" and "data" chunks + are incorrectly set to 0xFFFFFFFF. + +v0.13.8 - 2023-03-25 + - Fix a possible null pointer dereference. + - Fix a crash when loading files with badly formed metadata. + +v0.13.7 - 2022-09-17 + - Fix compilation with DJGPP. + - Add support for disabling wchar_t with DR_WAV_NO_WCHAR. + +v0.13.6 - 2022-04-10 + - Fix compilation error on older versions of GCC. + - Remove some dependencies on the standard library. + +v0.13.5 - 2022-01-26 + - Fix an error when seeking to the end of the file. + +v0.13.4 - 2021-12-08 + - Fix some static analysis warnings. + +v0.13.3 - 2021-11-24 + - Fix an incorrect assertion when trying to endian swap 1-byte sample formats. This is now a no-op + rather than a failed assertion. + - Fix a bug with parsing of the bext chunk. + - Fix some static analysis warnings. + +v0.13.2 - 2021-10-02 + - Fix a possible buffer overflow when reading from compressed formats. + +v0.13.1 - 2021-07-31 + - Fix platform detection for ARM64. + +v0.13.0 - 2021-07-01 + - Improve support for reading and writing metadata. Use the `_with_metadata()` APIs to initialize + a WAV decoder and store the metadata within the `drwav` object. Use the `pMetadata` and + `metadataCount` members of the `drwav` object to read the data. The old way of handling metadata + via a callback is still usable and valid. + - API CHANGE: drwav_target_write_size_bytes() now takes extra parameters for calculating the + required write size when writing metadata. + - Add drwav_get_cursor_in_pcm_frames() + - Add drwav_get_length_in_pcm_frames() + - Fix a bug where drwav_read_raw() can call the read callback with a byte count of zero. + +v0.12.20 - 2021-06-11 + - Fix some undefined behavior. + +v0.12.19 - 2021-02-21 + - Fix a warning due to referencing _MSC_VER when it is undefined. + - Minor improvements to the management of some internal state concerning the data chunk cursor. + +v0.12.18 - 2021-01-31 + - Clean up some static analysis warnings. + +v0.12.17 - 2021-01-17 + - Minor fix to sample code in documentation. + - Correctly qualify a private API as private rather than public. + - Code cleanup. + +v0.12.16 - 2020-12-02 + - Fix a bug when trying to read more bytes than can fit in a size_t. + +v0.12.15 - 2020-11-21 + - Fix compilation with OpenWatcom. + +v0.12.14 - 2020-11-13 + - Minor code clean up. + +v0.12.13 - 2020-11-01 + - Improve compiler support for older versions of GCC. + +v0.12.12 - 2020-09-28 + - Add support for RF64. + - Fix a bug in writing mode where the size of the RIFF chunk incorrectly includes the header section. + +v0.12.11 - 2020-09-08 + - Fix a compilation error on older compilers. + +v0.12.10 - 2020-08-24 + - Fix a bug when seeking with ADPCM formats. + +v0.12.9 - 2020-08-02 + - Simplify sized types. + +v0.12.8 - 2020-07-25 + - Fix a compilation warning. + +v0.12.7 - 2020-07-15 + - Fix some bugs on big-endian architectures. + - Fix an error in s24 to f32 conversion. + +v0.12.6 - 2020-06-23 + - Change drwav_read_*() to allow NULL to be passed in as the output buffer which is equivalent to a forward seek. + - Fix a buffer overflow when trying to decode invalid IMA-ADPCM files. + - Add include guard for the implementation section. + +v0.12.5 - 2020-05-27 + - Minor documentation fix. + +v0.12.4 - 2020-05-16 + - Replace assert() with DRWAV_ASSERT(). + - Add compile-time and run-time version querying. + - DRWAV_VERSION_MINOR + - DRWAV_VERSION_MAJOR + - DRWAV_VERSION_REVISION + - DRWAV_VERSION_STRING + - drwav_version() + - drwav_version_string() + +v0.12.3 - 2020-04-30 + - Fix compilation errors with VC6. + +v0.12.2 - 2020-04-21 + - Fix a bug where drwav_init_file() does not close the file handle after attempting to load an erroneous file. + +v0.12.1 - 2020-04-13 + - Fix some pedantic warnings. + +v0.12.0 - 2020-04-04 + - API CHANGE: Add container and format parameters to the chunk callback. + - Minor documentation updates. + +v0.11.5 - 2020-03-07 + - Fix compilation error with Visual Studio .NET 2003. + +v0.11.4 - 2020-01-29 + - Fix some static analysis warnings. + - Fix a bug when reading f32 samples from an A-law encoded stream. + +v0.11.3 - 2020-01-12 + - Minor changes to some f32 format conversion routines. + - Minor bug fix for ADPCM conversion when end of file is reached. + +v0.11.2 - 2019-12-02 + - Fix a possible crash when using custom memory allocators without a custom realloc() implementation. + - Fix an integer overflow bug. + - Fix a null pointer dereference bug. + - Add limits to sample rate, channels and bits per sample to tighten up some validation. + +v0.11.1 - 2019-10-07 + - Internal code clean up. + +v0.11.0 - 2019-10-06 + - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation + routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: + - drwav_init() + - drwav_init_ex() + - drwav_init_file() + - drwav_init_file_ex() + - drwav_init_file_w() + - drwav_init_file_w_ex() + - drwav_init_memory() + - drwav_init_memory_ex() + - drwav_init_write() + - drwav_init_write_sequential() + - drwav_init_write_sequential_pcm_frames() + - drwav_init_file_write() + - drwav_init_file_write_sequential() + - drwav_init_file_write_sequential_pcm_frames() + - drwav_init_file_write_w() + - drwav_init_file_write_sequential_w() + - drwav_init_file_write_sequential_pcm_frames_w() + - drwav_init_memory_write() + - drwav_init_memory_write_sequential() + - drwav_init_memory_write_sequential_pcm_frames() + - drwav_open_and_read_pcm_frames_s16() + - drwav_open_and_read_pcm_frames_f32() + - drwav_open_and_read_pcm_frames_s32() + - drwav_open_file_and_read_pcm_frames_s16() + - drwav_open_file_and_read_pcm_frames_f32() + - drwav_open_file_and_read_pcm_frames_s32() + - drwav_open_file_and_read_pcm_frames_s16_w() + - drwav_open_file_and_read_pcm_frames_f32_w() + - drwav_open_file_and_read_pcm_frames_s32_w() + - drwav_open_memory_and_read_pcm_frames_s16() + - drwav_open_memory_and_read_pcm_frames_f32() + - drwav_open_memory_and_read_pcm_frames_s32() + Set this extra parameter to NULL to use defaults which is the same as the previous behaviour. Setting this NULL will use + DRWAV_MALLOC, DRWAV_REALLOC and DRWAV_FREE. + - Add support for reading and writing PCM frames in an explicit endianness. New APIs: + - drwav_read_pcm_frames_le() + - drwav_read_pcm_frames_be() + - drwav_read_pcm_frames_s16le() + - drwav_read_pcm_frames_s16be() + - drwav_read_pcm_frames_f32le() + - drwav_read_pcm_frames_f32be() + - drwav_read_pcm_frames_s32le() + - drwav_read_pcm_frames_s32be() + - drwav_write_pcm_frames_le() + - drwav_write_pcm_frames_be() + - Remove deprecated APIs. + - API CHANGE: The following APIs now return native-endian data. Previously they returned little-endian data. + - drwav_read_pcm_frames() + - drwav_read_pcm_frames_s16() + - drwav_read_pcm_frames_s32() + - drwav_read_pcm_frames_f32() + - drwav_open_and_read_pcm_frames_s16() + - drwav_open_and_read_pcm_frames_s32() + - drwav_open_and_read_pcm_frames_f32() + - drwav_open_file_and_read_pcm_frames_s16() + - drwav_open_file_and_read_pcm_frames_s32() + - drwav_open_file_and_read_pcm_frames_f32() + - drwav_open_file_and_read_pcm_frames_s16_w() + - drwav_open_file_and_read_pcm_frames_s32_w() + - drwav_open_file_and_read_pcm_frames_f32_w() + - drwav_open_memory_and_read_pcm_frames_s16() + - drwav_open_memory_and_read_pcm_frames_s32() + - drwav_open_memory_and_read_pcm_frames_f32() + +v0.10.1 - 2019-08-31 + - Correctly handle partial trailing ADPCM blocks. + +v0.10.0 - 2019-08-04 + - Remove deprecated APIs. + - Add wchar_t variants for file loading APIs: + drwav_init_file_w() + drwav_init_file_ex_w() + drwav_init_file_write_w() + drwav_init_file_write_sequential_w() + - Add drwav_target_write_size_bytes() which calculates the total size in bytes of a WAV file given a format and sample count. + - Add APIs for specifying the PCM frame count instead of the sample count when opening in sequential write mode: + drwav_init_write_sequential_pcm_frames() + drwav_init_file_write_sequential_pcm_frames() + drwav_init_file_write_sequential_pcm_frames_w() + drwav_init_memory_write_sequential_pcm_frames() + - Deprecate drwav_open*() and drwav_close(): + drwav_open() + drwav_open_ex() + drwav_open_write() + drwav_open_write_sequential() + drwav_open_file() + drwav_open_file_ex() + drwav_open_file_write() + drwav_open_file_write_sequential() + drwav_open_memory() + drwav_open_memory_ex() + drwav_open_memory_write() + drwav_open_memory_write_sequential() + drwav_close() + - Minor documentation updates. + +v0.9.2 - 2019-05-21 + - Fix warnings. + +v0.9.1 - 2019-05-05 + - Add support for C89. + - Change license to choice of public domain or MIT-0. + +v0.9.0 - 2018-12-16 + - API CHANGE: Add new reading APIs for reading by PCM frames instead of samples. Old APIs have been deprecated and + will be removed in v0.10.0. Deprecated APIs and their replacements: + drwav_read() -> drwav_read_pcm_frames() + drwav_read_s16() -> drwav_read_pcm_frames_s16() + drwav_read_f32() -> drwav_read_pcm_frames_f32() + drwav_read_s32() -> drwav_read_pcm_frames_s32() + drwav_seek_to_sample() -> drwav_seek_to_pcm_frame() + drwav_write() -> drwav_write_pcm_frames() + drwav_open_and_read_s16() -> drwav_open_and_read_pcm_frames_s16() + drwav_open_and_read_f32() -> drwav_open_and_read_pcm_frames_f32() + drwav_open_and_read_s32() -> drwav_open_and_read_pcm_frames_s32() + drwav_open_file_and_read_s16() -> drwav_open_file_and_read_pcm_frames_s16() + drwav_open_file_and_read_f32() -> drwav_open_file_and_read_pcm_frames_f32() + drwav_open_file_and_read_s32() -> drwav_open_file_and_read_pcm_frames_s32() + drwav_open_memory_and_read_s16() -> drwav_open_memory_and_read_pcm_frames_s16() + drwav_open_memory_and_read_f32() -> drwav_open_memory_and_read_pcm_frames_f32() + drwav_open_memory_and_read_s32() -> drwav_open_memory_and_read_pcm_frames_s32() + drwav::totalSampleCount -> drwav::totalPCMFrameCount + - API CHANGE: Rename drwav_open_and_read_file_*() to drwav_open_file_and_read_*(). + - API CHANGE: Rename drwav_open_and_read_memory_*() to drwav_open_memory_and_read_*(). + - Add built-in support for smpl chunks. + - Add support for firing a callback for each chunk in the file at initialization time. + - This is enabled through the drwav_init_ex(), etc. family of APIs. + - Handle invalid FMT chunks more robustly. + +v0.8.5 - 2018-09-11 + - Const correctness. + - Fix a potential stack overflow. + +v0.8.4 - 2018-08-07 + - Improve 64-bit detection. + +v0.8.3 - 2018-08-05 + - Fix C++ build on older versions of GCC. + +v0.8.2 - 2018-08-02 + - Fix some big-endian bugs. + +v0.8.1 - 2018-06-29 + - Add support for sequential writing APIs. + - Disable seeking in write mode. + - Fix bugs with Wave64. + - Fix typos. + +v0.8 - 2018-04-27 + - Bug fix. + - Start using major.minor.revision versioning. + +v0.7f - 2018-02-05 + - Restrict ADPCM formats to a maximum of 2 channels. + +v0.7e - 2018-02-02 + - Fix a crash. + +v0.7d - 2018-02-01 + - Fix a crash. + +v0.7c - 2018-02-01 + - Set drwav.bytesPerSample to 0 for all compressed formats. + - Fix a crash when reading 16-bit floating point WAV files. In this case dr_wav will output silence for + all format conversion reading APIs (*_s16, *_s32, *_f32 APIs). + - Fix some divide-by-zero errors. + +v0.7b - 2018-01-22 + - Fix errors with seeking of compressed formats. + - Fix compilation error when DR_WAV_NO_CONVERSION_API + +v0.7a - 2017-11-17 + - Fix some GCC warnings. + +v0.7 - 2017-11-04 + - Add writing APIs. + +v0.6 - 2017-08-16 + - API CHANGE: Rename dr_* types to drwav_*. + - Add support for custom implementations of malloc(), realloc(), etc. + - Add support for Microsoft ADPCM. + - Add support for IMA ADPCM (DVI, format code 0x11). + - Optimizations to drwav_read_s16(). + - Bug fixes. + +v0.5g - 2017-07-16 + - Change underlying type for booleans to unsigned. + +v0.5f - 2017-04-04 + - Fix a minor bug with drwav_open_and_read_s16() and family. + +v0.5e - 2016-12-29 + - Added support for reading samples as signed 16-bit integers. Use the _s16() family of APIs for this. + - Minor fixes to documentation. + +v0.5d - 2016-12-28 + - Use drwav_int* and drwav_uint* sized types to improve compiler support. + +v0.5c - 2016-11-11 + - Properly handle JUNK chunks that come before the FMT chunk. + +v0.5b - 2016-10-23 + - A minor change to drwav_bool8 and drwav_bool32 types. + +v0.5a - 2016-10-11 + - Fixed a bug with drwav_open_and_read() and family due to incorrect argument ordering. + - Improve A-law and mu-law efficiency. + +v0.5 - 2016-09-29 + - API CHANGE. Swap the order of "channels" and "sampleRate" parameters in drwav_open_and_read*(). Rationale for this is to + keep it consistent with dr_audio and dr_flac. + +v0.4b - 2016-09-18 + - Fixed a typo in documentation. + +v0.4a - 2016-09-18 + - Fixed a typo. + - Change date format to ISO 8601 (YYYY-MM-DD) + +v0.4 - 2016-07-13 + - API CHANGE. Make onSeek consistent with dr_flac. + - API CHANGE. Rename drwav_seek() to drwav_seek_to_sample() for clarity and consistency with dr_flac. + - Added support for Sony Wave64. + +v0.3a - 2016-05-28 + - API CHANGE. Return drwav_bool32 instead of int in onSeek callback. + - Fixed a memory leak. + +v0.3 - 2016-05-22 + - Lots of API changes for consistency. + +v0.2a - 2016-05-16 + - Fixed Linux/GCC build. + +v0.2 - 2016-05-11 + - Added support for reading data as signed 32-bit PCM for consistency with dr_flac. + +v0.1a - 2016-05-07 + - Fixed a bug in drwav_open_file() where the file handle would not be closed if the loader failed to initialize. + +v0.1 - 2016-05-04 + - Initial versioned release. +*/ + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2023 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ diff --git a/lib/All/json-schema-validator/lib/libnlohmann_json_schema_validator.a b/lib/All/json-schema-validator/lib/libnlohmann_json_schema_validator.a index 89a6ed777ec86d2d3763808d0c03f6063a0a416d..757b8346559022bf8a18ffc6e3a6f3d9fc7379d0 100644 GIT binary patch literal 1693978 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%0DqQLq@)ja>bvBBA_S- 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%0D@pKYJUdA*MdsgF^TwLB7}##a`2ByP|4W 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⩔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≈?TVc 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 rqpl%#Tj> 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 H`TFy&n+^ZF@ITW2^5-u2?ApIy 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�kb^;}SJI52&&&szCu!B?-SETON`H3Jis!Vx$Df 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

ImhG-lCK6)Q?e_lkw%V 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 diff --git a/lib/All/jsonfmcpp/include/nlohmann/adl_serializer.hpp b/lib/All/jsonfmcpp/include/nlohmann/adl_serializer.hpp index 56a606c..5df1af3 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/adl_serializer.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/adl_serializer.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/byte_container_with_subtype.hpp b/lib/All/jsonfmcpp/include/nlohmann/byte_container_with_subtype.hpp index 91382cd..d6398e6 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/byte_container_with_subtype.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/byte_container_with_subtype.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/abi_macros.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/abi_macros.hpp index f48b9eb..76cf336 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/abi_macros.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/abi_macros.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -12,20 +12,24 @@ #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) - #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0 #warning "Already included a different version of the library!" #endif #endif #endif #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum) #ifndef JSON_DIAGNOSTICS #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -36,6 +40,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -47,14 +57,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/from_json.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/from_json.hpp index aa2f0cb..d647d74 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/from_json.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/from_json.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -13,6 +13,9 @@ #include // forward_list #include // inserter, front_inserter, end #include // map +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -43,6 +46,24 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) n = nullptr; } +#ifdef JSON_HAS_CPP_17 +#ifndef JSON_USE_IMPLICIT_CONVERSIONS +template +void from_json(const BasicJsonType& j, std::optional& opt) +{ + if (j.is_null()) + { + opt = std::nullopt; + } + else + { + opt.emplace(j.template get()); + } +} + +#endif // JSON_USE_IMPLICIT_CONVERSIONS +#endif // JSON_HAS_CPP_17 + // overloads for basic_json template parameters template < typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic::value&& @@ -190,6 +211,54 @@ auto from_json(const BasicJsonType& j, T (&arr)[N]) // NOLINT(cppcoreguidelines } } +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + arr[i1][i2] = j.at(i1).at(i2).template get(); + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + arr[i1][i2][i3] = j.at(i1).at(i2).at(i3).template get(); + } + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3][N4]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + for (std::size_t i4 = 0; i4 < N4; ++i4) + { + arr[i1][i2][i3][i4] = j.at(i1).at(i2).at(i3).at(i4).template get(); + } + } + } + } +} + template inline void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) { @@ -275,7 +344,7 @@ void()) template < typename BasicJsonType, typename T, std::size_t... Idx > std::array from_json_inplace_array_impl(BasicJsonType&& j, - identity_tag> /*unused*/, index_sequence /*unused*/) + identity_tag> /*unused*/, index_sequence /*unused*/) { return { { std::forward(j).at(Idx).template get()... } }; } @@ -379,6 +448,12 @@ std::tuple from_json_tuple_impl_base(BasicJsonType&& j, index_sequence< return std::make_tuple(std::forward(j).at(Idx).template get()...); } +template +std::tuple<> from_json_tuple_impl_base(BasicJsonType& /*unused*/, index_sequence<> /*unused*/) +{ + return {}; +} + template < typename BasicJsonType, class A1, class A2 > std::pair from_json_tuple_impl(BasicJsonType&& j, identity_tag> /*unused*/, priority_tag<0> /*unused*/) { @@ -464,7 +539,12 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p) { JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j)); } - p = *j.template get_ptr(); + const auto& s = *j.template get_ptr(); +#ifdef JSON_HAS_CPP_20 + p = std_fs::path(std::u8string_view(reinterpret_cast(s.data()), s.size())); +#else + p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20 +#endif } #endif diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_chars.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_chars.hpp index e10741c..7431041 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_chars.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_chars.hpp @@ -1,10 +1,10 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2009 Florian Loitsch -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -239,10 +239,10 @@ boundaries compute_boundaries(FloatType value) // v- m- v m+ v+ const bool lower_boundary_is_closer = F == 0 && E > 1; - const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_plus = diyfp((2 * v.f) + 1, v.e - 1); const diyfp m_minus = lower_boundary_is_closer - ? diyfp(4 * v.f - 1, v.e - 2) // (B) - : diyfp(2 * v.f - 1, v.e - 1); // (A) + ? diyfp((4 * v.f) - 1, v.e - 2) // (B) + : diyfp((2 * v.f) - 1, v.e - 1); // (A) // Determine the normalized w+ = m+. const diyfp w_plus = diyfp::normalize(m_plus); @@ -472,7 +472,7 @@ inline cached_power get_cached_power_for_binary_exponent(int e) JSON_ASSERT(e >= -1500); JSON_ASSERT(e <= 1500); const int f = kAlpha - e - 1; - const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + const int k = ((f * 78913) / (1 << 18)) + static_cast(f > 0); const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; JSON_ASSERT(index >= 0); @@ -950,15 +950,15 @@ inline char* append_exponent(char* buf, int e) } else if (k < 100) { - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } else { - *buf++ = static_cast('0' + k / 100); + *buf++ = static_cast('0' + (k / 100)); k %= 100; - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_json.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_json.hpp index e39b779..ead4566 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_json.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/conversions/to_json.hpp @@ -1,13 +1,18 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once +#include // JSON_HAS_CPP_17 +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + #include // copy #include // begin, end #include // string @@ -18,7 +23,6 @@ #include // vector #include -#include #include #include #include @@ -260,6 +264,22 @@ struct external_constructor // to_json // ///////////// +#ifdef JSON_HAS_CPP_17 +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::optional& opt) +{ + if (opt.has_value()) + { + j = *opt; + } + else + { + j = nullptr; + } +} +#endif + template::value, int> = 0> inline void to_json(BasicJsonType& j, T b) noexcept @@ -320,7 +340,8 @@ template::type; - external_constructor::construct(j, static_cast(e)); + static constexpr value_t integral_value_t = std::is_unsigned::value ? value_t::number_unsigned : value_t::number_integer; + external_constructor::construct(j, static_cast(e)); } #endif // JSON_DISABLE_ENUM_SERIALIZATION @@ -405,6 +426,13 @@ inline void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence< j = { std::get(t)... }; } +template +inline void to_json_tuple_impl(BasicJsonType& j, const Tuple& /*unused*/, index_sequence<> /*unused*/) +{ + using array_t = typename BasicJsonType::array_t; + j = array_t(); +} + template::value, int > = 0> inline void to_json(BasicJsonType& j, const T& t) { @@ -415,7 +443,12 @@ inline void to_json(BasicJsonType& j, const T& t) template inline void to_json(BasicJsonType& j, const std_fs::path& p) { - j = p.string(); +#ifdef JSON_HAS_CPP_20 + const std::u8string s = p.u8string(); + j = std::string(s.begin(), s.end()); +#else + j = p.u8string(); // returns std::string in C++17 +#endif } #endif diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/exceptions.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/exceptions.hpp index 5974d7b..5ebfb65 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/exceptions.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/exceptions.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -25,6 +25,18 @@ #include #include +// With -Wweak-vtables, Clang will complain about the exception classes as they +// have no out-of-line virtual method definitions and their vtable will be +// emitted in every translation unit. This issue cannot be fixed with a +// header-only library as there is no implementation file to move these +// functions to. As a result, we suppress this warning here to avoid client +// code to stumble over this. See https://github.com/nlohmann/json/issues/4087 +// for a discussion. +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wweak-vtables" +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -119,16 +131,34 @@ class exception : public std::exception { return concat(a, '/', detail::escape(b)); }); - return concat('(', str, ") "); + + return concat('(', str, ") ", get_byte_positions(leaf_element)); #else - static_cast(leaf_element); - return ""; + return get_byte_positions(leaf_element); #endif } private: /// an exception object as storage for error messages std::runtime_error m; +#if JSON_DIAGNOSTIC_POSITIONS + template + static std::string get_byte_positions(const BasicJsonType* leaf_element) + { + if ((leaf_element->start_pos() != std::string::npos) && (leaf_element->end_pos() != std::string::npos)) + { + return concat("(bytes ", std::to_string(leaf_element->start_pos()), "-", std::to_string(leaf_element->end_pos()), ") "); + } + return ""; + } +#else + template + static std::string get_byte_positions(const BasicJsonType* leaf_element) + { + static_cast(leaf_element); + return ""; + } +#endif }; /// @brief exception indicating a parse error @@ -255,3 +285,7 @@ class other_error : public exception } // namespace detail NLOHMANN_JSON_NAMESPACE_END + +#if defined(__clang__) + #pragma clang diagnostic pop +#endif diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/hash.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/hash.hpp index 4464e8e..973943e 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/hash.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/hash.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/binary_reader.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/binary_reader.hpp index a6e100e..2120cf9 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/binary_reader.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/binary_reader.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -20,6 +20,9 @@ #include // char_traits, string #include // make_pair, move #include // vector +#ifdef __cpp_lib_byteswap + #include //byteswap +#endif #include #include @@ -62,7 +65,7 @@ static inline bool little_endianness(int num = 1) noexcept /*! @brief deserialization of CBOR, MessagePack, and UBJSON values */ -template> +template> class binary_reader { using number_integer_t = typename BasicJsonType::number_integer_t; @@ -169,7 +172,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -325,6 +328,12 @@ class binary_reader return get_number(input_format_t::bson, value) && sax->number_integer(value); } + case 0x11: // uint64 + { + std::uint64_t value{}; + return get_number(input_format_t::bson, value) && sax->number_unsigned(value); + } + default: // anything else not supported (yet) { std::array cr{{}}; @@ -391,7 +400,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -651,7 +660,7 @@ class binary_reader } case 0x9F: // array (indefinite length) - return get_cbor_array(static_cast(-1), tag_handler); + return get_cbor_array(detail::unknown_size(), tag_handler); // map (0x00..0x17 pairs of data items follow) case 0xA0: @@ -705,7 +714,7 @@ class binary_reader } case 0xBF: // map (indefinite length) - return get_cbor_object(static_cast(-1), tag_handler); + return get_cbor_object(detail::unknown_size(), tag_handler); case 0xC6: // tagged item case 0xC7: @@ -1093,7 +1102,7 @@ class binary_reader } /*! - @param[in] len the length of the array or static_cast(-1) for an + @param[in] len the length of the array or detail::unknown_size() for an array of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether array creation completed @@ -1106,7 +1115,7 @@ class binary_reader return false; } - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -1131,7 +1140,7 @@ class binary_reader } /*! - @param[in] len the length of the object or static_cast(-1) for an + @param[in] len the length of the object or detail::unknown_size() for an object of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether object creation completed @@ -1147,7 +1156,7 @@ class binary_reader if (len != 0) { string_t key; - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -2310,6 +2319,16 @@ class binary_reader case 'Z': // null return sax->null(); + case 'B': // byte + { + if (input_format != input_format_t::bjdata) + { + break; + } + std::uint8_t number{}; + return get_number(input_format, number) && sax->number_unsigned(number); + } + case 'U': { std::uint8_t number{}; @@ -2510,7 +2529,7 @@ class binary_reader return false; } - if (size_and_type.second == 'C') + if (size_and_type.second == 'C' || size_and_type.second == 'B') { size_and_type.second = 'U'; } @@ -2532,6 +2551,13 @@ class binary_reader return (sax->end_array() && sax->end_object()); } + // If BJData type marker is 'B' decode as binary + if (input_format == input_format_t::bjdata && size_and_type.first != npos && size_and_type.second == 'B') + { + binary_t result; + return get_binary(input_format, size_and_type.first, result) && sax->binary(result); + } + if (size_and_type.first != npos) { if (JSON_HEDLEY_UNLIKELY(!sax->start_array(size_and_type.first))) @@ -2565,7 +2591,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -2643,7 +2669,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -2754,6 +2780,29 @@ class binary_reader return current = ia.get_character(); } + /*! + @brief get_to read into a primitive type + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns false instead + + @return bool, whether the read was successful + */ + template + bool get_to(T& dest, const input_format_t format, const char* context) + { + auto new_chars_read = ia.get_elements(&dest); + chars_read += new_chars_read; + if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T))) + { + // in case of failure, advance position by 1 to report failing location + ++chars_read; + sax->parse_error(chars_read, "", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr)); + return false; + } + return true; + } + /*! @return character read from the input after ignoring all 'N' entries */ @@ -2768,6 +2817,28 @@ class binary_reader return current; } + template + static void byte_swap(NumberType& number) + { + constexpr std::size_t sz = sizeof(number); +#ifdef __cpp_lib_byteswap + if constexpr (sz == 1) + { + return; + } + if constexpr(std::is_integral_v) + { + number = std::byteswap(number); + return; + } +#endif + auto* ptr = reinterpret_cast(&number); + for (std::size_t i = 0; i < sz / 2; ++i) + { + std::swap(ptr[i], ptr[sz - i - 1]); + } + } + /* @brief read a number from the input @@ -2786,29 +2857,16 @@ class binary_reader template bool get_number(const input_format_t format, NumberType& result) { - // step 1: read input into array with system's byte order - std::array vec{}; - for (std::size_t i = 0; i < sizeof(NumberType); ++i) + // read in the original format + + if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number"))) { - get(); - if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) - { - return false; - } - - // reverse byte order prior to conversion if necessary - if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) - { - vec[sizeof(NumberType) - i - 1] = static_cast(current); - } - else - { - vec[i] = static_cast(current); // LCOV_EXCL_LINE - } + return false; + } + if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) + { + byte_swap(result); } - - // step 2: convert array into number of type T and return - std::memcpy(&result, vec.data(), sizeof(NumberType)); return true; } @@ -2947,7 +3005,7 @@ class binary_reader } private: - static JSON_INLINE_VARIABLE constexpr std::size_t npos = static_cast(-1); + static JSON_INLINE_VARIABLE constexpr std::size_t npos = detail::unknown_size(); /// input adapter InputAdapterType ia; @@ -2973,6 +3031,7 @@ class binary_reader #define JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_ \ make_array( \ + bjd_type{'B', "byte"}, \ bjd_type{'C', "char"}, \ bjd_type{'D', "double"}, \ bjd_type{'I', "int16"}, \ diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/input_adapters.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/input_adapters.hpp index 33fca3e..1affd61 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/input_adapters.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/input_adapters.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -23,6 +23,7 @@ #include // istream #endif // JSON_NO_IO +#include #include #include #include @@ -67,6 +68,13 @@ class file_input_adapter return std::fgetc(m_file); } + // returns the number of characters successfully read + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + return fread(dest, 1, sizeof(T) * count, m_file); + } + private: /// the file pointer to read from std::FILE* m_file; @@ -126,6 +134,17 @@ class input_stream_adapter return res; } + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto res = static_cast(sb->sgetn(reinterpret_cast(dest), static_cast(count * sizeof(T)))); + if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T))) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + private: /// the associated input stream std::istream* is = nullptr; @@ -157,6 +176,26 @@ class iterator_input_adapter return char_traits::eof(); } + // for general iterators, we cannot really do something better than falling back to processing the range one-by-one + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto* ptr = reinterpret_cast(dest); + for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index) + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + ptr[read_index] = static_cast(*current); + std::advance(current, 1); + } + else + { + return read_index; + } + } + return count * sizeof(T); + } + private: IteratorType current; IteratorType end; @@ -320,6 +359,13 @@ class wide_string_input_adapter return utf8_bytes[utf8_bytes_index++]; } + // parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here + template + std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1) + { + JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr)); + } + private: BaseInputAdapter base_adapter; @@ -416,10 +462,17 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory::create(container); } +// specialization for std::string +using string_input_adapter_type = decltype(input_adapter(std::declval())); + #ifndef JSON_NO_IO // Special cases with fast paths inline file_input_adapter input_adapter(std::FILE* file) { + if (file == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } return file_input_adapter(file); } @@ -446,9 +499,13 @@ template < typename CharT, int >::type = 0 > contiguous_bytes_input_adapter input_adapter(CharT b) { + if (b == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } auto length = std::strlen(reinterpret_cast(b)); const auto* ptr = reinterpret_cast(b); - return input_adapter(ptr, ptr + length); + return input_adapter(ptr, ptr + length); // cppcheck-suppress[nullPointerArithmeticRedundantCheck] } template diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/json_sax.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/json_sax.hpp index c772521..0ff8778 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/json_sax.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/json_sax.hpp @@ -1,22 +1,23 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include #include // string +#include // enable_if_t #include // move #include // vector #include +#include #include #include - NLOHMANN_JSON_NAMESPACE_BEGIN /*! @@ -144,6 +145,11 @@ struct json_sax namespace detail { +constexpr std::size_t unknown_size() +{ + return (std::numeric_limits::max)(); +} + /*! @brief SAX implementation to create a JSON value from SAX events @@ -157,7 +163,7 @@ constructor contains the parsed value. @tparam BasicJsonType the JSON type */ -template +template class json_sax_dom_parser { public: @@ -166,14 +172,15 @@ class json_sax_dom_parser using number_float_t = typename BasicJsonType::number_float_t; using string_t = typename BasicJsonType::string_t; using binary_t = typename BasicJsonType::binary_t; + using lexer_t = lexer; /*! @param[in,out] r reference to a JSON value that is manipulated while parsing @param[in] allow_exceptions_ whether parse errors yield exceptions */ - explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) - : root(r), allow_exceptions(allow_exceptions_) + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true, lexer_t* lexer_ = nullptr) + : root(r), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) {} // make class move-only @@ -229,7 +236,18 @@ class json_sax_dom_parser { ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) { JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); } @@ -252,6 +270,14 @@ class json_sax_dom_parser JSON_ASSERT(!ref_stack.empty()); JSON_ASSERT(ref_stack.back()->is_object()); +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); ref_stack.pop_back(); return true; @@ -261,7 +287,16 @@ class json_sax_dom_parser { ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) { JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); } @@ -274,6 +309,14 @@ class json_sax_dom_parser JSON_ASSERT(!ref_stack.empty()); JSON_ASSERT(ref_stack.back()->is_array()); +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); ref_stack.pop_back(); return true; @@ -298,6 +341,75 @@ class json_sax_dom_parser } private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + // As we handle the start and end positions for values created during parsing, + // we do not expect the following value type to be called. Regardless, set the positions + // in case this is created manually or through a different constructor. Exclude from lcov + // since the exact condition of this switch is esoteric. + // LCOV_EXCL_START + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + // LCOV_EXCL_STOP + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + /*! @invariant If the ref stack is empty, then the passed value will be the new root. @@ -311,6 +423,11 @@ class json_sax_dom_parser if (ref_stack.empty()) { root = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(root); +#endif + return &root; } @@ -319,12 +436,22 @@ class json_sax_dom_parser if (ref_stack.back()->is_array()) { ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(ref_stack.back()->m_data.m_value.array->back()); +#endif + return &(ref_stack.back()->m_data.m_value.array->back()); } JSON_ASSERT(ref_stack.back()->is_object()); JSON_ASSERT(object_element); *object_element = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(*object_element); +#endif + return object_element; } @@ -338,9 +465,11 @@ class json_sax_dom_parser bool errored = false; /// whether to throw exceptions in case of errors const bool allow_exceptions = true; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; }; -template +template class json_sax_dom_callback_parser { public: @@ -351,11 +480,13 @@ class json_sax_dom_callback_parser using binary_t = typename BasicJsonType::binary_t; using parser_callback_t = typename BasicJsonType::parser_callback_t; using parse_event_t = typename BasicJsonType::parse_event_t; + using lexer_t = lexer; json_sax_dom_callback_parser(BasicJsonType& r, - const parser_callback_t cb, - const bool allow_exceptions_ = true) - : root(r), callback(cb), allow_exceptions(allow_exceptions_) + parser_callback_t cb, + const bool allow_exceptions_ = true, + lexer_t* lexer_ = nullptr) + : root(r), callback(std::move(cb)), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) { keep_stack.push_back(true); } @@ -418,12 +549,26 @@ class json_sax_dom_callback_parser auto val = handle_value(BasicJsonType::value_t::object, true); ref_stack.push_back(val.second); - // check object limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) + if (ref_stack.back()) { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check object limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + } return true; } @@ -452,9 +597,23 @@ class json_sax_dom_callback_parser { // discard object *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded object. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif } else { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); } } @@ -488,10 +647,25 @@ class json_sax_dom_callback_parser auto val = handle_value(BasicJsonType::value_t::array, true); ref_stack.push_back(val.second); - // check array limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) + if (ref_stack.back()) { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the array, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check array limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } } return true; @@ -506,12 +680,26 @@ class json_sax_dom_callback_parser keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); if (keep) { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + ref_stack.back()->set_parents(); } else { // discard array *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded array. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif } } @@ -548,6 +736,71 @@ class json_sax_dom_callback_parser } private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + /*! @param[in] v value to add to the JSON value we build during parsing @param[in] skip_callback whether we should skip calling the callback @@ -578,6 +831,10 @@ class json_sax_dom_callback_parser // create value auto value = BasicJsonType(std::forward(v)); +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(value); +#endif + // check callback const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); @@ -632,9 +889,9 @@ class json_sax_dom_callback_parser /// stack to model hierarchy of values std::vector ref_stack {}; /// stack to manage which values to keep - std::vector keep_stack {}; + std::vector keep_stack {}; // NOLINT(readability-redundant-member-init) /// stack to manage which object keys to keep - std::vector key_keep_stack {}; + std::vector key_keep_stack {}; // NOLINT(readability-redundant-member-init) /// helper to hold the reference for the next object element BasicJsonType* object_element = nullptr; /// whether a syntax error occurred @@ -645,6 +902,8 @@ class json_sax_dom_callback_parser const bool allow_exceptions = true; /// a discarded value for the callback BasicJsonType discarded = BasicJsonType::value_t::discarded; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; }; template @@ -692,7 +951,7 @@ class json_sax_acceptor return true; } - bool start_object(std::size_t /*unused*/ = static_cast(-1)) + bool start_object(std::size_t /*unused*/ = detail::unknown_size()) { return true; } @@ -707,7 +966,7 @@ class json_sax_acceptor return true; } - bool start_array(std::size_t /*unused*/ = static_cast(-1)) + bool start_array(std::size_t /*unused*/ = detail::unknown_size()) { return true; } diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/lexer.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/lexer.hpp index 4b3bf77..2b4e80a 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/lexer.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/lexer.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -967,7 +967,7 @@ class lexer : public lexer_base locale's decimal point is used instead of `.` to work with the locale-dependent converters. */ - token_type scan_number() // lgtm [cpp/use-of-goto] + token_type scan_number() // lgtm [cpp/use-of-goto] `goto` is used in this function to implement the number-parsing state machine described above. By design, any finite input will eventually reach the "done" state or return token_type::parse_error. In each intermediate state, 1 byte of the input is appended to the token_buffer vector, and only the already initialized variables token_buffer, number_type, and error_message are manipulated. { // reset token_buffer to store the number's bytes reset(); @@ -1049,6 +1049,7 @@ scan_number_zero: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -1085,6 +1086,7 @@ scan_number_any1: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -1245,7 +1247,7 @@ scan_number_done: // we are done scanning a number) unget(); - char* endptr = nullptr; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + char* endptr = nullptr; // NOLINT(misc-const-correctness,cppcoreguidelines-pro-type-vararg,hicpp-vararg) errno = 0; // try to parse integers first and fall back to floats @@ -1256,7 +1258,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_unsigned = static_cast(x); if (value_unsigned == x) @@ -1272,7 +1274,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_integer = static_cast(x); if (value_integer == x) @@ -1322,6 +1324,7 @@ scan_number_done: { token_buffer.clear(); token_string.clear(); + decimal_point_position = std::string::npos; token_string.push_back(char_traits::to_char_type(current)); } @@ -1430,6 +1433,11 @@ scan_number_done: /// return current string value (implicitly resets the token; useful only once) string_t& get_string() { + // translate decimal points from locale back to '.' (#4084) + if (decimal_point_char != '.' && decimal_point_position != std::string::npos) + { + token_buffer[decimal_point_position] = '.'; + } return token_buffer; } @@ -1627,6 +1635,8 @@ scan_number_done: /// the decimal point const char_int_type decimal_point_char = '.'; + /// the position of the decimal point in the input + std::size_t decimal_point_position = std::string::npos; }; } // namespace detail diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/parser.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/parser.hpp index bdf85ba..b5a5a52 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/parser.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/parser.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -69,10 +69,10 @@ class parser public: /// a parser reading from an input adapter explicit parser(InputAdapterType&& adapter, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions_ = true, const bool skip_comments = false) - : callback(cb) + : callback(std::move(cb)) , m_lexer(std::move(adapter), skip_comments) , allow_exceptions(allow_exceptions_) { @@ -94,7 +94,7 @@ class parser { if (callback) { - json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -122,7 +122,7 @@ class parser } else { - json_sax_dom_parser sdp(result, allow_exceptions); + json_sax_dom_parser sdp(result, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -194,7 +194,7 @@ class parser { case token_type::begin_object: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -239,7 +239,7 @@ class parser case token_type::begin_array: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/input/position_t.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/input/position_t.hpp index 8ac7c78..c26c5f4 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/input/position_t.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/input/position_t.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/internal_iterator.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/internal_iterator.hpp index 2991ee6..9f3c8e6 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/internal_iterator.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/internal_iterator.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iter_impl.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iter_impl.hpp index 4447091..45864e8 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iter_impl.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iter_impl.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -463,7 +463,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator==(const IterImpl& other) const @@ -474,7 +474,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + return true; + } switch (m_object->m_data.m_type) { @@ -499,7 +503,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator!=(const IterImpl& other) const @@ -509,7 +513,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<(const iter_impl& other) const { @@ -519,7 +523,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + // the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false + return false; + } switch (m_object->m_data.m_type) { @@ -544,7 +553,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<=(const iter_impl& other) const { @@ -553,7 +562,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator>(const iter_impl& other) const { @@ -562,7 +571,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized. */ bool operator>=(const iter_impl& other) const { diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iteration_proxy.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iteration_proxy.hpp index 76293de..78e0d8b 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iteration_proxy.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iteration_proxy.hpp @@ -1,16 +1,15 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include // size_t -#include // input_iterator_tag -#include // string, to_string +#include // forward_iterator_tag #include // tuple_size, get, tuple_element #include // move @@ -20,19 +19,13 @@ #include #include +#include #include NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { -template -void int_to_string( string_type& target, std::size_t value ) -{ - // For ADL - using std::to_string; - target = to_string(value); -} template class iteration_proxy_value { public: @@ -40,7 +33,7 @@ template class iteration_proxy_value using value_type = iteration_proxy_value; using pointer = value_type *; using reference = value_type &; - using iterator_category = std::input_iterator_tag; + using iterator_category = std::forward_iterator_tag; using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; private: @@ -220,7 +213,7 @@ namespace std #endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> // NOLINT(cert-dcl58-cpp) - : public std::integral_constant {}; + : public std::integral_constant {}; template class tuple_element> // NOLINT(cert-dcl58-cpp) diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iterator_traits.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iterator_traits.hpp index 84cc27a..5ca92a5 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iterator_traits.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/iterator_traits.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -43,7 +43,7 @@ struct iterator_traits template struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> - : iterator_types + : iterator_types { }; diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/json_reverse_iterator.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/json_reverse_iterator.hpp index 006d549..f979d85 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/json_reverse_iterator.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/primitive_iterator.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/primitive_iterator.hpp index 0b6e849..3a23834 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/primitive_iterator.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/iterators/primitive_iterator.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/json_custom_base_class.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/json_custom_base_class.hpp index d1e2916..91e0c80 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/json_custom_base_class.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/json_custom_base_class.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/json_pointer.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/json_pointer.hpp index 4fdcd9a..1f76497 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/json_pointer.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/json_pointer.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -228,7 +228,7 @@ class json_pointer } const char* p = s.c_str(); - char* p_end = nullptr; + char* p_end = nullptr; // NOLINT(misc-const-correctness) errno = 0; // strtoull doesn't reset errno const unsigned long long res = std::strtoull(p, &p_end, 10); // NOLINT(runtime/int) if (p == p_end // invalid input or empty string @@ -750,7 +750,7 @@ class json_pointer // iterate array and use index as reference string for (std::size_t i = 0; i < value.m_data.m_value.array->size(); ++i) { - flatten(detail::concat(reference_string, '/', std::to_string(i)), + flatten(detail::concat(reference_string, '/', std::to_string(i)), value.m_data.m_value.array->operator[](i), result); } } @@ -769,7 +769,7 @@ class json_pointer // iterate object and use keys as reference string for (const auto& element : *value.m_data.m_value.object) { - flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result); + flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result); } } break; diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/json_ref.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/json_ref.hpp index b8bb6a7..a9a68d9 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/json_ref.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/json_ref.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/macro_scope.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/macro_scope.hpp index 97127a6..d1c6b1b 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/macro_scope.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/macro_scope.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -32,15 +32,20 @@ // C++ language standard detection // if the user manually specified the used c++ version this is skipped -#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) - #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) +#if !defined(JSON_HAS_CPP_23) && !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus > 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG > 202002L) + #define JSON_HAS_CPP_23 #define JSON_HAS_CPP_20 #define JSON_HAS_CPP_17 #define JSON_HAS_CPP_14 - #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #elif (defined(__cplusplus) && __cplusplus > 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG > 201703L) + #define JSON_HAS_CPP_20 #define JSON_HAS_CPP_17 #define JSON_HAS_CPP_14 - #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #elif (defined(__cplusplus) && __cplusplus > 201402L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201103L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) #define JSON_HAS_CPP_14 #endif // the cpp 11 flag is always specified because it is the minimal required version @@ -216,7 +221,9 @@ template \ inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [e](const std::pair& ej_pair) -> bool \ @@ -228,7 +235,9 @@ template \ inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [&j](const std::pair& ej_pair) -> bool \ @@ -391,42 +400,146 @@ #define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; #define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); -#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; /*! @brief macro @def NLOHMANN_DEFINE_TYPE_INTRUSIVE @since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ */ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } /*! @brief macro @def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE @since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ */ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } - -#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } // inspired from https://stackoverflow.com/a/26745591 -// allows to call any std function as if (e.g. with begin): +// allows calling any std function as if (e.g., with begin): // using std::begin; begin(x); // // it allows using the detected idiom to retrieve the return type diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/macro_unscope.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/macro_unscope.hpp index c6620d1..2edb168 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/macro_unscope.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/macro_unscope.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -34,6 +34,7 @@ #undef JSON_HAS_CPP_14 #undef JSON_HAS_CPP_17 #undef JSON_HAS_CPP_20 + #undef JSON_HAS_CPP_23 #undef JSON_HAS_FILESYSTEM #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM #undef JSON_HAS_THREE_WAY_COMPARISON diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/begin.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/begin.hpp index 364cc89..6e697b5 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/begin.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/begin.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/end.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/end.hpp index 463f070..4d27914 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/end.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/call_std/end.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/cpp_future.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/cpp_future.hpp index 412b5aa..57811b9 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/cpp_future.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/cpp_future.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-FileCopyrightText: 2018 The Abseil Authors // SPDX-License-Identifier: MIT @@ -162,7 +162,7 @@ struct static_const #endif template -inline constexpr std::array make_array(Args&& ... args) +constexpr std::array make_array(Args&& ... args) { return std::array {{static_cast(std::forward(args))...}}; } diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/detected.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/detected.hpp index 1db9bf9..c394733 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/detected.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/detected.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/identity_tag.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/identity_tag.hpp index 269deff..c39dabb 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/identity_tag.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/identity_tag.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/is_sax.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/is_sax.hpp index 4e02bc1..2574f72 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/is_sax.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/is_sax.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/std_fs.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/std_fs.hpp index fd18039..2f33e32 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/std_fs.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/std_fs.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -19,7 +19,7 @@ namespace std_fs = std::experimental::filesystem; } // namespace detail NLOHMANN_JSON_NAMESPACE_END #elif JSON_HAS_FILESYSTEM -#include +#include // NOLINT(build/c++17) NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/type_traits.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/type_traits.hpp index e1b000d..d834a0d 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/type_traits.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/type_traits.hpp @@ -1,18 +1,18 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once #include // numeric_limits +#include // char_traits +#include // tuple #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval -#include // tuple -#include // char_traits #include #include @@ -211,7 +211,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -235,7 +235,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -261,19 +261,19 @@ struct is_default_constructible : std::is_default_constructible {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_constructible : std::is_constructible {}; @@ -471,8 +471,8 @@ is_detected::value&& // special case for types like std::filesystem::path whose iterator's value_type are themselves // c.f. https://github.com/nlohmann/json/pull/3073 !std::is_same>::value&& - is_complete_type < - detected_t>::value >> +is_complete_type < +detected_t>::value >> { using value_type = range_value_t; @@ -595,12 +595,12 @@ using is_usable_as_key_type = typename std::conditional < template> using is_usable_as_basic_json_key_type = typename std::conditional < - is_usable_as_key_type::value - && !is_json_iterator_of::value, - std::true_type, - std::false_type >::type; + is_usable_as_key_type::value + && !is_json_iterator_of::value, + std::true_type, + std::false_type >::type; template using detect_erase_with_key_type = decltype(std::declval().erase(std::declval())); @@ -734,7 +734,7 @@ struct value_in_range_of_impl1 }; template -inline constexpr bool value_in_range_of(T val) +constexpr bool value_in_range_of(T val) { return value_in_range_of_impl1::test(val); } @@ -750,7 +750,7 @@ namespace impl { template -inline constexpr bool is_c_string() +constexpr bool is_c_string() { using TUnExt = typename std::remove_extent::type; using TUnCVExt = typename std::remove_cv::type; @@ -778,7 +778,7 @@ namespace impl { template -inline constexpr bool is_transparent() +constexpr bool is_transparent() { return is_detected::value; } diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/void_t.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/void_t.hpp index 99615c7..258475c 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/meta/void_t.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/meta/void_t.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/output/binary_writer.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/output/binary_writer.hpp index f475d57..f81fa54 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/output/binary_writer.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/output/binary_writer.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -28,6 +28,13 @@ NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { +/// how to encode BJData +enum class bjdata_version_t +{ + draft2, + draft3, +}; + /////////////////// // binary writer // /////////////////// @@ -612,7 +619,7 @@ class binary_writer case value_t::binary: { // step 0: determine if the binary type has a set subtype to - // determine whether or not to use the ext or fixext types + // determine whether to use the ext or fixext types const bool use_ext = j.m_data.m_value.binary->has_subtype(); // step 1: write control byte and the byte string length @@ -735,11 +742,14 @@ class binary_writer @param[in] use_type whether to use '$' prefixes (optimized format) @param[in] add_prefix whether prefixes need to be used for this value @param[in] use_bjdata whether write in BJData format, default is false + @param[in] bjdata_version which BJData version to use, default is draft2 */ void write_ubjson(const BasicJsonType& j, const bool use_count, const bool use_type, const bool add_prefix = true, - const bool use_bjdata = false) + const bool use_bjdata = false, const bjdata_version_t bjdata_version = bjdata_version_t::draft2) { + const bool bjdata_draft3 = use_bjdata && bjdata_version == bjdata_version_t::draft3; + switch (j.type()) { case value_t::null: @@ -829,7 +839,7 @@ class binary_writer for (const auto& el : *j.m_data.m_value.array) { - write_ubjson(el, use_count, use_type, prefix_required, use_bjdata); + write_ubjson(el, use_count, use_type, prefix_required, use_bjdata, bjdata_version); } if (!use_count) @@ -847,11 +857,11 @@ class binary_writer oa->write_character(to_char_type('[')); } - if (use_type && !j.m_data.m_value.binary->empty()) + if (use_type && (bjdata_draft3 || !j.m_data.m_value.binary->empty())) { JSON_ASSERT(use_count); oa->write_character(to_char_type('$')); - oa->write_character('U'); + oa->write_character(bjdata_draft3 ? 'B' : 'U'); } if (use_count) @@ -870,7 +880,7 @@ class binary_writer { for (size_t i = 0; i < j.m_data.m_value.binary->size(); ++i) { - oa->write_character(to_char_type('U')); + oa->write_character(to_char_type(bjdata_draft3 ? 'B' : 'U')); oa->write_character(j.m_data.m_value.binary->data()[i]); } } @@ -887,7 +897,7 @@ class binary_writer { if (use_bjdata && j.m_data.m_value.object->size() == 3 && j.m_data.m_value.object->find("_ArrayType_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArraySize_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArrayData_") != j.m_data.m_value.object->end()) { - if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) + if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type, bjdata_version)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) { break; } @@ -931,7 +941,7 @@ class binary_writer oa->write_characters( reinterpret_cast(el.first.c_str()), el.first.size()); - write_ubjson(el.second, use_count, use_type, prefix_required, use_bjdata); + write_ubjson(el.second, use_count, use_type, prefix_required, use_bjdata, bjdata_version); } if (!use_count) @@ -1087,7 +1097,8 @@ class binary_writer } else { - JSON_THROW(out_of_range::create(407, concat("integer number ", std::to_string(j.m_data.m_value.number_unsigned), " cannot be represented by BSON as it does not fit int64"), &j)); + write_bson_entry_header(name, 0x11 /* uint64 */); + write_number(static_cast(j.m_data.m_value.number_unsigned), true); } } @@ -1615,10 +1626,11 @@ class binary_writer /*! @return false if the object is successfully converted to a bjdata ndarray, true if the type or size is invalid */ - bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value, const bool use_count, const bool use_type) + bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value, const bool use_count, const bool use_type, const bjdata_version_t bjdata_version) { std::map bjdtype = {{"uint8", 'U'}, {"int8", 'i'}, {"uint16", 'u'}, {"int16", 'I'}, - {"uint32", 'm'}, {"int32", 'l'}, {"uint64", 'M'}, {"int64", 'L'}, {"single", 'd'}, {"double", 'D'}, {"char", 'C'} + {"uint32", 'm'}, {"int32", 'l'}, {"uint64", 'M'}, {"int64", 'L'}, {"single", 'd'}, {"double", 'D'}, + {"char", 'C'}, {"byte", 'B'} }; string_t key = "_ArrayType_"; @@ -1648,10 +1660,10 @@ class binary_writer oa->write_character('#'); key = "_ArraySize_"; - write_ubjson(value.at(key), use_count, use_type, true, true); + write_ubjson(value.at(key), use_count, use_type, true, true, bjdata_version); key = "_ArrayData_"; - if (dtype == 'U' || dtype == 'C') + if (dtype == 'U' || dtype == 'C' || dtype == 'B') { for (const auto& el : value.at(key)) { diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/output/output_adapters.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/output/output_adapters.hpp index 626f7c0..6080697 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/output/output_adapters.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/output/output_adapters.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/output/serializer.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/output/serializer.hpp index ed20b0d..3137f3c 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/output/serializer.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/output/serializer.hpp @@ -1,10 +1,10 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -643,7 +643,7 @@ class serializer @param[in] x unsigned integer number to count its digits @return number of decimal digits */ - inline unsigned int count_digits(number_unsigned_t x) noexcept + unsigned int count_digits(number_unsigned_t x) noexcept { unsigned int n_digits = 1; for (;;) @@ -926,7 +926,7 @@ class serializer ? (byte & 0x3fu) | (codep << 6u) : (0xFFu >> type) & (byte); - const std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + const std::size_t index = 256u + (static_cast(state) * 16u) + static_cast(type); JSON_ASSERT(index < utf8d.size()); state = utf8d[index]; return state; @@ -952,7 +952,7 @@ class serializer * absolute values of INT_MIN and INT_MAX are usually not the same. See * #1708 for details. */ - inline number_unsigned_t remove_sign(number_integer_t x) noexcept + number_unsigned_t remove_sign(number_integer_t x) noexcept { JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); // NOLINT(misc-redundant-expression) return static_cast(-(x + 1)) + 1; diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/string_concat.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/string_concat.hpp index f49e8d2..78569a8 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/string_concat.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/string_concat.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/string_escape.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/string_escape.hpp index 7f1b5c5..7f02318 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/string_escape.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/string_escape.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/string_utils.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/string_utils.hpp new file mode 100644 index 0000000..d8ecc0c --- /dev/null +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/string_utils.hpp @@ -0,0 +1,37 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + +#pragma once + +#include // size_t +#include // string, to_string + +#include + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +void int_to_string(StringType& target, std::size_t value) +{ + // For ADL + using std::to_string; + target = to_string(value); +} + +template +StringType to_string(std::size_t value) +{ + StringType result; + int_to_string(result, value); + return result; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END diff --git a/lib/All/jsonfmcpp/include/nlohmann/detail/value_t.hpp b/lib/All/jsonfmcpp/include/nlohmann/detail/value_t.hpp index 07688fe..4bd87ab 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/detail/value_t.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/detail/value_t.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/include/nlohmann/json.hpp b/lib/All/jsonfmcpp/include/nlohmann/json.hpp index 95d6bf1..ed51cd5 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/json.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/json.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT /****************************************************************************\ @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -114,9 +115,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec friend class ::nlohmann::detail::binary_writer; template friend class ::nlohmann::detail::binary_reader; - template + template friend class ::nlohmann::detail::json_sax_dom_parser; - template + template friend class ::nlohmann::detail::json_sax_dom_callback_parser; friend class ::nlohmann::detail::exception; @@ -137,7 +138,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ) { return ::nlohmann::detail::parser(std::move(adapter), - std::move(cb), allow_exceptions, ignore_comments); + std::move(cb), allow_exceptions, ignore_comments); } private: @@ -170,6 +171,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using error_handler_t = detail::error_handler_t; /// how to treat CBOR tags using cbor_tag_handler_t = detail::cbor_tag_handler_t; + /// how to encode BJData + using bjdata_version_t = detail::bjdata_version_t; /// helper type for initializer lists of basic_json values using initializer_list_t = std::initializer_list>; @@ -249,7 +252,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { basic_json result; - result["copyright"] = "(C) 2013-2023 Niels Lohmann"; + result["copyright"] = "(C) 2013-2025 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"]["string"] = @@ -514,7 +517,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec object = nullptr; // silence warning, see #821 if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) { - JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.11.3", nullptr)); // LCOV_EXCL_LINE + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.12.0", nullptr)); // LCOV_EXCL_LINE } break; } @@ -750,10 +753,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return it; } - reference set_parent(reference j, std::size_t old_capacity = static_cast(-1)) + reference set_parent(reference j, std::size_t old_capacity = detail::unknown_size()) { #if JSON_DIAGNOSTICS - if (old_capacity != static_cast(-1)) + if (old_capacity != detail::unknown_size()) { // see https://github.com/nlohmann/json/issues/2838 JSON_ASSERT(type() == value_t::array); @@ -847,6 +850,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < detail::is_basic_json::value&& !std::is_same::value, int > = 0 > basic_json(const BasicJsonType& val) +#if JSON_DIAGNOSTIC_POSITIONS + : start_position(val.start_pos()), + end_position(val.end_pos()) +#endif { using other_boolean_t = typename BasicJsonType::boolean_t; using other_number_float_t = typename BasicJsonType::number_float_t; @@ -893,6 +900,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE } JSON_ASSERT(m_data.m_type == val.type()); + set_parents(); assert_invariant(); } @@ -1029,7 +1037,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class InputIT, typename std::enable_if < std::is_same::value || std::is_same::value, int >::type = 0 > - basic_json(InputIT first, InputIT last) + basic_json(InputIT first, InputIT last) // NOLINT(performance-unnecessary-value-param) { JSON_ASSERT(first.m_object != nullptr); JSON_ASSERT(last.m_object != nullptr); @@ -1144,6 +1152,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const basic_json& other) : json_base_class_t(other) +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) + , end_position(other.end_position) +#endif { m_data.m_type = other.m_data.m_type; // check of passed value is valid @@ -1213,15 +1225,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(basic_json&& other) noexcept : json_base_class_t(std::forward(other)), - m_data(std::move(other.m_data)) + m_data(std::move(other.m_data)) // cppcheck-suppress[accessForwarded] TODO check +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) // cppcheck-suppress[accessForwarded] TODO check + , end_position(other.end_position) // cppcheck-suppress[accessForwarded] TODO check +#endif { // check that passed value is valid - other.assert_invariant(false); + other.assert_invariant(false); // cppcheck-suppress[accessForwarded] // invalidate payload other.m_data.m_type = value_t::null; other.m_data.m_value = {}; +#if JSON_DIAGNOSTIC_POSITIONS + other.start_position = std::string::npos; + other.end_position = std::string::npos; +#endif + set_parents(); assert_invariant(); } @@ -1242,6 +1263,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using std::swap; swap(m_data.m_type, other.m_data.m_type); swap(m_data.m_value, other.m_data.m_value); + +#if JSON_DIAGNOSTIC_POSITIONS + swap(start_position, other.start_position); + swap(end_position, other.end_position); +#endif + json_base_class_t::operator=(std::move(other)); set_parents(); @@ -1463,13 +1490,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) @@ -1948,7 +1975,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -1971,7 +1998,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -2116,7 +2143,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief access specified object element /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/ - reference operator[](typename object_t::key_type key) + reference operator[](typename object_t::key_type key) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -2426,7 +2453,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType pos) + IteratorType erase(IteratorType pos) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) @@ -2496,7 +2523,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType first, IteratorType last) + IteratorType erase(IteratorType first, IteratorType last) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) @@ -3263,7 +3290,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @note: This uses std::distance to support GCC 4.8, /// see https://github.com/nlohmann/json/pull/1257 template - iterator insert_iterator(const_iterator pos, Args&& ... args) + iterator insert_iterator(const_iterator pos, Args&& ... args) // NOLINT(performance-unnecessary-value-param) { iterator result(this); JSON_ASSERT(m_data.m_value.array != nullptr); @@ -3282,7 +3309,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const basic_json& val) + iterator insert(const_iterator pos, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -3302,14 +3329,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, basic_json&& val) + iterator insert(const_iterator pos, basic_json&& val) // NOLINT(performance-unnecessary-value-param) { return insert(pos, val); } /// @brief inserts copies of element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -3329,7 +3356,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const_iterator first, const_iterator last) + iterator insert(const_iterator pos, const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -3360,7 +3387,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts elements from initializer list into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, initializer_list_t ilist) + iterator insert(const_iterator pos, initializer_list_t ilist) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -3380,7 +3407,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into object /// @sa https://json.nlohmann.me/api/basic_json/insert/ - void insert(const_iterator first, const_iterator last) + void insert(const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for objects if (JSON_HEDLEY_UNLIKELY(!is_object())) @@ -3401,6 +3428,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + set_parents(); } /// @brief updates a JSON object from another object, overwriting existing keys @@ -3412,7 +3440,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief updates a JSON object from another object, overwriting existing keys /// @sa https://json.nlohmann.me/api/basic_json/update/ - void update(const_iterator first, const_iterator last, bool merge_objects = false) + void update(const_iterator first, const_iterator last, bool merge_objects = false) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -4013,12 +4041,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(InputType&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::forward(i)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved,accessForwarded] return result; } @@ -4028,24 +4056,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(IteratorType first, IteratorType last, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::move(first), std::move(last)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) static basic_json parse(detail::span_input_adapter&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(i.get(), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } @@ -4224,6 +4252,23 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec basic_json* m_parent = nullptr; #endif +#if JSON_DIAGNOSTIC_POSITIONS + /// the start position of the value + std::size_t start_position = std::string::npos; + /// the end position of the value + std::size_t end_position = std::string::npos; + public: + constexpr std::size_t start_pos() const noexcept + { + return start_position; + } + + constexpr std::size_t end_pos() const noexcept + { + return end_position; + } +#endif + ////////////////////////////////////////// // binary serialization/deserialization // ////////////////////////////////////////// @@ -4309,27 +4354,30 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static std::vector to_bjdata(const basic_json& j, const bool use_size = false, - const bool use_type = false) + const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { std::vector result; - to_bjdata(j, result, use_size, use_type); + to_bjdata(j, result, use_size, use_type, version); return result; } /// @brief create a BJData serialization of a given JSON value /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static void to_bjdata(const basic_json& j, detail::output_adapter o, - const bool use_size = false, const bool use_type = false) + const bool use_size = false, const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { - binary_writer(o).write_ubjson(j, use_size, use_type, true, true); + binary_writer(o).write_ubjson(j, use_size, use_type, true, true, version); } /// @brief create a BJData serialization of a given JSON value /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static void to_bjdata(const basic_json& j, detail::output_adapter o, - const bool use_size = false, const bool use_type = false) + const bool use_size = false, const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { - binary_writer(o).write_ubjson(j, use_size, use_type, true, true); + binary_writer(o).write_ubjson(j, use_size, use_type, true, true, version); } /// @brief create a BSON serialization of a given JSON value @@ -4365,9 +4413,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4381,9 +4429,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4406,10 +4454,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4422,9 +4470,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4437,9 +4485,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4460,10 +4508,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4476,9 +4524,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4491,9 +4539,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4514,10 +4562,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4530,9 +4578,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4545,9 +4593,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4560,9 +4608,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4575,9 +4623,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -4598,10 +4646,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } /// @} @@ -4702,7 +4750,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // the valid JSON Patch operations enum class patch_operations {add, remove, replace, move, copy, test, invalid}; - const auto get_op = [](const std::string & op) + const auto get_op = [](const string_t& op) { if (op == "add") { @@ -4733,7 +4781,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec }; // wrapper for "add" operation; add value at ptr - const auto operation_add = [&result](json_pointer & ptr, basic_json val) + const auto operation_add = [&result](json_pointer & ptr, const basic_json & val) { // adding to the root of the target document means replacing it if (ptr.empty()) @@ -4839,15 +4887,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (const auto& val : json_patch) { // wrapper to get a value for an operation - const auto get_value = [&val](const std::string & op, - const std::string & member, + const auto get_value = [&val](const string_t& op, + const string_t& member, bool string_type) -> basic_json & { // find value auto it = val.m_data.m_value.object->find(member); // context-sensitive error message - const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); + const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); // NOLINT(bugprone-unused-local-non-trivial-variable) // check if desired value is present if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end())) @@ -4874,8 +4922,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } // collect mandatory members - const auto op = get_value("op", "op", true).template get(); - const auto path = get_value(op, "path", true).template get(); + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); json_pointer ptr(path); switch (get_op(op)) @@ -4901,7 +4949,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::move: { - const auto from_path = get_value("move", "from", true).template get(); + const auto from_path = get_value("move", "from", true).template get(); json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -4918,7 +4966,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::copy: { - const auto from_path = get_value("copy", "from", true).template get(); + const auto from_path = get_value("copy", "from", true).template get(); const json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -4978,7 +5026,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/diff/ JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json diff(const basic_json& source, const basic_json& target, - const std::string& path = "") + const string_t& path = "") { // the patch basic_json result(value_t::array); @@ -5008,7 +5056,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec while (i < source.size() && i < target.size()) { // recursive call to compare array values at index i - auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', std::to_string(i))); + auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', detail::to_string(i))); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); ++i; } @@ -5025,7 +5073,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.insert(result.begin() + end_index, object( { {"op", "remove"}, - {"path", detail::concat(path, '/', std::to_string(i))} + {"path", detail::concat(path, '/', detail::to_string(i))} })); ++i; } @@ -5036,7 +5084,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.push_back( { {"op", "add"}, - {"path", detail::concat(path, "/-")}, + {"path", detail::concat(path, "/-")}, {"value", target[i]} }); ++i; @@ -5051,7 +5099,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (auto it = source.cbegin(); it != source.cend(); ++it) { // escape the key name to be used in a JSON patch - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); if (target.find(it.key()) != target.end()) { @@ -5075,7 +5123,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (source.find(it.key()) == source.end()) { // found a key that is not in this -> add it - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); result.push_back( { {"op", "add"}, {"path", path_key}, diff --git a/lib/All/jsonfmcpp/include/nlohmann/json_fwd.hpp b/lib/All/jsonfmcpp/include/nlohmann/json_fwd.hpp index 32bde59..a595ae4 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/json_fwd.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/json_fwd.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ diff --git a/lib/All/jsonfmcpp/include/nlohmann/ordered_map.hpp b/lib/All/jsonfmcpp/include/nlohmann/ordered_map.hpp index 39e4a50..d830c6d 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/ordered_map.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/ordered_map.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once @@ -26,7 +26,7 @@ NLOHMANN_JSON_NAMESPACE_BEGIN /// for use within nlohmann::basic_json template , class Allocator = std::allocator>> - struct ordered_map : std::vector, Allocator> + struct ordered_map : std::vector, Allocator> { using key_type = Key; using mapped_type = T; @@ -341,7 +341,7 @@ template , template using require_input_iter = typename std::enable_if::iterator_category, - std::input_iterator_tag>::value>::type; + std::input_iterator_tag>::value>::type; template> void insert(InputIt first, InputIt last) diff --git a/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley.hpp b/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley.hpp index a1dc64f..fb0b073 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley.hpp @@ -2,11 +2,11 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann -// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson // SPDX-License-Identifier: MIT /* Hedley - https://nemequ.github.io/hedley diff --git a/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley_undef.hpp b/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley_undef.hpp index c0aee2b..ad86d11 100644 --- a/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +++ b/lib/All/jsonfmcpp/include/nlohmann/thirdparty/hedley/hedley_undef.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #pragma once diff --git a/lib/All/jsonfmcpp/single_include/nlohmann/json.hpp b/lib/All/jsonfmcpp/single_include/nlohmann/json.hpp index 8b72ea6..82d69f7 100644 --- a/lib/All/jsonfmcpp/single_include/nlohmann/json.hpp +++ b/lib/All/jsonfmcpp/single_include/nlohmann/json.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT /****************************************************************************\ @@ -34,10 +34,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -47,10 +47,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -59,20 +59,24 @@ #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) - #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0 #warning "Already included a different version of the library!" #endif #endif #endif #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum) #ifndef JSON_DIAGNOSTICS #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -83,6 +87,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -94,14 +104,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ @@ -149,10 +160,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -162,6 +173,9 @@ #include // forward_list #include // inserter, front_inserter, end #include // map +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -172,10 +186,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -192,10 +206,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -208,10 +222,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -220,10 +234,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -233,10 +247,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -320,11 +334,11 @@ NLOHMANN_JSON_NAMESPACE_END // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann -// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson // SPDX-License-Identifier: MIT /* Hedley - https://nemequ.github.io/hedley @@ -2384,15 +2398,20 @@ JSON_HEDLEY_DIAGNOSTIC_POP // C++ language standard detection // if the user manually specified the used c++ version this is skipped -#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) - #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) +#if !defined(JSON_HAS_CPP_23) && !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus > 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG > 202002L) + #define JSON_HAS_CPP_23 #define JSON_HAS_CPP_20 #define JSON_HAS_CPP_17 #define JSON_HAS_CPP_14 - #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #elif (defined(__cplusplus) && __cplusplus > 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG > 201703L) + #define JSON_HAS_CPP_20 #define JSON_HAS_CPP_17 #define JSON_HAS_CPP_14 - #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #elif (defined(__cplusplus) && __cplusplus > 201402L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201103L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) #define JSON_HAS_CPP_14 #endif // the cpp 11 flag is always specified because it is the minimal required version @@ -2568,7 +2587,9 @@ JSON_HEDLEY_DIAGNOSTIC_POP template \ inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [e](const std::pair& ej_pair) -> bool \ @@ -2580,7 +2601,9 @@ JSON_HEDLEY_DIAGNOSTIC_POP template \ inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ static const std::pair m[] = __VA_ARGS__; \ auto it = std::find_if(std::begin(m), std::end(m), \ [&j](const std::pair& ej_pair) -> bool \ @@ -2743,42 +2766,146 @@ JSON_HEDLEY_DIAGNOSTIC_POP #define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; #define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); -#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; /*! @brief macro @def NLOHMANN_DEFINE_TYPE_INTRUSIVE @since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ */ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } /*! @brief macro @def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE @since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ */ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } - -#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ - inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ - inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } // inspired from https://stackoverflow.com/a/26745591 -// allows to call any std function as if (e.g. with begin): +// allows calling any std function as if (e.g., with begin): // using std::begin; begin(x); // // it allows using the detected idiom to retrieve the return type @@ -2939,10 +3066,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3014,10 +3141,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3056,10 +3183,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-FileCopyrightText: 2018 The Abseil Authors // SPDX-License-Identifier: MIT @@ -3219,7 +3346,7 @@ struct static_const #endif template -inline constexpr std::array make_array(Args&& ... args) +constexpr std::array make_array(Args&& ... args) { return std::array {{static_cast(std::forward(args))...}}; } @@ -3230,27 +3357,27 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #include // numeric_limits +#include // char_traits +#include // tuple #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval -#include // tuple -#include // char_traits // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3293,7 +3420,7 @@ struct iterator_traits template struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> - : iterator_types + : iterator_types { }; @@ -3315,10 +3442,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3335,10 +3462,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3359,10 +3486,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ @@ -3624,7 +3751,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -3648,7 +3775,7 @@ struct char_traits : std::char_traits static constexpr int_type eof() noexcept { - return static_cast(EOF); + return static_cast(std::char_traits::eof()); } }; @@ -3674,19 +3801,19 @@ struct is_default_constructible : std::is_default_constructible {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction, is_default_constructible> {}; + : conjunction, is_default_constructible> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_default_constructible> - : conjunction...> {}; + : conjunction...> {}; template struct is_constructible : std::is_constructible {}; @@ -3884,8 +4011,8 @@ is_detected::value&& // special case for types like std::filesystem::path whose iterator's value_type are themselves // c.f. https://github.com/nlohmann/json/pull/3073 !std::is_same>::value&& - is_complete_type < - detected_t>::value >> +is_complete_type < +detected_t>::value >> { using value_type = range_value_t; @@ -4008,12 +4135,12 @@ using is_usable_as_key_type = typename std::conditional < template> using is_usable_as_basic_json_key_type = typename std::conditional < - is_usable_as_key_type::value - && !is_json_iterator_of::value, - std::true_type, - std::false_type >::type; + is_usable_as_key_type::value + && !is_json_iterator_of::value, + std::true_type, + std::false_type >::type; template using detect_erase_with_key_type = decltype(std::declval().erase(std::declval())); @@ -4147,7 +4274,7 @@ struct value_in_range_of_impl1 }; template -inline constexpr bool value_in_range_of(T val) +constexpr bool value_in_range_of(T val) { return value_in_range_of_impl1::test(val); } @@ -4163,7 +4290,7 @@ namespace impl { template -inline constexpr bool is_c_string() +constexpr bool is_c_string() { using TUnExt = typename std::remove_extent::type; using TUnCVExt = typename std::remove_cv::type; @@ -4191,7 +4318,7 @@ namespace impl { template -inline constexpr bool is_transparent() +constexpr bool is_transparent() { return is_detected::value; } @@ -4210,10 +4337,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4358,6 +4485,18 @@ inline OutStringType concat(Args && ... args) NLOHMANN_JSON_NAMESPACE_END +// With -Wweak-vtables, Clang will complain about the exception classes as they +// have no out-of-line virtual method definitions and their vtable will be +// emitted in every translation unit. This issue cannot be fixed with a +// header-only library as there is no implementation file to move these +// functions to. As a result, we suppress this warning here to avoid client +// code to stumble over this. See https://github.com/nlohmann/json/issues/4087 +// for a discussion. +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wweak-vtables" +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4452,16 +4591,34 @@ class exception : public std::exception { return concat(a, '/', detail::escape(b)); }); - return concat('(', str, ") "); + + return concat('(', str, ") ", get_byte_positions(leaf_element)); #else - static_cast(leaf_element); - return ""; + return get_byte_positions(leaf_element); #endif } private: /// an exception object as storage for error messages std::runtime_error m; +#if JSON_DIAGNOSTIC_POSITIONS + template + static std::string get_byte_positions(const BasicJsonType* leaf_element) + { + if ((leaf_element->start_pos() != std::string::npos) && (leaf_element->end_pos() != std::string::npos)) + { + return concat("(bytes ", std::to_string(leaf_element->start_pos()), "-", std::to_string(leaf_element->end_pos()), ") "); + } + return ""; + } +#else + template + static std::string get_byte_positions(const BasicJsonType* leaf_element) + { + static_cast(leaf_element); + return ""; + } +#endif }; /// @brief exception indicating a parse error @@ -4589,6 +4746,10 @@ class other_error : public exception } // namespace detail NLOHMANN_JSON_NAMESPACE_END +#if defined(__clang__) + #pragma clang diagnostic pop +#endif + // #include // #include @@ -4596,10 +4757,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4620,10 +4781,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4640,7 +4801,7 @@ namespace std_fs = std::experimental::filesystem; } // namespace detail NLOHMANN_JSON_NAMESPACE_END #elif JSON_HAS_FILESYSTEM -#include +#include // NOLINT(build/c++17) NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4670,6 +4831,24 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) n = nullptr; } +#ifdef JSON_HAS_CPP_17 +#ifndef JSON_USE_IMPLICIT_CONVERSIONS +template +void from_json(const BasicJsonType& j, std::optional& opt) +{ + if (j.is_null()) + { + opt = std::nullopt; + } + else + { + opt.emplace(j.template get()); + } +} + +#endif // JSON_USE_IMPLICIT_CONVERSIONS +#endif // JSON_HAS_CPP_17 + // overloads for basic_json template parameters template < typename BasicJsonType, typename ArithmeticType, enable_if_t < std::is_arithmetic::value&& @@ -4817,6 +4996,54 @@ auto from_json(const BasicJsonType& j, T (&arr)[N]) // NOLINT(cppcoreguidelines } } +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + arr[i1][i2] = j.at(i1).at(i2).template get(); + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + arr[i1][i2][i3] = j.at(i1).at(i2).at(i3).template get(); + } + } + } +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N1][N2][N3][N4]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays) +-> decltype(j.template get(), void()) +{ + for (std::size_t i1 = 0; i1 < N1; ++i1) + { + for (std::size_t i2 = 0; i2 < N2; ++i2) + { + for (std::size_t i3 = 0; i3 < N3; ++i3) + { + for (std::size_t i4 = 0; i4 < N4; ++i4) + { + arr[i1][i2][i3][i4] = j.at(i1).at(i2).at(i3).at(i4).template get(); + } + } + } + } +} + template inline void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) { @@ -4902,7 +5129,7 @@ void()) template < typename BasicJsonType, typename T, std::size_t... Idx > std::array from_json_inplace_array_impl(BasicJsonType&& j, - identity_tag> /*unused*/, index_sequence /*unused*/) + identity_tag> /*unused*/, index_sequence /*unused*/) { return { { std::forward(j).at(Idx).template get()... } }; } @@ -5006,6 +5233,12 @@ std::tuple from_json_tuple_impl_base(BasicJsonType&& j, index_sequence< return std::make_tuple(std::forward(j).at(Idx).template get()...); } +template +std::tuple<> from_json_tuple_impl_base(BasicJsonType& /*unused*/, index_sequence<> /*unused*/) +{ + return {}; +} + template < typename BasicJsonType, class A1, class A2 > std::pair from_json_tuple_impl(BasicJsonType&& j, identity_tag> /*unused*/, priority_tag<0> /*unused*/) { @@ -5091,7 +5324,12 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p) { JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j)); } - p = *j.template get_ptr(); + const auto& s = *j.template get_ptr(); +#ifdef JSON_HAS_CPP_20 + p = std_fs::path(std::u8string_view(reinterpret_cast(s.data()), s.size())); +#else + p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20 +#endif } #endif @@ -5126,14 +5364,20 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT +// #include +// JSON_HAS_CPP_17 +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + #include // copy #include // begin, end #include // string @@ -5146,17 +5390,16 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #include // size_t -#include // input_iterator_tag -#include // string, to_string +#include // forward_iterator_tag #include // tuple_size, get, tuple_element #include // move @@ -5168,6 +5411,46 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t +#include // string, to_string + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +void int_to_string(StringType& target, std::size_t value) +{ + // For ADL + using std::to_string; + target = to_string(value); +} + +template +StringType to_string(std::size_t value) +{ + StringType result; + int_to_string(result, value); + return result; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + // #include @@ -5175,13 +5458,6 @@ NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { -template -void int_to_string( string_type& target, std::size_t value ) -{ - // For ADL - using std::to_string; - target = to_string(value); -} template class iteration_proxy_value { public: @@ -5189,7 +5465,7 @@ template class iteration_proxy_value using value_type = iteration_proxy_value; using pointer = value_type *; using reference = value_type &; - using iterator_category = std::input_iterator_tag; + using iterator_category = std::forward_iterator_tag; using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; private: @@ -5369,7 +5645,7 @@ namespace std #endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> // NOLINT(cert-dcl58-cpp) - : public std::integral_constant {}; + : public std::integral_constant {}; template class tuple_element> // NOLINT(cert-dcl58-cpp) @@ -5390,8 +5666,6 @@ class tuple_element> inline constexpr bool ::std::ranges::enable_borrowed_range<::nlohmann::detail::iteration_proxy> = true; #endif -// #include - // #include // #include @@ -5637,6 +5911,22 @@ struct external_constructor // to_json // ///////////// +#ifdef JSON_HAS_CPP_17 +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::optional& opt) +{ + if (opt.has_value()) + { + j = *opt; + } + else + { + j = nullptr; + } +} +#endif + template::value, int> = 0> inline void to_json(BasicJsonType& j, T b) noexcept @@ -5697,7 +5987,8 @@ template::type; - external_constructor::construct(j, static_cast(e)); + static constexpr value_t integral_value_t = std::is_unsigned::value ? value_t::number_unsigned : value_t::number_integer; + external_constructor::construct(j, static_cast(e)); } #endif // JSON_DISABLE_ENUM_SERIALIZATION @@ -5782,6 +6073,13 @@ inline void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence< j = { std::get(t)... }; } +template +inline void to_json_tuple_impl(BasicJsonType& j, const Tuple& /*unused*/, index_sequence<> /*unused*/) +{ + using array_t = typename BasicJsonType::array_t; + j = array_t(); +} + template::value, int > = 0> inline void to_json(BasicJsonType& j, const T& t) { @@ -5792,7 +6090,12 @@ inline void to_json(BasicJsonType& j, const T& t) template inline void to_json(BasicJsonType& j, const std_fs::path& p) { - j = p.string(); +#ifdef JSON_HAS_CPP_20 + const std::u8string s = p.u8string(); + j = std::string(s.begin(), s.end()); +#else + j = p.u8string(); // returns std::string in C++17 +#endif } #endif @@ -5867,10 +6170,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5979,10 +6282,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6112,10 +6415,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6132,16 +6435,19 @@ NLOHMANN_JSON_NAMESPACE_END #include // char_traits, string #include // make_pair, move #include // vector +#ifdef __cpp_lib_byteswap + #include //byteswap +#endif // #include // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6161,6 +6467,8 @@ NLOHMANN_JSON_NAMESPACE_END #include // istream #endif // JSON_NO_IO +// #include + // #include // #include @@ -6208,6 +6516,13 @@ class file_input_adapter return std::fgetc(m_file); } + // returns the number of characters successfully read + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + return fread(dest, 1, sizeof(T) * count, m_file); + } + private: /// the file pointer to read from std::FILE* m_file; @@ -6267,6 +6582,17 @@ class input_stream_adapter return res; } + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto res = static_cast(sb->sgetn(reinterpret_cast(dest), static_cast(count * sizeof(T)))); + if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T))) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + private: /// the associated input stream std::istream* is = nullptr; @@ -6298,6 +6624,26 @@ class iterator_input_adapter return char_traits::eof(); } + // for general iterators, we cannot really do something better than falling back to processing the range one-by-one + template + std::size_t get_elements(T* dest, std::size_t count = 1) + { + auto* ptr = reinterpret_cast(dest); + for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index) + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + ptr[read_index] = static_cast(*current); + std::advance(current, 1); + } + else + { + return read_index; + } + } + return count * sizeof(T); + } + private: IteratorType current; IteratorType end; @@ -6461,6 +6807,13 @@ class wide_string_input_adapter return utf8_bytes[utf8_bytes_index++]; } + // parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here + template + std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1) + { + JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr)); + } + private: BaseInputAdapter base_adapter; @@ -6557,10 +6910,17 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory::create(container); } +// specialization for std::string +using string_input_adapter_type = decltype(input_adapter(std::declval())); + #ifndef JSON_NO_IO // Special cases with fast paths inline file_input_adapter input_adapter(std::FILE* file) { + if (file == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } return file_input_adapter(file); } @@ -6587,9 +6947,13 @@ template < typename CharT, int >::type = 0 > contiguous_bytes_input_adapter input_adapter(CharT b) { + if (b == nullptr) + { + JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } auto length = std::strlen(reinterpret_cast(b)); const auto* ptr = reinterpret_cast(b); - return input_adapter(ptr, ptr + length); + return input_adapter(ptr, ptr + length); // cppcheck-suppress[nullPointerArithmeticRedundantCheck] } template @@ -6635,742 +6999,29 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #include #include // string +#include // enable_if_t #include // move #include // vector // #include -// #include - -// #include - - -NLOHMANN_JSON_NAMESPACE_BEGIN - -/*! -@brief SAX interface - -This class describes the SAX interface used by @ref nlohmann::json::sax_parse. -Each function is called in different situations while the input is parsed. The -boolean return value informs the parser whether to continue processing the -input. -*/ -template -struct json_sax -{ - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - /*! - @brief a null value was read - @return whether parsing should proceed - */ - virtual bool null() = 0; - - /*! - @brief a boolean value was read - @param[in] val boolean value - @return whether parsing should proceed - */ - virtual bool boolean(bool val) = 0; - - /*! - @brief an integer number was read - @param[in] val integer value - @return whether parsing should proceed - */ - virtual bool number_integer(number_integer_t val) = 0; - - /*! - @brief an unsigned integer number was read - @param[in] val unsigned integer value - @return whether parsing should proceed - */ - virtual bool number_unsigned(number_unsigned_t val) = 0; - - /*! - @brief a floating-point number was read - @param[in] val floating-point value - @param[in] s raw token value - @return whether parsing should proceed - */ - virtual bool number_float(number_float_t val, const string_t& s) = 0; - - /*! - @brief a string value was read - @param[in] val string value - @return whether parsing should proceed - @note It is safe to move the passed string value. - */ - virtual bool string(string_t& val) = 0; - - /*! - @brief a binary value was read - @param[in] val binary value - @return whether parsing should proceed - @note It is safe to move the passed binary value. - */ - virtual bool binary(binary_t& val) = 0; - - /*! - @brief the beginning of an object was read - @param[in] elements number of object elements or -1 if unknown - @return whether parsing should proceed - @note binary formats may report the number of elements - */ - virtual bool start_object(std::size_t elements) = 0; - - /*! - @brief an object key was read - @param[in] val object key - @return whether parsing should proceed - @note It is safe to move the passed string. - */ - virtual bool key(string_t& val) = 0; - - /*! - @brief the end of an object was read - @return whether parsing should proceed - */ - virtual bool end_object() = 0; - - /*! - @brief the beginning of an array was read - @param[in] elements number of array elements or -1 if unknown - @return whether parsing should proceed - @note binary formats may report the number of elements - */ - virtual bool start_array(std::size_t elements) = 0; - - /*! - @brief the end of an array was read - @return whether parsing should proceed - */ - virtual bool end_array() = 0; - - /*! - @brief a parse error occurred - @param[in] position the position in the input where the error occurs - @param[in] last_token the last read token - @param[in] ex an exception object describing the error - @return whether parsing should proceed (must return false) - */ - virtual bool parse_error(std::size_t position, - const std::string& last_token, - const detail::exception& ex) = 0; - - json_sax() = default; - json_sax(const json_sax&) = default; - json_sax(json_sax&&) noexcept = default; - json_sax& operator=(const json_sax&) = default; - json_sax& operator=(json_sax&&) noexcept = default; - virtual ~json_sax() = default; -}; - -namespace detail -{ -/*! -@brief SAX implementation to create a JSON value from SAX events - -This class implements the @ref json_sax interface and processes the SAX events -to create a JSON value which makes it basically a DOM parser. The structure or -hierarchy of the JSON value is managed by the stack `ref_stack` which contains -a pointer to the respective array or object for each recursion depth. - -After successful parsing, the value that is passed by reference to the -constructor contains the parsed value. - -@tparam BasicJsonType the JSON type -*/ -template -class json_sax_dom_parser -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - /*! - @param[in,out] r reference to a JSON value that is manipulated while - parsing - @param[in] allow_exceptions_ whether parse errors yield exceptions - */ - explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) - : root(r), allow_exceptions(allow_exceptions_) - {} - - // make class move-only - json_sax_dom_parser(const json_sax_dom_parser&) = delete; - json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; - json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - ~json_sax_dom_parser() = default; - - bool null() - { - handle_value(nullptr); - return true; - } - - bool boolean(bool val) - { - handle_value(val); - return true; - } - - bool number_integer(number_integer_t val) - { - handle_value(val); - return true; - } - - bool number_unsigned(number_unsigned_t val) - { - handle_value(val); - return true; - } - - bool number_float(number_float_t val, const string_t& /*unused*/) - { - handle_value(val); - return true; - } - - bool string(string_t& val) - { - handle_value(val); - return true; - } - - bool binary(binary_t& val) - { - handle_value(std::move(val)); - return true; - } - - bool start_object(std::size_t len) - { - ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); - - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool key(string_t& val) - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_object()); - - // add null at given key and store the reference for later - object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val)); - return true; - } - - bool end_object() - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_object()); - - ref_stack.back()->set_parents(); - ref_stack.pop_back(); - return true; - } - - bool start_array(std::size_t len) - { - ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); - - if (JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool end_array() - { - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(ref_stack.back()->is_array()); - - ref_stack.back()->set_parents(); - ref_stack.pop_back(); - return true; - } - - template - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, - const Exception& ex) - { - errored = true; - static_cast(ex); - if (allow_exceptions) - { - JSON_THROW(ex); - } - return false; - } - - constexpr bool is_errored() const - { - return errored; - } - - private: - /*! - @invariant If the ref stack is empty, then the passed value will be the new - root. - @invariant If the ref stack contains a value, then it is an array or an - object to which we can add elements - */ - template - JSON_HEDLEY_RETURNS_NON_NULL - BasicJsonType* handle_value(Value&& v) - { - if (ref_stack.empty()) - { - root = BasicJsonType(std::forward(v)); - return &root; - } - - JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); - - if (ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); - return &(ref_stack.back()->m_data.m_value.array->back()); - } - - JSON_ASSERT(ref_stack.back()->is_object()); - JSON_ASSERT(object_element); - *object_element = BasicJsonType(std::forward(v)); - return object_element; - } - - /// the parsed JSON value - BasicJsonType& root; - /// stack to model hierarchy of values - std::vector ref_stack {}; - /// helper to hold the reference for the next object element - BasicJsonType* object_element = nullptr; - /// whether a syntax error occurred - bool errored = false; - /// whether to throw exceptions in case of errors - const bool allow_exceptions = true; -}; - -template -class json_sax_dom_callback_parser -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - using parser_callback_t = typename BasicJsonType::parser_callback_t; - using parse_event_t = typename BasicJsonType::parse_event_t; - - json_sax_dom_callback_parser(BasicJsonType& r, - const parser_callback_t cb, - const bool allow_exceptions_ = true) - : root(r), callback(cb), allow_exceptions(allow_exceptions_) - { - keep_stack.push_back(true); - } - - // make class move-only - json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; - json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; - json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) - ~json_sax_dom_callback_parser() = default; - - bool null() - { - handle_value(nullptr); - return true; - } - - bool boolean(bool val) - { - handle_value(val); - return true; - } - - bool number_integer(number_integer_t val) - { - handle_value(val); - return true; - } - - bool number_unsigned(number_unsigned_t val) - { - handle_value(val); - return true; - } - - bool number_float(number_float_t val, const string_t& /*unused*/) - { - handle_value(val); - return true; - } - - bool string(string_t& val) - { - handle_value(val); - return true; - } - - bool binary(binary_t& val) - { - handle_value(std::move(val)); - return true; - } - - bool start_object(std::size_t len) - { - // check callback for object start - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); - keep_stack.push_back(keep); - - auto val = handle_value(BasicJsonType::value_t::object, true); - ref_stack.push_back(val.second); - - // check object limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool key(string_t& val) - { - BasicJsonType k = BasicJsonType(val); - - // check callback for key - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); - key_keep_stack.push_back(keep); - - // add discarded value at given key and store the reference for later - if (keep && ref_stack.back()) - { - object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded); - } - - return true; - } - - bool end_object() - { - if (ref_stack.back()) - { - if (!callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) - { - // discard object - *ref_stack.back() = discarded; - } - else - { - ref_stack.back()->set_parents(); - } - } - - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(!keep_stack.empty()); - ref_stack.pop_back(); - keep_stack.pop_back(); - - if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) - { - // remove discarded value - for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) - { - if (it->is_discarded()) - { - ref_stack.back()->erase(it); - break; - } - } - } - - return true; - } - - bool start_array(std::size_t len) - { - const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); - keep_stack.push_back(keep); - - auto val = handle_value(BasicJsonType::value_t::array, true); - ref_stack.push_back(val.second); - - // check array limit - if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast(-1) && len > ref_stack.back()->max_size())) - { - JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); - } - - return true; - } - - bool end_array() - { - bool keep = true; - - if (ref_stack.back()) - { - keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); - if (keep) - { - ref_stack.back()->set_parents(); - } - else - { - // discard array - *ref_stack.back() = discarded; - } - } - - JSON_ASSERT(!ref_stack.empty()); - JSON_ASSERT(!keep_stack.empty()); - ref_stack.pop_back(); - keep_stack.pop_back(); - - // remove discarded value - if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->pop_back(); - } - - return true; - } - - template - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, - const Exception& ex) - { - errored = true; - static_cast(ex); - if (allow_exceptions) - { - JSON_THROW(ex); - } - return false; - } - - constexpr bool is_errored() const - { - return errored; - } - - private: - /*! - @param[in] v value to add to the JSON value we build during parsing - @param[in] skip_callback whether we should skip calling the callback - function; this is required after start_array() and - start_object() SAX events, because otherwise we would call the - callback function with an empty array or object, respectively. - - @invariant If the ref stack is empty, then the passed value will be the new - root. - @invariant If the ref stack contains a value, then it is an array or an - object to which we can add elements - - @return pair of boolean (whether value should be kept) and pointer (to the - passed value in the ref_stack hierarchy; nullptr if not kept) - */ - template - std::pair handle_value(Value&& v, const bool skip_callback = false) - { - JSON_ASSERT(!keep_stack.empty()); - - // do not handle this value if we know it would be added to a discarded - // container - if (!keep_stack.back()) - { - return {false, nullptr}; - } - - // create value - auto value = BasicJsonType(std::forward(v)); - - // check callback - const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); - - // do not handle this value if we just learnt it shall be discarded - if (!keep) - { - return {false, nullptr}; - } - - if (ref_stack.empty()) - { - root = std::move(value); - return {true, & root}; - } - - // skip this value if we already decided to skip the parent - // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) - if (!ref_stack.back()) - { - return {false, nullptr}; - } - - // we now only expect arrays and objects - JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); - - // array - if (ref_stack.back()->is_array()) - { - ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value)); - return {true, & (ref_stack.back()->m_data.m_value.array->back())}; - } - - // object - JSON_ASSERT(ref_stack.back()->is_object()); - // check if we should store an element for the current key - JSON_ASSERT(!key_keep_stack.empty()); - const bool store_element = key_keep_stack.back(); - key_keep_stack.pop_back(); - - if (!store_element) - { - return {false, nullptr}; - } - - JSON_ASSERT(object_element); - *object_element = std::move(value); - return {true, object_element}; - } - - /// the parsed JSON value - BasicJsonType& root; - /// stack to model hierarchy of values - std::vector ref_stack {}; - /// stack to manage which values to keep - std::vector keep_stack {}; - /// stack to manage which object keys to keep - std::vector key_keep_stack {}; - /// helper to hold the reference for the next object element - BasicJsonType* object_element = nullptr; - /// whether a syntax error occurred - bool errored = false; - /// callback function - const parser_callback_t callback = nullptr; - /// whether to throw exceptions in case of errors - const bool allow_exceptions = true; - /// a discarded value for the callback - BasicJsonType discarded = BasicJsonType::value_t::discarded; -}; - -template -class json_sax_acceptor -{ - public: - using number_integer_t = typename BasicJsonType::number_integer_t; - using number_unsigned_t = typename BasicJsonType::number_unsigned_t; - using number_float_t = typename BasicJsonType::number_float_t; - using string_t = typename BasicJsonType::string_t; - using binary_t = typename BasicJsonType::binary_t; - - bool null() - { - return true; - } - - bool boolean(bool /*unused*/) - { - return true; - } - - bool number_integer(number_integer_t /*unused*/) - { - return true; - } - - bool number_unsigned(number_unsigned_t /*unused*/) - { - return true; - } - - bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) - { - return true; - } - - bool string(string_t& /*unused*/) - { - return true; - } - - bool binary(binary_t& /*unused*/) - { - return true; - } - - bool start_object(std::size_t /*unused*/ = static_cast(-1)) - { - return true; - } - - bool key(string_t& /*unused*/) - { - return true; - } - - bool end_object() - { - return true; - } - - bool start_array(std::size_t /*unused*/ = static_cast(-1)) - { - return true; - } - - bool end_array() - { - return true; - } - - bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) - { - return false; - } -}; - -} // namespace detail -NLOHMANN_JSON_NAMESPACE_END - // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -8338,7 +7989,7 @@ class lexer : public lexer_base locale's decimal point is used instead of `.` to work with the locale-dependent converters. */ - token_type scan_number() // lgtm [cpp/use-of-goto] + token_type scan_number() // lgtm [cpp/use-of-goto] `goto` is used in this function to implement the number-parsing state machine described above. By design, any finite input will eventually reach the "done" state or return token_type::parse_error. In each intermediate state, 1 byte of the input is appended to the token_buffer vector, and only the already initialized variables token_buffer, number_type, and error_message are manipulated. { // reset token_buffer to store the number's bytes reset(); @@ -8420,6 +8071,7 @@ scan_number_zero: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -8456,6 +8108,7 @@ scan_number_any1: case '.': { add(decimal_point_char); + decimal_point_position = token_buffer.size() - 1; goto scan_number_decimal1; } @@ -8616,7 +8269,7 @@ scan_number_done: // we are done scanning a number) unget(); - char* endptr = nullptr; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg) + char* endptr = nullptr; // NOLINT(misc-const-correctness,cppcoreguidelines-pro-type-vararg,hicpp-vararg) errno = 0; // try to parse integers first and fall back to floats @@ -8627,7 +8280,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_unsigned = static_cast(x); if (value_unsigned == x) @@ -8643,7 +8296,7 @@ scan_number_done: // we checked the number format before JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); - if (errno == 0) + if (errno != ERANGE) { value_integer = static_cast(x); if (value_integer == x) @@ -8693,6 +8346,7 @@ scan_number_done: { token_buffer.clear(); token_string.clear(); + decimal_point_position = std::string::npos; token_string.push_back(char_traits::to_char_type(current)); } @@ -8801,6 +8455,11 @@ scan_number_done: /// return current string value (implicitly resets the token; useful only once) string_t& get_string() { + // translate decimal points from locale back to '.' (#4084) + if (decimal_point_char != '.' && decimal_point_position != std::string::npos) + { + token_buffer[decimal_point_position] = '.'; + } return token_buffer; } @@ -8998,6 +8657,8 @@ scan_number_done: /// the decimal point const char_int_type decimal_point_char = '.'; + /// the position of the decimal point in the input + std::size_t decimal_point_position = std::string::npos; }; } // namespace detail @@ -9005,13 +8666,986 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + +NLOHMANN_JSON_NAMESPACE_BEGIN + +/*! +@brief SAX interface + +This class describes the SAX interface used by @ref nlohmann::json::sax_parse. +Each function is called in different situations while the input is parsed. The +boolean return value informs the parser whether to continue processing the +input. +*/ +template +struct json_sax +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @brief a null value was read + @return whether parsing should proceed + */ + virtual bool null() = 0; + + /*! + @brief a boolean value was read + @param[in] val boolean value + @return whether parsing should proceed + */ + virtual bool boolean(bool val) = 0; + + /*! + @brief an integer number was read + @param[in] val integer value + @return whether parsing should proceed + */ + virtual bool number_integer(number_integer_t val) = 0; + + /*! + @brief an unsigned integer number was read + @param[in] val unsigned integer value + @return whether parsing should proceed + */ + virtual bool number_unsigned(number_unsigned_t val) = 0; + + /*! + @brief a floating-point number was read + @param[in] val floating-point value + @param[in] s raw token value + @return whether parsing should proceed + */ + virtual bool number_float(number_float_t val, const string_t& s) = 0; + + /*! + @brief a string value was read + @param[in] val string value + @return whether parsing should proceed + @note It is safe to move the passed string value. + */ + virtual bool string(string_t& val) = 0; + + /*! + @brief a binary value was read + @param[in] val binary value + @return whether parsing should proceed + @note It is safe to move the passed binary value. + */ + virtual bool binary(binary_t& val) = 0; + + /*! + @brief the beginning of an object was read + @param[in] elements number of object elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_object(std::size_t elements) = 0; + + /*! + @brief an object key was read + @param[in] val object key + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool key(string_t& val) = 0; + + /*! + @brief the end of an object was read + @return whether parsing should proceed + */ + virtual bool end_object() = 0; + + /*! + @brief the beginning of an array was read + @param[in] elements number of array elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_array(std::size_t elements) = 0; + + /*! + @brief the end of an array was read + @return whether parsing should proceed + */ + virtual bool end_array() = 0; + + /*! + @brief a parse error occurred + @param[in] position the position in the input where the error occurs + @param[in] last_token the last read token + @param[in] ex an exception object describing the error + @return whether parsing should proceed (must return false) + */ + virtual bool parse_error(std::size_t position, + const std::string& last_token, + const detail::exception& ex) = 0; + + json_sax() = default; + json_sax(const json_sax&) = default; + json_sax(json_sax&&) noexcept = default; + json_sax& operator=(const json_sax&) = default; + json_sax& operator=(json_sax&&) noexcept = default; + virtual ~json_sax() = default; +}; + +namespace detail +{ +constexpr std::size_t unknown_size() +{ + return (std::numeric_limits::max)(); +} + +/*! +@brief SAX implementation to create a JSON value from SAX events + +This class implements the @ref json_sax interface and processes the SAX events +to create a JSON value which makes it basically a DOM parser. The structure or +hierarchy of the JSON value is managed by the stack `ref_stack` which contains +a pointer to the respective array or object for each recursion depth. + +After successful parsing, the value that is passed by reference to the +constructor contains the parsed value. + +@tparam BasicJsonType the JSON type +*/ +template +class json_sax_dom_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using lexer_t = lexer; + + /*! + @param[in,out] r reference to a JSON value that is manipulated while + parsing + @param[in] allow_exceptions_ whether parse errors yield exceptions + */ + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true, lexer_t* lexer_ = nullptr) + : root(r), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) + {} + + // make class move-only + json_sax_dom_parser(const json_sax_dom_parser&) = delete; + json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; + json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + + return true; + } + + bool key(string_t& val) + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_object()); + + // add null at given key and store the reference for later + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val)); + return true; + } + + bool end_object() + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_object()); + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + bool start_array(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } + + return true; + } + + bool end_array() + { + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(ref_stack.back()->is_array()); + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + ref_stack.pop_back(); + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + // As we handle the start and end positions for values created during parsing, + // we do not expect the following value type to be called. Regardless, set the positions + // in case this is created manually or through a different constructor. Exclude from lcov + // since the exact condition of this switch is esoteric. + // LCOV_EXCL_START + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + // LCOV_EXCL_STOP + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + + /*! + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + */ + template + JSON_HEDLEY_RETURNS_NON_NULL + BasicJsonType* handle_value(Value&& v) + { + if (ref_stack.empty()) + { + root = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(root); +#endif + + return &root; + } + + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(ref_stack.back()->m_data.m_value.array->back()); +#endif + + return &(ref_stack.back()->m_data.m_value.array->back()); + } + + JSON_ASSERT(ref_stack.back()->is_object()); + JSON_ASSERT(object_element); + *object_element = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(*object_element); +#endif + + return object_element; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; +}; + +template +class json_sax_dom_callback_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using parser_callback_t = typename BasicJsonType::parser_callback_t; + using parse_event_t = typename BasicJsonType::parse_event_t; + using lexer_t = lexer; + + json_sax_dom_callback_parser(BasicJsonType& r, + parser_callback_t cb, + const bool allow_exceptions_ = true, + lexer_t* lexer_ = nullptr) + : root(r), callback(std::move(cb)), allow_exceptions(allow_exceptions_), m_lexer_ref(lexer_) + { + keep_stack.push_back(true); + } + + // make class move-only + json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor) + ~json_sax_dom_callback_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + // check callback for object start + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::object, true); + ref_stack.push_back(val.second); + + if (ref_stack.back()) + { + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the object here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the object, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check object limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive object size: ", std::to_string(len)), ref_stack.back())); + } + } + return true; + } + + bool key(string_t& val) + { + BasicJsonType k = BasicJsonType(val); + + // check callback for key + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); + key_keep_stack.push_back(keep); + + // add discarded value at given key and store the reference for later + if (keep && ref_stack.back()) + { + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded); + } + + return true; + } + + bool end_object() + { + if (ref_stack.back()) + { + if (!callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) + { + // discard object + *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded object. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif + } + else + { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing brace, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) + { + // remove discarded value + for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) + { + if (it->is_discarded()) + { + ref_stack.back()->erase(it); + break; + } + } + } + + return true; + } + + bool start_array(std::size_t len) + { + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::array, true); + ref_stack.push_back(val.second); + + if (ref_stack.back()) + { + +#if JSON_DIAGNOSTIC_POSITIONS + // Manually set the start position of the array here. + // Ensure this is after the call to handle_value to ensure correct start position. + if (m_lexer_ref) + { + // Lexer has read the first character of the array, so + // subtract 1 from the position to get the correct start position. + ref_stack.back()->start_position = m_lexer_ref->get_position() - 1; + } +#endif + + // check array limit + if (JSON_HEDLEY_UNLIKELY(len != detail::unknown_size() && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, concat("excessive array size: ", std::to_string(len)), ref_stack.back())); + } + } + + return true; + } + + bool end_array() + { + bool keep = true; + + if (ref_stack.back()) + { + keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); + if (keep) + { + +#if JSON_DIAGNOSTIC_POSITIONS + if (m_lexer_ref) + { + // Lexer's position is past the closing bracket, so set that as the end position. + ref_stack.back()->end_position = m_lexer_ref->get_position(); + } +#endif + + ref_stack.back()->set_parents(); + } + else + { + // discard array + *ref_stack.back() = discarded; + +#if JSON_DIAGNOSTIC_POSITIONS + // Set start/end positions for discarded array. + handle_diagnostic_positions_for_json_value(*ref_stack.back()); +#endif + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + // remove discarded value + if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->pop_back(); + } + + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + +#if JSON_DIAGNOSTIC_POSITIONS + void handle_diagnostic_positions_for_json_value(BasicJsonType& v) + { + if (m_lexer_ref) + { + // Lexer has read past the current field value, so set the end position to the current position. + // The start position will be set below based on the length of the string representation + // of the value. + v.end_position = m_lexer_ref->get_position(); + + switch (v.type()) + { + case value_t::boolean: + { + // 4 and 5 are the string length of "true" and "false" + v.start_position = v.end_position - (v.m_data.m_value.boolean ? 4 : 5); + break; + } + + case value_t::null: + { + // 4 is the string length of "null" + v.start_position = v.end_position - 4; + break; + } + + case value_t::string: + { + // include the length of the quotes, which is 2 + v.start_position = v.end_position - v.m_data.m_value.string->size() - 2; + break; + } + + case value_t::discarded: + { + v.end_position = std::string::npos; + v.start_position = v.end_position; + break; + } + + case value_t::binary: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::number_float: + { + v.start_position = v.end_position - m_lexer_ref->get_string().size(); + break; + } + + case value_t::object: + case value_t::array: + { + // object and array are handled in start_object() and start_array() handlers + // skip setting the values here. + break; + } + default: // LCOV_EXCL_LINE + // Handle all possible types discretely, default handler should never be reached. + JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert,-warnings-as-errors) LCOV_EXCL_LINE + } + } + } +#endif + + /*! + @param[in] v value to add to the JSON value we build during parsing + @param[in] skip_callback whether we should skip calling the callback + function; this is required after start_array() and + start_object() SAX events, because otherwise we would call the + callback function with an empty array or object, respectively. + + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + + @return pair of boolean (whether value should be kept) and pointer (to the + passed value in the ref_stack hierarchy; nullptr if not kept) + */ + template + std::pair handle_value(Value&& v, const bool skip_callback = false) + { + JSON_ASSERT(!keep_stack.empty()); + + // do not handle this value if we know it would be added to a discarded + // container + if (!keep_stack.back()) + { + return {false, nullptr}; + } + + // create value + auto value = BasicJsonType(std::forward(v)); + +#if JSON_DIAGNOSTIC_POSITIONS + handle_diagnostic_positions_for_json_value(value); +#endif + + // check callback + const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); + + // do not handle this value if we just learnt it shall be discarded + if (!keep) + { + return {false, nullptr}; + } + + if (ref_stack.empty()) + { + root = std::move(value); + return {true, & root}; + } + + // skip this value if we already decided to skip the parent + // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) + if (!ref_stack.back()) + { + return {false, nullptr}; + } + + // we now only expect arrays and objects + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + // array + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value)); + return {true, & (ref_stack.back()->m_data.m_value.array->back())}; + } + + // object + JSON_ASSERT(ref_stack.back()->is_object()); + // check if we should store an element for the current key + JSON_ASSERT(!key_keep_stack.empty()); + const bool store_element = key_keep_stack.back(); + key_keep_stack.pop_back(); + + if (!store_element) + { + return {false, nullptr}; + } + + JSON_ASSERT(object_element); + *object_element = std::move(value); + return {true, object_element}; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// stack to manage which values to keep + std::vector keep_stack {}; // NOLINT(readability-redundant-member-init) + /// stack to manage which object keys to keep + std::vector key_keep_stack {}; // NOLINT(readability-redundant-member-init) + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// callback function + const parser_callback_t callback = nullptr; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// a discarded value for the callback + BasicJsonType discarded = BasicJsonType::value_t::discarded; + /// the lexer reference to obtain the current position + lexer_t* m_lexer_ref = nullptr; +}; + +template +class json_sax_acceptor +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + bool null() + { + return true; + } + + bool boolean(bool /*unused*/) + { + return true; + } + + bool number_integer(number_integer_t /*unused*/) + { + return true; + } + + bool number_unsigned(number_unsigned_t /*unused*/) + { + return true; + } + + bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) + { + return true; + } + + bool string(string_t& /*unused*/) + { + return true; + } + + bool binary(binary_t& /*unused*/) + { + return true; + } + + bool start_object(std::size_t /*unused*/ = detail::unknown_size()) + { + return true; + } + + bool key(string_t& /*unused*/) + { + return true; + } + + bool end_object() + { + return true; + } + + bool start_array(std::size_t /*unused*/ = detail::unknown_size()) + { + return true; + } + + bool end_array() + { + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) + { + return false; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -9207,7 +9841,7 @@ static inline bool little_endianness(int num = 1) noexcept /*! @brief deserialization of CBOR, MessagePack, and UBJSON values */ -template> +template> class binary_reader { using number_integer_t = typename BasicJsonType::number_integer_t; @@ -9314,7 +9948,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -9470,6 +10104,12 @@ class binary_reader return get_number(input_format_t::bson, value) && sax->number_integer(value); } + case 0x11: // uint64 + { + std::uint64_t value{}; + return get_number(input_format_t::bson, value) && sax->number_unsigned(value); + } + default: // anything else not supported (yet) { std::array cr{{}}; @@ -9536,7 +10176,7 @@ class binary_reader std::int32_t document_size{}; get_number(input_format_t::bson, document_size); - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -9796,7 +10436,7 @@ class binary_reader } case 0x9F: // array (indefinite length) - return get_cbor_array(static_cast(-1), tag_handler); + return get_cbor_array(detail::unknown_size(), tag_handler); // map (0x00..0x17 pairs of data items follow) case 0xA0: @@ -9850,7 +10490,7 @@ class binary_reader } case 0xBF: // map (indefinite length) - return get_cbor_object(static_cast(-1), tag_handler); + return get_cbor_object(detail::unknown_size(), tag_handler); case 0xC6: // tagged item case 0xC7: @@ -10238,7 +10878,7 @@ class binary_reader } /*! - @param[in] len the length of the array or static_cast(-1) for an + @param[in] len the length of the array or detail::unknown_size() for an array of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether array creation completed @@ -10251,7 +10891,7 @@ class binary_reader return false; } - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -10276,7 +10916,7 @@ class binary_reader } /*! - @param[in] len the length of the object or static_cast(-1) for an + @param[in] len the length of the object or detail::unknown_size() for an object of indefinite size @param[in] tag_handler how CBOR tags should be treated @return whether object creation completed @@ -10292,7 +10932,7 @@ class binary_reader if (len != 0) { string_t key; - if (len != static_cast(-1)) + if (len != detail::unknown_size()) { for (std::size_t i = 0; i < len; ++i) { @@ -11455,6 +12095,16 @@ class binary_reader case 'Z': // null return sax->null(); + case 'B': // byte + { + if (input_format != input_format_t::bjdata) + { + break; + } + std::uint8_t number{}; + return get_number(input_format, number) && sax->number_unsigned(number); + } + case 'U': { std::uint8_t number{}; @@ -11655,7 +12305,7 @@ class binary_reader return false; } - if (size_and_type.second == 'C') + if (size_and_type.second == 'C' || size_and_type.second == 'B') { size_and_type.second = 'U'; } @@ -11677,6 +12327,13 @@ class binary_reader return (sax->end_array() && sax->end_object()); } + // If BJData type marker is 'B' decode as binary + if (input_format == input_format_t::bjdata && size_and_type.first != npos && size_and_type.second == 'B') + { + binary_t result; + return get_binary(input_format, size_and_type.first, result) && sax->binary(result); + } + if (size_and_type.first != npos) { if (JSON_HEDLEY_UNLIKELY(!sax->start_array(size_and_type.first))) @@ -11710,7 +12367,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -11788,7 +12445,7 @@ class binary_reader } else { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -11899,6 +12556,29 @@ class binary_reader return current = ia.get_character(); } + /*! + @brief get_to read into a primitive type + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns false instead + + @return bool, whether the read was successful + */ + template + bool get_to(T& dest, const input_format_t format, const char* context) + { + auto new_chars_read = ia.get_elements(&dest); + chars_read += new_chars_read; + if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T))) + { + // in case of failure, advance position by 1 to report failing location + ++chars_read; + sax->parse_error(chars_read, "", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr)); + return false; + } + return true; + } + /*! @return character read from the input after ignoring all 'N' entries */ @@ -11913,6 +12593,28 @@ class binary_reader return current; } + template + static void byte_swap(NumberType& number) + { + constexpr std::size_t sz = sizeof(number); +#ifdef __cpp_lib_byteswap + if constexpr (sz == 1) + { + return; + } + if constexpr(std::is_integral_v) + { + number = std::byteswap(number); + return; + } +#endif + auto* ptr = reinterpret_cast(&number); + for (std::size_t i = 0; i < sz / 2; ++i) + { + std::swap(ptr[i], ptr[sz - i - 1]); + } + } + /* @brief read a number from the input @@ -11931,29 +12633,16 @@ class binary_reader template bool get_number(const input_format_t format, NumberType& result) { - // step 1: read input into array with system's byte order - std::array vec{}; - for (std::size_t i = 0; i < sizeof(NumberType); ++i) + // read in the original format + + if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number"))) { - get(); - if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) - { - return false; - } - - // reverse byte order prior to conversion if necessary - if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) - { - vec[sizeof(NumberType) - i - 1] = static_cast(current); - } - else - { - vec[i] = static_cast(current); // LCOV_EXCL_LINE - } + return false; + } + if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata)) + { + byte_swap(result); } - - // step 2: convert array into number of type T and return - std::memcpy(&result, vec.data(), sizeof(NumberType)); return true; } @@ -12092,7 +12781,7 @@ class binary_reader } private: - static JSON_INLINE_VARIABLE constexpr std::size_t npos = static_cast(-1); + static JSON_INLINE_VARIABLE constexpr std::size_t npos = detail::unknown_size(); /// input adapter InputAdapterType ia; @@ -12118,6 +12807,7 @@ class binary_reader #define JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_ \ make_array( \ + bjd_type{'B', "byte"}, \ bjd_type{'C', "char"}, \ bjd_type{'D', "double"}, \ bjd_type{'I', "int16"}, \ @@ -12160,10 +12850,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12237,10 +12927,10 @@ class parser public: /// a parser reading from an input adapter explicit parser(InputAdapterType&& adapter, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions_ = true, const bool skip_comments = false) - : callback(cb) + : callback(std::move(cb)) , m_lexer(std::move(adapter), skip_comments) , allow_exceptions(allow_exceptions_) { @@ -12262,7 +12952,7 @@ class parser { if (callback) { - json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -12290,7 +12980,7 @@ class parser } else { - json_sax_dom_parser sdp(result, allow_exceptions); + json_sax_dom_parser sdp(result, allow_exceptions, &m_lexer); sax_parse_internal(&sdp); // in strict mode, input must be completely read @@ -12362,7 +13052,7 @@ class parser { case token_type::begin_object: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(detail::unknown_size()))) { return false; } @@ -12407,7 +13097,7 @@ class parser case token_type::begin_array: { - if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast(-1)))) + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(detail::unknown_size()))) { return false; } @@ -12689,10 +13379,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12702,10 +13392,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12861,10 +13551,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13331,7 +14021,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator==(const IterImpl& other) const @@ -13342,7 +14032,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + return true; + } switch (m_object->m_data.m_type) { @@ -13367,7 +14061,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: not equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ template < typename IterImpl, detail::enable_if_t < (std::is_same::value || std::is_same::value), std::nullptr_t > = nullptr > bool operator!=(const IterImpl& other) const @@ -13377,7 +14071,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: smaller - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<(const iter_impl& other) const { @@ -13387,7 +14081,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object)); } - JSON_ASSERT(m_object != nullptr); + // value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493 + if (m_object == nullptr) + { + // the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false + return false; + } switch (m_object->m_data.m_type) { @@ -13412,7 +14111,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: less than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator<=(const iter_impl& other) const { @@ -13421,7 +14120,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized. */ bool operator>(const iter_impl& other) const { @@ -13430,7 +14129,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci /*! @brief comparison: greater than or equal - @pre The iterator is initialized; i.e. `m_object != nullptr`. + @pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized. */ bool operator>=(const iter_impl& other) const { @@ -13623,10 +14322,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13758,10 +14457,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13800,10 +14499,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14033,7 +14732,7 @@ class json_pointer } const char* p = s.c_str(); - char* p_end = nullptr; + char* p_end = nullptr; // NOLINT(misc-const-correctness) errno = 0; // strtoull doesn't reset errno const unsigned long long res = std::strtoull(p, &p_end, 10); // NOLINT(runtime/int) if (p == p_end // invalid input or empty string @@ -14555,7 +15254,7 @@ class json_pointer // iterate array and use index as reference string for (std::size_t i = 0; i < value.m_data.m_value.array->size(); ++i) { - flatten(detail::concat(reference_string, '/', std::to_string(i)), + flatten(detail::concat(reference_string, '/', std::to_string(i)), value.m_data.m_value.array->operator[](i), result); } } @@ -14574,7 +15273,7 @@ class json_pointer // iterate object and use keys as reference string for (const auto& element : *value.m_data.m_value.object) { - flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result); + flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result); } } break; @@ -14795,10 +15494,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14880,6 +15579,8 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + // #include // #include @@ -14887,10 +15588,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14913,10 +15614,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -15067,6 +15768,13 @@ NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { +/// how to encode BJData +enum class bjdata_version_t +{ + draft2, + draft3, +}; + /////////////////// // binary writer // /////////////////// @@ -15651,7 +16359,7 @@ class binary_writer case value_t::binary: { // step 0: determine if the binary type has a set subtype to - // determine whether or not to use the ext or fixext types + // determine whether to use the ext or fixext types const bool use_ext = j.m_data.m_value.binary->has_subtype(); // step 1: write control byte and the byte string length @@ -15774,11 +16482,14 @@ class binary_writer @param[in] use_type whether to use '$' prefixes (optimized format) @param[in] add_prefix whether prefixes need to be used for this value @param[in] use_bjdata whether write in BJData format, default is false + @param[in] bjdata_version which BJData version to use, default is draft2 */ void write_ubjson(const BasicJsonType& j, const bool use_count, const bool use_type, const bool add_prefix = true, - const bool use_bjdata = false) + const bool use_bjdata = false, const bjdata_version_t bjdata_version = bjdata_version_t::draft2) { + const bool bjdata_draft3 = use_bjdata && bjdata_version == bjdata_version_t::draft3; + switch (j.type()) { case value_t::null: @@ -15868,7 +16579,7 @@ class binary_writer for (const auto& el : *j.m_data.m_value.array) { - write_ubjson(el, use_count, use_type, prefix_required, use_bjdata); + write_ubjson(el, use_count, use_type, prefix_required, use_bjdata, bjdata_version); } if (!use_count) @@ -15886,11 +16597,11 @@ class binary_writer oa->write_character(to_char_type('[')); } - if (use_type && !j.m_data.m_value.binary->empty()) + if (use_type && (bjdata_draft3 || !j.m_data.m_value.binary->empty())) { JSON_ASSERT(use_count); oa->write_character(to_char_type('$')); - oa->write_character('U'); + oa->write_character(bjdata_draft3 ? 'B' : 'U'); } if (use_count) @@ -15909,7 +16620,7 @@ class binary_writer { for (size_t i = 0; i < j.m_data.m_value.binary->size(); ++i) { - oa->write_character(to_char_type('U')); + oa->write_character(to_char_type(bjdata_draft3 ? 'B' : 'U')); oa->write_character(j.m_data.m_value.binary->data()[i]); } } @@ -15926,7 +16637,7 @@ class binary_writer { if (use_bjdata && j.m_data.m_value.object->size() == 3 && j.m_data.m_value.object->find("_ArrayType_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArraySize_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArrayData_") != j.m_data.m_value.object->end()) { - if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) + if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type, bjdata_version)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) { break; } @@ -15970,7 +16681,7 @@ class binary_writer oa->write_characters( reinterpret_cast(el.first.c_str()), el.first.size()); - write_ubjson(el.second, use_count, use_type, prefix_required, use_bjdata); + write_ubjson(el.second, use_count, use_type, prefix_required, use_bjdata, bjdata_version); } if (!use_count) @@ -16126,7 +16837,8 @@ class binary_writer } else { - JSON_THROW(out_of_range::create(407, concat("integer number ", std::to_string(j.m_data.m_value.number_unsigned), " cannot be represented by BSON as it does not fit int64"), &j)); + write_bson_entry_header(name, 0x11 /* uint64 */); + write_number(static_cast(j.m_data.m_value.number_unsigned), true); } } @@ -16654,10 +17366,11 @@ class binary_writer /*! @return false if the object is successfully converted to a bjdata ndarray, true if the type or size is invalid */ - bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value, const bool use_count, const bool use_type) + bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value, const bool use_count, const bool use_type, const bjdata_version_t bjdata_version) { std::map bjdtype = {{"uint8", 'U'}, {"int8", 'i'}, {"uint16", 'u'}, {"int16", 'I'}, - {"uint32", 'm'}, {"int32", 'l'}, {"uint64", 'M'}, {"int64", 'L'}, {"single", 'd'}, {"double", 'D'}, {"char", 'C'} + {"uint32", 'm'}, {"int32", 'l'}, {"uint64", 'M'}, {"int64", 'L'}, {"single", 'd'}, {"double", 'D'}, + {"char", 'C'}, {"byte", 'B'} }; string_t key = "_ArrayType_"; @@ -16687,10 +17400,10 @@ class binary_writer oa->write_character('#'); key = "_ArraySize_"; - write_ubjson(value.at(key), use_count, use_type, true, true); + write_ubjson(value.at(key), use_count, use_type, true, true, bjdata_version); key = "_ArrayData_"; - if (dtype == 'U' || dtype == 'C') + if (dtype == 'U' || dtype == 'C' || dtype == 'B') { for (const auto& el : value.at(key)) { @@ -16881,11 +17594,11 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -16906,11 +17619,11 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2009 Florian Loitsch -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -17146,10 +17859,10 @@ boundaries compute_boundaries(FloatType value) // v- m- v m+ v+ const bool lower_boundary_is_closer = F == 0 && E > 1; - const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_plus = diyfp((2 * v.f) + 1, v.e - 1); const diyfp m_minus = lower_boundary_is_closer - ? diyfp(4 * v.f - 1, v.e - 2) // (B) - : diyfp(2 * v.f - 1, v.e - 1); // (A) + ? diyfp((4 * v.f) - 1, v.e - 2) // (B) + : diyfp((2 * v.f) - 1, v.e - 1); // (A) // Determine the normalized w+ = m+. const diyfp w_plus = diyfp::normalize(m_plus); @@ -17379,7 +18092,7 @@ inline cached_power get_cached_power_for_binary_exponent(int e) JSON_ASSERT(e >= -1500); JSON_ASSERT(e <= 1500); const int f = kAlpha - e - 1; - const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + const int k = ((f * 78913) / (1 << 18)) + static_cast(f > 0); const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; JSON_ASSERT(index >= 0); @@ -17857,15 +18570,15 @@ inline char* append_exponent(char* buf, int e) } else if (k < 100) { - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } else { - *buf++ = static_cast('0' + k / 100); + *buf++ = static_cast('0' + (k / 100)); k %= 100; - *buf++ = static_cast('0' + k / 10); + *buf++ = static_cast('0' + (k / 10)); k %= 10; *buf++ = static_cast('0' + k); } @@ -18651,7 +19364,7 @@ class serializer @param[in] x unsigned integer number to count its digits @return number of decimal digits */ - inline unsigned int count_digits(number_unsigned_t x) noexcept + unsigned int count_digits(number_unsigned_t x) noexcept { unsigned int n_digits = 1; for (;;) @@ -18934,7 +19647,7 @@ class serializer ? (byte & 0x3fu) | (codep << 6u) : (0xFFu >> type) & (byte); - const std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + const std::size_t index = 256u + (static_cast(state) * 16u) + static_cast(type); JSON_ASSERT(index < utf8d.size()); state = utf8d[index]; return state; @@ -18960,7 +19673,7 @@ class serializer * absolute values of INT_MIN and INT_MAX are usually not the same. See * #1708 for details. */ - inline number_unsigned_t remove_sign(number_integer_t x) noexcept + number_unsigned_t remove_sign(number_integer_t x) noexcept { JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); // NOLINT(misc-redundant-expression) return static_cast(-(x + 1)) + 1; @@ -19002,10 +19715,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -19030,7 +19743,7 @@ NLOHMANN_JSON_NAMESPACE_BEGIN /// for use within nlohmann::basic_json template , class Allocator = std::allocator>> - struct ordered_map : std::vector, Allocator> + struct ordered_map : std::vector, Allocator> { using key_type = Key; using mapped_type = T; @@ -19345,7 +20058,7 @@ template , template using require_input_iter = typename std::enable_if::iterator_category, - std::input_iterator_tag>::value>::type; + std::input_iterator_tag>::value>::type; template> void insert(InputIt first, InputIt last) @@ -19416,9 +20129,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec friend class ::nlohmann::detail::binary_writer; template friend class ::nlohmann::detail::binary_reader; - template + template friend class ::nlohmann::detail::json_sax_dom_parser; - template + template friend class ::nlohmann::detail::json_sax_dom_callback_parser; friend class ::nlohmann::detail::exception; @@ -19439,7 +20152,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ) { return ::nlohmann::detail::parser(std::move(adapter), - std::move(cb), allow_exceptions, ignore_comments); + std::move(cb), allow_exceptions, ignore_comments); } private: @@ -19472,6 +20185,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using error_handler_t = detail::error_handler_t; /// how to treat CBOR tags using cbor_tag_handler_t = detail::cbor_tag_handler_t; + /// how to encode BJData + using bjdata_version_t = detail::bjdata_version_t; /// helper type for initializer lists of basic_json values using initializer_list_t = std::initializer_list>; @@ -19551,7 +20266,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { basic_json result; - result["copyright"] = "(C) 2013-2023 Niels Lohmann"; + result["copyright"] = "(C) 2013-2025 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"]["string"] = @@ -19816,7 +20531,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec object = nullptr; // silence warning, see #821 if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) { - JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.11.3", nullptr)); // LCOV_EXCL_LINE + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.12.0", nullptr)); // LCOV_EXCL_LINE } break; } @@ -20052,10 +20767,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return it; } - reference set_parent(reference j, std::size_t old_capacity = static_cast(-1)) + reference set_parent(reference j, std::size_t old_capacity = detail::unknown_size()) { #if JSON_DIAGNOSTICS - if (old_capacity != static_cast(-1)) + if (old_capacity != detail::unknown_size()) { // see https://github.com/nlohmann/json/issues/2838 JSON_ASSERT(type() == value_t::array); @@ -20135,8 +20850,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < !detail::is_basic_json::value && detail::is_compatible_type::value, int > = 0 > basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-forwarding-reference-overload,bugprone-exception-escape) - JSONSerializer::to_json(std::declval(), - std::forward(val)))) + JSONSerializer::to_json(std::declval(), + std::forward(val)))) { JSONSerializer::to_json(*this, std::forward(val)); set_parents(); @@ -20149,6 +20864,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::enable_if_t < detail::is_basic_json::value&& !std::is_same::value, int > = 0 > basic_json(const BasicJsonType& val) +#if JSON_DIAGNOSTIC_POSITIONS + : start_position(val.start_pos()), + end_position(val.end_pos()) +#endif { using other_boolean_t = typename BasicJsonType::boolean_t; using other_number_float_t = typename BasicJsonType::number_float_t; @@ -20195,6 +20914,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE } JSON_ASSERT(m_data.m_type == val.type()); + set_parents(); assert_invariant(); } @@ -20331,7 +21051,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class InputIT, typename std::enable_if < std::is_same::value || std::is_same::value, int >::type = 0 > - basic_json(InputIT first, InputIT last) + basic_json(InputIT first, InputIT last) // NOLINT(performance-unnecessary-value-param) { JSON_ASSERT(first.m_object != nullptr); JSON_ASSERT(last.m_object != nullptr); @@ -20446,6 +21166,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const basic_json& other) : json_base_class_t(other) +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) + , end_position(other.end_position) +#endif { m_data.m_type = other.m_data.m_type; // check of passed value is valid @@ -20515,15 +21239,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(basic_json&& other) noexcept : json_base_class_t(std::forward(other)), - m_data(std::move(other.m_data)) + m_data(std::move(other.m_data)) // cppcheck-suppress[accessForwarded] TODO check +#if JSON_DIAGNOSTIC_POSITIONS + , start_position(other.start_position) // cppcheck-suppress[accessForwarded] TODO check + , end_position(other.end_position) // cppcheck-suppress[accessForwarded] TODO check +#endif { // check that passed value is valid - other.assert_invariant(false); + other.assert_invariant(false); // cppcheck-suppress[accessForwarded] // invalidate payload other.m_data.m_type = value_t::null; other.m_data.m_value = {}; +#if JSON_DIAGNOSTIC_POSITIONS + other.start_position = std::string::npos; + other.end_position = std::string::npos; +#endif + set_parents(); assert_invariant(); } @@ -20544,6 +21277,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec using std::swap; swap(m_data.m_type, other.m_data.m_type); swap(m_data.m_value, other.m_data.m_value); + +#if JSON_DIAGNOSTIC_POSITIONS + swap(start_position, other.start_position); + swap(end_position, other.end_position); +#endif + json_base_class_t::operator=(std::move(other)); set_parents(); @@ -20765,13 +21504,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { - return is_number_integer() ? &m_data.m_value.number_integer : nullptr; + return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) @@ -20906,7 +21645,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_from_json::value, int > = 0 > ValueType get_impl(detail::priority_tag<0> /*unused*/) const noexcept(noexcept( - JSONSerializer::from_json(std::declval(), std::declval()))) + JSONSerializer::from_json(std::declval(), std::declval()))) { auto ret = ValueType(); JSONSerializer::from_json(*this, ret); @@ -20948,7 +21687,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_non_default_from_json::value, int > = 0 > ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(noexcept( - JSONSerializer::from_json(std::declval()))) + JSONSerializer::from_json(std::declval()))) { return JSONSerializer::from_json(*this); } @@ -21098,7 +21837,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::has_from_json::value, int > = 0 > ValueType & get_to(ValueType& v) const noexcept(noexcept( - JSONSerializer::from_json(std::declval(), v))) + JSONSerializer::from_json(std::declval(), v))) { JSONSerializer::from_json(*this, v); return v; @@ -21250,7 +21989,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -21273,7 +22012,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // create better exception explanation JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); - } + } // cppcheck-suppress[missingReturn] } else { @@ -21418,7 +22157,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief access specified object element /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/ - reference operator[](typename object_t::key_type key) + reference operator[](typename object_t::key_type key) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -21728,7 +22467,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType pos) + IteratorType erase(IteratorType pos) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) @@ -21798,7 +22537,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template < class IteratorType, detail::enable_if_t < std::is_same::value || std::is_same::value, int > = 0 > - IteratorType erase(IteratorType first, IteratorType last) + IteratorType erase(IteratorType first, IteratorType last) // NOLINT(performance-unnecessary-value-param) { // make sure iterator fits the current value if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) @@ -22565,7 +23304,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @note: This uses std::distance to support GCC 4.8, /// see https://github.com/nlohmann/json/pull/1257 template - iterator insert_iterator(const_iterator pos, Args&& ... args) + iterator insert_iterator(const_iterator pos, Args&& ... args) // NOLINT(performance-unnecessary-value-param) { iterator result(this); JSON_ASSERT(m_data.m_value.array != nullptr); @@ -22584,7 +23323,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const basic_json& val) + iterator insert(const_iterator pos, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -22604,14 +23343,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, basic_json&& val) + iterator insert(const_iterator pos, basic_json&& val) // NOLINT(performance-unnecessary-value-param) { return insert(pos, val); } /// @brief inserts copies of element into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) @@ -22631,7 +23370,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, const_iterator first, const_iterator last) + iterator insert(const_iterator pos, const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -22662,7 +23401,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts elements from initializer list into array /// @sa https://json.nlohmann.me/api/basic_json/insert/ - iterator insert(const_iterator pos, initializer_list_t ilist) + iterator insert(const_iterator pos, initializer_list_t ilist) // NOLINT(performance-unnecessary-value-param) { // insert only works for arrays if (JSON_HEDLEY_UNLIKELY(!is_array())) @@ -22682,7 +23421,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief inserts range of elements into object /// @sa https://json.nlohmann.me/api/basic_json/insert/ - void insert(const_iterator first, const_iterator last) + void insert(const_iterator first, const_iterator last) // NOLINT(performance-unnecessary-value-param) { // insert only works for objects if (JSON_HEDLEY_UNLIKELY(!is_object())) @@ -22703,6 +23442,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + set_parents(); } /// @brief updates a JSON object from another object, overwriting existing keys @@ -22714,7 +23454,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief updates a JSON object from another object, overwriting existing keys /// @sa https://json.nlohmann.me/api/basic_json/update/ - void update(const_iterator first, const_iterator last, bool merge_objects = false) + void update(const_iterator first, const_iterator last, bool merge_objects = false) // NOLINT(performance-unnecessary-value-param) { // implicitly convert null value to an empty object if (is_null()) @@ -23315,12 +24055,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec template JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(InputType&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::forward(i)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved,accessForwarded] return result; } @@ -23330,24 +24070,24 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json parse(IteratorType first, IteratorType last, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(detail::input_adapter(std::move(first), std::move(last)), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) static basic_json parse(detail::span_input_adapter&& i, - const parser_callback_t cb = nullptr, + parser_callback_t cb = nullptr, const bool allow_exceptions = true, const bool ignore_comments = false) { basic_json result; - parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + parser(i.get(), std::move(cb), allow_exceptions, ignore_comments).parse(true, result); // cppcheck-suppress[accessMoved] return result; } @@ -23526,6 +24266,23 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec basic_json* m_parent = nullptr; #endif +#if JSON_DIAGNOSTIC_POSITIONS + /// the start position of the value + std::size_t start_position = std::string::npos; + /// the end position of the value + std::size_t end_position = std::string::npos; + public: + constexpr std::size_t start_pos() const noexcept + { + return start_position; + } + + constexpr std::size_t end_pos() const noexcept + { + return end_position; + } +#endif + ////////////////////////////////////////// // binary serialization/deserialization // ////////////////////////////////////////// @@ -23611,27 +24368,30 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static std::vector to_bjdata(const basic_json& j, const bool use_size = false, - const bool use_type = false) + const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { std::vector result; - to_bjdata(j, result, use_size, use_type); + to_bjdata(j, result, use_size, use_type, version); return result; } /// @brief create a BJData serialization of a given JSON value /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static void to_bjdata(const basic_json& j, detail::output_adapter o, - const bool use_size = false, const bool use_type = false) + const bool use_size = false, const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { - binary_writer(o).write_ubjson(j, use_size, use_type, true, true); + binary_writer(o).write_ubjson(j, use_size, use_type, true, true, version); } /// @brief create a BJData serialization of a given JSON value /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/ static void to_bjdata(const basic_json& j, detail::output_adapter o, - const bool use_size = false, const bool use_type = false) + const bool use_size = false, const bool use_type = false, + const bjdata_version_t version = bjdata_version_t::draft2) { - binary_writer(o).write_ubjson(j, use_size, use_type, true, true); + binary_writer(o).write_ubjson(j, use_size, use_type, true, true, version); } /// @brief create a BSON serialization of a given JSON value @@ -23667,9 +24427,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23683,9 +24443,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23708,10 +24468,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + const bool res = binary_reader(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23724,9 +24484,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23739,9 +24499,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23762,10 +24522,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23778,9 +24538,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23793,9 +24553,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23816,10 +24576,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23832,9 +24592,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23847,9 +24607,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23862,9 +24622,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::forward(i)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23877,9 +24637,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = detail::input_adapter(std::move(first), std::move(last)); - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + detail::json_sax_dom_parser sdp(result, allow_exceptions); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } @@ -23900,10 +24660,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec const bool allow_exceptions = true) { basic_json result; - detail::json_sax_dom_parser sdp(result, allow_exceptions); auto ia = i.get(); + detail::json_sax_dom_parser sdp(result, allow_exceptions); // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg) - const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); + const bool res = binary_reader(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict); // cppcheck-suppress[accessMoved] return res ? result : basic_json(value_t::discarded); } /// @} @@ -24004,7 +24764,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // the valid JSON Patch operations enum class patch_operations {add, remove, replace, move, copy, test, invalid}; - const auto get_op = [](const std::string & op) + const auto get_op = [](const string_t& op) { if (op == "add") { @@ -24035,7 +24795,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec }; // wrapper for "add" operation; add value at ptr - const auto operation_add = [&result](json_pointer & ptr, basic_json val) + const auto operation_add = [&result](json_pointer & ptr, const basic_json & val) { // adding to the root of the target document means replacing it if (ptr.empty()) @@ -24141,15 +24901,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (const auto& val : json_patch) { // wrapper to get a value for an operation - const auto get_value = [&val](const std::string & op, - const std::string & member, + const auto get_value = [&val](const string_t& op, + const string_t& member, bool string_type) -> basic_json & { // find value auto it = val.m_data.m_value.object->find(member); // context-sensitive error message - const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); + const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); // NOLINT(bugprone-unused-local-non-trivial-variable) // check if desired value is present if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end())) @@ -24176,8 +24936,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } // collect mandatory members - const auto op = get_value("op", "op", true).template get(); - const auto path = get_value(op, "path", true).template get(); + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); json_pointer ptr(path); switch (get_op(op)) @@ -24203,7 +24963,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::move: { - const auto from_path = get_value("move", "from", true).template get(); + const auto from_path = get_value("move", "from", true).template get(); json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -24220,7 +24980,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case patch_operations::copy: { - const auto from_path = get_value("copy", "from", true).template get(); + const auto from_path = get_value("copy", "from", true).template get(); const json_pointer from_ptr(from_path); // the "from" location must exist - use at() @@ -24280,7 +25040,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/diff/ JSON_HEDLEY_WARN_UNUSED_RESULT static basic_json diff(const basic_json& source, const basic_json& target, - const std::string& path = "") + const string_t& path = "") { // the patch basic_json result(value_t::array); @@ -24310,7 +25070,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec while (i < source.size() && i < target.size()) { // recursive call to compare array values at index i - auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', std::to_string(i))); + auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', detail::to_string(i))); result.insert(result.end(), temp_diff.begin(), temp_diff.end()); ++i; } @@ -24327,7 +25087,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.insert(result.begin() + end_index, object( { {"op", "remove"}, - {"path", detail::concat(path, '/', std::to_string(i))} + {"path", detail::concat(path, '/', detail::to_string(i))} })); ++i; } @@ -24338,7 +25098,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result.push_back( { {"op", "add"}, - {"path", detail::concat(path, "/-")}, + {"path", detail::concat(path, "/-")}, {"value", target[i]} }); ++i; @@ -24353,7 +25113,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec for (auto it = source.cbegin(); it != source.cend(); ++it) { // escape the key name to be used in a JSON patch - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); if (target.find(it.key()) != target.end()) { @@ -24377,7 +25137,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (source.find(it.key()) == source.end()) { // found a key that is not in this -> add it - const auto path_key = detail::concat(path, '/', detail::escape(it.key())); + const auto path_key = detail::concat(path, '/', detail::escape(it.key())); result.push_back( { {"op", "add"}, {"path", path_key}, @@ -24558,10 +25318,10 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -24592,6 +25352,7 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC #undef JSON_HAS_CPP_14 #undef JSON_HAS_CPP_17 #undef JSON_HAS_CPP_20 + #undef JSON_HAS_CPP_23 #undef JSON_HAS_FILESYSTEM #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM #undef JSON_HAS_THREE_WAY_COMPARISON @@ -24603,10 +25364,10 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT diff --git a/lib/All/jsonfmcpp/single_include/nlohmann/json_fwd.hpp b/lib/All/jsonfmcpp/single_include/nlohmann/json_fwd.hpp index 29a6036..9429171 100644 --- a/lib/All/jsonfmcpp/single_include/nlohmann/json_fwd.hpp +++ b/lib/All/jsonfmcpp/single_include/nlohmann/json_fwd.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ @@ -18,10 +18,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.3 +// | | |__ | | | | | | version 3.12.0 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann // SPDX-License-Identifier: MIT @@ -30,20 +30,24 @@ #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) - #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0 #warning "Already included a different version of the library!" #endif #endif #endif #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum) #ifndef JSON_DIAGNOSTICS #define JSON_DIAGNOSTICS 0 #endif +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 #endif @@ -54,6 +58,12 @@ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS #endif +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp #else @@ -65,14 +75,15 @@ #endif // Construct the namespace ABI tags component -#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b -#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) #define NLOHMANN_JSON_ABI_TAGS \ NLOHMANN_JSON_ABI_TAGS_CONCAT( \ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ - NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) // Construct the namespace version component #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ diff --git a/lib/CMake/Linux/JoltPhysicslibConfig.cmake b/lib/CMake/Linux/JoltPhysicslibConfig.cmake index 261acbd..a6e14a2 100644 --- a/lib/CMake/Linux/JoltPhysicslibConfig.cmake +++ b/lib/CMake/Linux/JoltPhysicslibConfig.cmake @@ -1,3 +1,4 @@ set(JOLT_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/lib/All/JoltPhysics") -set(JOLT_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/lib/All/JoltPhysics/lib/libJolt.a") +set(JOLT_LIBRARIES_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/lib/All/JoltPhysics/lib/Release/libJolt.a") +set(JOLT_LIBRARIES_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/lib/All/JoltPhysics/lib/Debug/libJolt.a") diff --git a/lib/CMake/Linux/drlibsConfig.cmake b/lib/CMake/Linux/drlibsConfig.cmake new file mode 100644 index 0000000..a022cbb --- /dev/null +++ b/lib/CMake/Linux/drlibsConfig.cmake @@ -0,0 +1 @@ +set(DRLIBS_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/lib/All/dr_libs/") \ No newline at end of file diff --git a/schema_json.json b/schema_json.json index 21c99f5..5b73aab 100644 --- a/schema_json.json +++ b/schema_json.json @@ -2,12 +2,12 @@ "$schema": "https://json-schema.org/draft-07/schema#", "title": "SceneDescription", "type": "object", - "ID": 100, "properties": { "name": { "type": "string", "ID": 101}, "description": { "type": "string", "ID": 102}, "entities": { "type": "array", + "ID": 103, "items": { "$ref": "#/definitions/Entity" } } }, @@ -16,7 +16,6 @@ "Entity": { "type": "object", - "ID": 200, "properties": { "entityref": { "type": "integer", "ID": 201 }, "parent": { "type": ["integer", "null"] , "ID": 202}, @@ -27,26 +26,24 @@ "ID": 205, "items": { "type": "integer" } }, - "components": { "$ref": "#/definitions/Components" } + "components": { "ID": 206, "$ref": "#/definitions/Components" } }, "required": ["entityref", "name", "components"] }, "Components": { "type": "object", - "ID": 300, "properties": { - "transform": { "$ref": "#/definitions/Transform" }, - "renderer": { "$ref": "#/definitions/Renderer" }, - "camera": { "$ref": "#/definitions/Camera" }, - "collider": { "$ref": "#/definitions/Collider" }, - "rigidbody": { "$ref": "#/definitions/RigidBody" } + "transform": { "ID": 2061, "$ref": "#/definitions/Transform" }, + "renderer": { "ID": 2062, "$ref": "#/definitions/Renderer" }, + "camera": { "ID": 2063, "$ref": "#/definitions/Camera" }, + "collider": { "ID": 2064, "$ref": "#/definitions/Collider" }, + "rigidbody": { "ID": 2065, "$ref": "#/definitions/RigidBody" } } }, "Vec3": { "type": "array", - "ID": 401, "items": { "type": "number" }, "minItems": 3, "maxItems": 3 @@ -54,7 +51,6 @@ "Vec4": { "type": "array", - "ID": 402, "items": { "type": "number" }, "minItems": 4, "maxItems": 4 @@ -62,29 +58,26 @@ "Transform": { "type": "object", - "ID": 301, "properties": { - "position": { "$ref": "#/definitions/Vec3" }, - "rotation": { "$ref": "#/definitions/Vec3" }, - "scale": { "$ref": "#/definitions/Vec3" } + "position": { "ID": 3011, "$ref": "#/definitions/Vec3" }, + "rotation": { "ID": 3012, "$ref": "#/definitions/Vec3" }, + "scale": { "ID": 3013, "$ref": "#/definitions/Vec3" } }, "required": ["position", "rotation", "scale"] }, "Renderer": { - "type": "object", - "ID": 302, + "type": ["object", "null"], "properties": { - "model": { "type": "string", "ID": 3021 }, + "model": { "type": ["string", "null"], "ID": 3021 }, "shader": { "type": "string", "ID": 3022 }, - "albedo": { "type": "string", "ID": 3023 } + "albedo": { "type": ["string", "null"], "ID": 3023 } }, "required": ["model", "shader"] }, "Camera": { - "type": "object", - "ID": 303, + "type": ["object", "null"], "properties": { "fov": { "type": "number", "minimum": 1, "maximum": 179, "ID": 3031 }, "near": { "type": "number", "minimum": 0.001, "ID": 3032 }, @@ -94,17 +87,16 @@ }, "Collider": { - "type": "object", - "ID": 304, + "type": ["object", "null"], "properties": { "type": { "type": "string", "ID": 3041, "enum": ["Box", "Sphere", "Capsule", "ConvexHull", "Mesh", "Compound"] }, - "size": { "$ref": "#/definitions/Vec3" }, - "radius": { "type": "number", "minimum": 0, "ID": 3042 }, - "halfHeight": { "type": "number", "minimum": 0, "ID": 3043 } + "size": { "$ref": "#/definitions/Vec3", "ID": 3042 }, + "radius": { "type": "number", "minimum": 0, "ID": 3043 }, + "halfHeight": { "type": "number", "minimum": 0, "ID": 3044 } }, "required": ["type"], "allOf": [ @@ -124,8 +116,7 @@ }, "RigidBody": { - "type": "object", - "ID": 305, + "type": ["object", "null"], "properties": { "type": { "type": "string", diff --git a/src/Engine/Core/Component/CAbstractComponent.hpp b/src/Engine/Core/Component/CAbstractComponent.hpp index 568573e..273d13b 100644 --- a/src/Engine/Core/Component/CAbstractComponent.hpp +++ b/src/Engine/Core/Component/CAbstractComponent.hpp @@ -1,7 +1,7 @@ #ifndef CABSTRACT_COMPONENT_HPP #define CABSTRACT_COMPONENT_HPP -#include "../Utils/CSerializable.hpp" +#include "../../Utils/JsonParser/CSerializable.hpp" #include "../Entity/CEntity.hpp" namespace CosmicCore { @@ -25,9 +25,16 @@ namespace CosmicCore { class CAbstractComponent : public CSerializable{ public: CAbstractComponent(CEntity& entity): m_owningEntity(entity){}; + CAbstractComponent(CAbstractComponent&& other) = default; + CAbstractComponent& operator=(CAbstractComponent&&) = default; + virtual ~CAbstractComponent() = default; - CEntity getEntity() const { + CEntity& getEntity() { + return m_owningEntity; + } + + const CEntity& getEntity() const { return m_owningEntity; } diff --git a/src/Engine/Core/Component/Camera/CCamera.hpp b/src/Engine/Core/Component/Camera/CCamera.hpp index f95ab3a..6bb9221 100644 --- a/src/Engine/Core/Component/Camera/CCamera.hpp +++ b/src/Engine/Core/Component/Camera/CCamera.hpp @@ -6,7 +6,7 @@ #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include #include -#include "../../Graphics/API/VulkanImpl.hpp" +#include "../../Systems/Graphics/API/VulkanImplementation/VulkanImpl.hpp" #include "../Geometry/CTransform.hpp" namespace CosmicCore { @@ -65,14 +65,15 @@ public: // getters glm::mat4 getView(const CTransform& transform) const { - glm::quat q = transform.getOrientation(); + /*glm::quat q = transform.getOrientation(); glm::vec3 position = transform.getCenter(); // rotation inverse (conjugué du quaternion) + translation inverse glm::mat4 rotInverse = glm::toMat4(glm::conjugate(q)); - glm::mat4 transInverse = glm::translate(glm::mat4(1.0f), -position); + glm::mat4 transInverse = glm::translate(glm::mat4(1.0f), -position);*/ - return rotInverse * transInverse; + //return rotInverse * transInverse; + return glm::inverse(transform.getInheritedTransformation()); } glm::mat4 getProjection() const { return m_projection; } @@ -145,8 +146,9 @@ public: } } - - nlohmann::json to_json(){}; + nlohmann::json to_json(){ + return nlohmann::json(); + }; }; } // namespace CosmicCore diff --git a/src/Engine/Core/Component/Collider/CCollider.hpp b/src/Engine/Core/Component/Collider/CCollider.hpp index dfc6de7..6d880dc 100644 --- a/src/Engine/Core/Component/Collider/CCollider.hpp +++ b/src/Engine/Core/Component/Collider/CCollider.hpp @@ -3,7 +3,7 @@ #include "CAbstractCollider.hpp" #include #include -#include "../../Graphics/Data/Mesh/CMesh.hpp" +#include "../../Systems/Graphics/Data/Mesh/CMesh.hpp" #include "nlohmann/json_fwd.hpp" namespace CosmicCore { diff --git a/src/Engine/Core/Component/Geometry/CTransform.cpp b/src/Engine/Core/Component/Geometry/CTransform.cpp index 9fab206..e858c08 100644 --- a/src/Engine/Core/Component/Geometry/CTransform.cpp +++ b/src/Engine/Core/Component/Geometry/CTransform.cpp @@ -1,5 +1,5 @@ #include "CTransform.hpp" -#include "../../Graphics/API/VulkanImpl.hpp" +#include "../../Systems/Graphics/API/VulkanImplementation/VulkanImpl.hpp" #include "../Relationships/CRelationship.hpp" namespace CosmicCore { @@ -71,10 +71,10 @@ namespace CosmicCore auto& rel = registry().get(*getEntity()); - if (rel.getParent() == entt::null) + if (!rel.getParent().has_value()) return m_transformation; - auto& parentTransform = registry().get(rel.getParent()); + auto& parentTransform = registry().get(rel.getParent().value()); return parentTransform.getInheritedTransformation() * m_transformation; } diff --git a/src/Engine/Core/Component/Geometry/CTransform.hpp b/src/Engine/Core/Component/Geometry/CTransform.hpp index 71b464c..00e1585 100644 --- a/src/Engine/Core/Component/Geometry/CTransform.hpp +++ b/src/Engine/Core/Component/Geometry/CTransform.hpp @@ -10,9 +10,8 @@ #include #include #include - -#include "../../Graphics/API/VMABuffer.hpp" -#include "../../Graphics/API/ManagedDescriptorSet.hpp" +#include "../../Systems/Graphics/API/VulkanImplementation/VMABuffer.hpp" +#include "../../Systems/Graphics/API/VulkanImplementation/ManagedDescriptorSet.hpp" namespace CosmicCore { diff --git a/src/Engine/Core/Component/Graphics/CRenderer.hpp b/src/Engine/Core/Component/Graphics/CRenderer.hpp index 79e731b..365f51c 100644 --- a/src/Engine/Core/Component/Graphics/CRenderer.hpp +++ b/src/Engine/Core/Component/Graphics/CRenderer.hpp @@ -1,7 +1,7 @@ #ifndef CTESTRENDERER_HPP #define CTESTRENDERER_HPP #include "CAbstractRenderer.hpp" -#include "../../Graphics/Data/CModel.hpp" +#include "../../Systems/Graphics/Data/Model/CModel.hpp" namespace CosmicCore { class CRenderer: public CAbstractRenderer { diff --git a/src/Engine/Core/Component/Relationships/CRelationship.hpp b/src/Engine/Core/Component/Relationships/CRelationship.hpp index 38fe225..3c5fcba 100644 --- a/src/Engine/Core/Component/Relationships/CRelationship.hpp +++ b/src/Engine/Core/Component/Relationships/CRelationship.hpp @@ -3,24 +3,26 @@ #include "../CAbstractComponent.hpp" #include "nlohmann/json_fwd.hpp" -#include +#include #include namespace CosmicCore { class CRelationship : public CAbstractComponent{ private: - EntityId parent = entt::null; + std::optional parent; std::vector children; public: CRelationship(CEntity& entity): CAbstractComponent(entity){} - CRelationship(CEntity& entity, EntityId p): CAbstractComponent(entity), parent(p){} + CRelationship(CEntity& entity, std::optional p): CAbstractComponent(entity), parent(p){} CRelationship(CEntity& entity, std::vector childs): CAbstractComponent(entity), children(childs){} - CRelationship(CEntity& entity, EntityId p, std::vector childs): CAbstractComponent(entity), parent(p), children(childs){} + CRelationship(CEntity& entity, std::optional p, std::vector childs): CAbstractComponent(entity), parent(p), children(childs){} nlohmann::json to_json(){return nlohmann::json();} void setParent(EntityId par){parent = par;} void addChild(EntityId child){children.emplace_back(child);} - EntityId getParent(){return parent;} + std::optional getParent(){return parent;} + const std::optional getParent() const {return parent;} + std::vector& getChildren(){return children;} }; diff --git a/src/Engine/Core/Component/Rigidbody/CRigidBody.cpp b/src/Engine/Core/Component/Rigidbody/CRigidBody.cpp index 92f1423..7c271cc 100644 --- a/src/Engine/Core/Component/Rigidbody/CRigidBody.cpp +++ b/src/Engine/Core/Component/Rigidbody/CRigidBody.cpp @@ -1,10 +1,9 @@ #include "CRigidBody.hpp" -#include "../../Physics/PhysicsLayers.hpp" +#include "../../Systems/Physics/PhysicsLayers.hpp" #include "../../Scene/CScene.hpp" #include "../Geometry/CTransform.hpp" #include "../Collider/CCollider.hpp" #include "Jolt/Physics/EActivation.h" -#include namespace CosmicCore { CRigidBody::CRigidBody(CEntity& entity, EBodyType type): CAbstractRigidBody(entity), m_bodyType(type) diff --git a/src/Engine/Core/Component/Script/CAbstractScript.cpp b/src/Engine/Core/Component/Script/CAbstractScript.cpp index 2897e26..4ea8f6a 100644 --- a/src/Engine/Core/Component/Script/CAbstractScript.cpp +++ b/src/Engine/Core/Component/Script/CAbstractScript.cpp @@ -1,31 +1,9 @@ #include "CAbstractScript.hpp" -//#include "../../../Controller/CKernel.hpp" namespace CosmicCore { - //CPlugin* CAbstractScript::m_scriptPLugin = nullptr; - CAbstractScript::CAbstractScript(CEntity& entity) : CAbstractComponent(entity) + CAbstractScript::CAbstractScript(CEntity& entity, const std::string& name) : CAbstractComponent(entity), m_scriptName(name) { - //m_kernelPTR = CKernel::m_kernel; - } - - nlohmann::json CAbstractScript::to_json() - { - nlohmann::json absScript; - absScript["scriptName"] = m_scriptName; - absScript["ComponentType"] = EComponentType::COMPONENT_SCRIPT; - return absScript; - } - - CAbstractScript* CAbstractScript::from_json(CEntity& entity, nlohmann::json& j) - { - /*std::string name = j["scriptName"]; - CAbstractScript* script = CAbstractScript::m_scriptPLugin->useCreator("instantiate"+name); - script->setEntity(entity); - script->setKernel(CKernel::m_kernel); - script->start(); - return script;*/ - return nullptr; } } diff --git a/src/Engine/Core/Component/Script/CAbstractScript.hpp b/src/Engine/Core/Component/Script/CAbstractScript.hpp index d3a3e04..a24fb4c 100644 --- a/src/Engine/Core/Component/Script/CAbstractScript.hpp +++ b/src/Engine/Core/Component/Script/CAbstractScript.hpp @@ -3,31 +3,27 @@ #include "../CAbstractComponent.hpp" #include "../../Entity/CEntity.hpp" -#include -//#include "../../../Modules/CPlugin.hpp" -//#include "../../../Controller/CKernel.fwd.hpp" + namespace CosmicCore { - //TODO + class CAbstractScript : public CAbstractComponent { private: - std::string m_scriptName; - //CKernel* m_kernelPTR; + std::string m_scriptName; public: - //static CPlugin* m_scriptPLugin; - CAbstractScript(CEntity& entity); + CAbstractScript(CEntity& entity, const std::string& name); + CAbstractScript(CAbstractScript&& other) = default; + CAbstractScript& operator=(CAbstractScript&&) = default; + virtual void start() = 0; virtual void update() = 0; - nlohmann::json to_json(); - static CAbstractScript* from_json(CEntity& entity, nlohmann::json& j); - virtual ~CAbstractScript(){}; + virtual void destroy() = 0; + virtual nlohmann::json to_json() = 0; + virtual ~CAbstractScript() = default; std::string getName() { return m_scriptName; }; - //CKernel* getKernel() { return m_kernelPTR; }; - //void setKernel(CKernel* kernel) { m_kernelPTR = kernel; }; - void setName(std::string name) { m_scriptName = name; }; + void setName(const std::string& name) { m_scriptName = name; }; }; } - #endif \ No newline at end of file diff --git a/src/Engine/Core/Component/Script/CScript.cpp b/src/Engine/Core/Component/Script/CScript.cpp new file mode 100644 index 0000000..ae4e5fa --- /dev/null +++ b/src/Engine/Core/Component/Script/CScript.cpp @@ -0,0 +1,38 @@ +#include "CScript.hpp" +#include "Core/Component/Script/CAbstractScript.hpp" +#include "Core/Systems/Scripts/API/CScriptAPI.hpp" + +namespace CosmicCore { + + CScript::CScript(CEntity& entity, const std::string& name, std::unique_ptr&& innerScript) : CAbstractScript(entity, name), m_innerScript(std::move(innerScript)) + { + + } + + CScript::CScript(CEntity& entity, const std::string& name) : CAbstractScript(entity, name) + { + m_innerScript = CScriptAPI::scripts().create(name, entity, name); + } + + void CScript::start() + { + m_innerScript->start(); + } + + void CScript::update() + { + m_innerScript->update(); + } + + void CScript::destroy() + { + m_innerScript->destroy(); + } + + nlohmann::json CScript::to_json() + { + return m_innerScript->to_json(); + } + +} + diff --git a/src/Engine/Core/Component/Script/CScript.hpp b/src/Engine/Core/Component/Script/CScript.hpp new file mode 100644 index 0000000..ca5ca15 --- /dev/null +++ b/src/Engine/Core/Component/Script/CScript.hpp @@ -0,0 +1,30 @@ +#ifndef CSCRIPT_HPP +#define CSCRIPT_HPP + +#include "CAbstractScript.hpp" +#include "Core/Entity/CEntity.hpp" +#include + +namespace CosmicCore { + + class CScript : public CAbstractScript + { + private: + std::unique_ptr m_innerScript; + + public: + CScript(CEntity& entity, const std::string& name, std::unique_ptr&& innerScript); + CScript(CEntity& entity, const std::string& name); + CScript(CScript&& mov) = default; + CScript& operator=(CScript&&) = default; + + void start() override; + void update() override; + void destroy() override; + nlohmann::json to_json() override; + virtual ~CScript() = default; + }; +} + + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Component/Script/CScriptManager.cpp b/src/Engine/Core/Component/Script/CScriptManager.cpp new file mode 100644 index 0000000..0f9df4c --- /dev/null +++ b/src/Engine/Core/Component/Script/CScriptManager.cpp @@ -0,0 +1,23 @@ +#include "CScriptManager.hpp" +#include "Core/Component/Script/CScript.hpp" +#include "nlohmann/json_fwd.hpp" + +namespace CosmicCore { + + void CScriptManager::emplace(const std::string& name) + { + m_scripts.emplace_back(getEntity(), name); + } + + nlohmann::json CScriptManager::to_json(){ + return nlohmann::json(); + } + void CScriptManager::updateAll() + { + for(auto& sc : m_scripts) + { + sc.update(); + } + } + +} \ No newline at end of file diff --git a/src/Engine/Core/Component/Script/CScriptManager.hpp b/src/Engine/Core/Component/Script/CScriptManager.hpp new file mode 100644 index 0000000..cbdbf05 --- /dev/null +++ b/src/Engine/Core/Component/Script/CScriptManager.hpp @@ -0,0 +1,27 @@ +#ifndef CSCRIPTMANAGER_HPP +#define CSCRIPTMANAGER_HPP + +#include "Core/Component/CAbstractComponent.hpp" +#include "Core/Component/Script/CScript.hpp" +#include "Core/Entity/CEntity.hpp" +#include +namespace CosmicCore { + + class CScriptManager: public CAbstractComponent + { + private: + std::vector m_scripts; + public: + CScriptManager(CEntity& entity) : CAbstractComponent(entity) {}; + CScriptManager(CScriptManager&& mov) = default; + ~CScriptManager() = default; + CScriptManager& operator=(CScriptManager&&) = default; + + void emplace(const std::string& name); + void updateAll(); + nlohmann::json to_json(); + }; + +} + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Component/Speaker/CSpeaker.cpp b/src/Engine/Core/Component/Speaker/CSpeaker.cpp new file mode 100644 index 0000000..5f699cc --- /dev/null +++ b/src/Engine/Core/Component/Speaker/CSpeaker.cpp @@ -0,0 +1,121 @@ +#include "CSpeaker.hpp" +#include "../../Systems/Resources/API/CResourceAPI.hpp" + +namespace CosmicCore { + + CSpeaker::CSpeaker(CEntity& entity): CAbstractComponent(entity) + { + + } + + + void CSpeaker::addClip(const std::string& name, const std::string& path, float gain, float pitch, bool loop, bool spatial) { + auto* clip = CResourceAPI::resources().sounds().loadClip(path); + + SoundInstance instance; + instance.clip = clip; + instance.gain = gain; + instance.pitch = pitch; + instance.spatial = spatial; + instance.loop = loop; + alGenSources(1, &instance.source); + + alSourcei(instance.source, AL_SOURCE_RELATIVE, AL_FALSE); + //TODO + // à passer dans la config + alSourcef(instance.source, AL_ROLLOFF_FACTOR, 1.3f); + alSourcef(instance.source, AL_REFERENCE_DISTANCE, 0.2f); // distance à partir de laquelle le son diminue + alSourcef(instance.source, AL_MAX_DISTANCE, 100.0f); // distance max + + alSourcei(instance.source, AL_BUFFER, clip->buffer); + alSourcef(instance.source, AL_GAIN, m_masterGain*instance.gain); + alSourcei(instance.source, AL_LOOPING, instance.loop); + alSource3f(instance.source, AL_POSITION, 0, 0, 0); + m_clips[name] = instance; + } + + void CSpeaker::addClip(const std::string& name, CAudioClip* clip, float gain, float pitch, bool loop, bool spatial) { + SoundInstance instance; + instance.clip = clip; + instance.gain = gain; + instance.pitch = pitch; + instance.spatial = spatial; + instance.loop = loop; + alGenSources(1, &instance.source); + + alSourcei(instance.source, AL_SOURCE_RELATIVE, AL_FALSE); + //TODO + // à passer dans la config + alSourcef(instance.source, AL_ROLLOFF_FACTOR, 1.3f); + alSourcef(instance.source, AL_REFERENCE_DISTANCE, 0.2f); // distance à partir de laquelle le son diminue + alSourcef(instance.source, AL_MAX_DISTANCE, 100.0f); // distance max + + alSourcei(instance.source, AL_BUFFER, clip->buffer); + alSourcef(instance.source, AL_GAIN, m_masterGain*instance.gain); + alSourcei(instance.source, AL_LOOPING, instance.loop); + alSource3f(instance.source, AL_POSITION, 0, 0, 0); + m_clips[name] = instance; + } + + void CSpeaker::play(const std::string& name) { + auto it = m_clips.find(name); + if (it == m_clips.end()) return; + alSourcePlay(it->second.source); + } + + void CSpeaker::stop(const std::string& name) { + auto it = m_clips.find(name); + if (it == m_clips.end()) return; + alSourceStop(it->second.source); + } + + void CSpeaker::pause(const std::string& name) { + auto it = m_clips.find(name); + if (it == m_clips.end()) return; + alSourcePause(it->second.source); + } + + void CSpeaker::stopAll() { + for (auto& [name, instance] : m_clips) + alSourceStop(instance.source); + } + + void CSpeaker::setLoop(const std::string& name, bool loop) { + auto it = m_clips.find(name); + if (it == m_clips.end()) return; + it->second.loop = loop; + alSourcei(it->second.source, AL_LOOPING, loop ? AL_TRUE : AL_FALSE); + } + + void CSpeaker::setGain(const std::string& name, float gain) { + auto it = m_clips.find(name); + if (it == m_clips.end()) return; + it->second.gain = gain; + alSourcef(it->second.source, AL_GAIN, gain * m_masterGain); + } + + void CSpeaker::updatePosition(const CTransform& transform, glm::vec3 velocity) { + for (auto& [name, instance] : m_clips) { + auto center = transform.getCenter(); + if (!instance.spatial) continue; + alSource3f(instance.source, AL_POSITION, + center.x, center.y, center.z); + alSource3f(instance.source, AL_VELOCITY, + velocity.x, velocity.y, velocity.z); + } + } + + bool CSpeaker::isPlaying(const std::string& name) const { + auto it = m_clips.find(name); + if (it == m_clips.end()) return false; + ALint state; + alGetSourcei(it->second.source, AL_SOURCE_STATE, &state); + return state == AL_PLAYING; + } + + CSpeaker::~CSpeaker() { + for (auto& [name, instance] : m_clips) + alDeleteSources(1, &instance.source); + } + +} \ No newline at end of file diff --git a/src/Engine/Core/Component/Speaker/CSpeaker.hpp b/src/Engine/Core/Component/Speaker/CSpeaker.hpp new file mode 100644 index 0000000..d31c905 --- /dev/null +++ b/src/Engine/Core/Component/Speaker/CSpeaker.hpp @@ -0,0 +1,58 @@ +#ifndef CSPEAKER_HPP +#define CSPEAKER_HPP +#include +#include +#include "../CAbstractComponent.hpp" +#include "../Geometry/CTransform.hpp" +#include "../../Systems/Audio/Sound/CAudioClip.hpp" +#include "nlohmann/json_fwd.hpp" +namespace CosmicCore { + + struct SoundInstance { + CAudioClip* clip = nullptr; + ALuint source = 0; + float gain = 1.0f; + float pitch = 1.0f; + bool loop = false; + bool spatial = true; + }; + + class CSpeaker : public CAbstractComponent { + std::unordered_map m_clips; + bool m_muted = false; + float m_masterGain = 1.0f; + + public: + CSpeaker(CEntity& entity); + // charge et enregistre un son + void addClip(const std::string& name, const std::string& path, float gain = 1.0f, float pitch = 1.0f, bool loop = false, bool spatial = true); + void addClip(const std::string& name, CAudioClip* clip, float gain = 1.0f, float pitch = 1.0f, bool loop = false, bool spatial = true); + + void play(const std::string& name); + + void stop(const std::string& name); + + void pause(const std::string& name); + + void stopAll(); + + void setLoop(const std::string& name, bool loop); + + void setGain(const std::string& name, float gain); + + bool isPlaying(const std::string& name) const; + + ~CSpeaker(); + + // paramètres globaux du speaker + void setMuted(bool muted); + void setMasterGain(float gain); + + void updatePosition(const CTransform& transform, glm::vec3 velocity = {0,0,0}); + + nlohmann::json to_json(){return nlohmann::json();}; + }; + +} + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Entity/CEntity.cpp b/src/Engine/Core/Entity/CEntity.cpp index e59ac82..e4f292e 100644 --- a/src/Engine/Core/Entity/CEntity.cpp +++ b/src/Engine/Core/Entity/CEntity.cpp @@ -1,12 +1,12 @@ #include "CEntity.hpp" #include "nlohmann/json_fwd.hpp" -#include +#include namespace CosmicCore { - CEntity::CEntity(EntityComponentManager& registry, EntityId handle, CScene* scene) : CSerializable(), m_scene(scene), m_registryReference(registry), m_handle(handle) + CEntity::CEntity(std::reference_wrapper registry, EntityId handle, CScene* scene) : CSerializable(), m_scene(scene), m_registryReference(registry), m_handle(handle) { } @@ -14,6 +14,14 @@ namespace CosmicCore } + CEntity& CEntity::operator=(const CEntity& ent) + { + m_handle = ent.m_handle; + m_registryReference = ent.m_registryReference; + m_scene = ent.m_scene; + return *this; + } + CScene* CEntity::getScene() { return m_scene; @@ -24,9 +32,9 @@ namespace CosmicCore m_scene = s; } - CEntity CEntity::getParent() { + /*CEntity CEntity::getParent() { //to implement - } + }*/ nlohmann::json CEntity::to_json(){return nlohmann::json();}; } \ No newline at end of file diff --git a/src/Engine/Core/Entity/CEntity.hpp b/src/Engine/Core/Entity/CEntity.hpp index 3f8429b..6ccf1bf 100644 --- a/src/Engine/Core/Entity/CEntity.hpp +++ b/src/Engine/Core/Entity/CEntity.hpp @@ -2,9 +2,9 @@ #define CENTITY_HPP #include -#include -#include "../Utils/CSerializable.hpp" -#include "../Systems/EntityComponentManager.hpp" +#include +#include "../../Utils/JsonParser/CSerializable.hpp" +#include "EntityComponentManager.hpp" namespace CosmicCore { @@ -19,7 +19,7 @@ namespace CosmicCore */ CScene* m_scene; - EntityComponentManager& m_registryReference; + std::reference_wrapper m_registryReference; EntityId m_handle; @@ -30,9 +30,11 @@ namespace CosmicCore */ CEntity() = delete; - CEntity(EntityComponentManager& registry, EntityId handle, CScene* scene); + CEntity(std::reference_wrapper registry, EntityId handle, CScene* scene); CEntity(const CEntity& cop); + + CEntity& operator=(const CEntity& ent); /** * @brief CEntity's destructor. */ @@ -42,7 +44,7 @@ namespace CosmicCore * @brief Getter to the parent entity. * @return a pointer to the parent entity m_parent. nullptr if there is not. */ - CEntity getParent(); + //CEntity getParent(); template void addComponent(std::forward_list args) @@ -57,7 +59,10 @@ namespace CosmicCore } EntityComponentManager& getRegistry(){return m_registryReference;}; + const EntityComponentManager& getRegistry() const {return m_registryReference;}; + EntityId getHandle(){return m_handle;}; + /** * @brief Getter to the entity's scene. * @return The pointer m_scene. @@ -73,7 +78,10 @@ namespace CosmicCore EntityId operator*(){ return m_handle; } - + + const EntityId operator*() const { + return m_handle; + } //TODO GET COMPONENT VECTOR OF SPECIFIC TYPE ? si utile nlohmann::json to_json(); diff --git a/src/Engine/Core/Systems/EntityComponentManager.hpp b/src/Engine/Core/Entity/EntityComponentManager.hpp similarity index 100% rename from src/Engine/Core/Systems/EntityComponentManager.hpp rename to src/Engine/Core/Entity/EntityComponentManager.hpp diff --git a/src/Engine/Core/Graphics/Data/CModel.hpp b/src/Engine/Core/Graphics/Data/CModel.hpp deleted file mode 100644 index e355ee2..0000000 --- a/src/Engine/Core/Graphics/Data/CModel.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CMODEL_HPP -#define CMODEL_HPP - -#include "Mesh/CMesh.hpp" -#include - -class CModel { -private: - - std::vector m_meshes; - - bool m_loaded; - -public: - - CModel(void) = delete; - - CModel(std::vector meshes); - - ~CModel(void); - - void load(void); - - //void draw(glm::mat4 model, glm::mat4 view, glm::mat4 projection, glm::vec3 lightPos, float intensity); - - std::vector& getMeshes(void); - - void setMeshes(std::vector meshes); - - bool isLoaded(void); - -}; - -#endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/CModelLoader.cpp b/src/Engine/Core/Graphics/Data/CModelLoader.cpp deleted file mode 100644 index 492aff6..0000000 --- a/src/Engine/Core/Graphics/Data/CModelLoader.cpp +++ /dev/null @@ -1,152 +0,0 @@ -#include "CModelLoader.hpp" -#include "../API/GraphicsAPI.hpp" -#include - -CModel* CModelLoader::loadModel(std::string fileName, CResourceManager& rm) -{ - Assimp::Importer importer; - - const aiScene* scene = importer.ReadFile(fileName.c_str(), - aiProcess_Triangulate | - aiProcess_FlipUVs | - aiProcess_CalcTangentSpace | - aiProcess_GenNormals - ); - - if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) - throw std::runtime_error("Assimp: " + std::string(importer.GetErrorString())); - - // dossier de base pour les textures relatives - std::vector meshes; - processNode(scene->mRootNode, scene, fileName, rm, meshes); - - // crée et enregistre le model - auto model = std::make_unique(meshes); - auto* ptr = model.get(); - rm.getModelManager().addModel(fileName,std::move(model)); - - return ptr; -} - -void CModelLoader::processNode(aiNode* node, const aiScene* scene, const std::string& directory, CResourceManager& rm, std::vector& meshes) -{ - // process all the node's meshes (if any) - for (uint32_t i = 0; i < node->mNumMeshes; i++) { - aiMesh* mesh = scene->mMeshes[node->mMeshes[i]]; - meshes.push_back(processMesh(mesh, scene, directory, rm)); - } - // then do the same for each of its children - for (uint32_t i = 0; i < node->mNumChildren; i++) { - processNode(node->mChildren[i], scene, directory, rm, meshes); - } -} - -CMesh* CModelLoader::processMesh(aiMesh* mesh, const aiScene* scene, const std::string& directory, CResourceManager& rm) -{ - std::vector vertices; - std::vector indices; - - // vertices - for (uint32_t i = 0; i < mesh->mNumVertices; i++) { - SVertex vertex{}; - vertex.m_position = { - mesh->mVertices[i].x, - mesh->mVertices[i].y, - mesh->mVertices[i].z - }; - vertex.m_normal = mesh->HasNormals() ? - glm::vec3(mesh->mNormals[i].x, mesh->mNormals[i].y, mesh->mNormals[i].z) : - glm::vec3(0.0f); - - vertex.m_texCoords = mesh->mTextureCoords[0] ? - glm::vec2(mesh->mTextureCoords[0][i].x, mesh->mTextureCoords[0][i].y) : - glm::vec2(0.0f); - - vertex.m_tangent = mesh->HasTangentsAndBitangents() ? - glm::vec3(mesh->mTangents[i].x, mesh->mTangents[i].y, mesh->mTangents[i].z) : - glm::vec3(0.0f); - - vertex.m_bitangent = mesh->HasTangentsAndBitangents() ? - glm::vec3(mesh->mBitangents[i].x, mesh->mBitangents[i].y, mesh->mBitangents[i].z) : - glm::vec3(0.0f); - - vertices.push_back(vertex); - } - - // indices - for (uint32_t i = 0; i < mesh->mNumFaces; i++) { - aiFace face = mesh->mFaces[i]; - for (uint32_t j = 0; j < face.mNumIndices; j++) - indices.push_back(face.mIndices[j]); - } - - // material - CMaterial* material = nullptr; - if (mesh->mMaterialIndex >= 0) { - material = processMaterial( - scene->mMaterials[mesh->mMaterialIndex], - directory, - rm - ); - } - - // crée et enregistre le mesh - auto newMesh = std::make_unique(); - newMesh->setVertices(vertices); - newMesh->setIndexes(indices); - if (material) newMesh->setMaterial(material); - newMesh->load(); - - auto* ptr = newMesh.get(); - rm.getMeshManager().addMesh(directory, std::move(newMesh)); - return ptr; -} - -CMaterial* CModelLoader::processMaterial(aiMaterial* mat, const std::string& directory, CResourceManager& rm) -{ - auto newMat = std::make_unique(); - - // albedo - if (mat->GetTextureCount(aiTextureType_DIFFUSE) > 0) { - aiString path; - mat->GetTexture(aiTextureType_DIFFUSE, 0, &path); - newMat->textureAlbedo = loadTexture( - directory + "/" + path.C_Str(), rm - ); - } - - // normal - if (mat->GetTextureCount(aiTextureType_NORMALS) > 0) { - aiString path; - mat->GetTexture(aiTextureType_NORMALS, 0, &path); - newMat->textureNormal = loadTexture( - directory + "/" + path.C_Str(), rm - ); - } - - auto shader = GraphicsAPI::getAPI()->getShaderManager().get("triangle"); - newMat->shader = static_cast(shader); - newMat->build(); - - auto* ptr = newMat.get(); - rm.getMaterialManager().addMaterial(directory, std::move(newMat)); - return ptr; -} - - -CTexture* CModelLoader::loadTexture(const std::string& directory, CResourceManager& rm) -{ - auto text = rm.getTextureManager().get(directory); - if(rm.getTextureManager().get(directory)) - { - return text.value(); - } - else { - auto tex = std::make_unique(directory); - tex->init(); - - auto* ptr = tex.get(); - rm.getTextureManager().addTexture(directory, std::move(tex)); - return ptr; - } -} \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/CModelManager.hpp b/src/Engine/Core/Graphics/Data/CModelManager.hpp deleted file mode 100644 index 0dcc3f6..0000000 --- a/src/Engine/Core/Graphics/Data/CModelManager.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CMODELMANAGER_HPP -#define CMODELMANAGER_HPP - -#include "CModel.hpp" -#include -#include -class CModelManager -{ - public: - std::list> loadedModel; - std::unordered_map modelsMap; - - void addModel(std::string name, std::unique_ptr&& model) - { - loadedModel.push_back(std::move(model)); - modelsMap[name] = loadedModel.back().get(); - } - std::optional get(std::string name) - { - auto find = modelsMap.find(name); - if(find != modelsMap.end()) - { - return find->second; - } - else { - return nullptr; - } - } - -}; - - #endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/CResourceManager.hpp b/src/Engine/Core/Graphics/Data/CResourceManager.hpp deleted file mode 100644 index 83523f9..0000000 --- a/src/Engine/Core/Graphics/Data/CResourceManager.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef CRESOURCEMANAGER_HPP -#define CRESOURCEMANAGER_HPP - -#include "CModelManager.hpp" -#include "Mesh/CMeshManager.hpp" -#include "Material/CMaterialManager.hpp" -#include "Texture/CTextureManager.hpp" - -class CResourceManager{ - private: - CModelManager modelManager; - CMeshManager meshManager; - CMaterialManager materialManager; - CTextureManager textureManager; - public: - CModelManager& getModelManager() { return modelManager; } - CMeshManager& getMeshManager() { return meshManager; } - CMaterialManager& getMaterialManager() { return materialManager; } - CTextureManager& getTextureManager() {return textureManager;} - void cleanup(){ - materialManager.loadedMaterials.clear(); - meshManager.loadedMeshes.clear(); - modelManager.loadedModel.clear(); - textureManager.loadedTextures.clear(); - }; -}; - -#endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/Material/CMaterialManager.hpp b/src/Engine/Core/Graphics/Data/Material/CMaterialManager.hpp deleted file mode 100644 index 6831326..0000000 --- a/src/Engine/Core/Graphics/Data/Material/CMaterialManager.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef CMATERIALMANAGER_HPP -#define CMATERIALMANAGER_HPP - -#include "CMaterial.hpp" -#include -#include -#include -class CMaterialManager -{ - public: - std::list> loadedMaterials; - std::unordered_map materialsMap; - void addMaterial(std::string name, std::unique_ptr&& mat) - { - loadedMaterials.push_back(std::move(mat)); - materialsMap[name] = loadedMaterials.back().get(); - } - std::optional get(std::string name) - { - auto find = materialsMap.find(name); - if(find != materialsMap.end()) - { - return find->second; - } - else { - return nullptr; - } - } -}; - - #endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/Mesh/CMeshManager.hpp b/src/Engine/Core/Graphics/Data/Mesh/CMeshManager.hpp deleted file mode 100644 index cebfb3b..0000000 --- a/src/Engine/Core/Graphics/Data/Mesh/CMeshManager.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef CMESHMANAGER_HPP -#define CMESHMANAGER_HPP - -#include "CMesh.hpp" -#include -#include -class CMeshManager -{ - public: - std::list> loadedMeshes; - std::unordered_map meshesMap; - void addMesh(std::string name, std::unique_ptr&& mesh) - { - loadedMeshes.push_back(std::move(mesh)); - meshesMap[name] = loadedMeshes.back().get(); - } - - std::optional get(std::string name) - { - auto find = meshesMap.find(name); - if(find != meshesMap.end()) - { - return find->second; - } - else { - return nullptr; - } - } -}; - - #endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/Texture/CTextureManager.hpp b/src/Engine/Core/Graphics/Data/Texture/CTextureManager.hpp deleted file mode 100644 index f659059..0000000 --- a/src/Engine/Core/Graphics/Data/Texture/CTextureManager.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CTEXTUREMANAGER_HPP -#define CTEXTUREMANAGER_HPP - -#include "CTexture.hpp" -#include -#include -#include -#include -class CTextureManager -{ - public: - std::list> loadedTextures; - std::unordered_map texturesMap; - void addTexture(std::string name, std::unique_ptr&& text) - { - loadedTextures.push_back(std::move(text)); - texturesMap[name] = loadedTextures.back().get(); - } - std::optional get(std::string name) - { - auto find = texturesMap.find(name); - if(find != texturesMap.end()) - { - return find->second; - } - else { - return nullptr; - } - } -}; - - #endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Shader/CShadersManager.hpp b/src/Engine/Core/Graphics/Shader/CShadersManager.hpp deleted file mode 100644 index cdcc762..0000000 --- a/src/Engine/Core/Graphics/Shader/CShadersManager.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CSHADERSMANAGER_HPP -#define CSHADERSMANAGER_HPP - -#include -#include -#include - -#include -#include - -#include "CShader.hpp" - -#define SHADERS_FOLDER "assets/shaders/slang/spv" - - -class CShadersManager { -private: - std::list> shaders; - std::unordered_map m_shadersMap; - -public: - - CShadersManager(void); - - CShadersManager(const CShadersManager& param) = delete; - - ~CShadersManager(void); - - CShadersManager& operator=(const CShadersManager& param) = delete; - - CShader* get(std::string name) const; - - std::list>::const_iterator beginShaders(){return shaders.cbegin();}; - std::list>::const_iterator endShaders(){return shaders.cend();}; - - void compile(void); - - void create(void); - - void cleanup(){ - shaders.clear(); - } -}; - -#endif \ No newline at end of file diff --git a/src/Engine/Core/Kernel/CKernel.cpp b/src/Engine/Core/Kernel/CKernel.cpp index 2a4b23b..f874d28 100644 --- a/src/Engine/Core/Kernel/CKernel.cpp +++ b/src/Engine/Core/Kernel/CKernel.cpp @@ -5,20 +5,26 @@ #include #include #include +#include +#include #include #include #include -#include "../Graphics/CContext.hpp" -#include "../Graphics/API/GraphicsAPI.hpp" -#include "../Physics/CPhysicsAPI.hpp" +#include "../Systems/Graphics/CContext.hpp" +#include "../Systems/Graphics/API/GraphicsAPI.hpp" +#include "../Systems/Physics/API/CPhysicsAPI.hpp" #include "../Scene/CScene.hpp" #include "../Entity/CEntity.hpp" #include "../Component/Camera/CCamera.hpp" #include "../../Utils/Factory/CEntityFactory.hpp" #include "../../Utils/Factory/ComponentFactory.hpp" +#include "../../Utils/JsonParser/Identifier.hpp" #include "../Component/Graphics/CRenderer.hpp" + +#include "../Modules/Scripts/CScriptRegister.hpp" +#include "Core/Systems/Scripts/API/CScriptAPI.hpp" #include "glm/ext/vector_float3.hpp" //CShader* CKernel::m_mainShader; @@ -38,8 +44,8 @@ namespace CosmicCore { m_gameName(gameName), m_window(gameName, LOGO, 1270, 720, true, false) { m_kernel = this; - CContext::init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC); + CScriptAPI::init(); } CKernel::~CKernel() @@ -52,38 +58,20 @@ namespace CosmicCore { } void CKernel::start(bool isPreview) { + //CScriptRegister::registerAllScripts(); + JPH::RegisterDefaultAllocator(); + //JPH::Trace = JoltTraceImpl; + JPH::Factory::sInstance = new JPH::Factory(); + JPH::RegisterTypes(); + + std::filesystem::path pathToSchema("schema_json.json"); + CosmicUtils::JsonValidator::init(pathToSchema); if(!isPreview) { m_window.initialization(); - - m_sceneMap["TestScene"] = std::make_unique("Scene1"); - m_activeScene = m_sceneMap["TestScene"].get(); - - CEntityFactory::EntityConfig configCamera; - CEntityFactory::EntityConfig configSol; - CEntityFactory::EntityConfig configCube; - - configCamera = {"camera", "une caméra", {0.0f,0.0f,6.0f}, {1.0f,1.0f,1.0f}, glm::vec3(), "", "triangle", EColliderType::Box, EBodyType::Static, false}; - configSol = {"sol", "le sol, ne bouge pas", {0.0f,-2.0f,0.0f}, {100.0f,1.0f,100.0f}, glm::vec3(), "assets/models/cube.glb", "triangle", EColliderType::Box, EBodyType::Static, true}; - configCube = {"cube", "le cube, shrek", {0.0f,60.0f,0.0f}, {1.0f,1.0f,1.0f}, glm::vec3(), "assets/models/cube.glb", "triangle", EColliderType::Box, EBodyType::Dynamic, true}; - - auto cam = CEntityFactory::create(m_activeScene, configCamera); - ComponentFactory::addCamera(cam); - - CEntityFactory::create(m_activeScene, configSol); - auto e = CEntityFactory::create(m_activeScene, configCube); - auto& renderer = m_activeScene->getECManager().registry.get(*e); - - VulkanImpl* api = dynamic_cast(GraphicsAPI::getAPI().get()); - api->getResourceManager().getTextureManager().loadedTextures.push_back(std::make_unique("assets/shrekt.png")); - auto texture = api->getResourceManager().getTextureManager().loadedTextures.back().get(); - texture->init(); - - for(auto& mesh : renderer.getModel()->getMeshes()) - { - mesh->getMaterial()->textureAlbedo = texture; - mesh->getMaterial()->build(); - } + auto scene = CScene::load("scenes/scene1.json"); + m_activeScene = scene.get(); + m_sceneMap[scene->getName()] = std::move(scene); } } @@ -120,7 +108,11 @@ namespace CosmicCore { // Handle key press SDL_Keycode keyPressed = event.key.key; auto entities = m_activeScene->getECManager().registry.view(); + auto shrek = m_activeScene->getECManager().registry.view(); + auto& ent = m_activeScene->getECManager().registry.get(entities.front()); + auto& speaker = m_activeScene->getECManager().registry.get(shrek.front()); + switch (keyPressed) { case SDLK_Z: ent.forward({0.0f, 0.0f, -0.08f}); @@ -140,6 +132,9 @@ namespace CosmicCore { case SDLK_A: ent.forward({0.0f, 0.08f, 0.0f}); break; + case SDLK_P: + speaker.play("assets/GiveAlittleBit.flac"); + break; default: break; } @@ -162,6 +157,10 @@ namespace CosmicCore { if(m_activeScene) { m_activeScene->getTangibleWorld().updateWorld(1.0f/60.0f); + m_activeScene->getAudioWorld().updateWorld(1.0f/60.0f); + m_activeScene->getScriptWorld().updateWorld(1.0f/60.0f); + + //TODO scne update -> physics + audio + scripts ? GraphicsAPI::getAPI()->drawFrame(); } @@ -182,6 +181,10 @@ namespace CosmicCore { void CKernel::quit() { m_finished = true; + JPH::UnregisterTypes(); + // Destroy the factory + delete JPH::Factory::sInstance; + JPH::Factory::sInstance = nullptr; } diff --git a/src/Engine/Core/Kernel/CKernel.hpp b/src/Engine/Core/Kernel/CKernel.hpp index ee02d33..c2c8d3f 100644 --- a/src/Engine/Core/Kernel/CKernel.hpp +++ b/src/Engine/Core/Kernel/CKernel.hpp @@ -7,7 +7,7 @@ #include #include -#include "../Graphics/Window/CGameWindow.hpp" +#include "../Systems/Graphics/Window/CGameWindow.hpp" #include "../Scene/CScene.hpp" diff --git a/src/Engine/Core/Scene/CScene.cpp b/src/Engine/Core/Scene/CScene.cpp index cc41b75..d72810a 100644 --- a/src/Engine/Core/Scene/CScene.cpp +++ b/src/Engine/Core/Scene/CScene.cpp @@ -4,15 +4,28 @@ #include "../Component/Meta/CMetaData.hpp" #include "../Component/Geometry/CTransform.hpp" #include "../Component/Camera/CCamera.hpp" -#include "../Graphics/API/GraphicsAPI.hpp" +#include "../Systems/Graphics/API/GraphicsAPI.hpp" +#include "../../Utils/JsonParser/Identifier.hpp" +#include "../../Utils/Factory/CEntityFactory.hpp" +#include "../../Utils/Factory/ComponentFactory.hpp" +#include "glm/ext/vector_float3.hpp" +#include "glm/gtc/type_ptr.hpp" +#include "nlohmann/json_fwd.hpp" + +#include #include +#include +#include +#include namespace CosmicCore { CScene::CScene(std::string name) : CSerializable(), - m_name(std::move(name)), m_tangibleWorld(this) + m_name(std::move(name)), m_tangibleWorld(this), m_audioWorld(this), m_scriptWorld(this) { m_tangibleWorld.initWorld(); + m_audioWorld.initWorld(); + m_scriptWorld.initWorld(); } @@ -23,6 +36,8 @@ namespace CosmicCore { CScene::~CScene() { m_tangibleWorld.destroy(); + m_audioWorld.destroy(); + m_scriptWorld.destroy(); } CEntity CScene::createEntity(){ @@ -73,22 +88,22 @@ namespace CosmicCore { {} ); - for (auto& mesh : model->getMeshes()) { + for (auto& mm : model->getMeshMaterials()) { // ne rebind le pipeline que si le material change //if (mesh.getMaterial() != boundMaterial) { //boundMaterial = mesh.getMaterial(); cmd.bindPipeline(vk::PipelineBindPoint::eGraphics, - *mesh->getMaterial()->getPipeline()); + *mm.material->getPipeline()); cmd.bindDescriptorSets(vk::PipelineBindPoint::eGraphics, - *mesh->getMaterial()->getPipelineLayout(), + *mm.material->getPipelineLayout(), 2, - *mesh->getMaterial()->getDescriptorSet(frameIndex), + *mm.material->getDescriptorSet(frameIndex), {}); //} - cmd.bindVertexBuffers(0, vk::Buffer(mesh->getVertexIndexBuffer().buffer), mesh->getVertexOffset()); - cmd.bindIndexBuffer(vk::Buffer(mesh->getVertexIndexBuffer().buffer), mesh->getIndexOffset(), vk::IndexType::eUint32); - cmd.drawIndexed(mesh->getIndexCount(), 1, 0, 0, 0); + cmd.bindVertexBuffers(0, vk::Buffer(mm.mesh->getVertexIndexBuffer().buffer), mm.mesh->getVertexOffset()); + cmd.bindIndexBuffer(vk::Buffer(mm.mesh->getVertexIndexBuffer().buffer), mm.mesh->getIndexOffset(), vk::IndexType::eUint32); + cmd.drawIndexed(mm.mesh->getIndexCount(), 1, 0, 0, 0); } } } @@ -97,4 +112,151 @@ namespace CosmicCore { { return nlohmann::json(); } + + std::unique_ptr CScene::load(const std::string &path) + { + std::ifstream file(path); + nlohmann::json sceneJson = nlohmann::json::parse(file); + if(CosmicUtils::JsonValidator::validate(sceneJson)) + { + std::string sceneName = sceneJson[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Scene_Name)]; + + std::unordered_map idToHandle; + std::unordered_map idToParent; + std::unordered_map> idToChildren; + + //TODO add descritpion to members + std::string sceneDescription = sceneJson[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Scene_Description)]; + auto scene = std::make_unique(sceneName); + nlohmann::json& entities = sceneJson[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Scene_Entities)]; + for(auto& entity : entities.items()) + { + nlohmann::json& entityObj = entity.value(); + auto ref = entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Ref)].get(); + std::optional parent = !entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Parent)].is_null() ? std::optional(entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Parent)].get()) : std::nullopt; + auto children = entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Children)].get>(); + + nlohmann::json& components = entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Components)]; + nlohmann::json& transform = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Transform)]; + nlohmann::json& camera = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Camera)]; + nlohmann::json& collider = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Collider)]; + nlohmann::json& rigidbody = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Rigidbody)]; + nlohmann::json& renderer = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Renderer)]; + nlohmann::json& speaker = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Speaker)]; + nlohmann::json& script = components[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Component_Script)]; + + auto trConfig(!transform.is_null() ? std::optional({ + glm::make_vec3(transform[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Transform_Position)].get>().data()), + glm::make_vec3(transform[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Transform_Rotation)].get>().data()), + glm::make_vec3(transform[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Transform_Scale)].get>().data()) + }) : std::nullopt); + + auto camConfig(!camera.is_null() ? std::optional({ + camera[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Camera_Fov)].get(), + camera[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Camera_Near)].get(), + camera[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Camera_Far)].get() + }) : std::nullopt); + + auto colliderConfig(!collider.is_null() ? std::optional({ + static_cast(collider[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Collider_Type)].get()), + glm::vec3(), + 0, + 0, + }) : std::nullopt); + + auto rigidbodyConfig(!rigidbody.is_null() ? std::optional({ + static_cast(rigidbody[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::RigidBody_Type)].get()), + rigidbody[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::RigidBody_Mass)].get(), + rigidbody[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::RigidBody_Friction)].get(), + rigidbody[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::RigidBody_Restitution)].get() + }) : std::nullopt); + + auto rendererConfig(!renderer.is_null() ? std::optional({ + renderer[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Renderer_Model)].get(), + renderer[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Renderer_Shader)].get(), + !renderer[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Renderer_Albedo)].is_null() ? std::optional(renderer[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Renderer_Albedo)].get()) : std::nullopt, + }) : std::nullopt); + + auto scriptConfig(!script.is_null() ? std::optional({ + script.get>() + }): std::nullopt); + + std::optional speakerConfig = std::nullopt; + if(!speaker.is_null()) + { + if(!speaker[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Clips)].empty()) + { + speakerConfig = std::optional(CosmicUtils::ComponentFactory::SpeakerConfig()); + for(auto clipConf : speaker[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Clips)]) + { + CosmicUtils::ComponentFactory::SpeakerConfig::SoundClipConfig conf + { + clipConf[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Path)].get(), + clipConf[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Gain)].get(), + clipConf[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Pitch)].get(), + clipConf[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Loop)].get(), + clipConf[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Speaker_Spatial)].get() + }; + speakerConfig->clips.push_back(conf); + } + } + } + + CosmicUtils::CEntityFactory::EntityConfig config = { + entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Name)], + entityObj[CosmicUtils::JsonKeyRegistry::key(CosmicUtils::EJsonKeys::Entity_Description)], + trConfig, + camConfig, + rendererConfig, + colliderConfig, + rigidbodyConfig, + speakerConfig, + scriptConfig + }; + + auto entityHandle = CosmicUtils::CEntityFactory::create(scene.get(), config); + idToHandle.emplace(std::make_pair(ref, entityHandle)); + if(parent.has_value()) + idToParent[ref] = parent.value(); + + for(auto i : children) + { + idToChildren[ref].push_back(i); + } + } + + //Connect entities to relationships + for(auto& [entityNb, handle]: idToHandle) + { + CosmicUtils::ComponentFactory::RelationshipConfig cnf; + if(idToParent.find(entityNb) != idToParent.end()) + { + cnf.parent = std::optional(idToHandle.at(idToParent.at(entityNb)).getHandle()); + } + else + { + cnf.parent = std::nullopt; + } + + for(auto& child : idToChildren[entityNb]) + { + cnf.children.push_back(idToHandle.at(child).getHandle()); + } + CosmicUtils::ComponentFactory::addRelationship(handle, cnf); + } + + return scene; + } + return nullptr; + } + + void CScene::save(CScene *scene, const std::string &path) + { + + } + + void CScene::save(const std::string& path) + { + save(this, path); + } } \ No newline at end of file diff --git a/src/Engine/Core/Scene/CScene.hpp b/src/Engine/Core/Scene/CScene.hpp index 026dcf8..d7de811 100644 --- a/src/Engine/Core/Scene/CScene.hpp +++ b/src/Engine/Core/Scene/CScene.hpp @@ -1,11 +1,14 @@ #ifndef CSCENE_HPP #define CSCENE_HPP -#include "../Systems/EntityComponentManager.hpp" -#include "../Utils/CSerializable.hpp" +#include "../Entity/EntityComponentManager.hpp" +#include "../../Utils/JsonParser/CSerializable.hpp" #include #include -#include "../Physics/CTangibleWorld.hpp" +#include "../Systems/Physics/CTangibleWorld.hpp" +#include "../Systems/Audio/CAudioWorld.hpp" +#include "Core/Systems/Scripts/CScriptWorld.hpp" + namespace CosmicCore { class CEntity; class CScene : public CSerializable { @@ -14,10 +17,16 @@ namespace CosmicCore { std::string m_name; EntityComponentManager m_ecManager; CTangibleWorld m_tangibleWorld; - + CAudioWorld m_audioWorld; + CScriptWorld m_scriptWorld; public: CScene() = delete; CScene(std::string name); + CScene(CScene&&) = delete; + CScene& operator=(CScene&&) = delete; + CScene(const CScene&) = delete; + CScene& operator=(const CScene&) = delete; + virtual ~CScene(); unsigned int getNumEntity() const; @@ -31,6 +40,11 @@ namespace CosmicCore { void removeEntity(unsigned int index, bool destroy = true); CTangibleWorld& getTangibleWorld() {return m_tangibleWorld;}; + + CAudioWorld& getAudioWorld() {return m_audioWorld;}; + + CScriptWorld& getScriptWorld() {return m_scriptWorld;}; + //CEntity* getActiveCamera(); //void setActiveCamera(CEntity* newCamera); @@ -85,6 +99,12 @@ namespace CosmicCore { } return s; };*/ + + static std::unique_ptr load(const std::string& path); + static void save(CScene* scene, const std::string& path); + + void save(const std::string& path); + }; } #endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Audio/API/CAudioAPI.cpp b/src/Engine/Core/Systems/Audio/API/CAudioAPI.cpp new file mode 100644 index 0000000..59c8495 --- /dev/null +++ b/src/Engine/Core/Systems/Audio/API/CAudioAPI.cpp @@ -0,0 +1,8 @@ +#include "CAudioAPI.hpp" + +namespace CosmicCore { + CAudioAPI::~CAudioAPI() + { + + } +} diff --git a/src/Engine/Core/Systems/Audio/API/CAudioAPI.hpp b/src/Engine/Core/Systems/Audio/API/CAudioAPI.hpp new file mode 100644 index 0000000..ed169b8 --- /dev/null +++ b/src/Engine/Core/Systems/Audio/API/CAudioAPI.hpp @@ -0,0 +1,25 @@ +#ifndef CAUDIOAPI_HPP +#define CAUDIOAPI_HPP +namespace CosmicCore { + + class CScene; + /** + * @brief Class representing any audio world - abstract. + */ + class CAudioAPI { + + private: + CScene* m_scene; + public: + CAudioAPI(CScene* scene): m_scene(scene){}; + virtual ~CAudioAPI(); + + virtual void updateWorld(float delta) = 0; + + virtual void initWorld() = 0; + virtual void destroy() = 0; + + CScene* getScene(){return m_scene;}; + }; +} +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Audio/CAudioWorld.cpp b/src/Engine/Core/Systems/Audio/CAudioWorld.cpp new file mode 100644 index 0000000..c030f7e --- /dev/null +++ b/src/Engine/Core/Systems/Audio/CAudioWorld.cpp @@ -0,0 +1,61 @@ +#include "CAudioWorld.hpp" +#include "../../Scene/CScene.hpp" +#include "../../Component/Camera/CCamera.hpp" +#include "../../Component/Speaker/CSpeaker.hpp" + +#include + +namespace CosmicCore { + + CAudioWorld::~CAudioWorld() + { + + } + + void CAudioWorld::initWorld() { + m_device = alcOpenDevice(nullptr); + m_context = alcCreateContext(m_device, nullptr); + alcMakeContextCurrent(m_context); + + // active le distance model + alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED); + alListenerf(AL_GAIN, 1.0f); + } + + void CAudioWorld::updateWorld(float delta) { + auto& registry = getScene()->getECManager().registry; + + // met à jour la position de l'écouteur depuis la caméra + auto camView = registry.view(); + if (camView.begin() != camView.end()) { + auto& camTransform = registry.get(camView.front()); + glm::vec3 pos = camTransform.getCenter(); + glm::vec3 forward = camTransform.getOrientation() * glm::vec3(0,0,-1); + glm::vec3 up = camTransform.getOrientation() * glm::vec3(0,1,0); + + alListener3f(AL_POSITION, pos.x, pos.y, pos.z); + float orientation[6] = { + forward.x, forward.y, forward.z, + up.x, up.y, up.z + }; + alListenerfv(AL_ORIENTATION, orientation); + } + + // met à jour la position de chaque speaker + auto view = registry.view(); + for (auto entity : view) { + auto& speaker = registry.get(entity); + auto& transform = registry.get(entity); + speaker.updatePosition( + transform, + {0.0f,0.0f,0.0f} // si tu as une vélocité dans CTransform + ); + } + } + + void CAudioWorld::destroy() { + alcMakeContextCurrent(nullptr); + alcDestroyContext(m_context); + alcCloseDevice(m_device); + } +} \ No newline at end of file diff --git a/src/Engine/Core/Systems/Audio/CAudioWorld.hpp b/src/Engine/Core/Systems/Audio/CAudioWorld.hpp new file mode 100644 index 0000000..f8054a9 --- /dev/null +++ b/src/Engine/Core/Systems/Audio/CAudioWorld.hpp @@ -0,0 +1,26 @@ +#ifndef CAUDIOWORLD_HPP +#define CAUDIOWORLD_HPP + +#include + +#include "API/CAudioAPI.hpp" + +namespace CosmicCore { + + class CAudioWorld : public CAudioAPI{ + ALCdevice* m_device = nullptr; + ALCcontext* m_context = nullptr; + + public: + CAudioWorld(CScene* scene) : CAudioAPI(scene) {} + ~CAudioWorld(); + void initWorld(); + + void updateWorld(float delta); + + void destroy(); + }; + +} + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Audio/Sound/CAudioClip.hpp b/src/Engine/Core/Systems/Audio/Sound/CAudioClip.hpp new file mode 100644 index 0000000..dead8ed --- /dev/null +++ b/src/Engine/Core/Systems/Audio/Sound/CAudioClip.hpp @@ -0,0 +1,20 @@ +#ifndef CAUDIOCLIP_HPP +#define CAUDIOCLIP_HPP +#include + +#include + +class CAudioClip { + private: + public: + ALuint buffer = 0; + std::string path; + float duration = 0.0f; + + + ~CAudioClip() { + if (buffer) alDeleteBuffers(1, &buffer); + } +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/API/GraphicsAPI.cpp b/src/Engine/Core/Systems/Graphics/API/GraphicsAPI.cpp similarity index 82% rename from src/Engine/Core/Graphics/API/GraphicsAPI.cpp rename to src/Engine/Core/Systems/Graphics/API/GraphicsAPI.cpp index 00c5e0f..523f665 100644 --- a/src/Engine/Core/Graphics/API/GraphicsAPI.cpp +++ b/src/Engine/Core/Systems/Graphics/API/GraphicsAPI.cpp @@ -1,5 +1,5 @@ #include "GraphicsAPI.hpp" -#include "VulkanImpl.hpp" +#include "VulkanImplementation/VulkanImpl.hpp" #include std::unique_ptr GraphicsAPI::impl = nullptr; diff --git a/src/Engine/Core/Graphics/API/GraphicsAPI.hpp b/src/Engine/Core/Systems/Graphics/API/GraphicsAPI.hpp similarity index 63% rename from src/Engine/Core/Graphics/API/GraphicsAPI.hpp rename to src/Engine/Core/Systems/Graphics/API/GraphicsAPI.hpp index 2d7741c..79c05cb 100644 --- a/src/Engine/Core/Graphics/API/GraphicsAPI.hpp +++ b/src/Engine/Core/Systems/Graphics/API/GraphicsAPI.hpp @@ -3,8 +3,6 @@ #include #include -#include "../Shader/CShadersManager.hpp" -#include "../Data/CResourceManager.hpp" enum class GraphicsBackend{ Vulkan, @@ -14,9 +12,6 @@ enum class GraphicsBackend{ class GraphicsAPI{ static std::unique_ptr impl; - protected: - CShadersManager shadermanager; - CResourceManager resourceManager; public: static void initAPI(); static std::unique_ptr& getAPI(){return impl;}; @@ -25,8 +20,6 @@ class GraphicsAPI{ virtual ~GraphicsAPI(){}; virtual void* getDevice() = 0; virtual void drawFrame() = 0; - CShadersManager& getShaderManager(){return shadermanager;}; - CResourceManager& getResourceManager(){return resourceManager;}; }; diff --git a/src/Engine/Core/Graphics/API/Constants.hpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/Constants.hpp similarity index 100% rename from src/Engine/Core/Graphics/API/Constants.hpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/Constants.hpp diff --git a/src/Engine/Core/Graphics/API/DeletionQueue.hpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/DeletionQueue.hpp similarity index 100% rename from src/Engine/Core/Graphics/API/DeletionQueue.hpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/DeletionQueue.hpp diff --git a/src/Engine/Core/Graphics/API/ManagedDescriptorSet.hpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/ManagedDescriptorSet.hpp similarity index 100% rename from src/Engine/Core/Graphics/API/ManagedDescriptorSet.hpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/ManagedDescriptorSet.hpp diff --git a/src/Engine/Core/Graphics/API/VMABuffer.hpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VMABuffer.hpp similarity index 100% rename from src/Engine/Core/Graphics/API/VMABuffer.hpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VMABuffer.hpp diff --git a/src/Engine/Core/Graphics/API/VMAUsage.cpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VMAUsage.cpp similarity index 100% rename from src/Engine/Core/Graphics/API/VMAUsage.cpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VMAUsage.cpp diff --git a/src/Engine/Core/Graphics/API/VulkanImpl.cpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.cpp similarity index 99% rename from src/Engine/Core/Graphics/API/VulkanImpl.cpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.cpp index 6eb5367..c7828b1 100644 --- a/src/Engine/Core/Graphics/API/VulkanImpl.cpp +++ b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.cpp @@ -8,9 +8,11 @@ #include #include #include -#include "../../Kernel/CKernel.hpp" +#include "../../../../Kernel/CKernel.hpp" #include "DeletionQueue.hpp" #include "vulkan/vulkan.hpp" +#include "../../../Resources/API/CResourceAPI.hpp" + static uint32_t chooseSwapMinImageCount(vk::SurfaceCapabilitiesKHR const &surfaceCapabilities) { auto minImageCount = std::max(3u, surfaceCapabilities.minImageCount); @@ -60,8 +62,8 @@ void VulkanImpl::init(SDL_Window* window){ pickPhysicalDevice(); createLogicalDevice(); //getShaders after creating device - shadermanager.create(); - shadermanager.compile(); + CResourceAPI::resources().shaders().create(); + CResourceAPI::resources().shaders().compile(); createSwapChain(); createImageViews(); createDescriptorSetLayouts(); @@ -81,10 +83,7 @@ void VulkanImpl::cleanup(){ m_deletionQueue.flushAll(); CosmicCore::CKernel::m_kernel->cleanup(); - - resourceManager.cleanup(); - shadermanager.cleanup(); - + CResourceAPI::resources().cleanup(); m_deletionQueue.flushAll(); @@ -785,5 +784,5 @@ void VulkanImpl::createDefaultTexture() auto def = std::make_unique(""); def.get()->initDefaultTexture(); m_defaultTexture = def.get(); - getResourceManager().getTextureManager().addTexture("default", std::move(def)); + CResourceAPI::resources().textures().add("default", std::move(def)); } \ No newline at end of file diff --git a/src/Engine/Core/Graphics/API/VulkanImpl.hpp b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.hpp similarity index 97% rename from src/Engine/Core/Graphics/API/VulkanImpl.hpp rename to src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.hpp index 0b88da9..21e7a09 100644 --- a/src/Engine/Core/Graphics/API/VulkanImpl.hpp +++ b/src/Engine/Core/Systems/Graphics/API/VulkanImplementation/VulkanImpl.hpp @@ -1,15 +1,19 @@ #ifndef VULKANIMPL_HPP #define VULKANIMPL_HPP -#include "GraphicsAPI.hpp" +#include "../GraphicsAPI.hpp" #include "DeletionQueue.hpp" #include #include #include +#include "VMABuffer.hpp" #include "vk_mem_alloc.h" #include "vulkan/vulkan.hpp" #include "ManagedDescriptorSet.hpp" + +#include "../../Data/Texture/CTexture.hpp" + const std::vector validationLayers = { "VK_LAYER_KHRONOS_validation" }; @@ -19,7 +23,6 @@ constexpr bool enableValidationLayers = false; #else constexpr bool enableValidationLayers = true; #endif - class DescriptorAllocator { struct Pool { vk::raii::DescriptorPool pool = nullptr; @@ -163,6 +166,7 @@ class VulkanImpl: public GraphicsAPI{ void createDescriptorSetLayouts(); void cleanupSwapChain(); void createDepthResources(); + void createDescriptorPool(); void transitionImageLayout(vk::Image image, vk::ImageLayout old_layout, vk::ImageLayout new_layout, vk::AccessFlags2 src_access_mask, vk::AccessFlags2 dst_access_mask, vk::PipelineStageFlags2 src_stage_mask, vk::PipelineStageFlags2 dst_stage_mask, vk::ImageAspectFlags image_aspect_flags); void transitionImageLayout(vk::Image image, vk::ImageLayout oldLayout, vk::ImageLayout newLayout); @@ -173,6 +177,9 @@ class VulkanImpl: public GraphicsAPI{ uint32_t getGraphicsQueueIndex() const { return queueIndex; } vk::Extent2D getSwapChainExtent() const { return swapChainExtent; } + vk::raii::CommandBuffer beginSingleTimeCommands(); + void endSingleTimeCommands(vk::raii::CommandBuffer& commandBuffer); + // accès au command buffer courant pour que le Renderer puisse enregistrer vk::raii::CommandBuffer& getCurrentCommandBuffer(); @@ -188,6 +195,8 @@ class VulkanImpl: public GraphicsAPI{ vk::raii::DescriptorSetLayout& getTransformLayout() { return transformLayout; } vk::raii::DescriptorSetLayout& getMaterialLayout() { return materialLayout; } + vk::raii::ImageView createImageView(vk::raii::Image& image, vk::Format format, vk::ImageAspectFlags aspectFlags); + void copyBuffer(VkBuffer src, VkBuffer dst, VkDeviceSize size); vk::Format findSupportedFormat(const std::vector& candidates, vk::ImageTiling tiling, vk::FormatFeatureFlags features); @@ -198,25 +207,17 @@ class VulkanImpl: public GraphicsAPI{ DescriptorAllocator& getDescriptorPoolManager(){return descriptorPoolManager;}; - void createDescriptorPool(); - - vk::raii::CommandBuffer beginSingleTimeCommands(); - - void endSingleTimeCommands(vk::raii::CommandBuffer& commandBuffer); - - vk::raii::ImageView createImageView(vk::raii::Image& image, vk::Format format, vk::ImageAspectFlags aspectFlags); - - - void copyBufferToImage(const vk::raii::Buffer &buffer, vk::raii::Image &image, uint32_t width, uint32_t height); - - void destroyBuffer(VMABuffer& buffer, uint32_t frameIndex); - - void destroyDescriptorSet(ManagedDescriptorSet& set, uint32_t frameIndex); - - void destroyPipeline(vk::raii::Pipeline& pipeline, vk::raii::PipelineLayout& layout); - vk::raii::PipelineLayout& getDefaultPipelineLayout(){return defaultPipelineLayoutInfo;}; + void copyBufferToImage(const vk::raii::Buffer &buffer, vk::raii::Image &image, uint32_t width, uint32_t height); + + void destroyBuffer(VMABuffer& buffer, uint32_t frame); + + // destruction d'un descriptor set + void destroyDescriptorSet(ManagedDescriptorSet& set, uint32_t frame); + + void destroyPipeline(vk::raii::Pipeline& pipeline, vk::raii::PipelineLayout& layout); + DeletionQueue& getDeletionQueue(){return m_deletionQueue;}; CTexture* getDefaultTexture() { return m_defaultTexture; } diff --git a/src/Engine/Core/Graphics/CContext.cpp b/src/Engine/Core/Systems/Graphics/CContext.cpp similarity index 100% rename from src/Engine/Core/Graphics/CContext.cpp rename to src/Engine/Core/Systems/Graphics/CContext.cpp diff --git a/src/Engine/Core/Graphics/CContext.hpp b/src/Engine/Core/Systems/Graphics/CContext.hpp similarity index 100% rename from src/Engine/Core/Graphics/CContext.hpp rename to src/Engine/Core/Systems/Graphics/CContext.hpp diff --git a/src/Engine/Core/Systems/Graphics/Data/CModelLoader.cpp b/src/Engine/Core/Systems/Graphics/Data/CModelLoader.cpp new file mode 100644 index 0000000..a16e8a5 --- /dev/null +++ b/src/Engine/Core/Systems/Graphics/Data/CModelLoader.cpp @@ -0,0 +1,192 @@ +#include "CModelLoader.hpp" +#include "../API/GraphicsAPI.hpp" +#include "../../Resources/API/CResourceAPI.hpp" +#include + +CModel* CModelLoader::loadModel(std::string fileName, const ModelLoadConfig& config) +{ + auto& rm = CResourceAPI::resources(); + auto cached = rm.models().get(fileName); + if (cached && !config.forceReload) { + if (config.materialOverrides.empty()) + return cached.value(); + return cloneWithOverrides(cached.value(), fileName, config); + } + + Assimp::Importer importer; + + const aiScene* scene = importer.ReadFile(fileName.c_str(), + aiProcess_Triangulate | + aiProcess_FlipUVs | + aiProcess_CalcTangentSpace | + aiProcess_GenNormals + ); + + if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) + throw std::runtime_error("Assimp: " + std::string(importer.GetErrorString())); + + // dossier de base pour les textures relatives + std::vector meshMaterials; + processNode(scene->mRootNode, scene, fileName, meshMaterials, config); + + for (auto& [index, mat] : config.materialOverrides) + { + if (index < meshMaterials.size()) + meshMaterials[index].material = mat; + } + + // crée et enregistre le model + auto model = std::make_unique(meshMaterials); + return rm.models().add(fileName, std::move(model));; +} + +CModel* CModelLoader::cloneWithOverrides(CModel* original, + const std::string& originalKey, + const ModelLoadConfig& config) +{ + auto& rm = CResourceAPI::resources(); + + // clé unique pour ce clone + std::string cloneKey = originalKey; + for (auto& [index, mat] : config.materialOverrides) + cloneKey += "_" + std::to_string(index) + "_" + std::to_string((size_t)mat); + + auto cached = rm.models().get(cloneKey); + if (cached) return cached.value(); + + // clone avec overrides + auto meshMaterials = original->getMeshMaterials(); + for (auto& [index, mat] : config.materialOverrides) + { + if (index < meshMaterials.size()) + meshMaterials[index].material = mat; + } + + auto cloned = std::make_unique(meshMaterials); + return rm.models().add(cloneKey, std::move(cloned)); +} + + +void CModelLoader::processNode(aiNode* node, const aiScene* scene, const std::string& directory, std::vector& meshes, const ModelLoadConfig& config) +{ + // process all the node's meshes (if any) + for (uint32_t i = 0; i < node->mNumMeshes; i++) { + aiMesh* mesh = scene->mMeshes[node->mMeshes[i]]; + meshes.push_back(processMesh(mesh, scene, directory, config)); + } + // then do the same for each of its children + for (uint32_t i = 0; i < node->mNumChildren; i++) { + processNode(node->mChildren[i], scene, directory, meshes, config); + } +} + +MeshMaterial CModelLoader::processMesh(aiMesh* mesh, const aiScene* scene, const std::string& directory, const ModelLoadConfig& config) +{ + auto& rm = CResourceAPI::resources(); + std::vector vertices; + std::vector indices; + + // vertices + for (uint32_t i = 0; i < mesh->mNumVertices; i++) { + SVertex vertex{}; + vertex.m_position = { + mesh->mVertices[i].x, + mesh->mVertices[i].y, + mesh->mVertices[i].z + }; + vertex.m_normal = mesh->HasNormals() ? + glm::vec3(mesh->mNormals[i].x, mesh->mNormals[i].y, mesh->mNormals[i].z) : + glm::vec3(0.0f); + + vertex.m_texCoords = mesh->mTextureCoords[0] ? + glm::vec2(mesh->mTextureCoords[0][i].x, mesh->mTextureCoords[0][i].y) : + glm::vec2(0.0f); + + vertex.m_tangent = mesh->HasTangentsAndBitangents() ? + glm::vec3(mesh->mTangents[i].x, mesh->mTangents[i].y, mesh->mTangents[i].z) : + glm::vec3(0.0f); + + vertex.m_bitangent = mesh->HasTangentsAndBitangents() ? + glm::vec3(mesh->mBitangents[i].x, mesh->mBitangents[i].y, mesh->mBitangents[i].z) : + glm::vec3(0.0f); + + vertices.push_back(vertex); + } + + // indices + for (uint32_t i = 0; i < mesh->mNumFaces; i++) { + aiFace face = mesh->mFaces[i]; + for (uint32_t j = 0; j < face.mNumIndices; j++) + indices.push_back(face.mIndices[j]); + } + + // crée et enregistre le mesh + std::string meshKey = directory + "_mesh_" + std::to_string(rm.meshes().size()); + auto newMesh = std::make_unique(); + newMesh->setVertices(vertices); + newMesh->setIndexes(indices); + newMesh->load(); + CMesh* meshPtr = rm.meshes().add(meshKey, std::move(newMesh)); + + // material + CMaterial* material = nullptr; + if (mesh->mMaterialIndex >= 0) { + material = processMaterial( + scene->mMaterials[mesh->mMaterialIndex], + directory, + config + ); + } + return MeshMaterial{meshPtr, material}; +} + +CMaterial* CModelLoader::processMaterial(aiMaterial* mat, const std::string& directory, const ModelLoadConfig& config) +{ + auto& rm = CResourceAPI::resources(); + aiString aiName; + mat->Get(AI_MATKEY_NAME, aiName); + std::string matKey = directory + "_" + aiName.C_Str() + "_" + config.shaderName; + + auto cached = rm.materials().get(matKey); + if (cached) return cached.value(); + + // textures + CTexture* albedo = nullptr; + CTexture* normal = nullptr; + + // albedo + if (mat->GetTextureCount(aiTextureType_DIFFUSE) > 0) { + aiString path; + mat->GetTexture(aiTextureType_DIFFUSE, 0, &path); + albedo = rm.textures().loadTexture(directory + "/" + path.C_Str()); + } + + // normal + if (mat->GetTextureCount(aiTextureType_NORMALS) > 0) { + aiString path; + mat->GetTexture(aiTextureType_NORMALS, 0, &path); + normal = rm.textures().loadTexture(directory + "/" + path.C_Str()); + } + + auto shader = CResourceAPI::resources().shaders().get(config.shaderName); + + return rm.materials().createMaterial(matKey, static_cast(shader), albedo, normal); +} + + +/*CTexture* CModelLoader::loadTexture(const std::string& directory, CResourceManager& rm) +{ + auto text = rm.getTextureManager().get(directory); + if(rm.getTextureManager().get(directory)) + { + return text.value(); + } + else { + auto tex = std::make_unique(directory); + tex->init(); + + auto* ptr = tex.get(); + rm.getTextureManager().addTexture(directory, std::move(tex)); + return ptr; + } +}*/ \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/CModelLoader.hpp b/src/Engine/Core/Systems/Graphics/Data/CModelLoader.hpp similarity index 63% rename from src/Engine/Core/Graphics/Data/CModelLoader.hpp rename to src/Engine/Core/Systems/Graphics/Data/CModelLoader.hpp index a4f5036..93b4195 100644 --- a/src/Engine/Core/Graphics/Data/CModelLoader.hpp +++ b/src/Engine/Core/Systems/Graphics/Data/CModelLoader.hpp @@ -6,10 +6,17 @@ #include #include -#include "CResourceManager.hpp" -#include "Mesh/CMesh.hpp" +#include "Model/CModel.hpp" #include "Texture/CTexture.hpp" +struct ModelLoadConfig { + std::string shaderName = "triangle"; + // override des materials par index de mesh + std::unordered_map materialOverrides; + // si true, recharge même si déjà en cache + bool forceReload = false; +}; + /** * @brief Class allowing to load models from obj files. */ @@ -22,7 +29,7 @@ private: * @param[in] meshes The mesh list. * @param[in] material A pointer to a material. It's optionnal and override the obj's material. */ - static void processNode(aiNode* node, const aiScene* scene, const std::string& directory, CResourceManager& rm, std::vector& meshes); + static void processNode(aiNode* node, const aiScene* scene, const std::string& directory, std::vector& meshes, const ModelLoadConfig& config); /** * @brief Compute every meshes. @@ -31,7 +38,7 @@ private: * @param[in] meshes The list of meshes. * @param[in] material A pointer to a material. It's optionnal and override the obj's material. */ - static CMesh* processMesh(aiMesh* mesh, const aiScene* scene, const std::string& directory, CResourceManager& rm); + static MeshMaterial processMesh(aiMesh* mesh, const aiScene* scene, const std::string& directory, const ModelLoadConfig& config); /** * @brief Load Textures from the obj file. @@ -39,9 +46,11 @@ private: * @param[in] type The assimp's texture type. * @param[in] typeName The texture's type. */ - static CTexture* loadTexture(const std::string& directory, CResourceManager& rm); + static CTexture* loadTexture(const std::string& directory); - static CMaterial* processMaterial(aiMaterial* mat, const std::string& directory, CResourceManager& rm); + static CMaterial* processMaterial(aiMaterial* mat, const std::string& directory, const ModelLoadConfig& config); + + static CModel* cloneWithOverrides(CModel* original, const std::string& originalKey, const ModelLoadConfig& config); public: /** @@ -50,7 +59,7 @@ public: * @param[in] material Pointer to a material. It's optionnal and override the obj's material. * @return A dynamically allocated CModel. */ - static CModel* loadModel(std::string filename, CResourceManager& rm); + static CModel* loadModel(std::string filename, const ModelLoadConfig& config = {}); }; diff --git a/src/Engine/Core/Graphics/Data/Font/CTextTexture.cpp b/src/Engine/Core/Systems/Graphics/Data/Font/CTextTexture.cpp similarity index 100% rename from src/Engine/Core/Graphics/Data/Font/CTextTexture.cpp rename to src/Engine/Core/Systems/Graphics/Data/Font/CTextTexture.cpp diff --git a/src/Engine/Core/Graphics/Data/Font/CTextTexture.hpp b/src/Engine/Core/Systems/Graphics/Data/Font/CTextTexture.hpp similarity index 100% rename from src/Engine/Core/Graphics/Data/Font/CTextTexture.hpp rename to src/Engine/Core/Systems/Graphics/Data/Font/CTextTexture.hpp diff --git a/src/Engine/Core/Graphics/Data/Material/CMaterial.cpp b/src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.cpp similarity index 98% rename from src/Engine/Core/Graphics/Data/Material/CMaterial.cpp rename to src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.cpp index 6641fd5..a3d8179 100644 --- a/src/Engine/Core/Graphics/Data/Material/CMaterial.cpp +++ b/src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.cpp @@ -1,6 +1,6 @@ #include "CMaterial.hpp" #include "../Mesh/SVertex.hpp" -#include "../../API/VulkanImpl.hpp" +#include "../../API/VulkanImplementation/VulkanImpl.hpp" #include void CMaterial::build() diff --git a/src/Engine/Core/Graphics/Data/Material/CMaterial.hpp b/src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.hpp similarity index 92% rename from src/Engine/Core/Graphics/Data/Material/CMaterial.hpp rename to src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.hpp index 1539902..09c8cfc 100644 --- a/src/Engine/Core/Graphics/Data/Material/CMaterial.hpp +++ b/src/Engine/Core/Systems/Graphics/Data/Material/CMaterial.hpp @@ -2,7 +2,7 @@ #define SMATERIAL_HPP #include "../../Shader/Implementations/CShaderImplVulkan.hpp" -#include "../../API/ManagedDescriptorSet.hpp" +#include "../../API/VulkanImplementation/ManagedDescriptorSet.hpp" #include "../Texture/CTexture.hpp" class CMaterial { diff --git a/src/Engine/Core/Graphics/Data/Material/SColor.hpp b/src/Engine/Core/Systems/Graphics/Data/Material/SColor.hpp similarity index 100% rename from src/Engine/Core/Graphics/Data/Material/SColor.hpp rename to src/Engine/Core/Systems/Graphics/Data/Material/SColor.hpp diff --git a/src/Engine/Core/Graphics/Data/Mesh/CMesh.cpp b/src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.cpp similarity index 98% rename from src/Engine/Core/Graphics/Data/Mesh/CMesh.cpp rename to src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.cpp index 7daff22..4d8faad 100644 --- a/src/Engine/Core/Graphics/Data/Mesh/CMesh.cpp +++ b/src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.cpp @@ -1,5 +1,5 @@ #include "CMesh.hpp" -#include "../../API/VulkanImpl.hpp" +#include "../../API/VulkanImplementation/VulkanImpl.hpp" #include #include CMesh::CMesh(void) : diff --git a/src/Engine/Core/Graphics/Data/Mesh/CMesh.hpp b/src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.hpp similarity index 83% rename from src/Engine/Core/Graphics/Data/Mesh/CMesh.hpp rename to src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.hpp index 190bece..96c2a5f 100644 --- a/src/Engine/Core/Graphics/Data/Mesh/CMesh.hpp +++ b/src/Engine/Core/Systems/Graphics/Data/Mesh/CMesh.hpp @@ -2,14 +2,13 @@ #define CMESH_HPP #include "SVertex.hpp" -#include "../Material/CMaterial.hpp" #include #include #include #define GLM_ENABLE_EXPERIMENTAL #include -#include "../../API/VMABuffer.hpp" +#include "../../API/VulkanImplementation/VMABuffer.hpp" class CMesh { private: @@ -22,7 +21,7 @@ private: VkDeviceSize m_indexOffset = 0; uint32_t m_indexCount = 0; - CMaterial* m_material; + //CMaterial* m_material; public: @@ -36,13 +35,13 @@ public: void setVertices(std::vector vertices); void setIndexes(std::vector indexes); - void setMaterial(CMaterial* mat){m_material = mat;}; + //void setMaterial(CMaterial* mat){m_material = mat;}; void load(void); //void draw(glm::mat4 model, glm::mat4 view, glm::mat4 projection, glm::vec3 lightPos, float intensity); - CMaterial* getMaterial(){return m_material;}; + //CMaterial* getMaterial(){return m_material;}; VMABuffer& getVertexIndexBuffer(){return vertexIndexBuffer;}; VkDeviceSize getVertexOffset(){return m_vertexOffset;} VkDeviceSize getIndexOffset(){return m_indexOffset;}; diff --git a/src/Engine/Core/Graphics/Data/Mesh/SVertex.hpp b/src/Engine/Core/Systems/Graphics/Data/Mesh/SVertex.hpp similarity index 100% rename from src/Engine/Core/Graphics/Data/Mesh/SVertex.hpp rename to src/Engine/Core/Systems/Graphics/Data/Mesh/SVertex.hpp diff --git a/src/Engine/Core/Graphics/Data/CModel.cpp b/src/Engine/Core/Systems/Graphics/Data/Model/CModel.cpp similarity index 74% rename from src/Engine/Core/Graphics/Data/CModel.cpp rename to src/Engine/Core/Systems/Graphics/Data/Model/CModel.cpp index a099342..faf0adc 100644 --- a/src/Engine/Core/Graphics/Data/CModel.cpp +++ b/src/Engine/Core/Systems/Graphics/Data/Model/CModel.cpp @@ -1,6 +1,6 @@ #include "CModel.hpp" -CModel::CModel(std::vector meshes) : +CModel::CModel(std::vector meshes) : m_meshes(meshes), m_loaded(false) { } @@ -8,14 +8,14 @@ CModel::CModel(std::vector meshes) : CModel::~CModel(void) { } -void CModel::load(void) { +/*void CModel::load(void) { // For each meshes of the model. for (unsigned int i = 0; i < m_meshes.size(); i++) { m_meshes[i]->load(); } m_loaded = true; -} +}*/ /*void CModel::draw(glm::mat4 model, glm::mat4 view, glm::mat4 projection, glm::vec3 lightPos, float intensity) { // For each meshes of the model. @@ -24,12 +24,12 @@ void CModel::load(void) { } }*/ -std::vector& CModel::getMeshes() +std::vector& CModel::getMeshMaterials() { return m_meshes; } -void CModel::setMeshes(std::vector meshes) +void CModel::setMeshMaterials(std::vector meshes) { m_meshes = meshes; } diff --git a/src/Engine/Core/Systems/Graphics/Data/Model/CModel.hpp b/src/Engine/Core/Systems/Graphics/Data/Model/CModel.hpp new file mode 100644 index 0000000..4e4e758 --- /dev/null +++ b/src/Engine/Core/Systems/Graphics/Data/Model/CModel.hpp @@ -0,0 +1,40 @@ +#ifndef CMODEL_HPP +#define CMODEL_HPP + +#include "../Material/CMaterial.hpp" +#include "../Mesh/CMesh.hpp" +#include + +struct MeshMaterial{ + CMesh* mesh = nullptr; + CMaterial* material = nullptr; +}; + +class CModel { +private: + + std::vector m_meshes; + + bool m_loaded; + +public: + + CModel(void) = delete; + + CModel(std::vector meshes); + + ~CModel(void); + + //void load(void); + + //void draw(glm::mat4 model, glm::mat4 view, glm::mat4 projection, glm::vec3 lightPos, float intensity); + + std::vector& getMeshMaterials(void); + + void setMeshMaterials(std::vector meshes); + + bool isLoaded(void); + +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Data/Texture/CTexture.cpp b/src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.cpp similarity index 99% rename from src/Engine/Core/Graphics/Data/Texture/CTexture.cpp rename to src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.cpp index cc9325a..f656426 100644 --- a/src/Engine/Core/Graphics/Data/Texture/CTexture.cpp +++ b/src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.cpp @@ -1,6 +1,6 @@ #include "CTexture.hpp" -#include "../../API/VulkanImpl.hpp" +#include "../../API/VulkanImplementation/VulkanImpl.hpp" CTexture::CTexture(std::string filePath) : m_filePath(filePath) { diff --git a/src/Engine/Core/Graphics/Data/Texture/CTexture.hpp b/src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.hpp similarity index 99% rename from src/Engine/Core/Graphics/Data/Texture/CTexture.hpp rename to src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.hpp index 1287856..b18506c 100644 --- a/src/Engine/Core/Graphics/Data/Texture/CTexture.hpp +++ b/src/Engine/Core/Systems/Graphics/Data/Texture/CTexture.hpp @@ -6,7 +6,6 @@ #include #include - class CTexture{ private: // Path of the file. diff --git a/src/Engine/Core/Graphics/Data/Tint/CTint.hpp b/src/Engine/Core/Systems/Graphics/Data/Tint/CTint.hpp similarity index 100% rename from src/Engine/Core/Graphics/Data/Tint/CTint.hpp rename to src/Engine/Core/Systems/Graphics/Data/Tint/CTint.hpp diff --git a/src/Engine/Core/Graphics/Shader/CShader.cpp b/src/Engine/Core/Systems/Graphics/Shader/CShader.cpp similarity index 100% rename from src/Engine/Core/Graphics/Shader/CShader.cpp rename to src/Engine/Core/Systems/Graphics/Shader/CShader.cpp diff --git a/src/Engine/Core/Graphics/Shader/CShader.hpp b/src/Engine/Core/Systems/Graphics/Shader/CShader.hpp similarity index 100% rename from src/Engine/Core/Graphics/Shader/CShader.hpp rename to src/Engine/Core/Systems/Graphics/Shader/CShader.hpp diff --git a/src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.cpp b/src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.cpp similarity index 57% rename from src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.cpp rename to src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.cpp index 5802f6f..98b2c06 100644 --- a/src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.cpp +++ b/src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.cpp @@ -42,33 +42,34 @@ void CShaderImplVulkan::init() spirv.data(), &module ); - assert(result == SPV_REFLECT_RESULT_SUCCESS); - - uint32_t entryPointCount = module.entry_point_count; - for (uint32_t i = 0; i < entryPointCount; i++) { - const SpvReflectEntryPoint& entry = module.entry_points[i]; - - switch (entry.shader_stage) { - case SPV_REFLECT_SHADER_STAGE_VERTEX_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eVertex].push_back(entry.name); - break; - case SPV_REFLECT_SHADER_STAGE_FRAGMENT_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eFragment].push_back(entry.name); - break; - case SPV_REFLECT_SHADER_STAGE_GEOMETRY_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eGeometry].push_back(entry.name); - break; - case SPV_REFLECT_SHADER_STAGE_TESSELLATION_CONTROL_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eTessellationControl].push_back(entry.name); - break; - case SPV_REFLECT_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eTessellationEvaluation].push_back(entry.name); - break; - case SPV_REFLECT_SHADER_STAGE_COMPUTE_BIT: - stageEntryPoints[vk::ShaderStageFlagBits::eCompute].push_back(entry.name); - break; - default: - continue; + if(result == SPV_REFLECT_RESULT_SUCCESS) + { + uint32_t entryPointCount = module.entry_point_count; + for (uint32_t i = 0; i < entryPointCount; i++) { + const SpvReflectEntryPoint& entry = module.entry_points[i]; + + switch (entry.shader_stage) { + case SPV_REFLECT_SHADER_STAGE_VERTEX_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eVertex].push_back(entry.name); + break; + case SPV_REFLECT_SHADER_STAGE_FRAGMENT_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eFragment].push_back(entry.name); + break; + case SPV_REFLECT_SHADER_STAGE_GEOMETRY_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eGeometry].push_back(entry.name); + break; + case SPV_REFLECT_SHADER_STAGE_TESSELLATION_CONTROL_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eTessellationControl].push_back(entry.name); + break; + case SPV_REFLECT_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eTessellationEvaluation].push_back(entry.name); + break; + case SPV_REFLECT_SHADER_STAGE_COMPUTE_BIT: + stageEntryPoints[vk::ShaderStageFlagBits::eCompute].push_back(entry.name); + break; + default: + continue; + } } } diff --git a/src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.hpp b/src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.hpp similarity index 98% rename from src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.hpp rename to src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.hpp index 1cda4f7..d916d5c 100644 --- a/src/Engine/Core/Graphics/Shader/Implementations/CShaderImplVulkan.hpp +++ b/src/Engine/Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.hpp @@ -23,7 +23,6 @@ private: std::string m_name; std::filesystem::path spirvPath; vk::raii::ShaderModule shaderModule = nullptr; - vk::raii::Device* device = nullptr; std::unordered_map> stageEntryPoints; public: diff --git a/src/Engine/Core/Graphics/Window/CGameWindow.cpp b/src/Engine/Core/Systems/Graphics/Window/CGameWindow.cpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CGameWindow.cpp rename to src/Engine/Core/Systems/Graphics/Window/CGameWindow.cpp diff --git a/src/Engine/Core/Graphics/Window/CGameWindow.hpp b/src/Engine/Core/Systems/Graphics/Window/CGameWindow.hpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CGameWindow.hpp rename to src/Engine/Core/Systems/Graphics/Window/CGameWindow.hpp diff --git a/src/Engine/Core/Graphics/Window/CLoadingWindow.cpp b/src/Engine/Core/Systems/Graphics/Window/CLoadingWindow.cpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CLoadingWindow.cpp rename to src/Engine/Core/Systems/Graphics/Window/CLoadingWindow.cpp diff --git a/src/Engine/Core/Graphics/Window/CLoadingWindow.hpp b/src/Engine/Core/Systems/Graphics/Window/CLoadingWindow.hpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CLoadingWindow.hpp rename to src/Engine/Core/Systems/Graphics/Window/CLoadingWindow.hpp diff --git a/src/Engine/Core/Graphics/Window/CWindow.cpp b/src/Engine/Core/Systems/Graphics/Window/CWindow.cpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CWindow.cpp rename to src/Engine/Core/Systems/Graphics/Window/CWindow.cpp diff --git a/src/Engine/Core/Graphics/Window/CWindow.hpp b/src/Engine/Core/Systems/Graphics/Window/CWindow.hpp similarity index 100% rename from src/Engine/Core/Graphics/Window/CWindow.hpp rename to src/Engine/Core/Systems/Graphics/Window/CWindow.hpp diff --git a/src/Engine/Core/Physics/CPhysicsAPI.cpp b/src/Engine/Core/Systems/Physics/API/CPhysicsAPI.cpp similarity index 100% rename from src/Engine/Core/Physics/CPhysicsAPI.cpp rename to src/Engine/Core/Systems/Physics/API/CPhysicsAPI.cpp diff --git a/src/Engine/Core/Physics/CPhysicsAPI.hpp b/src/Engine/Core/Systems/Physics/API/CPhysicsAPI.hpp similarity index 100% rename from src/Engine/Core/Physics/CPhysicsAPI.hpp rename to src/Engine/Core/Systems/Physics/API/CPhysicsAPI.hpp diff --git a/src/Engine/Core/Physics/CTangibleWorld.cpp b/src/Engine/Core/Systems/Physics/CTangibleWorld.cpp similarity index 73% rename from src/Engine/Core/Physics/CTangibleWorld.cpp rename to src/Engine/Core/Systems/Physics/CTangibleWorld.cpp index c6f6b89..7050afb 100644 --- a/src/Engine/Core/Physics/CTangibleWorld.cpp +++ b/src/Engine/Core/Systems/Physics/CTangibleWorld.cpp @@ -2,24 +2,32 @@ #include "Jolt/Core/Memory.h" #include "Jolt/RegisterTypes.h" #include -#include "../Scene/CScene.hpp" -#include "../Component/Rigidbody/CRigidBody.hpp" +#include "../../Scene/CScene.hpp" +#include "../../Component/Rigidbody/CRigidBody.hpp" namespace CosmicCore { CTangibleWorld::~CTangibleWorld() { } - + /*static void JoltTraceImpl(const char* inFMT, ...) { + va_list list; + va_start(list, inFMT); + char buffer[1024]; + vsnprintf(buffer, sizeof(buffer), inFMT, list); + va_end(list); + std::cout << "[JOLT] " << buffer << std::endl; + }*/ void CTangibleWorld::initWorld() { JPH::RegisterDefaultAllocator(); + //JPH::Trace = JoltTraceImpl; JPH::Factory::sInstance = new JPH::Factory(); JPH::RegisterTypes(); m_tempAllocator = std::make_unique(10 * 1024 * 1024); m_jobSystem = std::make_unique(JPH::cMaxPhysicsJobs, JPH::cMaxPhysicsBarriers, JPH::thread::hardware_concurrency() - 1); m_physicsSystem.Init(cMaxBodies, cNumBodyMutexes, cMaxBodyPairs, cMaxContactConstraints, m_broadPhaseLayer, m_objectVsBroadPhase, m_objectLayerPairFilter); - m_physicsSystem.SetGravity( {0.0, -1.25, 0.0}); + m_physicsSystem.SetGravity( {0.0, -9.81, 0.0}); } void CTangibleWorld::updateWorld(float deltaTime){ @@ -42,10 +50,10 @@ namespace CosmicCore { rb.destroy(); }); - JPH::UnregisterTypes(); + //JPH::UnregisterTypes(); // Destroy the factory - delete JPH::Factory::sInstance; - JPH::Factory::sInstance = nullptr; + //delete JPH::Factory::sInstance; + //JPH::Factory::sInstance = nullptr; } } \ No newline at end of file diff --git a/src/Engine/Core/Physics/CTangibleWorld.hpp b/src/Engine/Core/Systems/Physics/CTangibleWorld.hpp similarity index 63% rename from src/Engine/Core/Physics/CTangibleWorld.hpp rename to src/Engine/Core/Systems/Physics/CTangibleWorld.hpp index 9e0054e..b2f8aee 100644 --- a/src/Engine/Core/Physics/CTangibleWorld.hpp +++ b/src/Engine/Core/Systems/Physics/CTangibleWorld.hpp @@ -1,6 +1,6 @@ #ifndef CTANGIBLEWORLD_HPP #define CTANGIBLEWORLD_HPP -#include "CPhysicsAPI.hpp" +#include "API/CPhysicsAPI.hpp" #include "PhysicsLayers.hpp" #include #include @@ -20,35 +20,44 @@ namespace CosmicCore { // This defines a mapping between object and broadphase layers. class BPLayerInterfaceImpl final : public JPH::BroadPhaseLayerInterface { -public: - BPLayerInterfaceImpl() - { - // Create a mapping table from object to broad phase layer - mObjectToBroadPhase[Layers::NON_MOVING] = BroadPhaseLayers::NON_MOVING; - mObjectToBroadPhase[Layers::MOVING] = BroadPhaseLayers::MOVING; - } + public: + BPLayerInterfaceImpl() + { + // Create a mapping table from object to broad phase layer + mObjectToBroadPhase[Layers::NON_MOVING] = BroadPhaseLayers::NON_MOVING; + mObjectToBroadPhase[Layers::MOVING] = BroadPhaseLayers::MOVING; + } - virtual uint GetNumBroadPhaseLayers() const override - { - return BroadPhaseLayers::NUM_LAYERS; - } + uint GetNumBroadPhaseLayers() const override + { + return BroadPhaseLayers::NUM_LAYERS; + } - virtual JPH::BroadPhaseLayer GetBroadPhaseLayer(JPH::ObjectLayer inLayer) const override - { - JPH_ASSERT(inLayer < Layers::NUM_LAYERS); - return mObjectToBroadPhase[inLayer]; - } + JPH::BroadPhaseLayer GetBroadPhaseLayer(JPH::ObjectLayer inLayer) const override + { + JPH_ASSERT(inLayer < Layers::NUM_LAYERS); + return mObjectToBroadPhase[inLayer]; + } - virtual const char *GetBroadPhaseLayerName(JPH::BroadPhaseLayer inLayer) const {return nullptr;}; -private: - JPH::BroadPhaseLayer mObjectToBroadPhase[Layers::NUM_LAYERS]; + #if defined(JPH_EXTERNAL_PROFILE) || defined(JPH_PROFILE_ENABLED) + const char* GetBroadPhaseLayerName(JPH::BroadPhaseLayer inLayer) const override { + switch ((JPH::BroadPhaseLayer::Type)inLayer) { + case (JPH::BroadPhaseLayer::Type)BroadPhaseLayers::NON_MOVING: return "NON_MOVING"; + case (JPH::BroadPhaseLayer::Type)BroadPhaseLayers::MOVING: return "MOVING"; + default: return "UNKNOWN"; + } + } + #endif + + private: + JPH::BroadPhaseLayer mObjectToBroadPhase[Layers::NUM_LAYERS]; }; /// Class that determines if an object layer can collide with a broadphase layer class ObjectVsBroadPhaseLayerFilterImpl : public JPH::ObjectVsBroadPhaseLayerFilter { public: - virtual bool ShouldCollide(JPH::ObjectLayer inLayer1, JPH::BroadPhaseLayer inLayer2) const override + virtual bool ShouldCollide(JPH::ObjectLayer inLayer1, JPH::BroadPhaseLayer inLayer2) const override { switch (inLayer1) { @@ -99,13 +108,18 @@ public: ObjectLayerPairFilterImpl m_objectLayerPairFilter; public: - CTangibleWorld(CScene* scene): CPhysicsAPI(scene){}; + CTangibleWorld(CScene* scene): CPhysicsAPI(scene), m_physicsSystem(), m_broadPhaseLayer(){}; ~CTangibleWorld(); + CTangibleWorld() = delete; + CTangibleWorld(CTangibleWorld&&) = delete; + CTangibleWorld& operator=(CTangibleWorld&&) = delete; + CTangibleWorld(const CTangibleWorld&) = delete; + CTangibleWorld& operator=(const CTangibleWorld&) = delete; + void initWorld(); void updateWorld(float deltaTime); void destroy(); - JPH::PhysicsSystem& getPhysicsSystem() { return m_physicsSystem; } JPH::BodyInterface& getBodyInterface() { return m_physicsSystem.GetBodyInterface(); diff --git a/src/Engine/Core/Physics/PhysicsLayers.hpp b/src/Engine/Core/Systems/Physics/PhysicsLayers.hpp similarity index 100% rename from src/Engine/Core/Physics/PhysicsLayers.hpp rename to src/Engine/Core/Systems/Physics/PhysicsLayers.hpp diff --git a/src/Engine/Core/Systems/Resources/API/CResourceAPI.cpp b/src/Engine/Core/Systems/Resources/API/CResourceAPI.cpp new file mode 100644 index 0000000..6a3d2e1 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/API/CResourceAPI.cpp @@ -0,0 +1,3 @@ +#include "CResourceAPI.hpp" + +CResourceManager CResourceAPI::resourceManager; \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/API/CResourceAPI.hpp b/src/Engine/Core/Systems/Resources/API/CResourceAPI.hpp new file mode 100644 index 0000000..90c6aa0 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/API/CResourceAPI.hpp @@ -0,0 +1,13 @@ +#ifndef RESOURCEAPI_HPP +#define RESOURCEAPI_HPP + +#include "../CResourceManager.hpp" + +class CResourceAPI{ + static CResourceManager resourceManager; + public: + static CResourceManager& resources(){return resourceManager;}; + +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Audio/CAudioManager.cpp b/src/Engine/Core/Systems/Resources/Audio/CAudioManager.cpp new file mode 100644 index 0000000..ce34f24 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Audio/CAudioManager.cpp @@ -0,0 +1,104 @@ +#include "CAudioManager.hpp" +#include +#include + +#define DR_WAV_IMPLEMENTATION +#include "dr_wav.h" +#define DR_MP3_IMPLEMENTATION +#include "dr_mp3.h" +#define DR_FLAC_IMPLEMENTATION +#include "dr_flac.h" +CAudioClip* CAudioManager::loadClip(const std::string& path) +{ + auto cached = get(path); + if (cached) return cached.value(); + + auto clip = std::make_unique(); + clip->path = path; + + // Détection du format par l'extension + std::string ext = path.substr(path.find_last_of(".") + 1); + std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower); + + void* pcmData = nullptr; + unsigned int channels = 0; + unsigned int sampleRate = 0; + drwav_uint64 totalFrames = 0; + ALenum format = AL_FORMAT_MONO16; + int type = -1; + + if (ext == "wav") { + // Décodage WAV en 16-bit PCM + pcmData = drwav_open_file_and_read_pcm_frames_s16( + path.c_str(), &channels, &sampleRate, &totalFrames, NULL + ); + type = 0; + } + //TODO MP3 + /*else if (ext == "mp3") { + // Décodage MP3 en 16-bit PCM + pcmData = drmp3_open_file_and_read_pcm_frames_s16( + path.c_str(), &channels, &sampleRate, &totalFrames, NULL + ); + type = 1; + }*/ + else if (ext == "flac") { + pcmData = drflac_open_file_and_read_pcm_frames_s16( + path.c_str(), &channels, &sampleRate, &totalFrames, NULL + ); + type = 2; + } + else { + return nullptr; // Format non supporté + } + + if (pcmData) { + // Déterminer le format OpenAL + int16_t* finalData = static_cast(pcmData); + uint64_t finalFrames = totalFrames; + std::vector monoBuffer; // pour garder les données en vie + + // conversion stéréo → mono obligatoire pour la spatialisation + if (channels == 2) { + monoBuffer.resize(totalFrames); + int16_t* src = static_cast(pcmData); + for (uint64_t i = 0; i < totalFrames; i++) { + int32_t left = src[i * 2]; + int32_t right = src[i * 2 + 1]; + monoBuffer[i] = static_cast((left + right) / 2); + } + finalData = monoBuffer.data(); + finalFrames = totalFrames; + format = AL_FORMAT_MONO16; + } else if (channels == 1) { + format = AL_FORMAT_MONO16; + } else { + // > 2 canaux non supporté + switch(type) { + case 0: drwav_free(pcmData, NULL); break; + case 2: drflac_free(pcmData, NULL); break; + default: break; + } + return nullptr; + } + + // Créer le buffer OpenAL + alGenBuffers(1, &clip->buffer); + + ALsizei size = static_cast(finalFrames * sizeof(int16_t)); + alBufferData(clip->buffer, format, finalData, size, static_cast(sampleRate)); + + // Calculer la durée + clip->duration = static_cast(totalFrames) / static_cast(sampleRate); + + // Libérer les données PCM (OpenAL a sa propre copie) + switch(type) { + case 0: drwav_free(pcmData, NULL); break; + case 2: drflac_free(pcmData, NULL); break; + default: break; + } + + return add(path, std::move(clip)); + } + return nullptr; +} \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Audio/CAudioManager.hpp b/src/Engine/Core/Systems/Resources/Audio/CAudioManager.hpp new file mode 100644 index 0000000..81b0f62 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Audio/CAudioManager.hpp @@ -0,0 +1,11 @@ +#ifndef CAUDIOMANAGER_HPP +#define CAUDIOMANAGER_HPP +#include "../../Audio/Sound/CAudioClip.hpp" +#include "../CAbstractResourceManager.hpp" +class CAudioManager : public CAbstractResourceManager{ + public: + + CAudioClip* loadClip(const std::string& path); +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/CAbstractResourceManager.hpp b/src/Engine/Core/Systems/Resources/CAbstractResourceManager.hpp new file mode 100644 index 0000000..e9fd222 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/CAbstractResourceManager.hpp @@ -0,0 +1,71 @@ +#ifndef CABSTRACTRESOURCEMANAGERBASE_HPP +#define CABSTRACTRESOURCEMANAGERBASE_HPP + +#include +#include +#include +#include +#include + +template +class CAbstractResourceManager { +protected: + std::list> m_resources; + std::unordered_map m_map; + +public: + // ajout + T* add(const std::string& key, std::unique_ptr&& resource) { + auto* ptr = resource.get(); + m_resources.push_back(std::move(resource)); + m_map[key] = ptr; + return ptr; + } + + // ajout sans clé (généré automatiquement) + /*T* add(std::unique_ptr&& resource) { + auto key = "_auto_" + std::to_string(m_resources.size()); + return add(key, std::move(resource)); + }*/ + + // get par clé + std::optional get(const std::string& key) const { + auto it = m_map.find(key); + if (it != m_map.end()) return it->second; + return std::nullopt; + } + + // get ou créer + template + T* getOrCreate(const std::string& key, Args&&... args) { + auto cached = get(key); + if (cached) return cached.value(); + return add(key, std::make_unique(std::forward(args)...)); + } + + // contient + bool contains(const std::string& key) const { + return m_map.find(key) != m_map.end(); + } + + // remove + void remove(const std::string& key) { + auto it = m_map.find(key); + if (it == m_map.end()) return; + + T* ptr = it->second; + m_map.erase(it); + m_resources.remove_if([ptr](const auto& r) { return r.get() == ptr; }); + } + + // itération + auto begin() { return m_resources.begin(); } + auto end() { return m_resources.end(); } + auto begin() const { return m_resources.begin(); } + auto end() const { return m_resources.end(); } + + size_t size() const { return m_resources.size(); } + + void clear() { m_resources.clear(); m_map.clear(); } +}; +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/CResourceManager.hpp b/src/Engine/Core/Systems/Resources/CResourceManager.hpp new file mode 100644 index 0000000..80ea6eb --- /dev/null +++ b/src/Engine/Core/Systems/Resources/CResourceManager.hpp @@ -0,0 +1,44 @@ +#ifndef CRESOURCEMANAGER_HPP +#define CRESOURCEMANAGER_HPP + +#include "Model/CModelManager.hpp" +#include "Mesh/CMeshManager.hpp" +#include "Material/CMaterialManager.hpp" +#include "Audio/CAudioManager.hpp" +#include "Shader/CShadersManager.hpp" +#include "Texture/CTextureManager.hpp" + +class CResourceManager{ + private: + CModelManager m_modelManager; + CMeshManager m_meshManager; + CMaterialManager m_materialManager; + CTextureManager m_textureManager; + CAudioManager m_audioManager; + CShadersManager m_shaderManager; + public: + CModelManager& models() { return m_modelManager; } + CMeshManager& meshes() { return m_meshManager; } + CMaterialManager& materials() { return m_materialManager; } + CTextureManager& textures() { return m_textureManager; } + CAudioManager& sounds() { return m_audioManager; } + CShadersManager& shaders() { return m_shaderManager; } + + const CModelManager& models() const { return m_modelManager; } + const CMeshManager& meshes() const { return m_meshManager; } + const CMaterialManager& materials() const { return m_materialManager; } + const CTextureManager& textures() const { return m_textureManager; } + const CAudioManager& sounds() const { return m_audioManager; } + const CShadersManager& shaders() const { return m_shaderManager; } + + void cleanup() { + m_modelManager.clear(); + m_materialManager.clear(); + m_meshManager.clear(); + m_textureManager.clear(); + m_audioManager.clear(); + m_shaderManager.clear(); + } +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Material/CMaterialManager.hpp b/src/Engine/Core/Systems/Resources/Material/CMaterialManager.hpp new file mode 100644 index 0000000..c161bc2 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Material/CMaterialManager.hpp @@ -0,0 +1,25 @@ +#ifndef CMATERIALMANAGER_HPP +#define CMATERIALMANAGER_HPP + +#include "../../Graphics/Data/Material/CMaterial.hpp" + +#include "../CAbstractResourceManager.hpp" + +class CMaterialManager : public CAbstractResourceManager +{ + public: + CMaterial* createMaterial(const std::string& key, + CShaderImplVulkan* shader, + CTexture* albedo = nullptr, + CTexture* normal = nullptr) + { + auto mat = std::make_unique(); + mat->shader = shader; + mat->textureAlbedo = albedo; + mat->textureNormal = normal; + mat->build(); + return add(key, std::move(mat)); + } +}; + + #endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Mesh/CMeshManager.hpp b/src/Engine/Core/Systems/Resources/Mesh/CMeshManager.hpp new file mode 100644 index 0000000..b4b30cd --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Mesh/CMeshManager.hpp @@ -0,0 +1,11 @@ +#ifndef CMESHMANAGER_HPP +#define CMESHMANAGER_HPP + +#include "../../Graphics/Data/Mesh/CMesh.hpp" +#include "../CAbstractResourceManager.hpp" + +class CMeshManager : public CAbstractResourceManager +{ +}; + + #endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Model/CModelManager.hpp b/src/Engine/Core/Systems/Resources/Model/CModelManager.hpp new file mode 100644 index 0000000..d953e98 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Model/CModelManager.hpp @@ -0,0 +1,11 @@ +#ifndef CMODELMANAGER_HPP +#define CMODELMANAGER_HPP + +#include "../../Graphics/Data//Model/CModel.hpp" + +#include "../CAbstractResourceManager.hpp" +class CModelManager : public CAbstractResourceManager +{ +}; + + #endif \ No newline at end of file diff --git a/src/Engine/Core/Graphics/Shader/CShadersManager.cpp b/src/Engine/Core/Systems/Resources/Shader/CShadersManager.cpp similarity index 76% rename from src/Engine/Core/Graphics/Shader/CShadersManager.cpp rename to src/Engine/Core/Systems/Resources/Shader/CShadersManager.cpp index fe2dbf9..9d71cb5 100644 --- a/src/Engine/Core/Graphics/Shader/CShadersManager.cpp +++ b/src/Engine/Core/Systems/Resources/Shader/CShadersManager.cpp @@ -2,17 +2,11 @@ #include #include #include -#include "../../../Utils/Factory/CShaderFactory.hpp" -CShadersManager::CShadersManager(void) :m_shadersMap() { - -} - -CShadersManager::~CShadersManager(void) { -} +#include "../../../../Utils/Factory/CShaderFactory.hpp" CShader* CShadersManager::get(std::string name) const { - std::unordered_map::const_iterator it = m_shadersMap.find(name); - if (it == m_shadersMap.end()) { + std::unordered_map::const_iterator it = m_map.find(name); + if (it == m_map.end()) { return nullptr; } else { @@ -30,8 +24,8 @@ void CShadersManager::create(void) { try { auto shader = CosmicUtils::CShaderFactory::create(itr->path().stem(), itr->path()); - shaders.push_back(std::move(shader)); - m_shadersMap.insert(std::make_pair(itr->path().stem(), shaders.back().get())); + m_resources.push_back(std::move(shader)); + m_map.insert(std::make_pair(itr->path().stem(), m_resources.back().get())); } catch (std::exception& e) { //throw CJsonException(std::string("Failed to parse and retrieve data from the json file ") + itr->path().string() + ": " + e.what()); @@ -46,7 +40,7 @@ void CShadersManager::create(void) { void CShadersManager::compile(void) { - for (auto& el: shaders) + for (auto& el: m_resources) { el->init(); } diff --git a/src/Engine/Core/Systems/Resources/Shader/CShadersManager.hpp b/src/Engine/Core/Systems/Resources/Shader/CShadersManager.hpp new file mode 100644 index 0000000..229ec5b --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Shader/CShadersManager.hpp @@ -0,0 +1,27 @@ +#ifndef CSHADERSMANAGER_HPP +#define CSHADERSMANAGER_HPP + +#include +#include + +#include + +#include "../../Graphics/Shader/CShader.hpp" +#include "../CAbstractResourceManager.hpp" + +#define SHADERS_FOLDER "assets/shaders/slang/spv" + + +class CShadersManager : public CAbstractResourceManager{ +public: + CShader* get(std::string name) const; + + std::list>::const_iterator beginShaders(){return m_resources.cbegin();}; + std::list>::const_iterator endShaders(){return m_resources.cend();}; + + void compile(void); + + void create(void); +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Resources/Texture/CTextureManager.hpp b/src/Engine/Core/Systems/Resources/Texture/CTextureManager.hpp new file mode 100644 index 0000000..d4f10c5 --- /dev/null +++ b/src/Engine/Core/Systems/Resources/Texture/CTextureManager.hpp @@ -0,0 +1,21 @@ +#ifndef CTEXTUREMANAGER_HPP +#define CTEXTUREMANAGER_HPP + +#include "../../Graphics/Data/Texture/CTexture.hpp" +#include "../CAbstractResourceManager.hpp" + +class CTextureManager : public CAbstractResourceManager +{ + public: + + CTexture* loadTexture(const std::string& path) { + auto cached = get(path); + if (cached) return cached.value(); + + auto tex = std::make_unique(path); + tex->init(); + return add(path, std::move(tex)); + } +}; + + #endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Scripts/API/CScriptAPI.cpp b/src/Engine/Core/Systems/Scripts/API/CScriptAPI.cpp new file mode 100644 index 0000000..9b50729 --- /dev/null +++ b/src/Engine/Core/Systems/Scripts/API/CScriptAPI.cpp @@ -0,0 +1,17 @@ +#include "CScriptAPI.hpp" +#include + +namespace CosmicCore { + CScriptRegistry CScriptAPI::scriptRegistry; + + void CScriptAPI::init() + { + void* lib = dlopen("./libScriptModule.so", RTLD_NOW | RTLD_DEEPBIND); + if (lib) { + auto registerFunc = (void(*)(CScriptRegistry* reg))dlsym(lib, "registerAllScripts"); + registerFunc(&CScriptAPI::scripts()); // Passer l'API à la lib + } + } + +} + diff --git a/src/Engine/Core/Systems/Scripts/API/CScriptAPI.hpp b/src/Engine/Core/Systems/Scripts/API/CScriptAPI.hpp new file mode 100644 index 0000000..db3a9d7 --- /dev/null +++ b/src/Engine/Core/Systems/Scripts/API/CScriptAPI.hpp @@ -0,0 +1,29 @@ +#ifndef SCRIPTAPI_HPP +#define SCRIPTAPI_HPP + +#include "../CScriptRegistry.hpp" + +namespace CosmicCore { + class CScriptAPI{ + private: + CScene* m_scene; + static CScriptRegistry scriptRegistry; + public: + static CScriptRegistry& scripts(){return scriptRegistry;}; + + static void init(); + + CScriptAPI(CScene* scene): m_scene(scene){}; + virtual ~CScriptAPI() = default; + + virtual void updateWorld(float delta) = 0; + + virtual void initWorld() = 0; + virtual void destroy() = 0; + + CScene* getScene(){return m_scene;}; + }; + +} + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Scripts/CScriptRegistry.hpp b/src/Engine/Core/Systems/Scripts/CScriptRegistry.hpp new file mode 100644 index 0000000..2375112 --- /dev/null +++ b/src/Engine/Core/Systems/Scripts/CScriptRegistry.hpp @@ -0,0 +1,50 @@ +#ifndef CSCRIPTREGISTRY_HPP +#define CSCRIPTREGISTRY_HPP + +#include "Core/Component/Script/CAbstractScript.hpp" +#include "Core/Entity/CEntity.hpp" +#include + +using ScriptFactory = std::function(CosmicCore::CEntity&, const std::string&)>; + +class CScriptRegistry +{ + private: + std::unordered_map m_factories; + + public: + void registerScript(const std::string& name, ScriptFactory factory) { + m_factories[name] = factory; + } + + // Helper pour enregistrer un script template + template + void registerScript(const std::string& name) { + static_assert(std::is_base_of_v, + "T must derive from CAbstractScript"); + + registerScript(name, + [](CosmicCore::CEntity& entity, const std::string& n) -> std::unique_ptr { + std::unique_ptr concreteScript = std::make_unique(entity, n); + // Cast explicite vers la classe de base + return std::unique_ptr(concreteScript.release()); + }); + } + + // Enregistre un type de script avec son nom + std::unique_ptr create(const std::string& name, + CosmicCore::CEntity& entity, + const std::string& scriptName) { + auto it = m_factories.find(name); + if (it != m_factories.end()) { + return it->second(entity, scriptName); + } + return nullptr; + } + + bool hasScript(const std::string& name) const { + return m_factories.find(name) != m_factories.end(); + } +}; + +#endif \ No newline at end of file diff --git a/src/Engine/Core/Systems/Scripts/CScriptWorld.cpp b/src/Engine/Core/Systems/Scripts/CScriptWorld.cpp new file mode 100644 index 0000000..6f2b3a8 --- /dev/null +++ b/src/Engine/Core/Systems/Scripts/CScriptWorld.cpp @@ -0,0 +1,31 @@ +#include "CScriptWorld.hpp" +#include "../../Scene/CScene.hpp" +#include "Core/Component/Script/CScriptManager.hpp" +namespace CosmicCore { + + CScriptWorld::~CScriptWorld() + { + } + + void CScriptWorld::initWorld() + { + + } + + void CScriptWorld::updateWorld(float delta) + { + auto& registry = getScene()->getECManager().registry; + auto scriptView = registry.view(); + for(auto& entity : scriptView) + { + auto& scriptMan = registry.get(entity); + scriptMan.updateAll(); + } + + } + + void CScriptWorld::destroy() + { + + } +} \ No newline at end of file diff --git a/src/Engine/Core/Systems/Scripts/CScriptWorld.hpp b/src/Engine/Core/Systems/Scripts/CScriptWorld.hpp new file mode 100644 index 0000000..0f6534c --- /dev/null +++ b/src/Engine/Core/Systems/Scripts/CScriptWorld.hpp @@ -0,0 +1,21 @@ +#ifndef CSCRIPTWORLD_HPP +#define CSCRIPTWORLD_HPP + +#include "Core/Systems/Scripts/API/CScriptAPI.hpp" +namespace CosmicCore { + + class CScriptWorld : public CScriptAPI{ + + public: + CScriptWorld(CScene* scene) : CScriptAPI(scene) {} + ~CScriptWorld(); + void initWorld(); + + void updateWorld(float delta); + + void destroy(); + }; + +} + +#endif \ No newline at end of file diff --git a/src/Engine/Utils/Factory/CEntityFactory.cpp b/src/Engine/Utils/Factory/CEntityFactory.cpp index 4348892..5563525 100644 --- a/src/Engine/Utils/Factory/CEntityFactory.cpp +++ b/src/Engine/Utils/Factory/CEntityFactory.cpp @@ -1,24 +1,61 @@ #include "CEntityFactory.hpp" #include "ComponentFactory.hpp" +namespace CosmicUtils { + + namespace CEntityFactory{ -CEntity CEntityFactory::create(CScene* scene, const EntityConfig& config) { +CEntity create(CScene* scene, EntityConfig& config) { auto entity = scene->createEntity(); ComponentFactory::addMetaData(entity, config.name, config.description); - ComponentFactory::addTransform(entity, config.position, config.scale, config.rotation); - if(!config.modelPath.empty()) - ComponentFactory::addRenderer(entity, config.modelPath); - if(config.hasPhysics) + auto& transform = config.transformConfig; + auto& camera = config.cameraConfig; + auto& collider = config.colliderConfig; + auto& rigidbody = config.rigidBodyConfig; + auto& renderer = config.rendererConfig; + auto& speaker = config.speakerConfig; + auto& script = config.scriptConfig; + auto& relationship = config.relationshipConfig; + + if(transform.has_value()) { - ComponentFactory::addCollider(entity, config.colliderType); - ComponentFactory::addRigidBody(entity, config.bodyType); + ComponentFactory::addTransform(entity, *transform); + } + if(renderer.has_value()) + { + ComponentFactory::addRenderer(entity, *renderer); + } + if(collider.has_value() && rigidbody.has_value()) + { + ComponentFactory::addCollider(entity, *collider); + ComponentFactory::addRigidBody(entity, *rigidbody); + } + + if(speaker.has_value()) + { + ComponentFactory::addSpeaker(entity, *speaker); + } + + if(camera.has_value()) + { + ComponentFactory::addCamera(entity, *camera); + } + + if(script.has_value()) + { + ComponentFactory::addScript(entity, *script); + } + + if(relationship.has_value()) + { + ComponentFactory::addRelationship(entity, *relationship); } return entity; } /*CEntity* CEntityFactory::createCylinder(CScene* e, const EntityConfig& config) { - /*std::string name = "Cylindre" + std::to_string(CEntity::entityNumber); + std::string name = "Cylindre" + std::to_string(CEntity::entityNumber); CEntity* cylindre = new CEntity(name, glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(0.0f, 0.0f, 0.0f)); cylindre->setScene(e); CRigidBody* body = new CRigidBody(cylindre); @@ -118,4 +155,6 @@ CEntity* CEntityFactory::createReferenceAxis(CScene* e) { return r0; }*/ +} + } \ No newline at end of file diff --git a/src/Engine/Utils/Factory/CEntityFactory.hpp b/src/Engine/Utils/Factory/CEntityFactory.hpp index 8e7625a..112f02d 100644 --- a/src/Engine/Utils/Factory/CEntityFactory.hpp +++ b/src/Engine/Utils/Factory/CEntityFactory.hpp @@ -1,31 +1,34 @@ #include "../../Core/Scene/CScene.hpp" #include "../../Core/Entity/CEntity.hpp" -#include "../../Core/Component/Collider/CCollider.hpp" -#include "../../Core/Component/Rigidbody/CRigidBody.hpp" +#include "ComponentFactory.hpp" -namespace CEntityFactory { - using namespace CosmicCore; +namespace CosmicUtils { + + namespace CEntityFactory { + using namespace CosmicCore; + using namespace ComponentFactory; - struct EntityConfig { - std::string name = "Entity"; - std::string description = ""; - glm::vec3 position = {0.0f, 0.0f, 0.0f}; - glm::vec3 scale = {1.0f, 1.0f, 1.0f}; - glm::vec3 rotation = {0.0f, 0.0f, 0.0f}; - std::string modelPath = ""; - std::string shaderName = "triangle"; - EColliderType colliderType = EColliderType::Box; - EBodyType bodyType = EBodyType::Dynamic; - bool hasPhysics = true; - }; + struct EntityConfig { + std::string name = "Entity"; + std::string description = ""; + std::optional transformConfig = std::nullopt; + std::optional cameraConfig = std::nullopt; + std::optional rendererConfig = std::nullopt; + std::optional colliderConfig = std::nullopt; + std::optional rigidBodyConfig = std::nullopt; + std::optional speakerConfig = std::nullopt; + std::optional scriptConfig = std::nullopt; + std::optional relationshipConfig = std::nullopt; + }; - CEntity create(CScene* e, const EntityConfig& config); + CEntity create(CScene* e, EntityConfig& config); - /*CEntity createSphere(CScene* e, const EntityConfig& config); + /*CEntity createSphere(CScene* e, const EntityConfig& config); - CEntity createCylinder(CScene* e, const EntityConfig& config); + CEntity createCylinder(CScene* e, const EntityConfig& config); - CEntity createPlane(CScene* e, const EntityConfig& config); + CEntity createPlane(CScene* e, const EntityConfig& config); - CEntity createReferenceAxis(CScene* e, const EntityConfig& config);*/ + CEntity createReferenceAxis(CScene* e, const EntityConfig& config);*/ + } } \ No newline at end of file diff --git a/src/Engine/Utils/Factory/CShaderFactory.hpp b/src/Engine/Utils/Factory/CShaderFactory.hpp index 21427c8..8e2b665 100644 --- a/src/Engine/Utils/Factory/CShaderFactory.hpp +++ b/src/Engine/Utils/Factory/CShaderFactory.hpp @@ -1,11 +1,10 @@ #ifndef CSHADERFACTORY_HPP #define CSHADERFACTORY_HPP -#include "../../Core/Graphics/Shader/CShader.hpp" -#include "../../Core/Graphics/API/GraphicsAPI.hpp" -#include "../../Core/Graphics/Shader/Implementations/CShaderImplVulkan.hpp" +#include "../../Core/Systems/Graphics/Shader/CShader.hpp" +#include "../../Core/Systems/Graphics/API/GraphicsAPI.hpp" +#include "../../Core/Systems/Graphics/Shader/Implementations/CShaderImplVulkan.hpp" -#include #include #include namespace CosmicUtils { diff --git a/src/Engine/Utils/Factory/ComponentFactory.cpp b/src/Engine/Utils/Factory/ComponentFactory.cpp index 8ed70d7..920800f 100644 --- a/src/Engine/Utils/Factory/ComponentFactory.cpp +++ b/src/Engine/Utils/Factory/ComponentFactory.cpp @@ -1,105 +1,171 @@ #include "ComponentFactory.hpp" -#include "../../Core/Graphics/Data/CModelLoader.hpp" -namespace ComponentFactory { - using namespace CosmicCore; +#include "../../Core/Systems/Graphics/Data/CModelLoader.hpp" +#include "../../Core/Systems/Resources/API/CResourceAPI.hpp" - CTransform& addTransform(CEntity& entity, glm::vec3 position, glm::vec3 scale, glm::vec3 rotation) - { - VulkanImpl* api = dynamic_cast(GraphicsAPI::getAPI().get()); - auto& reg = entity.getRegistry(); - auto& tr = reg.registry.emplace(*entity, entity); - tr.setCenter(position); - tr.setScale(scale); - tr.setEulerAngle(rotation); - tr.initUniformBuffer(api->getAllocator()); - tr.updateUniformBuffer(0); - tr.updateUniformBuffer(1); - return tr; - } +namespace CosmicUtils { - CCamera& addCamera(CEntity& entity, float fov, float near, float far) - { - VulkanImpl* api = dynamic_cast(GraphicsAPI::getAPI().get()); - auto& reg = entity.getRegistry(); - - // CTransform obligatoire pour la caméra - if (!reg.registry.all_of(*entity)) - throw std::runtime_error("addCamera requires a CTransform on the entity"); - - auto& transform = reg.registry.get(*entity); - auto& cam = reg.registry.emplace(*entity, entity); - - cam.setFov(fov); - cam.setNearFar(near, far); - cam.setAspect((float)api->getSwapChainExtent().width / - (float)api->getSwapChainExtent().height); - cam.initUniformBuffer(api->getAllocator()); - cam.updateUniformBuffer(0, transform); - cam.updateUniformBuffer(1, transform); - return cam; - } + namespace ComponentFactory { + using namespace CosmicCore; - CRenderer& addRenderer(CEntity& entity, const std::string& modelPath) - { - auto& rm = GraphicsAPI::getAPI()->getResourceManager(); - auto& reg = entity.getRegistry(); - - CModel* model = CModelLoader::loadModel(modelPath, rm); - return reg.registry.emplace(*entity, entity, model); - } - - CCollider& addCollider(CEntity& entity, EColliderType type) - { - auto& reg = entity.getRegistry(); - auto& col = reg.registry.emplace(*entity, entity, type); - - // taille par défaut depuis le transform si disponible - if (reg.registry.all_of(*entity)) { - auto& tr = reg.registry.get(*entity); - switch (type) { - case EColliderType::Box: - col.setBoxSize(tr.getScale()); - break; - case EColliderType::Sphere: - col.setSphereRadius(glm::compMax(tr.getScale()) * 0.5f); - break; - case EColliderType::Capsule: - col.setCapsule(tr.getScale().y * 0.5f, - glm::max(tr.getScale().x, tr.getScale().z) * 0.5f); - break; - case EColliderType::ConvexHull: - case EColliderType::Mesh: - // build depuis le renderer si disponible - if (reg.registry.all_of(*entity)) - col.buildFromRenderer(); - break; - default: - break; - } + CTransform& addTransform(CEntity& entity, TransformConfig& transformConfig) + { + VulkanImpl* api = dynamic_cast(GraphicsAPI::getAPI().get()); + auto& reg = entity.getRegistry(); + auto& tr = reg.registry.emplace(*entity, entity); + tr.setCenter(transformConfig.position); + tr.setScale(transformConfig.scale); + tr.setEulerAngle(transformConfig.rotation); + tr.initUniformBuffer(api->getAllocator()); + tr.updateUniformBuffer(0); + tr.updateUniformBuffer(1); + return tr; } - return col; + + CCamera& addCamera(CEntity& entity, CameraConfig& cameraConfig) + { + VulkanImpl* api = dynamic_cast(GraphicsAPI::getAPI().get()); + auto& reg = entity.getRegistry(); + + // CTransform obligatoire pour la caméra + if (!reg.registry.all_of(*entity)) + throw std::runtime_error("addCamera requires a CTransform on the entity"); + + auto& transform = reg.registry.get(*entity); + auto& cam = reg.registry.emplace(*entity, entity); + + cam.setFov(cameraConfig.fov); + cam.setNearFar(cameraConfig.near, cameraConfig.far); + cam.setAspect((float)api->getSwapChainExtent().width / + (float)api->getSwapChainExtent().height); + cam.initUniformBuffer(api->getAllocator()); + cam.updateUniformBuffer(0, transform); + cam.updateUniformBuffer(1, transform); + return cam; + } + + CRenderer& addRenderer(CEntity& entity, RendererConfig& rendererConfig) + { + auto& rm = CResourceAPI::resources(); + auto& reg = entity.getRegistry(); + + ModelLoadConfig config; + config.shaderName = rendererConfig.shader; + + // override albedo si fourni + if (rendererConfig.albedo.has_value()) { + CTexture* tex = rm.textures().loadTexture(*rendererConfig.albedo); + + // crée un material custom avec cette texture pour chaque mesh + auto* shader = static_cast( + rm.shaders().get(config.shaderName) + ); + + // clé unique model + albedo + std::string matKey = rendererConfig.model + "_" + *rendererConfig.albedo; + + // un override par mesh (tous avec la même texture pour l'instant) + CModel* baseModel = CModelLoader::loadModel(rendererConfig.model, {.forceReload = false}); + for (uint32_t i = 0; i < baseModel->getMeshMaterials().size(); i++) { + CMaterial* mat = rm.materials().contains(matKey + "_" + std::to_string(i)) ? + rm.materials().get(matKey + "_" + std::to_string(i)).value() : + rm.materials().createMaterial(matKey + "_" + std::to_string(i), shader, tex); + config.materialOverrides[i] = mat; + } + } + + CModel* model = CModelLoader::loadModel(rendererConfig.model, config); + return reg.registry.emplace(*entity, entity, model); + } + + CCollider& addCollider(CEntity& entity, ColliderConfig& colliderConfig) + { + auto& reg = entity.getRegistry(); + auto& col = reg.registry.emplace(*entity, entity, colliderConfig.colliderType); + + // taille par défaut depuis le transform si disponible + if (reg.registry.all_of(*entity)) { + auto& tr = reg.registry.get(*entity); + switch (colliderConfig.colliderType) { + case EColliderType::Box: + col.setBoxSize(tr.getScale()); + break; + case EColliderType::Sphere: + col.setSphereRadius(glm::compMax(tr.getScale()) * 0.5f); + break; + case EColliderType::Capsule: + col.setCapsule(tr.getScale().y * 0.5f, + glm::max(tr.getScale().x, tr.getScale().z) * 0.5f); + break; + case EColliderType::ConvexHull: + case EColliderType::Mesh: + // build depuis le renderer si disponible + if (reg.registry.all_of(*entity)) + col.buildFromRenderer(); + break; + default: + break; + } + } + return col; + } + + CRigidBody& addRigidBody(CEntity& entity, RigidBodyConfig& rigidBodyConfig) + { + auto& reg = entity.getRegistry(); + + if (!reg.registry.all_of(*entity)) + throw std::runtime_error("addRigidBody requires a CTransform on the entity"); + if (!reg.registry.all_of(*entity)) + throw std::runtime_error("addRigidBody requires a CCollider on the entity"); + + auto& rb = reg.registry.emplace(*entity, entity, rigidBodyConfig.bodyType); + rb.init(); + return rb; + } + + CMetaData& addMetaData(CEntity& entity, std::string n, std::string des) + { + auto& reg = entity.getRegistry(); + + auto& rb = reg.registry.emplace(*entity, entity, n, des); + return rb; + } + + CSpeaker& addSpeaker(CEntity& entity, SpeakerConfig& soundsConfig) + { + auto& rm = CResourceAPI::resources(); + auto& reg = entity.getRegistry(); + if (!reg.registry.all_of(*entity)) + throw std::runtime_error("addSpeaker requires a CTransform on the entity"); + + auto& sp = reg.registry.emplace(*entity, entity); + + for(auto& conf : soundsConfig.clips) + { + auto clip = rm.sounds().loadClip(conf.path); + sp.addClip(conf.path, clip, conf.gain, conf.pitch, conf.loop, conf.spatial); + } + return sp; + } + + CRelationship& addRelationship(CEntity& entity, RelationshipConfig& relationshipConfig) + { + auto& reg = entity.getRegistry(); + auto& relationship = reg.registry.emplace(*entity, entity, relationshipConfig.parent, relationshipConfig.children); + return relationship; + } + + CScriptManager& addScript(CEntity& entity, ScriptConfig& scriptConfig) + { + auto& reg = entity.getRegistry(); + auto& scriptMan = reg.registry.get_or_emplace(*entity, entity); + + for(auto& name : scriptConfig.scriptNames) + { + scriptMan.emplace(name); + } + return scriptMan; + } + } - - CRigidBody& addRigidBody(CEntity& entity, EBodyType type) - { - auto& reg = entity.getRegistry(); - - if (!reg.registry.all_of(*entity)) - throw std::runtime_error("addRigidBody requires a CTransform on the entity"); - if (!reg.registry.all_of(*entity)) - throw std::runtime_error("addRigidBody requires a CCollider on the entity"); - - auto& rb = reg.registry.emplace(*entity, entity, type); - rb.init(); - return rb; - } - - CMetaData& addMetaData(CEntity& entity, std::string n, std::string des) - { - auto& reg = entity.getRegistry(); - - auto& rb = reg.registry.emplace(*entity, entity, n, des); - return rb; - } - -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/Engine/Utils/Factory/ComponentFactory.hpp b/src/Engine/Utils/Factory/ComponentFactory.hpp index 448c7e3..1d6c5f7 100644 --- a/src/Engine/Utils/Factory/ComponentFactory.hpp +++ b/src/Engine/Utils/Factory/ComponentFactory.hpp @@ -8,31 +8,92 @@ #include "../../Core/Component/Graphics/CRenderer.hpp" #include "../../Core/Component/Camera/CCamera.hpp" #include "../../Core/Component/Meta/CMetaData.hpp" -namespace ComponentFactory { - using namespace CosmicCore; +#include "../../Core/Component/Speaker/CSpeaker.hpp" +#include "../../Core/Component/Relationships/CRelationship.hpp" +#include "Core/Component/Script/CScriptManager.hpp" - // crée et initialise un CTransform sur une entité existante - CTransform& addTransform(CEntity& entity, - glm::vec3 position = {0,0,0}, - glm::vec3 scale = {1,1,1}, - glm::vec3 rotation = {0,0,0}); +#include +#include - // crée et initialise une CCamera sur une entité existante - CCamera& addCamera(CEntity& entity, - float fov = 45.0f, - float near = 0.1f, - float far = 1000.0f); +namespace CosmicUtils { + namespace ComponentFactory { + using namespace CosmicCore; - // crée et initialise un CRenderer depuis un fichier - CRenderer& addRenderer(CEntity& entity, const std::string& modelPath); + struct TransformConfig { + glm::vec3 position = {0.0f, 0.0f, 0.0f}; + glm::vec3 rotation = {0.0f, 0.0f, 0.0f}; + glm::vec3 scale = {1.0f, 1.0f, 1.0f}; + }; - // crée un CCollider - CCollider& addCollider(CEntity& entity, EColliderType type = EColliderType::Box); + struct CameraConfig { + float fov = 45.0f; + float near = 0.1f; + float far = 1000.0f; + }; - // crée et initialise un CRigidBody - CRigidBody& addRigidBody(CEntity& entity, EBodyType type = EBodyType::Dynamic); + struct RendererConfig { + std::string model = ""; + std::string shader = ""; + std::optional albedo = ""; + }; - CMetaData& addMetaData(CEntity& entity, std::string n, std::string des); -}; + struct ColliderConfig { + EColliderType colliderType = EColliderType::Box; + glm::vec3 size = {1.0f, 1.0f, 1.0f}; + float radius = 1.0f; + float halfHeight = 0.5f; + }; + struct RigidBodyConfig { + EBodyType bodyType = EBodyType::Dynamic; + float mass = 1.0f; + float friction = 1.0f; + float restitution = 0.0f; + }; + + struct SpeakerConfig { + struct SoundClipConfig{ + std::string path; + float gain = 1.0f; + float pitch = 1.0f; + bool loop = false; + bool spatial = true; + }; + std::vector clips; + }; + + struct RelationshipConfig{ + std::optional parent = std::nullopt; + std::vector children; + }; + + struct ScriptConfig{ + std::vector scriptNames; + }; + + // crée et initialise un CTransform sur une entité existante + CTransform& addTransform(CEntity& entity, TransformConfig& transformConfig); + + // crée et initialise une CCamera sur une entité existante + CCamera& addCamera(CEntity& entity, CameraConfig& cameraConfig); + + // crée et initialise un CRenderer depuis un fichier + CRenderer& addRenderer(CEntity& entity, RendererConfig& rendererConfig); + + // crée un CCollider + CCollider& addCollider(CEntity& entity, ColliderConfig& colliderConfig); + + // crée et initialise un CRigidBody + CRigidBody& addRigidBody(CEntity& entity, RigidBodyConfig& rigidBodyConfig); + + CMetaData& addMetaData(CEntity& entity, std::string n, std::string des); + + CSpeaker& addSpeaker(CEntity& entity, SpeakerConfig& soundsConfig); + + CRelationship& addRelationship(CEntity& entity, RelationshipConfig& relationshipConfig); + + CScriptManager& addScript(CEntity& entity, ScriptConfig& scriptConfig); + + }; +} #endif diff --git a/src/Engine/Core/Utils/CSerializable.hpp b/src/Engine/Utils/JsonParser/CSerializable.hpp similarity index 100% rename from src/Engine/Core/Utils/CSerializable.hpp rename to src/Engine/Utils/JsonParser/CSerializable.hpp diff --git a/src/Engine/Utils/JsonParser/Identifier.cpp b/src/Engine/Utils/JsonParser/Identifier.cpp new file mode 100644 index 0000000..c6deb76 --- /dev/null +++ b/src/Engine/Utils/JsonParser/Identifier.cpp @@ -0,0 +1,27 @@ +#include "Identifier.hpp" +#include +namespace CosmicUtils { + std::unordered_map JsonKeyRegistry::m_idToKey = {}; + std::unordered_map JsonKeyRegistry::m_keyToId = {}; + + nlohmann::json_schema::json_validator JsonValidator::m_validator = nlohmann::json_schema::json_validator(); + + void JsonValidator::init(std::filesystem::path& path) + { + std::ifstream file(path); + nlohmann::json json = nlohmann::json::parse(file); + JsonKeyExtractor::initRegistry(json); + file.close(); + m_validator.set_root_schema(json); + } + + bool JsonValidator::validate(nlohmann::json& json) + { + try { + m_validator.validate(json); + return true; + } catch (const std::exception& e) { + return false; + } + } +} \ No newline at end of file diff --git a/src/Engine/Utils/JsonParser/Identifier.hpp b/src/Engine/Utils/JsonParser/Identifier.hpp new file mode 100644 index 0000000..fed32a9 --- /dev/null +++ b/src/Engine/Utils/JsonParser/Identifier.hpp @@ -0,0 +1,147 @@ +#ifndef IDENTIFIER_HPP +#define IDENTIFIER_HPP + +#include +#include +#include +#include +#include +#include + +namespace CosmicUtils { + + enum class EJsonKeys : int { + // Scene + Scene_Name = 101, + Scene_Description = 102, + Scene_Entities = 103, + + // Entity + Entity_Ref = 201, + Entity_Parent = 202, + Entity_Name = 203, + Entity_Description = 204, + Entity_Children = 205, + Entity_Components = 206, + + //ComponentList + Component_Transform= 2061, + Component_Renderer = 2062, + Component_Camera = 2063, + Component_Collider = 2064, + Component_Rigidbody = 2065, + Component_Speaker = 2066, + Component_Script = 2067, + + // Transform + Transform_Position = 3011, + Transform_Rotation = 3012, + Transform_Scale = 3013, + + // Renderer + Renderer_Model = 3021, + Renderer_Shader = 3022, + Renderer_Albedo = 3023, + + // Camera + Camera_Fov = 3031, + Camera_Near = 3032, + Camera_Far = 3033, + + // Collider + Collider_Type = 3041, + Collider_Size = 3042, + Collider_Radius = 3043, + Collider_HalfHeight = 3044, + + // RigidBody + RigidBody_Type = 3051, + RigidBody_Mass = 3052, + RigidBody_Friction = 3053, + RigidBody_Restitution = 3054, + + // Speaker + Speaker_Clips = 3061, + Speaker_Path = 30611, + Speaker_Gain = 30612, + Speaker_Pitch = 30613, + Speaker_Loop = 30614, + Speaker_Spatial = 30615 + }; + + + class JsonKeyRegistry{ + private: + static std::unordered_map m_idToKey; + static std::unordered_map m_keyToId; + public: + static void registerKey(int id, const std::string& key) { + m_idToKey[id] = key; + m_keyToId[key] = id; + } + + static const std::string& key(EJsonKeys id) { + auto it = m_idToKey.find(static_cast(id)); + if (it == m_idToKey.end()) + throw std::runtime_error("Unknown schema key ID: " + std::to_string(static_cast(id))); + return it->second; + } + + static EJsonKeys id(const std::string& key) { + auto it = m_keyToId.find(key); + if (it == m_keyToId.end()) + throw std::runtime_error("Unknown schema key: " + key); + return static_cast(it->second); + } + }; + + + + + class JsonKeyExtractor{ + static void extractIdsRecursive(const nlohmann::json& obj, const std::string& property = "") { + if (obj.is_object()) { + // Vérifier si cet objet a un ID + if (obj.contains("ID") && obj["ID"].is_number_integer()) { + int id = obj["ID"].get(); + JsonKeyRegistry::registerKey(id, property); + } + + // Parcourir toutes les propriétés + for (auto& [key, value] : obj.items()) { + if(key == "items" && value.contains("type") && value["type"] == "object") + { + extractIdsRecursive(value, ""); + } + + if ((key == "properties" || key == "definitions") && value.is_object()) { + // Traiter les propriétés + for (auto& [propName, propValue] : value.items()) { + extractIdsRecursive(propValue, propName); + } + } + } + } + } + + public: + + static void initRegistry(nlohmann::json& json) + { + extractIdsRecursive(json); + } + + }; + + class JsonValidator + { + private: + static nlohmann::json_schema::json_validator m_validator; + public: + static void init(std::filesystem::path& path); + + static bool validate(nlohmann::json& json); + }; +} + +#endif \ No newline at end of file diff --git a/src/Engine/Modules/Module/CModuleLoader.cpp b/src/Modules/Module/CModuleLoader.cpp similarity index 100% rename from src/Engine/Modules/Module/CModuleLoader.cpp rename to src/Modules/Module/CModuleLoader.cpp diff --git a/src/Engine/Modules/Module/CModuleLoader.hpp b/src/Modules/Module/CModuleLoader.hpp similarity index 100% rename from src/Engine/Modules/Module/CModuleLoader.hpp rename to src/Modules/Module/CModuleLoader.hpp diff --git a/src/Modules/Scripts/CScriptRegister.cpp b/src/Modules/Scripts/CScriptRegister.cpp new file mode 100644 index 0000000..99c123d --- /dev/null +++ b/src/Modules/Scripts/CScriptRegister.cpp @@ -0,0 +1,22 @@ +#include "CScriptRegister.hpp" +#include "UserScripts/CExampleScript.hpp" +#include + +std::vector& CScriptRegister::getRegistrars() { + static std::vector registrars; + return registrars; +} + +void CScriptRegister::addScriptRegistrar(ScriptRegisterFunc func) { + getRegistrars().push_back(func); +} + +void CScriptRegister::registerAllScripts(CScriptRegistry* reg) { + for (auto& registrar : getRegistrars()) { + registrar(reg); + } +} + +extern "C" void registerAllScripts(CScriptRegistry* reg) { + CScriptRegister::registerAllScripts(reg); +} \ No newline at end of file diff --git a/src/Modules/Scripts/CScriptRegister.hpp b/src/Modules/Scripts/CScriptRegister.hpp new file mode 100644 index 0000000..4661437 --- /dev/null +++ b/src/Modules/Scripts/CScriptRegister.hpp @@ -0,0 +1,56 @@ +#ifndef CSCRIPTREGISTER_HPP +#define CSCRIPTREGISTER_HPP + +// Forward declarations des types de l'Engine +#include "Core/Systems/Scripts/CScriptRegistry.hpp" +#include +namespace CosmicEngine { + class CAbstractScript; + class CEntity; +} + +// Définition des macros d'exportation +#ifdef _WIN32 + #ifdef SCRIPT_MODULE_EXPORTS + #define SCRIPT_API __declspec(dllexport) + #else + #define SCRIPT_API __declspec(dllimport) + #endif +#else + #define SCRIPT_API __attribute__((visibility("default"))) +#endif + +// Type de fonction d'enregistrement +using ScriptRegisterFunc = std::function; + +class SCRIPT_API CScriptRegister +{ + public: + // Point d'entrée que l'Engine appellera + static void registerAllScripts(CScriptRegistry* reg); + // Macro pour enregistrer un script automatiquement + static void addScriptRegistrar(ScriptRegisterFunc func); + + private: + static std::vector& getRegistrars(); +}; + +extern "C" { + SCRIPT_API void registerAllScripts(CScriptRegistry* reg); +} + +// Macro à utiliser dans chaque script .cpp +#define REGISTER_SCRIPT(ClassName) \ + namespace { \ + struct ClassName##_AutoReg { \ + ClassName##_AutoReg() { \ + CScriptRegister::addScriptRegistrar([](CScriptRegistry* reg) { \ + reg->registerScript(#ClassName); \ + }); \ + } \ + }; \ + static ClassName##_AutoReg className##_autoReg; \ + } + +#endif + diff --git a/src/Modules/Scripts/UserScripts/CExampleScript.cpp b/src/Modules/Scripts/UserScripts/CExampleScript.cpp new file mode 100644 index 0000000..078a398 --- /dev/null +++ b/src/Modules/Scripts/UserScripts/CExampleScript.cpp @@ -0,0 +1,31 @@ +#include "CExampleScript.hpp" +#include "nlohmann/json_fwd.hpp" +#include "../CScriptRegister.hpp" +#include + +void CExampleScript::start() +{ + std::cout << "Hello example script" << std::endl; +} + +void CExampleScript::update() +{ + static int co = 0; + std::cout << ++co << std::endl; +} + +void CExampleScript::destroy() +{ + +} + +nlohmann::json CExampleScript::to_json() +{ + return nlohmann::json(); +} + +CExampleScript::~CExampleScript(){ + +} + +REGISTER_SCRIPT(CExampleScript); \ No newline at end of file diff --git a/src/Modules/Scripts/UserScripts/CExampleScript.hpp b/src/Modules/Scripts/UserScripts/CExampleScript.hpp new file mode 100644 index 0000000..9a452c9 --- /dev/null +++ b/src/Modules/Scripts/UserScripts/CExampleScript.hpp @@ -0,0 +1,19 @@ +#ifndef CEXAMPLESCRIPT_HPP +#define CEXAMPLESCRIPT_HPP +#include "Core/Entity/CEntity.hpp" +#include "Core/Systems/Scripts/API/CScriptAPI.hpp" +#include +#include + +class CExampleScript : public CosmicCore::CAbstractScript +{ + public: + CExampleScript(CosmicCore::CEntity& entity, std::string name): CosmicCore::CAbstractScript(entity, name){}; + virtual void start() override; + virtual void update() override; + virtual void destroy() override; + virtual nlohmann::json to_json() override; + virtual ~CExampleScript(); +}; + +#endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index d398020..a123a3a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,6 +29,5 @@ int main(int argc, char** argv) { CKernel g("Mon jeu", "Jeu"); g.start(); g.loop(); - return 0; } \ No newline at end of file