expo-juce 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1611) hide show
  1. package/README.md +34 -0
  2. package/build/index.d.ts +21 -24
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +44 -48
  5. package/build/index.js.map +1 -1
  6. package/ios/BeeperAudioEngine.h +45 -0
  7. package/ios/BeeperAudioEngine.mm +352 -0
  8. package/ios/ExpoJuce.podspec +31 -8
  9. package/ios/ExpoJuceBridge.h +12 -12
  10. package/ios/ExpoJuceBridge.m +35 -100
  11. package/ios/ExpoJuceModule.swift +33 -55
  12. package/ios/JuceConfig.h +49 -14
  13. package/ios/JuceModule_audio_basics.mm +2 -0
  14. package/ios/JuceModule_audio_devices.mm +2 -0
  15. package/ios/JuceModule_audio_formats.mm +2 -0
  16. package/ios/JuceModule_audio_processors.mm +2 -0
  17. package/ios/JuceModule_core.mm +5 -0
  18. package/ios/JuceModule_data_structures.mm +2 -0
  19. package/ios/JuceModule_dsp.mm +2 -0
  20. package/ios/JuceModule_events.mm +2 -0
  21. package/ios/JuceModule_graphics.mm +2 -0
  22. package/ios/JuceModule_gui_basics.mm +2 -0
  23. package/ios/JuceModule_gui_extra.mm +2 -0
  24. package/ios/JuceModule_harfbuzz.mm +4 -0
  25. package/ios/PolySynthProcessor.h +83 -0
  26. package/ios/PolySynthProcessor.mm +164 -0
  27. package/ios/TransportEngine.h +35 -0
  28. package/ios/TransportEngine.mm +50 -0
  29. package/ios/Voice.h +59 -0
  30. package/ios/Voice.mm +157 -0
  31. package/ios/VoiceAllocator.h +22 -0
  32. package/ios/VoiceAllocator.mm +88 -0
  33. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +1957 -0
  34. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +586 -0
  35. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp +65 -0
  36. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODevice.h +368 -0
  37. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp +152 -0
  38. package/ios/juce_modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h +200 -0
  39. package/ios/juce_modules/juce_audio_devices/audio_io/juce_SampleRateHelpers.cpp +57 -0
  40. package/ios/juce_modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h +71 -0
  41. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.cpp +277 -0
  42. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.h +201 -0
  43. package/ios/juce_modules/juce_audio_devices/juce_audio_devices.mm +35 -0
  44. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiDevices.cpp +246 -0
  45. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiDevices.h +482 -0
  46. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp +170 -0
  47. package/ios/juce_modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h +125 -0
  48. package/ios/juce_modules/juce_audio_devices/midi_io/ump/juce_UMPBytestreamInputHandler.h +153 -0
  49. package/ios/juce_modules/juce_audio_devices/midi_io/ump/juce_UMPU32InputHandler.h +165 -0
  50. package/ios/juce_modules/juce_audio_devices/native/java/app/com/rmsl/juce/JuceMidiSupport.java +1121 -0
  51. package/ios/juce_modules/juce_audio_devices/native/juce_ALSA_linux.cpp +1313 -0
  52. package/ios/juce_modules/juce_audio_devices/native/juce_ASIO_windows.cpp +1654 -0
  53. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_android.cpp +482 -0
  54. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_ios.cpp +1508 -0
  55. package/ios/juce_modules/juce_audio_devices/native/juce_Audio_ios.h +106 -0
  56. package/ios/juce_modules/juce_audio_devices/native/juce_Bela_linux.cpp +612 -0
  57. package/ios/juce_modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp +2315 -0
  58. package/ios/juce_modules/juce_audio_devices/native/juce_CoreMidi_mac.mm +1280 -0
  59. package/ios/juce_modules/juce_audio_devices/native/juce_DirectSound_windows.cpp +1304 -0
  60. package/ios/juce_modules/juce_audio_devices/native/juce_HighPerformanceAudioHelpers_android.h +137 -0
  61. package/ios/juce_modules/juce_audio_devices/native/juce_JackAudio_linux.cpp +681 -0
  62. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_android.cpp +1183 -0
  63. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_linux.cpp +788 -0
  64. package/ios/juce_modules/juce_audio_devices/native/juce_Midi_windows.cpp +2038 -0
  65. package/ios/juce_modules/juce_audio_devices/native/juce_Oboe_android.cpp +1440 -0
  66. package/ios/juce_modules/juce_audio_devices/native/juce_OpenSL_android.cpp +1306 -0
  67. package/ios/juce_modules/juce_audio_devices/native/juce_WASAPI_windows.cpp +2032 -0
  68. package/ios/juce_modules/juce_audio_devices/native/oboe/.clang-tidy +3 -0
  69. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStream.h +706 -0
  70. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamBase.h +343 -0
  71. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamBuilder.h +670 -0
  72. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/AudioStreamCallback.h +193 -0
  73. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Definitions.h +897 -0
  74. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FifoBuffer.h +164 -0
  75. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FifoControllerBase.h +112 -0
  76. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/FullDuplexStream.h +324 -0
  77. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/LatencyTuner.h +150 -0
  78. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Oboe.h +40 -0
  79. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/OboeExtensions.h +64 -0
  80. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/ResultWithValue.h +155 -0
  81. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/StabilizedCallback.h +75 -0
  82. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Utilities.h +99 -0
  83. package/ios/juce_modules/juce_audio_devices/native/oboe/include/oboe/Version.h +92 -0
  84. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioExtensions.h +180 -0
  85. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioLoader.cpp +506 -0
  86. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AAudioLoader.h +299 -0
  87. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AudioStreamAAudio.cpp +868 -0
  88. package/ios/juce_modules/juce_audio_devices/native/oboe/src/aaudio/AudioStreamAAudio.h +152 -0
  89. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AdpfWrapper.cpp +124 -0
  90. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AdpfWrapper.h +85 -0
  91. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioClock.h +75 -0
  92. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioSourceCaller.cpp +38 -0
  93. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioSourceCaller.h +83 -0
  94. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioStream.cpp +222 -0
  95. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/AudioStreamBuilder.cpp +224 -0
  96. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/DataConversionFlowGraph.cpp +266 -0
  97. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/DataConversionFlowGraph.h +86 -0
  98. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FilterAudioStream.cpp +106 -0
  99. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FilterAudioStream.h +227 -0
  100. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockAdapter.cpp +38 -0
  101. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockAdapter.h +67 -0
  102. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockReader.cpp +73 -0
  103. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockReader.h +60 -0
  104. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockWriter.cpp +73 -0
  105. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/FixedBlockWriter.h +54 -0
  106. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/LatencyTuner.cpp +108 -0
  107. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/MonotonicCounter.h +112 -0
  108. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/OboeDebug.h +41 -0
  109. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/OboeExtensions.cpp +36 -0
  110. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/QuirksManager.cpp +311 -0
  111. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/QuirksManager.h +134 -0
  112. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceFloatCaller.cpp +30 -0
  113. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceFloatCaller.h +44 -0
  114. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI16Caller.cpp +47 -0
  115. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI16Caller.h +49 -0
  116. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI24Caller.cpp +56 -0
  117. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI24Caller.h +53 -0
  118. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI32Caller.cpp +47 -0
  119. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/SourceI32Caller.h +53 -0
  120. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/StabilizedCallback.cpp +112 -0
  121. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Trace.cpp +75 -0
  122. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Trace.h +31 -0
  123. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Utilities.cpp +333 -0
  124. package/ios/juce_modules/juce_audio_devices/native/oboe/src/common/Version.cpp +28 -0
  125. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoBuffer.cpp +178 -0
  126. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoController.cpp +30 -0
  127. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoController.h +62 -0
  128. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerBase.cpp +68 -0
  129. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerIndirect.cpp +32 -0
  130. package/ios/juce_modules/juce_audio_devices/native/oboe/src/fifo/FifoControllerIndirect.h +66 -0
  131. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ChannelCountConverter.cpp +52 -0
  132. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ChannelCountConverter.h +52 -0
  133. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ClipToRange.cpp +38 -0
  134. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ClipToRange.h +68 -0
  135. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowGraphNode.cpp +114 -0
  136. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowGraphNode.h +450 -0
  137. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/FlowgraphUtilities.h +55 -0
  138. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/Limiter.cpp +67 -0
  139. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/Limiter.h +64 -0
  140. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ManyToMultiConverter.cpp +47 -0
  141. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/ManyToMultiConverter.h +53 -0
  142. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoBlend.cpp +46 -0
  143. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoBlend.h +48 -0
  144. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoToMultiConverter.cpp +41 -0
  145. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MonoToMultiConverter.h +49 -0
  146. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToManyConverter.cpp +47 -0
  147. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToManyConverter.h +49 -0
  148. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToMonoConverter.cpp +41 -0
  149. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/MultiToMonoConverter.h +49 -0
  150. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/RampLinear.cpp +81 -0
  151. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/RampLinear.h +96 -0
  152. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SampleRateConverter.cpp +71 -0
  153. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SampleRateConverter.h +63 -0
  154. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkFloat.cpp +46 -0
  155. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkFloat.h +45 -0
  156. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI16.cpp +57 -0
  157. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI16.h +43 -0
  158. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI24.cpp +66 -0
  159. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI24.h +44 -0
  160. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI32.cpp +55 -0
  161. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SinkI32.h +40 -0
  162. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceFloat.cpp +42 -0
  163. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceFloat.h +44 -0
  164. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI16.cpp +54 -0
  165. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI16.h +42 -0
  166. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI24.cpp +65 -0
  167. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI24.h +43 -0
  168. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI32.cpp +54 -0
  169. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/SourceI32.h +42 -0
  170. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/HyperbolicCosineWindow.h +71 -0
  171. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/IntegerRatio.cpp +50 -0
  172. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/IntegerRatio.h +54 -0
  173. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/KaiserWindow.h +90 -0
  174. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/LinearResampler.cpp +42 -0
  175. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/LinearResampler.h +47 -0
  176. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/MultiChannelResampler.cpp +171 -0
  177. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/MultiChannelResampler.h +281 -0
  178. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResampler.cpp +61 -0
  179. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResampler.h +53 -0
  180. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerMono.cpp +63 -0
  181. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerMono.h +41 -0
  182. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerStereo.cpp +79 -0
  183. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/PolyphaseResamplerStereo.h +41 -0
  184. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/ResamplerDefinitions.h +27 -0
  185. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResampler.cpp +72 -0
  186. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResampler.h +50 -0
  187. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResamplerStereo.cpp +81 -0
  188. package/ios/juce_modules/juce_audio_devices/native/oboe/src/flowgraph/resampler/SincResamplerStereo.h +42 -0
  189. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioInputStreamOpenSLES.cpp +360 -0
  190. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioInputStreamOpenSLES.h +66 -0
  191. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioOutputStreamOpenSLES.cpp +462 -0
  192. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioOutputStreamOpenSLES.h +80 -0
  193. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamBuffered.cpp +285 -0
  194. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamBuffered.h +96 -0
  195. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamOpenSLES.cpp +499 -0
  196. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/AudioStreamOpenSLES.h +148 -0
  197. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/EngineOpenSLES.cpp +141 -0
  198. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/EngineOpenSLES.h +65 -0
  199. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OpenSLESUtilities.cpp +96 -0
  200. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OpenSLESUtilities.h +44 -0
  201. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OutputMixerOpenSLES.cpp +74 -0
  202. package/ios/juce_modules/juce_audio_devices/native/oboe/src/opensles/OutputMixerOpenSLES.h +58 -0
  203. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp +193 -0
  204. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h +127 -0
  205. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp +295 -0
  206. package/ios/juce_modules/juce_audio_devices/sources/juce_AudioTransportSource.h +192 -0
  207. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp +107 -0
  208. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormat.h +183 -0
  209. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp +212 -0
  210. package/ios/juce_modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h +151 -0
  211. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/generate_lv2_bundle_sources.py +175 -0
  212. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/juce_lv2_config.h +87 -0
  213. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/COPYING +13 -0
  214. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilv.h +2117 -0
  215. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/lilv/lilvmm.hpp +440 -0
  216. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/collections.c +240 -0
  217. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/filesystem.c +564 -0
  218. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/filesystem.h +182 -0
  219. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/instance.c +115 -0
  220. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/lib.c +127 -0
  221. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/lilv_internal.h +477 -0
  222. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/node.c +413 -0
  223. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/plugin.c +1140 -0
  224. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/pluginclass.c +91 -0
  225. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/port.c +272 -0
  226. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/query.c +144 -0
  227. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/scalepoint.c +53 -0
  228. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/state.c +1541 -0
  229. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/ui.c +115 -0
  230. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/util.c +291 -0
  231. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/world.c +1249 -0
  232. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/common.h +138 -0
  233. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/tree.c +727 -0
  234. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv/src/zix/tree.h +164 -0
  235. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lilv_config.h +42 -0
  236. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/COPYING +16 -0
  237. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom-test-utils.c +73 -0
  238. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom-test.c +367 -0
  239. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.h +260 -0
  240. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.meta.ttl +542 -0
  241. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/atom.ttl +247 -0
  242. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/forge-overflow-test.c +235 -0
  243. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/forge.h +683 -0
  244. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/manifest.ttl +9 -0
  245. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/atom/util.h +523 -0
  246. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.h +51 -0
  247. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.meta.ttl +157 -0
  248. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/buf-size.ttl +67 -0
  249. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/buf-size/manifest.ttl +9 -0
  250. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/attributes.h +59 -0
  251. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2.h +484 -0
  252. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2_util.h +103 -0
  253. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2core.meta.ttl +905 -0
  254. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/lv2core.ttl +674 -0
  255. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/manifest.ttl +15 -0
  256. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/meta.ttl +199 -0
  257. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/core/people.ttl +51 -0
  258. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.h +73 -0
  259. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.meta.ttl +77 -0
  260. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/data-access.ttl +11 -0
  261. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/data-access/manifest.ttl +9 -0
  262. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.h +160 -0
  263. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.meta.ttl +131 -0
  264. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/dynmanifest.ttl +25 -0
  265. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/dynmanifest/manifest.ttl +9 -0
  266. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event-helpers.h +255 -0
  267. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.h +306 -0
  268. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.meta.ttl +246 -0
  269. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/event.ttl +86 -0
  270. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/event/manifest.ttl +9 -0
  271. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.h +41 -0
  272. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.meta.ttl +75 -0
  273. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/instance-access.ttl +11 -0
  274. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/instance-access/manifest.ttl +9 -0
  275. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.h +113 -0
  276. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.meta.ttl +126 -0
  277. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/log.ttl +48 -0
  278. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/logger.h +157 -0
  279. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/log/manifest.ttl +9 -0
  280. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/manifest.ttl +9 -0
  281. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.h +248 -0
  282. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.meta.ttl +153 -0
  283. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/midi/midi.ttl +366 -0
  284. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/manifest.ttl +9 -0
  285. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.h +48 -0
  286. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.meta.ttl +90 -0
  287. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/morph/morph.ttl +46 -0
  288. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/manifest.ttl +9 -0
  289. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.h +149 -0
  290. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.meta.ttl +129 -0
  291. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/options/options.ttl +44 -0
  292. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/manifest.ttl +9 -0
  293. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.h +68 -0
  294. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.meta.ttl +75 -0
  295. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/parameters/parameters.ttl +202 -0
  296. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/manifest.ttl +9 -0
  297. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.h +73 -0
  298. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.meta.ttl +374 -0
  299. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/patch/patch.ttl +251 -0
  300. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/manifest.ttl +9 -0
  301. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.h +77 -0
  302. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.meta.ttl +144 -0
  303. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-groups/port-groups.ttl +807 -0
  304. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/manifest.ttl +9 -0
  305. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.h +53 -0
  306. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.meta.ttl +202 -0
  307. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/port-props/port-props.ttl +79 -0
  308. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/manifest.ttl +9 -0
  309. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.h +48 -0
  310. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.meta.ttl +132 -0
  311. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/presets/presets.ttl +60 -0
  312. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/manifest.ttl +9 -0
  313. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.h +89 -0
  314. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.meta.ttl +74 -0
  315. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/resize-port/resize-port.ttl +36 -0
  316. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/manifest.ttl +9 -0
  317. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.h +392 -0
  318. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.meta.ttl +467 -0
  319. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/state/state.ttl +60 -0
  320. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/manifest.ttl +9 -0
  321. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.h +59 -0
  322. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.meta.ttl +112 -0
  323. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/time/time.ttl +122 -0
  324. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/manifest.ttl +9 -0
  325. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.h +543 -0
  326. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.meta.ttl +627 -0
  327. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/ui/ui.ttl +248 -0
  328. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/manifest.ttl +9 -0
  329. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.h +75 -0
  330. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.meta.ttl +154 -0
  331. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/units/units.ttl +379 -0
  332. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/manifest.ttl +9 -0
  333. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.h +121 -0
  334. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.meta.ttl +72 -0
  335. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/uri-map/uri-map.ttl +14 -0
  336. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/manifest.ttl +9 -0
  337. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.h +140 -0
  338. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.meta.ttl +84 -0
  339. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/urid/urid.ttl +22 -0
  340. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/manifest.ttl +9 -0
  341. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.h +183 -0
  342. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.meta.ttl +82 -0
  343. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/lv2/lv2/worker/worker.ttl +25 -0
  344. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/COPYING +13 -0
  345. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/serd/serd.h +1059 -0
  346. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/.clang-tidy +18 -0
  347. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/attributes.h +26 -0
  348. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/base64.c +132 -0
  349. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/base64.h +48 -0
  350. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_sink.h +98 -0
  351. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_source.c +112 -0
  352. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/byte_source.h +120 -0
  353. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/env.c +256 -0
  354. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/n3.c +1720 -0
  355. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/node.c +393 -0
  356. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/node.h +48 -0
  357. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/reader.c +425 -0
  358. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/reader.h +196 -0
  359. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serd_config.h +98 -0
  360. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serd_internal.h +46 -0
  361. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/serdi.c +377 -0
  362. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/stack.h +119 -0
  363. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/string.c +179 -0
  364. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/string_utils.h +173 -0
  365. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/system.c +82 -0
  366. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/system.h +40 -0
  367. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/uri.c +506 -0
  368. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/uri_utils.h +110 -0
  369. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd/src/writer.c +1114 -0
  370. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/serd_config.h +42 -0
  371. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/COPYING +13 -0
  372. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/sord/sord.h +642 -0
  373. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/sord/sordmm.hpp +720 -0
  374. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord.c +1368 -0
  375. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_config.h +61 -0
  376. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_internal.h +53 -0
  377. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_test.c +767 -0
  378. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sord_validate.c +804 -0
  379. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sordi.c +216 -0
  380. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/sordmm_test.cpp +25 -0
  381. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/syntax.c +203 -0
  382. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/btree.c +936 -0
  383. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/btree.h +187 -0
  384. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/common.h +138 -0
  385. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/digest.c +141 -0
  386. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/digest.h +67 -0
  387. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/hash.c +230 -0
  388. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord/src/zix/hash.h +138 -0
  389. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sord_config.h +42 -0
  390. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/COPYING +13 -0
  391. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/sratom/sratom.h +220 -0
  392. package/ios/juce_modules/juce_audio_processors/format_types/LV2_SDK/sratom/src/sratom.c +919 -0
  393. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/VST3_License_Agreement.pdf +0 -0
  394. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/VST3_Usage_Guidelines.pdf +0 -0
  395. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp +52 -0
  396. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/classfactoryhelpers.h +87 -0
  397. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fbuffer.cpp +641 -0
  398. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fbuffer.h +306 -0
  399. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fcommandline.h +392 -0
  400. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fdebug.cpp +340 -0
  401. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fdebug.h +246 -0
  402. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fobject.cpp +271 -0
  403. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fobject.h +577 -0
  404. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstreamer.cpp +756 -0
  405. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstreamer.h +242 -0
  406. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstring.cpp +3962 -0
  407. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/fstring.h +767 -0
  408. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/updatehandler.cpp +737 -0
  409. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/source/updatehandler.h +150 -0
  410. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/thread/include/flock.h +184 -0
  411. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/base/thread/source/flock.cpp +146 -0
  412. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/helper.manifest +10 -0
  413. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/conststringtable.cpp +106 -0
  414. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/conststringtable.h +44 -0
  415. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/coreiids.cpp +40 -0
  416. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/falignpop.h +25 -0
  417. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/falignpush.h +40 -0
  418. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fplatform.h +333 -0
  419. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fstrdefs.h +291 -0
  420. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h +176 -0
  421. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp +502 -0
  422. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h +564 -0
  423. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h +107 -0
  424. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h +297 -0
  425. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h +87 -0
  426. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/icloneable.h +41 -0
  427. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ipersistent.h +160 -0
  428. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ipluginbase.h +520 -0
  429. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/iplugincompatibility.h +122 -0
  430. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h +80 -0
  431. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/iupdatehandler.h +98 -0
  432. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/smartpointer.h +386 -0
  433. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/typesizecheck.h +55 -0
  434. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ustring.cpp +275 -0
  435. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ustring.h +116 -0
  436. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/gui/iplugview.h +287 -0
  437. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/gui/iplugviewcontentscalesupport.h +75 -0
  438. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstattributes.h +150 -0
  439. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstaudioprocessor.h +434 -0
  440. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstautomationstate.h +67 -0
  441. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstchannelcontextinfo.h +238 -0
  442. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstcomponent.h +205 -0
  443. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstcontextmenu.h +219 -0
  444. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstdataexchange.h +221 -0
  445. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsteditcontroller.h +657 -0
  446. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstevents.h +221 -0
  447. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsthostapplication.h +163 -0
  448. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstinterappaudio.h +142 -0
  449. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmessage.h +97 -0
  450. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmidicontrollers.h +118 -0
  451. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstmidilearn.h +106 -0
  452. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstnoteexpression.h +255 -0
  453. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstparameterchanges.h +145 -0
  454. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstparameterfunctionname.h +151 -0
  455. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstphysicalui.h +169 -0
  456. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstpluginterfacesupport.h +67 -0
  457. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstplugview.h +62 -0
  458. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstprefetchablesupport.h +99 -0
  459. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstprocesscontext.h +153 -0
  460. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstremapparamid.h +75 -0
  461. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstrepresentation.h +364 -0
  462. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivsttestplugprovider.h +109 -0
  463. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/ivstunits.h +271 -0
  464. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vstpshpack4.h +30 -0
  465. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vstspeaker.h +1318 -0
  466. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/vst/vsttypes.h +157 -0
  467. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp +441 -0
  468. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp +319 -0
  469. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h +79 -0
  470. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp +100 -0
  471. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.h +116 -0
  472. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/readfile.cpp +81 -0
  473. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/readfile.h +54 -0
  474. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/hostclasses.cpp +342 -0
  475. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/hostclasses.h +120 -0
  476. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module.cpp +340 -0
  477. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module.h +214 -0
  478. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_linux.cpp +369 -0
  479. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_mac.mm +395 -0
  480. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module_win32.cpp +647 -0
  481. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/pluginterfacesupport.cpp +134 -0
  482. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/pluginterfacesupport.h +70 -0
  483. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/json.h +3403 -0
  484. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/jsoncxx.h +427 -0
  485. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfo.h +100 -0
  486. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfocreator.cpp +309 -0
  487. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfocreator.h +67 -0
  488. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp +537 -0
  489. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/moduleinfo/moduleinfoparser.h +68 -0
  490. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/optional.h +135 -0
  491. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/stringconvert.cpp +148 -0
  492. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/stringconvert.h +147 -0
  493. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/utility/uid.h +286 -0
  494. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstbus.cpp +99 -0
  495. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstbus.h +172 -0
  496. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponent.cpp +216 -0
  497. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponent.h +118 -0
  498. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponentbase.cpp +180 -0
  499. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstcomponentbase.h +110 -0
  500. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vsteditcontroller.cpp +701 -0
  501. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vsteditcontroller.h +374 -0
  502. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstinitiids.cpp +154 -0
  503. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstparameters.cpp +454 -0
  504. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstparameters.h +240 -0
  505. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstpresetfile.cpp +927 -0
  506. package/ios/juce_modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/vstpresetfile.h +306 -0
  507. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARACommon.cpp +99 -0
  508. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARACommon.h +98 -0
  509. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARAHosting.cpp +490 -0
  510. package/ios/juce_modules/juce_audio_processors/format_types/juce_ARAHosting.h +786 -0
  511. package/ios/juce_modules/juce_audio_processors/format_types/juce_AU_Shared.h +588 -0
  512. package/ios/juce_modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h +79 -0
  513. package/ios/juce_modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +2947 -0
  514. package/ios/juce_modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp +728 -0
  515. package/ios/juce_modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h +79 -0
  516. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2Common.h +676 -0
  517. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat.cpp +5654 -0
  518. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat.h +87 -0
  519. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2PluginFormat_test.cpp +281 -0
  520. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2Resources.h +10241 -0
  521. package/ios/juce_modules/juce_audio_processors/format_types/juce_LV2SupportLibs.cpp +117 -0
  522. package/ios/juce_modules/juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp +225 -0
  523. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3Common.h +1851 -0
  524. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3Headers.h +280 -0
  525. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +4086 -0
  526. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h +95 -0
  527. package/ios/juce_modules/juce_audio_processors/format_types/juce_VST3PluginFormat_test.cpp +740 -0
  528. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTCommon.h +315 -0
  529. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h +229 -0
  530. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +3764 -0
  531. package/ios/juce_modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h +141 -0
  532. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslcontextinfo.h +190 -0
  533. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipsleditcontroller.h +108 -0
  534. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslgainreduction.h +53 -0
  535. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslhostcommands.h +121 -0
  536. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslviewembedding.h +53 -0
  537. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/ipslviewscaling.h +67 -0
  538. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/pslauextensions.h +57 -0
  539. package/ios/juce_modules/juce_audio_processors/format_types/pslextensions/pslvst2extensions.h +111 -0
  540. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.cpp +246 -0
  541. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.h +195 -0
  542. package/ios/juce_modules/juce_audio_processors/juce_audio_processors.mm +35 -0
  543. package/ios/juce_modules/juce_audio_processors/juce_audio_processors_ara.cpp +51 -0
  544. package/ios/juce_modules/juce_audio_processors/juce_audio_processors_lv2_libs.cpp +44 -0
  545. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioPluginInstance.cpp +294 -0
  546. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioPluginInstance.h +191 -0
  547. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessor.cpp +1655 -0
  548. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessor.h +1587 -0
  549. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp +230 -0
  550. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h +272 -0
  551. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorEditorHostContext.h +98 -0
  552. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +2375 -0
  553. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h +453 -0
  554. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorListener.h +198 -0
  555. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h +370 -0
  556. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameterGroup.cpp +330 -0
  557. package/ios/juce_modules/juce_audio_processors/processors/juce_AudioProcessorParameterGroup.h +263 -0
  558. package/ios/juce_modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp +633 -0
  559. package/ios/juce_modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h +74 -0
  560. package/ios/juce_modules/juce_audio_processors/processors/juce_HostedAudioProcessorParameter.h +61 -0
  561. package/ios/juce_modules/juce_audio_processors/processors/juce_PluginDescription.cpp +126 -0
  562. package/ios/juce_modules/juce_audio_processors/processors/juce_PluginDescription.h +189 -0
  563. package/ios/juce_modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp +651 -0
  564. package/ios/juce_modules/juce_audio_processors/scanning/juce_KnownPluginList.h +249 -0
  565. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp +148 -0
  566. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h +147 -0
  567. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp +690 -0
  568. package/ios/juce_modules/juce_audio_processors/scanning/juce_PluginListComponent.h +156 -0
  569. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADebug.h +76 -0
  570. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentController.cpp +985 -0
  571. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentController.h +538 -0
  572. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARADocumentControllerCommon.cpp +80 -0
  573. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAModelObjects.cpp +302 -0
  574. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAModelObjects.h +983 -0
  575. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.cpp +123 -0
  576. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARAPlugInInstanceRoles.h +263 -0
  577. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARA_utils.cpp +65 -0
  578. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_ARA_utils.h +95 -0
  579. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.cpp +163 -0
  580. package/ios/juce_modules/juce_audio_processors/utilities/ARA/juce_AudioProcessor_ARAExtensions.h +213 -0
  581. package/ios/juce_modules/juce_audio_processors/utilities/juce_AAXClientExtensions.cpp +308 -0
  582. package/ios/juce_modules/juce_audio_processors/utilities/juce_AAXClientExtensions.h +92 -0
  583. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterBool.cpp +104 -0
  584. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterBool.h +149 -0
  585. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterChoice.cpp +145 -0
  586. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h +162 -0
  587. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterFloat.cpp +113 -0
  588. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h +169 -0
  589. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterInt.cpp +146 -0
  590. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioParameterInt.h +163 -0
  591. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.cpp +56 -0
  592. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h +200 -0
  593. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp +997 -0
  594. package/ios/juce_modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +669 -0
  595. package/ios/juce_modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h +155 -0
  596. package/ios/juce_modules/juce_audio_processors/utilities/juce_FlagCache.h +191 -0
  597. package/ios/juce_modules/juce_audio_processors/utilities/juce_ParameterAttachments.cpp +442 -0
  598. package/ios/juce_modules/juce_audio_processors/utilities/juce_ParameterAttachments.h +400 -0
  599. package/ios/juce_modules/juce_audio_processors/utilities/juce_PluginHostType.cpp +328 -0
  600. package/ios/juce_modules/juce_audio_processors/utilities/juce_PluginHostType.h +265 -0
  601. package/ios/juce_modules/juce_audio_processors/utilities/juce_RangedAudioParameter.cpp +60 -0
  602. package/ios/juce_modules/juce_audio_processors/utilities/juce_RangedAudioParameter.h +129 -0
  603. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.cpp +48 -0
  604. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST2ClientExtensions.h +83 -0
  605. package/ios/juce_modules/juce_audio_processors/utilities/juce_VST3ClientExtensions.h +119 -0
  606. package/ios/juce_modules/juce_core/native/juce_BasicNativeHeaders.h +6 -1
  607. package/ios/juce_modules/juce_graphics/colour/juce_Colour.cpp +726 -0
  608. package/ios/juce_modules/juce_graphics/colour/juce_Colour.h +429 -0
  609. package/ios/juce_modules/juce_graphics/colour/juce_ColourGradient.cpp +294 -0
  610. package/ios/juce_modules/juce_graphics/colour/juce_ColourGradient.h +255 -0
  611. package/ios/juce_modules/juce_graphics/colour/juce_Colours.cpp +205 -0
  612. package/ios/juce_modules/juce_graphics/colour/juce_Colours.h +200 -0
  613. package/ios/juce_modules/juce_graphics/colour/juce_FillType.cpp +166 -0
  614. package/ios/juce_modules/juce_graphics/colour/juce_FillType.h +165 -0
  615. package/ios/juce_modules/juce_graphics/colour/juce_PixelFormats.h +749 -0
  616. package/ios/juce_modules/juce_graphics/contexts/juce_GraphicsContext.cpp +857 -0
  617. package/ios/juce_modules/juce_graphics/contexts/juce_GraphicsContext.h +758 -0
  618. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h +186 -0
  619. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp +59 -0
  620. package/ios/juce_modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h +66 -0
  621. package/ios/juce_modules/juce_graphics/detail/juce_Ranges.cpp +793 -0
  622. package/ios/juce_modules/juce_graphics/detail/juce_Ranges.h +1014 -0
  623. package/ios/juce_modules/juce_graphics/effects/juce_DropShadowEffect.cpp +152 -0
  624. package/ios/juce_modules/juce_graphics/effects/juce_DropShadowEffect.h +122 -0
  625. package/ios/juce_modules/juce_graphics/effects/juce_GlowEffect.cpp +59 -0
  626. package/ios/juce_modules/juce_graphics/effects/juce_GlowEffect.h +86 -0
  627. package/ios/juce_modules/juce_graphics/effects/juce_ImageEffectFilter.h +80 -0
  628. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/CBDT/CBDT.hh +1031 -0
  629. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/COLR/COLR.hh +2745 -0
  630. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/COLR/colrv1-closure.hh +137 -0
  631. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/CPAL/CPAL.hh +358 -0
  632. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/sbix/sbix.hh +448 -0
  633. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Color/svg/svg.hh +152 -0
  634. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/Coverage.hh +352 -0
  635. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/CoverageFormat1.hh +133 -0
  636. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/CoverageFormat2.hh +239 -0
  637. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/Common/RangeRecord.hh +97 -0
  638. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GDEF/GDEF.hh +1044 -0
  639. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/Anchor.hh +84 -0
  640. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat1.hh +46 -0
  641. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat2.hh +58 -0
  642. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorFormat3.hh +120 -0
  643. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/AnchorMatrix.hh +87 -0
  644. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ChainContextPos.hh +14 -0
  645. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/Common.hh +33 -0
  646. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ContextPos.hh +14 -0
  647. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/CursivePos.hh +35 -0
  648. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/CursivePosFormat1.hh +311 -0
  649. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ExtensionPos.hh +17 -0
  650. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/GPOS.hh +171 -0
  651. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/LigatureArray.hh +57 -0
  652. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkArray.hh +128 -0
  653. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkBasePos.hh +41 -0
  654. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkBasePosFormat1.hh +243 -0
  655. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkLigPos.hh +41 -0
  656. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkLigPosFormat1.hh +224 -0
  657. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkMarkPos.hh +42 -0
  658. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkMarkPosFormat1.hh +231 -0
  659. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/MarkRecord.hh +51 -0
  660. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPos.hh +46 -0
  661. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPosFormat1.hh +233 -0
  662. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairPosFormat2.hh +365 -0
  663. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairSet.hh +210 -0
  664. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PairValueRecord.hh +99 -0
  665. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PosLookup.hh +79 -0
  666. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/PosLookupSubTable.hh +79 -0
  667. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePos.hh +98 -0
  668. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePosFormat1.hh +190 -0
  669. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/SinglePosFormat2.hh +213 -0
  670. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GPOS/ValueFormat.hh +441 -0
  671. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSet.hh +126 -0
  672. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSubst.hh +62 -0
  673. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/AlternateSubstFormat1.hh +128 -0
  674. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ChainContextSubst.hh +18 -0
  675. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Common.hh +19 -0
  676. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ContextSubst.hh +18 -0
  677. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ExtensionSubst.hh +22 -0
  678. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/GSUB.hh +61 -0
  679. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Ligature.hh +203 -0
  680. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSet.hh +188 -0
  681. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSubst.hh +71 -0
  682. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/LigatureSubstFormat1.hh +166 -0
  683. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/MultipleSubst.hh +62 -0
  684. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/MultipleSubstFormat1.hh +130 -0
  685. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ReverseChainSingleSubst.hh +36 -0
  686. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh +245 -0
  687. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/Sequence.hh +165 -0
  688. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubst.hh +103 -0
  689. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubstFormat1.hh +204 -0
  690. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SingleSubstFormat2.hh +176 -0
  691. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SubstLookup.hh +220 -0
  692. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/GSUB/SubstLookupSubTable.hh +77 -0
  693. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Layout/types.hh +66 -0
  694. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/VARC.cc +346 -0
  695. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/VARC.hh +193 -0
  696. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/Var/VARC/coord-setter.hh +37 -0
  697. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/CompositeGlyph.hh +435 -0
  698. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/Glyph.hh +556 -0
  699. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/GlyphHeader.hh +52 -0
  700. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/SimpleGlyph.hh +348 -0
  701. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/SubsetGlyph.hh +141 -0
  702. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/composite-iter.hh +68 -0
  703. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/glyf-helpers.hh +127 -0
  704. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/glyf.hh +513 -0
  705. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/loca.hh +43 -0
  706. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/glyf/path-builder.hh +190 -0
  707. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/OT/name/name.hh +589 -0
  708. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/failing-alloc.c +65 -0
  709. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/harfbuzz-subset.cc +64 -0
  710. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/harfbuzz.cc +63 -0
  711. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-ankr-table.hh +99 -0
  712. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-bsln-table.hh +159 -0
  713. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-common.hh +1076 -0
  714. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-feat-table.hh +224 -0
  715. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-just-table.hh +420 -0
  716. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-kerx-table.hh +1191 -0
  717. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-morx-table.hh +1443 -0
  718. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-opbd-table.hh +174 -0
  719. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout-trak-table.hh +232 -0
  720. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.cc +449 -0
  721. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.h +795 -0
  722. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-layout.hh +77 -0
  723. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-ltag-table.hh +95 -0
  724. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-map.cc +172 -0
  725. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat-map.hh +123 -0
  726. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-aat.h +38 -0
  727. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-algs.hh +1558 -0
  728. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-array.hh +504 -0
  729. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-atomic.hh +228 -0
  730. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bimap.hh +205 -0
  731. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-page.hh +352 -0
  732. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-set-invertible.hh +379 -0
  733. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-bit-set.hh +982 -0
  734. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.cc +794 -0
  735. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.h +160 -0
  736. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-blob.hh +98 -0
  737. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-json.hh +795 -0
  738. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-text-glyphs.hh +692 -0
  739. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-deserialize-text-unicode.hh +332 -0
  740. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-serialize.cc +872 -0
  741. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer-verify.cc +423 -0
  742. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.cc +2266 -0
  743. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.h +805 -0
  744. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-buffer.hh +682 -0
  745. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cache.hh +99 -0
  746. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-common.hh +642 -0
  747. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-cs-common.hh +905 -0
  748. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff-interp-dict-common.hh +201 -0
  749. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff1-interp-cs.hh +160 -0
  750. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cff2-interp-cs.hh +278 -0
  751. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-common.cc +1220 -0
  752. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-common.h +935 -0
  753. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-config.hh +212 -0
  754. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-coretext.cc +1197 -0
  755. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-coretext.h +96 -0
  756. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-cplusplus.hh +220 -0
  757. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-debug.hh +491 -0
  758. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-deprecated.h +318 -0
  759. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-directwrite.cc +884 -0
  760. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-directwrite.h +40 -0
  761. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-dispatch.hh +60 -0
  762. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.cc +458 -0
  763. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.h +340 -0
  764. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-draw.hh +243 -0
  765. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face-builder.cc +246 -0
  766. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.cc +664 -0
  767. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.h +187 -0
  768. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-face.hh +111 -0
  769. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-fallback-shape.cc +115 -0
  770. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.cc +3069 -0
  771. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.h +1153 -0
  772. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-font.hh +720 -0
  773. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft-colr.hh +601 -0
  774. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft.cc +1500 -0
  775. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ft.h +145 -0
  776. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gdi.cc +85 -0
  777. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gdi.h +39 -0
  778. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-geometry.hh +284 -0
  779. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-glib.cc +232 -0
  780. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-glib.h +56 -0
  781. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject-structs.cc +116 -0
  782. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject-structs.h +136 -0
  783. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-gobject.h +40 -0
  784. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-graphite2.cc +455 -0
  785. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-graphite2.h +61 -0
  786. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-icu.cc +291 -0
  787. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-icu.h +52 -0
  788. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-iter.hh +1037 -0
  789. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-kern.hh +145 -0
  790. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-limits.hh +112 -0
  791. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-machinery.hh +332 -0
  792. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.cc +419 -0
  793. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.h +143 -0
  794. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-map.hh +568 -0
  795. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-meta.hh +238 -0
  796. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ms-feature-ranges.hh +232 -0
  797. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-multimap.hh +96 -0
  798. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-mutex.hh +122 -0
  799. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-null.hh +226 -0
  800. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number-parser.hh +237 -0
  801. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number.cc +79 -0
  802. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-number.hh +41 -0
  803. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-object.hh +357 -0
  804. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-open-file.hh +543 -0
  805. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-open-type.hh +1886 -0
  806. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff-common.hh +374 -0
  807. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-std-str.hh +425 -0
  808. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-table.cc +620 -0
  809. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff1-table.hh +1539 -0
  810. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff2-table.cc +227 -0
  811. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cff2-table.hh +564 -0
  812. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-cmap-table.hh +2154 -0
  813. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-color.cc +363 -0
  814. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-color.h +155 -0
  815. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-deprecated.h +147 -0
  816. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face-table-list.hh +155 -0
  817. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face.cc +60 -0
  818. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-face.hh +77 -0
  819. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-font.cc +662 -0
  820. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-font.h +45 -0
  821. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-gasp-table.hh +84 -0
  822. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-glyf-table.hh +35 -0
  823. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hdmx-table.hh +177 -0
  824. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-head-table.hh +204 -0
  825. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hhea-table.hh +106 -0
  826. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-hmtx-table.hh +502 -0
  827. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-kern-table.hh +425 -0
  828. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-base-table.hh +849 -0
  829. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-common.hh +4953 -0
  830. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gdef-table.hh +34 -0
  831. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gpos-table.hh +81 -0
  832. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gsub-table.hh +94 -0
  833. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-gsubgpos.hh +4887 -0
  834. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout-jstf-table.hh +236 -0
  835. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.cc +2705 -0
  836. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.h +549 -0
  837. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-layout.hh +611 -0
  838. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-map.cc +394 -0
  839. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-map.hh +298 -0
  840. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math-table.hh +1132 -0
  841. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math.cc +338 -0
  842. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-math.h +333 -0
  843. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-maxp-table.hh +156 -0
  844. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta-table.hh +131 -0
  845. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta.cc +79 -0
  846. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-meta.h +72 -0
  847. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.cc +436 -0
  848. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.h +129 -0
  849. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-metrics.hh +35 -0
  850. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-language-static.hh +456 -0
  851. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-language.hh +40 -0
  852. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name-table.hh +32 -0
  853. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name.cc +184 -0
  854. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-name.h +164 -0
  855. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-os2-table.hh +405 -0
  856. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-os2-unicode-ranges.hh +231 -0
  857. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-macroman.hh +294 -0
  858. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-table-v2subset.hh +142 -0
  859. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-post-table.hh +352 -0
  860. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-fallback.cc +615 -0
  861. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-fallback.hh +54 -0
  862. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-normalize.cc +470 -0
  863. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape-normalize.hh +104 -0
  864. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.cc +1319 -0
  865. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.h +53 -0
  866. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shape.hh +171 -0
  867. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-fallback.hh +383 -0
  868. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-joining-list.hh +47 -0
  869. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-pua.hh +118 -0
  870. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-table.hh +556 -0
  871. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic-win1256.hh +349 -0
  872. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic.cc +774 -0
  873. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-arabic.hh +50 -0
  874. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-default.cc +75 -0
  875. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-hangul.cc +436 -0
  876. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-hebrew.cc +211 -0
  877. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic-machine.hh +627 -0
  878. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic-table.cc +561 -0
  879. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic.cc +1578 -0
  880. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-indic.hh +66 -0
  881. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-khmer-machine.hh +428 -0
  882. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-khmer.cc +387 -0
  883. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-myanmar-machine.hh +553 -0
  884. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-myanmar.cc +390 -0
  885. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-syllabic.cc +112 -0
  886. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-syllabic.hh +47 -0
  887. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-thai.cc +393 -0
  888. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use-machine.hh +1079 -0
  889. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use-table.hh +690 -0
  890. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-use.cc +514 -0
  891. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-vowel-constraints.cc +477 -0
  892. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper-vowel-constraints.hh +39 -0
  893. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-shaper.hh +404 -0
  894. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-stat-table.hh +619 -0
  895. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-tag-table.hh +3009 -0
  896. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-tag.cc +658 -0
  897. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-avar-table.hh +411 -0
  898. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-common.hh +1985 -0
  899. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-cvar-table.hh +220 -0
  900. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-fvar-table.hh +505 -0
  901. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-gvar-table.hh +890 -0
  902. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-hvar-table.hh +478 -0
  903. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-mvar-table.hh +184 -0
  904. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var-varc-table.hh +32 -0
  905. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var.cc +328 -0
  906. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-var.h +191 -0
  907. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot-vorg-table.hh +137 -0
  908. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ot.h +49 -0
  909. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-outline.cc +321 -0
  910. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-outline.hh +83 -0
  911. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint-extents.cc +330 -0
  912. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint-extents.hh +132 -0
  913. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.cc +728 -0
  914. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.h +1029 -0
  915. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-paint.hh +236 -0
  916. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-pool.hh +107 -0
  917. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-priority-queue.hh +174 -0
  918. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-repacker.hh +476 -0
  919. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-sanitize.hh +530 -0
  920. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-serialize.hh +832 -0
  921. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set-digest.hh +227 -0
  922. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.cc +673 -0
  923. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.h +203 -0
  924. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-set.hh +186 -0
  925. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.cc +581 -0
  926. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.h +122 -0
  927. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape-plan.hh +77 -0
  928. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape.cc +445 -0
  929. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shape.h +74 -0
  930. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper-impl.hh +38 -0
  931. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper-list.hh +65 -0
  932. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper.cc +102 -0
  933. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-shaper.hh +134 -0
  934. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-static.cc +138 -0
  935. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-string-array.hh +85 -0
  936. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-style.cc +134 -0
  937. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-style.h +81 -0
  938. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-accelerator.hh +141 -0
  939. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff-common.cc +231 -0
  940. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff-common.hh +1228 -0
  941. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff1.cc +1001 -0
  942. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-cff2.cc +679 -0
  943. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-input.cc +748 -0
  944. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-input.hh +155 -0
  945. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-iup.cc +532 -0
  946. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-iup.hh +37 -0
  947. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-solver.cc +434 -0
  948. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-instancer-solver.hh +114 -0
  949. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan-member-list.hh +164 -0
  950. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan.cc +1570 -0
  951. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-plan.hh +302 -0
  952. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-repacker.cc +58 -0
  953. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset-repacker.h +81 -0
  954. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.cc +704 -0
  955. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.h +260 -0
  956. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-subset.hh +74 -0
  957. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ucd-table.hh +5637 -0
  958. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-ucd.cc +258 -0
  959. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode-emoji-table.hh +79 -0
  960. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.cc +625 -0
  961. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.h +643 -0
  962. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-unicode.hh +403 -0
  963. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-uniscribe.cc +889 -0
  964. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-uniscribe.h +46 -0
  965. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-utf.hh +481 -0
  966. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-vector.hh +539 -0
  967. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-version.h +95 -0
  968. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-blob.hh +50 -0
  969. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-buffer.hh +217 -0
  970. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-common.hh +44 -0
  971. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-face.hh +109 -0
  972. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-font.hh +263 -0
  973. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-list.hh +109 -0
  974. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api-shape.hh +70 -0
  975. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.cc +46 -0
  976. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.h +322 -0
  977. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-api.hh +117 -0
  978. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb-wasm-shape.cc +470 -0
  979. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb.h +51 -0
  980. package/ios/juce_modules/juce_graphics/fonts/harfbuzz/hb.hh +555 -0
  981. package/ios/juce_modules/juce_graphics/fonts/juce_AttributedString.cpp +288 -0
  982. package/ios/juce_modules/juce_graphics/fonts/juce_AttributedString.h +219 -0
  983. package/ios/juce_modules/juce_graphics/fonts/juce_Font.cpp +1036 -0
  984. package/ios/juce_modules/juce_graphics/fonts/juce_Font.h +571 -0
  985. package/ios/juce_modules/juce_graphics/fonts/juce_FontOptions.cpp +111 -0
  986. package/ios/juce_modules/juce_graphics/fonts/juce_FontOptions.h +218 -0
  987. package/ios/juce_modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h +53 -0
  988. package/ios/juce_modules/juce_graphics/fonts/juce_GlyphArrangement.cpp +657 -0
  989. package/ios/juce_modules/juce_graphics/fonts/juce_GlyphArrangement.h +324 -0
  990. package/ios/juce_modules/juce_graphics/fonts/juce_JustifiedText.cpp +580 -0
  991. package/ios/juce_modules/juce_graphics/fonts/juce_LruCache.h +88 -0
  992. package/ios/juce_modules/juce_graphics/fonts/juce_ShapedText.cpp +210 -0
  993. package/ios/juce_modules/juce_graphics/fonts/juce_SimpleShapedText.cpp +1279 -0
  994. package/ios/juce_modules/juce_graphics/fonts/juce_TextLayout.cpp +512 -0
  995. package/ios/juce_modules/juce_graphics/fonts/juce_TextLayout.h +278 -0
  996. package/ios/juce_modules/juce_graphics/fonts/juce_Typeface.cpp +983 -0
  997. package/ios/juce_modules/juce_graphics/fonts/juce_Typeface.h +396 -0
  998. package/ios/juce_modules/juce_graphics/fonts/juce_TypefaceFileCache.h +74 -0
  999. package/ios/juce_modules/juce_graphics/fonts/juce_TypefaceTestData.cpp +6051 -0
  1000. package/ios/juce_modules/juce_graphics/geometry/juce_AffineTransform.cpp +307 -0
  1001. package/ios/juce_modules/juce_graphics/geometry/juce_AffineTransform.h +314 -0
  1002. package/ios/juce_modules/juce_graphics/geometry/juce_BorderSize.h +176 -0
  1003. package/ios/juce_modules/juce_graphics/geometry/juce_EdgeTable.cpp +848 -0
  1004. package/ios/juce_modules/juce_graphics/geometry/juce_EdgeTable.h +225 -0
  1005. package/ios/juce_modules/juce_graphics/geometry/juce_Line.h +454 -0
  1006. package/ios/juce_modules/juce_graphics/geometry/juce_Parallelogram.h +194 -0
  1007. package/ios/juce_modules/juce_graphics/geometry/juce_Parallelogram_test.cpp +75 -0
  1008. package/ios/juce_modules/juce_graphics/geometry/juce_Path.cpp +1531 -0
  1009. package/ios/juce_modules/juce_graphics/geometry/juce_Path.h +846 -0
  1010. package/ios/juce_modules/juce_graphics/geometry/juce_PathIterator.cpp +304 -0
  1011. package/ios/juce_modules/juce_graphics/geometry/juce_PathIterator.h +120 -0
  1012. package/ios/juce_modules/juce_graphics/geometry/juce_PathStrokeType.cpp +756 -0
  1013. package/ios/juce_modules/juce_graphics/geometry/juce_PathStrokeType.h +215 -0
  1014. package/ios/juce_modules/juce_graphics/geometry/juce_Point.h +269 -0
  1015. package/ios/juce_modules/juce_graphics/geometry/juce_Rectangle.h +1032 -0
  1016. package/ios/juce_modules/juce_graphics/geometry/juce_RectangleList.h +694 -0
  1017. package/ios/juce_modules/juce_graphics/geometry/juce_Rectangle_test.cpp +60 -0
  1018. package/ios/juce_modules/juce_graphics/image_formats/jpglib/README +385 -0
  1019. package/ios/juce_modules/juce_graphics/image_formats/jpglib/cderror.h +132 -0
  1020. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcapimin.c +280 -0
  1021. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcapistd.c +161 -0
  1022. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jccoefct.c +449 -0
  1023. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jccolor.c +459 -0
  1024. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcdctmgr.c +387 -0
  1025. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jchuff.c +909 -0
  1026. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jchuff.h +52 -0
  1027. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcinit.c +72 -0
  1028. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmainct.c +293 -0
  1029. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmarker.c +597 -0
  1030. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcmaster.c +590 -0
  1031. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcomapi.c +106 -0
  1032. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jconfig.h +59 -0
  1033. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcparam.c +610 -0
  1034. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcphuff.c +833 -0
  1035. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcprepct.c +354 -0
  1036. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jcsample.c +519 -0
  1037. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jctrans.c +388 -0
  1038. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdapimin.c +395 -0
  1039. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdapistd.c +275 -0
  1040. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdatasrc.c +212 -0
  1041. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdcoefct.c +736 -0
  1042. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdcolor.c +396 -0
  1043. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdct.h +182 -0
  1044. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jddctmgr.c +269 -0
  1045. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdhuff.c +625 -0
  1046. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdhuff.h +206 -0
  1047. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdinput.c +381 -0
  1048. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmainct.c +512 -0
  1049. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmarker.c +1292 -0
  1050. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmaster.c +557 -0
  1051. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdmerge.c +400 -0
  1052. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdphuff.c +642 -0
  1053. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdpostct.c +290 -0
  1054. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdsample.c +478 -0
  1055. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jdtrans.c +143 -0
  1056. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jerror.c +252 -0
  1057. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jerror.h +291 -0
  1058. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctflt.c +168 -0
  1059. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctfst.c +224 -0
  1060. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jfdctint.c +283 -0
  1061. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctflt.c +242 -0
  1062. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctfst.c +368 -0
  1063. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctint.c +389 -0
  1064. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jidctred.c +398 -0
  1065. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jinclude.h +197 -0
  1066. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemmgr.c +1118 -0
  1067. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemnobs.c +109 -0
  1068. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmemsys.h +203 -0
  1069. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jmorecfg.h +363 -0
  1070. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jpegint.h +392 -0
  1071. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jpeglib.h +1096 -0
  1072. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jquant1.c +856 -0
  1073. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jquant2.c +1310 -0
  1074. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jutils.c +179 -0
  1075. package/ios/juce_modules/juce_graphics/image_formats/jpglib/jversion.h +14 -0
  1076. package/ios/juce_modules/juce_graphics/image_formats/jpglib/transupp.c +928 -0
  1077. package/ios/juce_modules/juce_graphics/image_formats/jpglib/transupp.h +135 -0
  1078. package/ios/juce_modules/juce_graphics/image_formats/juce_GIFLoader.cpp +464 -0
  1079. package/ios/juce_modules/juce_graphics/image_formats/juce_JPEGLoader.cpp +456 -0
  1080. package/ios/juce_modules/juce_graphics/image_formats/juce_PNGLoader.cpp +635 -0
  1081. package/ios/juce_modules/juce_graphics/image_formats/pnglib/png.c +4607 -0
  1082. package/ios/juce_modules/juce_graphics/image_formats/pnglib/png.h +3251 -0
  1083. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngconf.h +623 -0
  1084. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngdebug.h +153 -0
  1085. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngerror.c +963 -0
  1086. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngget.c +1249 -0
  1087. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pnginfo.h +267 -0
  1088. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngmem.c +284 -0
  1089. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngpread.c +1096 -0
  1090. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngpriv.h +2156 -0
  1091. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngread.c +4225 -0
  1092. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrio.c +120 -0
  1093. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrtran.c +5102 -0
  1094. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngrutil.c +4681 -0
  1095. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngset.c +1802 -0
  1096. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngstruct.h +491 -0
  1097. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngtrans.c +864 -0
  1098. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwio.c +168 -0
  1099. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwrite.c +2395 -0
  1100. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwtran.c +587 -0
  1101. package/ios/juce_modules/juce_graphics/image_formats/pnglib/pngwutil.c +2781 -0
  1102. package/ios/juce_modules/juce_graphics/images/juce_Image.cpp +851 -0
  1103. package/ios/juce_modules/juce_graphics/images/juce_Image.h +630 -0
  1104. package/ios/juce_modules/juce_graphics/images/juce_ImageCache.cpp +183 -0
  1105. package/ios/juce_modules/juce_graphics/images/juce_ImageCache.h +136 -0
  1106. package/ios/juce_modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp +209 -0
  1107. package/ios/juce_modules/juce_graphics/images/juce_ImageConvolutionKernel.h +121 -0
  1108. package/ios/juce_modules/juce_graphics/images/juce_ImageFileFormat.cpp +120 -0
  1109. package/ios/juce_modules/juce_graphics/images/juce_ImageFileFormat.h +232 -0
  1110. package/ios/juce_modules/juce_graphics/images/juce_ScaledImage.h +93 -0
  1111. package/ios/juce_modules/juce_graphics/juce_graphics.cpp +230 -0
  1112. package/ios/juce_modules/juce_graphics/juce_graphics.h +162 -0
  1113. package/ios/juce_modules/juce_graphics/juce_graphics.mm +35 -0
  1114. package/ios/juce_modules/juce_graphics/juce_graphics_Harfbuzz.cpp +100 -0
  1115. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsContext_mac.h +153 -0
  1116. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm +969 -0
  1117. package/ios/juce_modules/juce_graphics/native/juce_CoreGraphicsHelpers_mac.h +117 -0
  1118. package/ios/juce_modules/juce_graphics/native/juce_Direct2DGraphicsContext_windows.cpp +1807 -0
  1119. package/ios/juce_modules/juce_graphics/native/juce_Direct2DGraphicsContext_windows.h +174 -0
  1120. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHelpers_windows.cpp +456 -0
  1121. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHwndContext_windows.cpp +784 -0
  1122. package/ios/juce_modules/juce_graphics/native/juce_Direct2DHwndContext_windows.h +73 -0
  1123. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImageContext_windows.cpp +124 -0
  1124. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImageContext_windows.h +55 -0
  1125. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImage_windows.cpp +732 -0
  1126. package/ios/juce_modules/juce_graphics/native/juce_Direct2DImage_windows.h +94 -0
  1127. package/ios/juce_modules/juce_graphics/native/juce_Direct2DMetrics_windows.cpp +132 -0
  1128. package/ios/juce_modules/juce_graphics/native/juce_Direct2DMetrics_windows.h +320 -0
  1129. package/ios/juce_modules/juce_graphics/native/juce_Direct2DResources_windows.cpp +661 -0
  1130. package/ios/juce_modules/juce_graphics/native/juce_DirectWriteTypeface_windows.cpp +920 -0
  1131. package/ios/juce_modules/juce_graphics/native/juce_DirectX_windows.h +330 -0
  1132. package/ios/juce_modules/juce_graphics/native/juce_EventTracing.h +310 -0
  1133. package/ios/juce_modules/juce_graphics/native/juce_Fonts_android.cpp +636 -0
  1134. package/ios/juce_modules/juce_graphics/native/juce_Fonts_freetype.cpp +589 -0
  1135. package/ios/juce_modules/juce_graphics/native/juce_Fonts_linux.cpp +208 -0
  1136. package/ios/juce_modules/juce_graphics/native/juce_Fonts_mac.mm +416 -0
  1137. package/ios/juce_modules/juce_graphics/native/juce_GraphicsContext_android.cpp +43 -0
  1138. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_android.cpp +39 -0
  1139. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_linux.cpp +39 -0
  1140. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_mac.cpp +150 -0
  1141. package/ios/juce_modules/juce_graphics/native/juce_IconHelpers_windows.cpp +39 -0
  1142. package/ios/juce_modules/juce_graphics/native/juce_RenderingHelpers.h +2696 -0
  1143. package/ios/juce_modules/juce_graphics/placement/juce_Justification.h +196 -0
  1144. package/ios/juce_modules/juce_graphics/placement/juce_RectanglePlacement.cpp +131 -0
  1145. package/ios/juce_modules/juce_graphics/placement/juce_RectanglePlacement.h +183 -0
  1146. package/ios/juce_modules/juce_graphics/unicode/juce_Unicode.cpp +331 -0
  1147. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeBidi.cpp +1139 -0
  1148. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp +142 -0
  1149. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp +1380 -0
  1150. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeLine.cpp +273 -0
  1151. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeScript.cpp +235 -0
  1152. package/ios/juce_modules/juce_graphics/unicode/juce_UnicodeUtils.cpp +104 -0
  1153. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityActions.h +128 -0
  1154. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityEvent.h +90 -0
  1155. package/ios/juce_modules/juce_gui_basics/accessibility/enums/juce_AccessibilityRole.h +80 -0
  1156. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityCellInterface.h +61 -0
  1157. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityTableInterface.h +106 -0
  1158. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityTextInterface.h +93 -0
  1159. package/ios/juce_modules/juce_gui_basics/accessibility/interfaces/juce_AccessibilityValueInterface.h +231 -0
  1160. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp +412 -0
  1161. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h +354 -0
  1162. package/ios/juce_modules/juce_gui_basics/accessibility/juce_AccessibilityState.h +236 -0
  1163. package/ios/juce_modules/juce_gui_basics/application/juce_Application.cpp +109 -0
  1164. package/ios/juce_modules/juce_gui_basics/application/juce_Application.h +202 -0
  1165. package/ios/juce_modules/juce_gui_basics/buttons/juce_ArrowButton.cpp +60 -0
  1166. package/ios/juce_modules/juce_gui_basics/buttons/juce_ArrowButton.h +74 -0
  1167. package/ios/juce_modules/juce_gui_basics/buttons/juce_Button.cpp +730 -0
  1168. package/ios/juce_modules/juce_gui_basics/buttons/juce_Button.h +559 -0
  1169. package/ios/juce_modules/juce_gui_basics/buttons/juce_DrawableButton.cpp +250 -0
  1170. package/ios/juce_modules/juce_gui_basics/buttons/juce_DrawableButton.h +206 -0
  1171. package/ios/juce_modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp +138 -0
  1172. package/ios/juce_modules/juce_gui_basics/buttons/juce_HyperlinkButton.h +139 -0
  1173. package/ios/juce_modules/juce_gui_basics/buttons/juce_ImageButton.cpp +207 -0
  1174. package/ios/juce_modules/juce_gui_basics/buttons/juce_ImageButton.h +170 -0
  1175. package/ios/juce_modules/juce_gui_basics/buttons/juce_ShapeButton.cpp +146 -0
  1176. package/ios/juce_modules/juce_gui_basics/buttons/juce_ShapeButton.h +135 -0
  1177. package/ios/juce_modules/juce_gui_basics/buttons/juce_TextButton.cpp +86 -0
  1178. package/ios/juce_modules/juce_gui_basics/buttons/juce_TextButton.h +118 -0
  1179. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToggleButton.cpp +74 -0
  1180. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToggleButton.h +102 -0
  1181. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp +122 -0
  1182. package/ios/juce_modules/juce_gui_basics/buttons/juce_ToolbarButton.h +107 -0
  1183. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandID.h +99 -0
  1184. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp +75 -0
  1185. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h +199 -0
  1186. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp +331 -0
  1187. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h +358 -0
  1188. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp +195 -0
  1189. package/ios/juce_modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h +253 -0
  1190. package/ios/juce_modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp +427 -0
  1191. package/ios/juce_modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h +253 -0
  1192. package/ios/juce_modules/juce_gui_basics/components/juce_CachedComponentImage.h +81 -0
  1193. package/ios/juce_modules/juce_gui_basics/components/juce_Component.cpp +3013 -0
  1194. package/ios/juce_modules/juce_gui_basics/components/juce_Component.h +2716 -0
  1195. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentListener.cpp +47 -0
  1196. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentListener.h +131 -0
  1197. package/ios/juce_modules/juce_gui_basics/components/juce_ComponentTraverser.h +81 -0
  1198. package/ios/juce_modules/juce_gui_basics/components/juce_FocusTraverser.cpp +283 -0
  1199. package/ios/juce_modules/juce_gui_basics/components/juce_FocusTraverser.h +102 -0
  1200. package/ios/juce_modules/juce_gui_basics/components/juce_ModalComponentManager.cpp +295 -0
  1201. package/ios/juce_modules/juce_gui_basics/components/juce_ModalComponentManager.h +340 -0
  1202. package/ios/juce_modules/juce_gui_basics/desktop/juce_Desktop.cpp +386 -0
  1203. package/ios/juce_modules/juce_gui_basics/desktop/juce_Desktop.h +502 -0
  1204. package/ios/juce_modules/juce_gui_basics/desktop/juce_Displays.cpp +447 -0
  1205. package/ios/juce_modules/juce_gui_basics/desktop/juce_Displays.h +218 -0
  1206. package/ios/juce_modules/juce_gui_basics/detail/juce_AccessibilityHelpers.cpp +42 -0
  1207. package/ios/juce_modules/juce_gui_basics/detail/juce_AccessibilityHelpers.h +79 -0
  1208. package/ios/juce_modules/juce_gui_basics/detail/juce_AlertWindowHelpers.h +124 -0
  1209. package/ios/juce_modules/juce_gui_basics/detail/juce_ButtonAccessibilityHandler.h +134 -0
  1210. package/ios/juce_modules/juce_gui_basics/detail/juce_ComponentHelpers.h +291 -0
  1211. package/ios/juce_modules/juce_gui_basics/detail/juce_CustomMouseCursorInfo.h +44 -0
  1212. package/ios/juce_modules/juce_gui_basics/detail/juce_FocusHelpers.h +126 -0
  1213. package/ios/juce_modules/juce_gui_basics/detail/juce_FocusRestorer.h +55 -0
  1214. package/ios/juce_modules/juce_gui_basics/detail/juce_LookAndFeelHelpers.h +71 -0
  1215. package/ios/juce_modules/juce_gui_basics/detail/juce_MouseInputSourceImpl.h +597 -0
  1216. package/ios/juce_modules/juce_gui_basics/detail/juce_MouseInputSourceList.h +163 -0
  1217. package/ios/juce_modules/juce_gui_basics/detail/juce_PointerState.h +113 -0
  1218. package/ios/juce_modules/juce_gui_basics/detail/juce_ScalingHelpers.h +132 -0
  1219. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedContentSharerImpl.h +107 -0
  1220. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedContentSharerInterface.h +224 -0
  1221. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedMessageBoxImpl.h +141 -0
  1222. package/ios/juce_modules/juce_gui_basics/detail/juce_ScopedMessageBoxInterface.h +69 -0
  1223. package/ios/juce_modules/juce_gui_basics/detail/juce_StandardCachedComponentImage.h +102 -0
  1224. package/ios/juce_modules/juce_gui_basics/detail/juce_ToolbarItemDragAndDropOverlayComponent.h +127 -0
  1225. package/ios/juce_modules/juce_gui_basics/detail/juce_TopLevelWindowManager.h +145 -0
  1226. package/ios/juce_modules/juce_gui_basics/detail/juce_ViewportHelpers.h +58 -0
  1227. package/ios/juce_modules/juce_gui_basics/detail/juce_WindowingHelpers.h +70 -0
  1228. package/ios/juce_modules/juce_gui_basics/drawables/juce_Drawable.cpp +228 -0
  1229. package/ios/juce_modules/juce_gui_basics/drawables/juce_Drawable.h +271 -0
  1230. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp +173 -0
  1231. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableComposite.h +126 -0
  1232. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableImage.cpp +165 -0
  1233. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableImage.h +126 -0
  1234. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawablePath.cpp +66 -0
  1235. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawablePath.h +86 -0
  1236. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp +96 -0
  1237. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableRectangle.h +85 -0
  1238. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableShape.cpp +190 -0
  1239. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableShape.h +135 -0
  1240. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableText.cpp +241 -0
  1241. package/ios/juce_modules/juce_gui_basics/drawables/juce_DrawableText.h +130 -0
  1242. package/ios/juce_modules/juce_gui_basics/drawables/juce_SVGParser.cpp +1903 -0
  1243. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ContentSharer.cpp +83 -0
  1244. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ContentSharer.h +154 -0
  1245. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp +79 -0
  1246. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h +125 -0
  1247. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp +279 -0
  1248. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h +235 -0
  1249. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp +633 -0
  1250. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h +306 -0
  1251. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h +67 -0
  1252. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp +292 -0
  1253. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooser.h +358 -0
  1254. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp +272 -0
  1255. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h +177 -0
  1256. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp +295 -0
  1257. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileListComponent.h +104 -0
  1258. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h +75 -0
  1259. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp +280 -0
  1260. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h +126 -0
  1261. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp +690 -0
  1262. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h +117 -0
  1263. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp +277 -0
  1264. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h +245 -0
  1265. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp +135 -0
  1266. package/ios/juce_modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h +77 -0
  1267. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.cpp +370 -0
  1268. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.h +403 -0
  1269. package/ios/juce_modules/juce_gui_basics/juce_gui_basics.mm +35 -0
  1270. package/ios/juce_modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp +73 -0
  1271. package/ios/juce_modules/juce_gui_basics/keyboard/juce_CaretComponent.h +90 -0
  1272. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyListener.cpp +43 -0
  1273. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyListener.h +86 -0
  1274. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyPress.cpp +298 -0
  1275. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyPress.h +286 -0
  1276. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp +283 -0
  1277. package/ios/juce_modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h +96 -0
  1278. package/ios/juce_modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp +58 -0
  1279. package/ios/juce_modules/juce_gui_basics/keyboard/juce_ModifierKeys.h +220 -0
  1280. package/ios/juce_modules/juce_gui_basics/keyboard/juce_SystemClipboard.h +58 -0
  1281. package/ios/juce_modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h +132 -0
  1282. package/ios/juce_modules/juce_gui_basics/keyboard/juce_TextInputTarget.h +129 -0
  1283. package/ios/juce_modules/juce_gui_basics/layout/juce_AnimatedPosition.h +216 -0
  1284. package/ios/juce_modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h +162 -0
  1285. package/ios/juce_modules/juce_gui_basics/layout/juce_BorderedComponentBoundsConstrainer.cpp +86 -0
  1286. package/ios/juce_modules/juce_gui_basics/layout/juce_BorderedComponentBoundsConstrainer.h +78 -0
  1287. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp +363 -0
  1288. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentAnimator.h +174 -0
  1289. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp +314 -0
  1290. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h +206 -0
  1291. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp +295 -0
  1292. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentBuilder.h +256 -0
  1293. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp +151 -0
  1294. package/ios/juce_modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h +105 -0
  1295. package/ios/juce_modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp +512 -0
  1296. package/ios/juce_modules/juce_gui_basics/layout/juce_ConcertinaPanel.h +153 -0
  1297. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexBox.cpp +1158 -0
  1298. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexBox.h +152 -0
  1299. package/ios/juce_modules/juce_gui_basics/layout/juce_FlexItem.h +186 -0
  1300. package/ios/juce_modules/juce_gui_basics/layout/juce_Grid.cpp +1651 -0
  1301. package/ios/juce_modules/juce_gui_basics/layout/juce_Grid.h +232 -0
  1302. package/ios/juce_modules/juce_gui_basics/layout/juce_GridItem.cpp +188 -0
  1303. package/ios/juce_modules/juce_gui_basics/layout/juce_GridItem.h +249 -0
  1304. package/ios/juce_modules/juce_gui_basics/layout/juce_GroupComponent.cpp +87 -0
  1305. package/ios/juce_modules/juce_gui_basics/layout/juce_GroupComponent.h +120 -0
  1306. package/ios/juce_modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp +641 -0
  1307. package/ios/juce_modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h +390 -0
  1308. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp +208 -0
  1309. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h +205 -0
  1310. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp +112 -0
  1311. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h +101 -0
  1312. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp +139 -0
  1313. package/ios/juce_modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h +109 -0
  1314. package/ios/juce_modules/juce_gui_basics/layout/juce_ScrollBar.cpp +486 -0
  1315. package/ios/juce_modules/juce_gui_basics/layout/juce_ScrollBar.h +450 -0
  1316. package/ios/juce_modules/juce_gui_basics/layout/juce_SidePanel.cpp +309 -0
  1317. package/ios/juce_modules/juce_gui_basics/layout/juce_SidePanel.h +248 -0
  1318. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp +351 -0
  1319. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h +270 -0
  1320. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp +88 -0
  1321. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h +114 -0
  1322. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp +131 -0
  1323. package/ios/juce_modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h +111 -0
  1324. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp +592 -0
  1325. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedButtonBar.h +382 -0
  1326. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedComponent.cpp +328 -0
  1327. package/ios/juce_modules/juce_gui_basics/layout/juce_TabbedComponent.h +236 -0
  1328. package/ios/juce_modules/juce_gui_basics/layout/juce_Viewport.cpp +649 -0
  1329. package/ios/juce_modules/juce_gui_basics/layout/juce_Viewport.h +383 -0
  1330. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp +201 -0
  1331. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h +301 -0
  1332. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp +599 -0
  1333. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h +114 -0
  1334. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp +3200 -0
  1335. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h +443 -0
  1336. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp +655 -0
  1337. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h +107 -0
  1338. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp +1516 -0
  1339. package/ios/juce_modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.h +269 -0
  1340. package/ios/juce_modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp +311 -0
  1341. package/ios/juce_modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h +120 -0
  1342. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp +472 -0
  1343. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarComponent.h +138 -0
  1344. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarModel.cpp +108 -0
  1345. package/ios/juce_modules/juce_gui_basics/menus/juce_MenuBarModel.h +201 -0
  1346. package/ios/juce_modules/juce_gui_basics/menus/juce_PopupMenu.cpp +2401 -0
  1347. package/ios/juce_modules/juce_gui_basics/menus/juce_PopupMenu.h +1070 -0
  1348. package/ios/juce_modules/juce_gui_basics/misc/juce_BubbleComponent.cpp +162 -0
  1349. package/ios/juce_modules/juce_gui_basics/misc/juce_BubbleComponent.h +213 -0
  1350. package/ios/juce_modules/juce_gui_basics/misc/juce_DropShadower.cpp +408 -0
  1351. package/ios/juce_modules/juce_gui_basics/misc/juce_DropShadower.h +96 -0
  1352. package/ios/juce_modules/juce_gui_basics/misc/juce_FocusOutline.cpp +194 -0
  1353. package/ios/juce_modules/juce_gui_basics/misc/juce_FocusOutline.h +109 -0
  1354. package/ios/juce_modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp +76 -0
  1355. package/ios/juce_modules/juce_gui_basics/mouse/juce_ComponentDragger.h +110 -0
  1356. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp +646 -0
  1357. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h +275 -0
  1358. package/ios/juce_modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h +149 -0
  1359. package/ios/juce_modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h +115 -0
  1360. package/ios/juce_modules/juce_gui_basics/mouse/juce_LassoComponent.h +233 -0
  1361. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseCursor.cpp +162 -0
  1362. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseCursor.h +199 -0
  1363. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseEvent.cpp +147 -0
  1364. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseEvent.h +463 -0
  1365. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp +86 -0
  1366. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h +121 -0
  1367. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp +114 -0
  1368. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseInputSource.h +315 -0
  1369. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseListener.cpp +48 -0
  1370. package/ios/juce_modules/juce_gui_basics/mouse/juce_MouseListener.h +180 -0
  1371. package/ios/juce_modules/juce_gui_basics/mouse/juce_SelectedItemSet.h +336 -0
  1372. package/ios/juce_modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h +115 -0
  1373. package/ios/juce_modules/juce_gui_basics/mouse/juce_TooltipClient.h +98 -0
  1374. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility.cpp +46 -0
  1375. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityElement_windows.cpp +660 -0
  1376. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityElement_windows.h +89 -0
  1377. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilitySharedCode_mac.mm +283 -0
  1378. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers.h +311 -0
  1379. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_AccessibilityTextHelpers_test.cpp +164 -0
  1380. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_android.cpp +1058 -0
  1381. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_ios.mm +669 -0
  1382. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_mac.mm +942 -0
  1383. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_Accessibility_windows.cpp +336 -0
  1384. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAExpandCollapseProvider_windows.h +92 -0
  1385. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAGridItemProvider_windows.h +162 -0
  1386. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAGridProvider_windows.h +160 -0
  1387. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAHelpers_windows.h +128 -0
  1388. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAInvokeProvider_windows.h +68 -0
  1389. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAProviderBase_windows.h +67 -0
  1390. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAProviders_windows.h +52 -0
  1391. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIARangeValueProvider_windows.h +146 -0
  1392. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIASelectionProvider_windows.h +254 -0
  1393. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIATextProvider_windows.h +626 -0
  1394. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAToggleProvider_windows.h +87 -0
  1395. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIATransformProvider_windows.h +131 -0
  1396. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAValueProvider_windows.h +92 -0
  1397. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_UIAWindowProvider_windows.h +203 -0
  1398. package/ios/juce_modules/juce_gui_basics/native/accessibility/juce_WindowsUIAWrapper_windows.h +169 -0
  1399. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/ComponentPeerView.java +987 -0
  1400. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/JuceContentProviderCursor.java +62 -0
  1401. package/ios/juce_modules/juce_gui_basics/native/java/app/com/rmsl/juce/JuceContentProviderFileObserver.java +57 -0
  1402. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/JuceActivity.java +63 -0
  1403. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/JuceSharingContentProvider.java +128 -0
  1404. package/ios/juce_modules/juce_gui_basics/native/javaopt/app/com/rmsl/juce/Receiver.java +51 -0
  1405. package/ios/juce_modules/juce_gui_basics/native/juce_CGMetalLayerRenderer_mac.h +384 -0
  1406. package/ios/juce_modules/juce_gui_basics/native/juce_ContentSharer_android.cpp +963 -0
  1407. package/ios/juce_modules/juce_gui_basics/native/juce_ContentSharer_ios.cpp +134 -0
  1408. package/ios/juce_modules/juce_gui_basics/native/juce_DragAndDrop_linux.cpp +618 -0
  1409. package/ios/juce_modules/juce_gui_basics/native/juce_DragAndDrop_windows.cpp +377 -0
  1410. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_android.cpp +276 -0
  1411. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_ios.mm +379 -0
  1412. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_linux.cpp +296 -0
  1413. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_mac.mm +414 -0
  1414. package/ios/juce_modules/juce_gui_basics/native/juce_FileChooser_windows.cpp +908 -0
  1415. package/ios/juce_modules/juce_gui_basics/native/juce_MainMenu_mac.mm +848 -0
  1416. package/ios/juce_modules/juce_gui_basics/native/juce_MouseCursor_mac.mm +205 -0
  1417. package/ios/juce_modules/juce_gui_basics/native/juce_MultiTouchMapper.h +116 -0
  1418. package/ios/juce_modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm +3053 -0
  1419. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_android.cpp +124 -0
  1420. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_ios.mm +119 -0
  1421. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_linux.cpp +78 -0
  1422. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_mac.mm +140 -0
  1423. package/ios/juce_modules/juce_gui_basics/native/juce_NativeMessageBox_windows.cpp +354 -0
  1424. package/ios/juce_modules/juce_gui_basics/native/juce_NativeModalWrapperComponent_ios.h +141 -0
  1425. package/ios/juce_modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h +313 -0
  1426. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.cpp +43 -0
  1427. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedDPIAwarenessDisabler.h +63 -0
  1428. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedThreadDPIAwarenessSetter_windows.h +52 -0
  1429. package/ios/juce_modules/juce_gui_basics/native/juce_ScopedWindowAssociation_linux.h +127 -0
  1430. package/ios/juce_modules/juce_gui_basics/native/juce_UIViewComponentPeer_ios.mm +2376 -0
  1431. package/ios/juce_modules/juce_gui_basics/native/juce_VBlank_windows.cpp +302 -0
  1432. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_android.cpp +43 -0
  1433. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_ios.mm +43 -0
  1434. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_linux.cpp +48 -0
  1435. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_mac.mm +47 -0
  1436. package/ios/juce_modules/juce_gui_basics/native/juce_WindowUtils_windows.cpp +68 -0
  1437. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_android.cpp +2903 -0
  1438. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_ios.mm +629 -0
  1439. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_linux.cpp +863 -0
  1440. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_mac.mm +588 -0
  1441. package/ios/juce_modules/juce_gui_basics/native/juce_Windowing_windows.cpp +5549 -0
  1442. package/ios/juce_modules/juce_gui_basics/native/juce_WindowsHooks_windows.cpp +118 -0
  1443. package/ios/juce_modules/juce_gui_basics/native/juce_WindowsHooks_windows.h +55 -0
  1444. package/ios/juce_modules/juce_gui_basics/native/juce_XSymbols_linux.cpp +249 -0
  1445. package/ios/juce_modules/juce_gui_basics/native/juce_XSymbols_linux.h +629 -0
  1446. package/ios/juce_modules/juce_gui_basics/native/juce_XWindowSystem_linux.cpp +4036 -0
  1447. package/ios/juce_modules/juce_gui_basics/native/juce_XWindowSystem_linux.h +364 -0
  1448. package/ios/juce_modules/juce_gui_basics/positioning/juce_MarkerList.cpp +293 -0
  1449. package/ios/juce_modules/juce_gui_basics/positioning/juce_MarkerList.h +204 -0
  1450. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp +162 -0
  1451. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h +190 -0
  1452. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp +344 -0
  1453. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h +99 -0
  1454. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp +149 -0
  1455. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h +75 -0
  1456. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePoint.cpp +110 -0
  1457. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePoint.h +100 -0
  1458. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp +271 -0
  1459. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativePointPath.h +202 -0
  1460. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp +286 -0
  1461. package/ios/juce_modules/juce_gui_basics/positioning/juce_RelativeRectangle.h +117 -0
  1462. package/ios/juce_modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp +95 -0
  1463. package/ios/juce_modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h +118 -0
  1464. package/ios/juce_modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp +55 -0
  1465. package/ios/juce_modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h +85 -0
  1466. package/ios/juce_modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp +284 -0
  1467. package/ios/juce_modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h +162 -0
  1468. package/ios/juce_modules/juce_gui_basics/properties/juce_MultiChoicePropertyComponent.cpp +367 -0
  1469. package/ios/juce_modules/juce_gui_basics/properties/juce_MultiChoicePropertyComponent.h +150 -0
  1470. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyComponent.cpp +65 -0
  1471. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyComponent.h +154 -0
  1472. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyPanel.cpp +405 -0
  1473. package/ios/juce_modules/juce_gui_basics/properties/juce_PropertyPanel.h +186 -0
  1474. package/ios/juce_modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp +95 -0
  1475. package/ios/juce_modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h +116 -0
  1476. package/ios/juce_modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp +271 -0
  1477. package/ios/juce_modules/juce_gui_basics/properties/juce_TextPropertyComponent.h +196 -0
  1478. package/ios/juce_modules/juce_gui_basics/widgets/juce_ComboBox.cpp +721 -0
  1479. package/ios/juce_modules/juce_gui_basics/widgets/juce_ComboBox.h +473 -0
  1480. package/ios/juce_modules/juce_gui_basics/widgets/juce_ImageComponent.cpp +116 -0
  1481. package/ios/juce_modules/juce_gui_basics/widgets/juce_ImageComponent.h +90 -0
  1482. package/ios/juce_modules/juce_gui_basics/widgets/juce_Label.cpp +592 -0
  1483. package/ios/juce_modules/juce_gui_basics/widgets/juce_Label.h +377 -0
  1484. package/ios/juce_modules/juce_gui_basics/widgets/juce_ListBox.cpp +1263 -0
  1485. package/ios/juce_modules/juce_gui_basics/widgets/juce_ListBox.h +656 -0
  1486. package/ios/juce_modules/juce_gui_basics/widgets/juce_ProgressBar.cpp +189 -0
  1487. package/ios/juce_modules/juce_gui_basics/widgets/juce_ProgressBar.h +215 -0
  1488. package/ios/juce_modules/juce_gui_basics/widgets/juce_Slider.cpp +1839 -0
  1489. package/ios/juce_modules/juce_gui_basics/widgets/juce_Slider.h +1048 -0
  1490. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp +935 -0
  1491. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h +472 -0
  1492. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableListBox.cpp +688 -0
  1493. package/ios/juce_modules/juce_gui_basics/widgets/juce_TableListBox.h +365 -0
  1494. package/ios/juce_modules/juce_gui_basics/widgets/juce_TextEditor.cpp +2786 -0
  1495. package/ios/juce_modules/juce_gui_basics/widgets/juce_TextEditor.h +888 -0
  1496. package/ios/juce_modules/juce_gui_basics/widgets/juce_Toolbar.cpp +838 -0
  1497. package/ios/juce_modules/juce_gui_basics/widgets/juce_Toolbar.h +347 -0
  1498. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp +173 -0
  1499. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h +217 -0
  1500. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h +118 -0
  1501. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp +125 -0
  1502. package/ios/juce_modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h +88 -0
  1503. package/ios/juce_modules/juce_gui_basics/widgets/juce_TreeView.cpp +2286 -0
  1504. package/ios/juce_modules/juce_gui_basics/widgets/juce_TreeView.h +969 -0
  1505. package/ios/juce_modules/juce_gui_basics/windows/juce_AlertWindow.cpp +712 -0
  1506. package/ios/juce_modules/juce_gui_basics/windows/juce_AlertWindow.h +600 -0
  1507. package/ios/juce_modules/juce_gui_basics/windows/juce_CallOutBox.cpp +279 -0
  1508. package/ios/juce_modules/juce_gui_basics/windows/juce_CallOutBox.h +197 -0
  1509. package/ios/juce_modules/juce_gui_basics/windows/juce_ComponentPeer.cpp +625 -0
  1510. package/ios/juce_modules/juce_gui_basics/windows/juce_ComponentPeer.h +623 -0
  1511. package/ios/juce_modules/juce_gui_basics/windows/juce_DialogWindow.cpp +190 -0
  1512. package/ios/juce_modules/juce_gui_basics/windows/juce_DialogWindow.h +286 -0
  1513. package/ios/juce_modules/juce_gui_basics/windows/juce_DocumentWindow.cpp +423 -0
  1514. package/ios/juce_modules/juce_gui_basics/windows/juce_DocumentWindow.h +316 -0
  1515. package/ios/juce_modules/juce_gui_basics/windows/juce_MessageBoxOptions.cpp +102 -0
  1516. package/ios/juce_modules/juce_gui_basics/windows/juce_MessageBoxOptions.h +202 -0
  1517. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeMessageBox.cpp +167 -0
  1518. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeMessageBox.h +311 -0
  1519. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeScaleFactorNotifier.cpp +75 -0
  1520. package/ios/juce_modules/juce_gui_basics/windows/juce_NativeScaleFactorNotifier.h +78 -0
  1521. package/ios/juce_modules/juce_gui_basics/windows/juce_ResizableWindow.cpp +679 -0
  1522. package/ios/juce_modules/juce_gui_basics/windows/juce_ResizableWindow.h +427 -0
  1523. package/ios/juce_modules/juce_gui_basics/windows/juce_ScopedMessageBox.cpp +67 -0
  1524. package/ios/juce_modules/juce_gui_basics/windows/juce_ScopedMessageBox.h +78 -0
  1525. package/ios/juce_modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp +128 -0
  1526. package/ios/juce_modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h +184 -0
  1527. package/ios/juce_modules/juce_gui_basics/windows/juce_TooltipWindow.cpp +264 -0
  1528. package/ios/juce_modules/juce_gui_basics/windows/juce_TooltipWindow.h +169 -0
  1529. package/ios/juce_modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp +264 -0
  1530. package/ios/juce_modules/juce_gui_basics/windows/juce_TopLevelWindow.h +176 -0
  1531. package/ios/juce_modules/juce_gui_basics/windows/juce_VBlankAttachment.cpp +122 -0
  1532. package/ios/juce_modules/juce_gui_basics/windows/juce_VBlankAttachment.h +85 -0
  1533. package/ios/juce_modules/juce_gui_basics/windows/juce_WindowUtils.h +51 -0
  1534. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp +83 -0
  1535. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h +81 -0
  1536. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h +683 -0
  1537. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp +1306 -0
  1538. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeDocument.h +459 -0
  1539. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +1857 -0
  1540. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h +486 -0
  1541. package/ios/juce_modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h +68 -0
  1542. package/ios/juce_modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp +248 -0
  1543. package/ios/juce_modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h +74 -0
  1544. package/ios/juce_modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp +181 -0
  1545. package/ios/juce_modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h +72 -0
  1546. package/ios/juce_modules/juce_gui_extra/detail/juce_WebControlRelayEvents.h +255 -0
  1547. package/ios/juce_modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp +1124 -0
  1548. package/ios/juce_modules/juce_gui_extra/documents/juce_FileBasedDocument.h +440 -0
  1549. package/ios/juce_modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h +142 -0
  1550. package/ios/juce_modules/juce_gui_extra/embedding/juce_AndroidViewComponent.h +91 -0
  1551. package/ios/juce_modules/juce_gui_extra/embedding/juce_HWNDComponent.h +98 -0
  1552. package/ios/juce_modules/juce_gui_extra/embedding/juce_NSViewComponent.h +107 -0
  1553. package/ios/juce_modules/juce_gui_extra/embedding/juce_UIViewComponent.h +99 -0
  1554. package/ios/juce_modules/juce_gui_extra/embedding/juce_XEmbedComponent.h +129 -0
  1555. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.cpp +210 -0
  1556. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.h +161 -0
  1557. package/ios/juce_modules/juce_gui_extra/juce_gui_extra.mm +35 -0
  1558. package/ios/juce_modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp +89 -0
  1559. package/ios/juce_modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h +96 -0
  1560. package/ios/juce_modules/juce_gui_extra/misc/juce_AppleRemote.h +126 -0
  1561. package/ios/juce_modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp +133 -0
  1562. package/ios/juce_modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h +134 -0
  1563. package/ios/juce_modules/juce_gui_extra/misc/juce_ColourSelector.cpp +656 -0
  1564. package/ios/juce_modules/juce_gui_extra/misc/juce_ColourSelector.h +173 -0
  1565. package/ios/juce_modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp +486 -0
  1566. package/ios/juce_modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h +142 -0
  1567. package/ios/juce_modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp +501 -0
  1568. package/ios/juce_modules/juce_gui_extra/misc/juce_LiveConstantEditor.h +310 -0
  1569. package/ios/juce_modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp +165 -0
  1570. package/ios/juce_modules/juce_gui_extra/misc/juce_PreferencesPanel.h +156 -0
  1571. package/ios/juce_modules/juce_gui_extra/misc/juce_PushNotifications.cpp +239 -0
  1572. package/ios/juce_modules/juce_gui_extra/misc/juce_PushNotifications.h +714 -0
  1573. package/ios/juce_modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp +189 -0
  1574. package/ios/juce_modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h +186 -0
  1575. package/ios/juce_modules/juce_gui_extra/misc/juce_SplashScreen.cpp +110 -0
  1576. package/ios/juce_modules/juce_gui_extra/misc/juce_SplashScreen.h +165 -0
  1577. package/ios/juce_modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp +51 -0
  1578. package/ios/juce_modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h +125 -0
  1579. package/ios/juce_modules/juce_gui_extra/misc/juce_WebBrowserComponent.cpp +722 -0
  1580. package/ios/juce_modules/juce_gui_extra/misc/juce_WebBrowserComponent.h +626 -0
  1581. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlParameterIndexReceiver.h +76 -0
  1582. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlRelays.cpp +256 -0
  1583. package/ios/juce_modules/juce_gui_extra/misc/juce_WebControlRelays.h +254 -0
  1584. package/ios/juce_modules/juce_gui_extra/native/java/app/com/rmsl/juce/JuceWebViewClasses.java +356 -0
  1585. package/ios/juce_modules/juce_gui_extra/native/javaopt/app/com/rmsl/juce/JuceFirebaseInstanceIdService.java +50 -0
  1586. package/ios/juce_modules/juce_gui_extra/native/javaopt/app/com/rmsl/juce/JuceFirebaseMessagingService.java +69 -0
  1587. package/ios/juce_modules/juce_gui_extra/native/javascript/check_native_interop.js +146 -0
  1588. package/ios/juce_modules/juce_gui_extra/native/javascript/index.js +577 -0
  1589. package/ios/juce_modules/juce_gui_extra/native/javascript/package.json +4 -0
  1590. package/ios/juce_modules/juce_gui_extra/native/juce_ActiveXComponent_windows.cpp +553 -0
  1591. package/ios/juce_modules/juce_gui_extra/native/juce_AndroidViewComponent.cpp +199 -0
  1592. package/ios/juce_modules/juce_gui_extra/native/juce_AppleRemote_mac.mm +285 -0
  1593. package/ios/juce_modules/juce_gui_extra/native/juce_HWNDComponent_windows.cpp +203 -0
  1594. package/ios/juce_modules/juce_gui_extra/native/juce_NSViewComponent_mac.mm +203 -0
  1595. package/ios/juce_modules/juce_gui_extra/native/juce_NSViewFrameWatcher_mac.h +120 -0
  1596. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_android.cpp +1607 -0
  1597. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_ios.cpp +620 -0
  1598. package/ios/juce_modules/juce_gui_extra/native/juce_PushNotifications_mac.cpp +535 -0
  1599. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_linux.cpp +160 -0
  1600. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_mac.cpp +451 -0
  1601. package/ios/juce_modules/juce_gui_extra/native/juce_SystemTrayIcon_windows.cpp +251 -0
  1602. package/ios/juce_modules/juce_gui_extra/native/juce_UIViewComponent_ios.mm +151 -0
  1603. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_android.cpp +953 -0
  1604. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp +1659 -0
  1605. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_mac.mm +1113 -0
  1606. package/ios/juce_modules/juce_gui_extra/native/juce_WebBrowserComponent_windows.cpp +1298 -0
  1607. package/ios/juce_modules/juce_gui_extra/native/juce_XEmbedComponent_linux.cpp +739 -0
  1608. package/package.json +1 -1
  1609. package/ios/JuceModules.mm +0 -14
  1610. package/ios/JuceToneGenerator.h +0 -39
  1611. package/ios/JuceToneGenerator.mm +0 -613
@@ -0,0 +1,2705 @@
1
+ /*
2
+ * Copyright © 1998-2004 David Turner and Werner Lemberg
3
+ * Copyright © 2006 Behdad Esfahbod
4
+ * Copyright © 2007,2008,2009 Red Hat, Inc.
5
+ * Copyright © 2012,2013 Google, Inc.
6
+ *
7
+ * This is part of HarfBuzz, a text shaping library.
8
+ *
9
+ * Permission is hereby granted, without written agreement and without
10
+ * license or royalty fees, to use, copy, modify, and distribute this
11
+ * software and its documentation for any purpose, provided that the
12
+ * above copyright notice and the following two paragraphs appear in
13
+ * all copies of this software.
14
+ *
15
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
16
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
17
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
18
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
19
+ * DAMAGE.
20
+ *
21
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
22
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
23
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
24
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
25
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26
+ *
27
+ * Red Hat Author(s): Behdad Esfahbod
28
+ * Google Author(s): Behdad Esfahbod
29
+ */
30
+
31
+ #include "hb.hh"
32
+
33
+ #ifndef HB_NO_OT_LAYOUT
34
+
35
+ #ifdef HB_NO_OT_TAG
36
+ #error "Cannot compile hb-ot-layout.cc with HB_NO_OT_TAG."
37
+ #endif
38
+
39
+ #include "hb-open-type.hh"
40
+ #include "hb-ot-layout.hh"
41
+ #include "hb-ot-face.hh"
42
+ #include "hb-ot-map.hh"
43
+ #include "hb-map.hh"
44
+
45
+ #include "hb-ot-kern-table.hh"
46
+ #include "hb-ot-layout-gdef-table.hh"
47
+ #include "hb-ot-layout-gsub-table.hh"
48
+ #include "hb-ot-layout-gpos-table.hh"
49
+ #include "hb-ot-layout-base-table.hh"
50
+ #include "hb-ot-layout-jstf-table.hh" // Just so we compile it; unused otherwise.
51
+ #include "hb-ot-name-table.hh"
52
+ #include "hb-ot-os2-table.hh"
53
+
54
+ #include "hb-aat-layout-morx-table.hh"
55
+ #include "hb-aat-layout-opbd-table.hh" // Just so we compile it; unused otherwise.
56
+
57
+ using OT::Layout::GSUB;
58
+ using OT::Layout::GPOS;
59
+
60
+ /**
61
+ * SECTION:hb-ot-layout
62
+ * @title: hb-ot-layout
63
+ * @short_description: OpenType Layout
64
+ * @include: hb-ot.h
65
+ *
66
+ * Functions for querying OpenType Layout features in the font face.
67
+ * See the [OpenType specification](http://www.microsoft.com/typography/otspec/)
68
+ * for details.
69
+ **/
70
+
71
+
72
+ /*
73
+ * kern
74
+ */
75
+
76
+ #ifndef HB_NO_OT_KERN
77
+ /**
78
+ * hb_ot_layout_has_kerning:
79
+ * @face: The #hb_face_t to work on
80
+ *
81
+ * Tests whether a face includes any kerning data in the 'kern' table.
82
+ * Does NOT test for kerning lookups in the GPOS table.
83
+ *
84
+ * Return value: `true` if data found, `false` otherwise
85
+ *
86
+ **/
87
+ bool
88
+ hb_ot_layout_has_kerning (hb_face_t *face)
89
+ {
90
+ return face->table.kern->table->has_data ();
91
+ }
92
+
93
+ /**
94
+ * hb_ot_layout_has_machine_kerning:
95
+ * @face: The #hb_face_t to work on
96
+ *
97
+ * Tests whether a face includes any state-machine kerning in the 'kern' table.
98
+ * Does NOT examine the GPOS table.
99
+ *
100
+ * Return value: `true` if data found, `false` otherwise
101
+ *
102
+ **/
103
+ bool
104
+ hb_ot_layout_has_machine_kerning (hb_face_t *face)
105
+ {
106
+ return face->table.kern->table->has_state_machine ();
107
+ }
108
+
109
+ /**
110
+ * hb_ot_layout_has_cross_kerning:
111
+ * @face: The #hb_face_t to work on
112
+ *
113
+ * Tests whether a face has any cross-stream kerning (i.e., kerns
114
+ * that make adjustments perpendicular to the direction of the text
115
+ * flow: Y adjustments in horizontal text or X adjustments in
116
+ * vertical text) in the 'kern' table.
117
+ *
118
+ * Does NOT examine the GPOS table.
119
+ *
120
+ * Return value: `true` is data found, `false` otherwise
121
+ *
122
+ **/
123
+ bool
124
+ hb_ot_layout_has_cross_kerning (hb_face_t *face)
125
+ {
126
+ return face->table.kern->table->has_cross_stream ();
127
+ }
128
+
129
+ void
130
+ hb_ot_layout_kern (const hb_ot_shape_plan_t *plan,
131
+ hb_font_t *font,
132
+ hb_buffer_t *buffer)
133
+ {
134
+ hb_blob_t *blob = font->face->table.kern.get_blob ();
135
+ const auto& kern = *font->face->table.kern;
136
+
137
+ AAT::hb_aat_apply_context_t c (plan, font, buffer, blob);
138
+
139
+ if (!buffer->message (font, "start table kern")) return;
140
+ kern.apply (&c);
141
+ (void) buffer->message (font, "end table kern");
142
+ }
143
+ #endif
144
+
145
+
146
+ /*
147
+ * GDEF
148
+ */
149
+
150
+ bool
151
+ OT::GDEF::is_blocklisted (hb_blob_t *blob,
152
+ hb_face_t *face) const
153
+ {
154
+ #ifdef HB_NO_OT_LAYOUT_BLOCKLIST
155
+ return false;
156
+ #endif
157
+ /* The ugly business of blocklisting individual fonts' tables happen here!
158
+ * See this thread for why we finally had to bend in and do this:
159
+ * https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
160
+ *
161
+ * In certain versions of Times New Roman Italic and Bold Italic,
162
+ * ASCII double quotation mark U+0022 has wrong glyph class 3 (mark)
163
+ * in GDEF. Many versions of Tahoma have bad GDEF tables that
164
+ * incorrectly classify some spacing marks such as certain IPA
165
+ * symbols as glyph class 3. So do older versions of Microsoft
166
+ * Himalaya, and the version of Cantarell shipped by Ubuntu 16.04.
167
+ *
168
+ * Nuke the GDEF tables of to avoid unwanted width-zeroing.
169
+ *
170
+ * See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925
171
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1279693
172
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1279875
173
+ */
174
+ switch HB_CODEPOINT_ENCODE3(blob->length,
175
+ face->table.GSUB->table.get_length (),
176
+ face->table.GPOS->table.get_length ())
177
+ {
178
+ /* sha1sum:c5ee92f0bca4bfb7d06c4d03e8cf9f9cf75d2e8a Windows 7? timesi.ttf */
179
+ case HB_CODEPOINT_ENCODE3 (442, 2874, 42038):
180
+ /* sha1sum:37fc8c16a0894ab7b749e35579856c73c840867b Windows 7? timesbi.ttf */
181
+ case HB_CODEPOINT_ENCODE3 (430, 2874, 40662):
182
+ /* sha1sum:19fc45110ea6cd3cdd0a5faca256a3797a069a80 Windows 7 timesi.ttf */
183
+ case HB_CODEPOINT_ENCODE3 (442, 2874, 39116):
184
+ /* sha1sum:6d2d3c9ed5b7de87bc84eae0df95ee5232ecde26 Windows 7 timesbi.ttf */
185
+ case HB_CODEPOINT_ENCODE3 (430, 2874, 39374):
186
+ /* sha1sum:8583225a8b49667c077b3525333f84af08c6bcd8 OS X 10.11.3 Times New Roman Italic.ttf */
187
+ case HB_CODEPOINT_ENCODE3 (490, 3046, 41638):
188
+ /* sha1sum:ec0f5a8751845355b7c3271d11f9918a966cb8c9 OS X 10.11.3 Times New Roman Bold Italic.ttf */
189
+ case HB_CODEPOINT_ENCODE3 (478, 3046, 41902):
190
+ /* sha1sum:96eda93f7d33e79962451c6c39a6b51ee893ce8c tahoma.ttf from Windows 8 */
191
+ case HB_CODEPOINT_ENCODE3 (898, 12554, 46470):
192
+ /* sha1sum:20928dc06014e0cd120b6fc942d0c3b1a46ac2bc tahomabd.ttf from Windows 8 */
193
+ case HB_CODEPOINT_ENCODE3 (910, 12566, 47732):
194
+ /* sha1sum:4f95b7e4878f60fa3a39ca269618dfde9721a79e tahoma.ttf from Windows 8.1 */
195
+ case HB_CODEPOINT_ENCODE3 (928, 23298, 59332):
196
+ /* sha1sum:6d400781948517c3c0441ba42acb309584b73033 tahomabd.ttf from Windows 8.1 */
197
+ case HB_CODEPOINT_ENCODE3 (940, 23310, 60732):
198
+ /* tahoma.ttf v6.04 from Windows 8.1 x64, see https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 */
199
+ case HB_CODEPOINT_ENCODE3 (964, 23836, 60072):
200
+ /* tahomabd.ttf v6.04 from Windows 8.1 x64, see https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 */
201
+ case HB_CODEPOINT_ENCODE3 (976, 23832, 61456):
202
+ /* sha1sum:e55fa2dfe957a9f7ec26be516a0e30b0c925f846 tahoma.ttf from Windows 10 */
203
+ case HB_CODEPOINT_ENCODE3 (994, 24474, 60336):
204
+ /* sha1sum:7199385abb4c2cc81c83a151a7599b6368e92343 tahomabd.ttf from Windows 10 */
205
+ case HB_CODEPOINT_ENCODE3 (1006, 24470, 61740):
206
+ /* tahoma.ttf v6.91 from Windows 10 x64, see https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 */
207
+ case HB_CODEPOINT_ENCODE3 (1006, 24576, 61346):
208
+ /* tahomabd.ttf v6.91 from Windows 10 x64, see https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 */
209
+ case HB_CODEPOINT_ENCODE3 (1018, 24572, 62828):
210
+ /* sha1sum:b9c84d820c49850d3d27ec498be93955b82772b5 tahoma.ttf from Windows 10 AU */
211
+ case HB_CODEPOINT_ENCODE3 (1006, 24576, 61352):
212
+ /* sha1sum:2bdfaab28174bdadd2f3d4200a30a7ae31db79d2 tahomabd.ttf from Windows 10 AU */
213
+ case HB_CODEPOINT_ENCODE3 (1018, 24572, 62834):
214
+ /* sha1sum:b0d36cf5a2fbe746a3dd277bffc6756a820807a7 Tahoma.ttf from Mac OS X 10.9 */
215
+ case HB_CODEPOINT_ENCODE3 (832, 7324, 47162):
216
+ /* sha1sum:12fc4538e84d461771b30c18b5eb6bd434e30fba Tahoma Bold.ttf from Mac OS X 10.9 */
217
+ case HB_CODEPOINT_ENCODE3 (844, 7302, 45474):
218
+ /* sha1sum:eb8afadd28e9cf963e886b23a30b44ab4fd83acc himalaya.ttf from Windows 7 */
219
+ case HB_CODEPOINT_ENCODE3 (180, 13054, 7254):
220
+ /* sha1sum:73da7f025b238a3f737aa1fde22577a6370f77b0 himalaya.ttf from Windows 8 */
221
+ case HB_CODEPOINT_ENCODE3 (192, 12638, 7254):
222
+ /* sha1sum:6e80fd1c0b059bbee49272401583160dc1e6a427 himalaya.ttf from Windows 8.1 */
223
+ case HB_CODEPOINT_ENCODE3 (192, 12690, 7254):
224
+ /* 8d9267aea9cd2c852ecfb9f12a6e834bfaeafe44 cantarell-fonts-0.0.21/otf/Cantarell-Regular.otf */
225
+ /* 983988ff7b47439ab79aeaf9a45bd4a2c5b9d371 cantarell-fonts-0.0.21/otf/Cantarell-Oblique.otf */
226
+ case HB_CODEPOINT_ENCODE3 (188, 248, 3852):
227
+ /* 2c0c90c6f6087ffbfea76589c93113a9cbb0e75f cantarell-fonts-0.0.21/otf/Cantarell-Bold.otf */
228
+ /* 55461f5b853c6da88069ffcdf7f4dd3f8d7e3e6b cantarell-fonts-0.0.21/otf/Cantarell-Bold-Oblique.otf */
229
+ case HB_CODEPOINT_ENCODE3 (188, 264, 3426):
230
+ /* d125afa82a77a6475ac0e74e7c207914af84b37a padauk-2.80/Padauk.ttf RHEL 7.2 */
231
+ case HB_CODEPOINT_ENCODE3 (1058, 47032, 11818):
232
+ /* 0f7b80437227b90a577cc078c0216160ae61b031 padauk-2.80/Padauk-Bold.ttf RHEL 7.2*/
233
+ case HB_CODEPOINT_ENCODE3 (1046, 47030, 12600):
234
+ /* d3dde9aa0a6b7f8f6a89ef1002e9aaa11b882290 padauk-2.80/Padauk.ttf Ubuntu 16.04 */
235
+ case HB_CODEPOINT_ENCODE3 (1058, 71796, 16770):
236
+ /* 5f3c98ccccae8a953be2d122c1b3a77fd805093f padauk-2.80/Padauk-Bold.ttf Ubuntu 16.04 */
237
+ case HB_CODEPOINT_ENCODE3 (1046, 71790, 17862):
238
+ /* 6c93b63b64e8b2c93f5e824e78caca555dc887c7 padauk-2.80/Padauk-book.ttf */
239
+ case HB_CODEPOINT_ENCODE3 (1046, 71788, 17112):
240
+ /* d89b1664058359b8ec82e35d3531931125991fb9 padauk-2.80/Padauk-bookbold.ttf */
241
+ case HB_CODEPOINT_ENCODE3 (1058, 71794, 17514):
242
+ /* 824cfd193aaf6234b2b4dc0cf3c6ef576c0d00ef padauk-3.0/Padauk-book.ttf */
243
+ case HB_CODEPOINT_ENCODE3 (1330, 109904, 57938):
244
+ /* 91fcc10cf15e012d27571e075b3b4dfe31754a8a padauk-3.0/Padauk-bookbold.ttf */
245
+ case HB_CODEPOINT_ENCODE3 (1330, 109904, 58972):
246
+ /* sha1sum: c26e41d567ed821bed997e937bc0c41435689e85 Padauk.ttf
247
+ * "Padauk Regular" "Version 2.5", see https://crbug.com/681813 */
248
+ case HB_CODEPOINT_ENCODE3 (1004, 59092, 14836):
249
+ return true;
250
+ }
251
+ return false;
252
+ }
253
+
254
+ static void
255
+ _hb_ot_layout_set_glyph_props (hb_font_t *font,
256
+ hb_buffer_t *buffer)
257
+ {
258
+ _hb_buffer_assert_gsubgpos_vars (buffer);
259
+
260
+ const auto &gdef = *font->face->table.GDEF;
261
+ unsigned int count = buffer->len;
262
+ hb_glyph_info_t *info = buffer->info;
263
+ for (unsigned int i = 0; i < count; i++)
264
+ {
265
+ _hb_glyph_info_set_glyph_props (&info[i], gdef.get_glyph_props (info[i].codepoint));
266
+ _hb_glyph_info_clear_lig_props (&info[i]);
267
+ }
268
+ }
269
+
270
+ /* Public API */
271
+
272
+ /**
273
+ * hb_ot_layout_has_glyph_classes:
274
+ * @face: #hb_face_t to work upon
275
+ *
276
+ * Tests whether a face has any glyph classes defined in its GDEF table.
277
+ *
278
+ * Return value: `true` if data found, `false` otherwise
279
+ *
280
+ **/
281
+ hb_bool_t
282
+ hb_ot_layout_has_glyph_classes (hb_face_t *face)
283
+ {
284
+ return face->table.GDEF->table->has_glyph_classes ();
285
+ }
286
+
287
+ /**
288
+ * hb_ot_layout_get_glyph_class:
289
+ * @face: The #hb_face_t to work on
290
+ * @glyph: The #hb_codepoint_t code point to query
291
+ *
292
+ * Fetches the GDEF class of the requested glyph in the specified face.
293
+ *
294
+ * Return value: The #hb_ot_layout_glyph_class_t glyph class of the given code
295
+ * point in the GDEF table of the face.
296
+ *
297
+ * Since: 0.9.7
298
+ **/
299
+ hb_ot_layout_glyph_class_t
300
+ hb_ot_layout_get_glyph_class (hb_face_t *face,
301
+ hb_codepoint_t glyph)
302
+ {
303
+ return (hb_ot_layout_glyph_class_t) face->table.GDEF->table->get_glyph_class (glyph);
304
+ }
305
+
306
+ /**
307
+ * hb_ot_layout_get_glyphs_in_class:
308
+ * @face: The #hb_face_t to work on
309
+ * @klass: The #hb_ot_layout_glyph_class_t GDEF class to retrieve
310
+ * @glyphs: (out): The #hb_set_t set of all glyphs belonging to the requested
311
+ * class.
312
+ *
313
+ * Retrieves the set of all glyphs from the face that belong to the requested
314
+ * glyph class in the face's GDEF table.
315
+ *
316
+ * Since: 0.9.7
317
+ **/
318
+ void
319
+ hb_ot_layout_get_glyphs_in_class (hb_face_t *face,
320
+ hb_ot_layout_glyph_class_t klass,
321
+ hb_set_t *glyphs /* OUT */)
322
+ {
323
+ return face->table.GDEF->table->get_glyphs_in_class (klass, glyphs);
324
+ }
325
+
326
+ #ifndef HB_NO_LAYOUT_UNUSED
327
+ /**
328
+ * hb_ot_layout_get_attach_points:
329
+ * @face: The #hb_face_t to work on
330
+ * @glyph: The #hb_codepoint_t code point to query
331
+ * @start_offset: offset of the first attachment point to retrieve
332
+ * @point_count: (inout) (optional): Input = the maximum number of attachment points to return;
333
+ * Output = the actual number of attachment points returned (may be zero)
334
+ * @point_array: (out) (array length=point_count): The array of attachment points found for the query
335
+ *
336
+ * Fetches a list of all attachment points for the specified glyph in the GDEF
337
+ * table of the face. The list returned will begin at the offset provided.
338
+ *
339
+ * Useful if the client program wishes to cache the list.
340
+ *
341
+ * Return value: Total number of attachment points for @glyph.
342
+ *
343
+ **/
344
+ unsigned int
345
+ hb_ot_layout_get_attach_points (hb_face_t *face,
346
+ hb_codepoint_t glyph,
347
+ unsigned int start_offset,
348
+ unsigned int *point_count /* IN/OUT */,
349
+ unsigned int *point_array /* OUT */)
350
+ {
351
+ return face->table.GDEF->table->get_attach_points (glyph,
352
+ start_offset,
353
+ point_count,
354
+ point_array);
355
+ }
356
+ /**
357
+ * hb_ot_layout_get_ligature_carets:
358
+ * @font: The #hb_font_t to work on
359
+ * @direction: The #hb_direction_t text direction to use
360
+ * @glyph: The #hb_codepoint_t code point to query
361
+ * @start_offset: offset of the first caret position to retrieve
362
+ * @caret_count: (inout) (optional): Input = the maximum number of caret positions to return;
363
+ * Output = the actual number of caret positions returned (may be zero)
364
+ * @caret_array: (out) (array length=caret_count): The array of caret positions found for the query
365
+ *
366
+ * Fetches a list of the caret positions defined for a ligature glyph in the GDEF
367
+ * table of the font. The list returned will begin at the offset provided.
368
+ *
369
+ * Note that a ligature that is formed from n characters will have n-1
370
+ * caret positions. The first character is not represented in the array,
371
+ * since its caret position is the glyph position.
372
+ *
373
+ * The positions returned by this function are 'unshaped', and will have to
374
+ * be fixed up for kerning that may be applied to the ligature glyph.
375
+ *
376
+ * Return value: Total number of ligature caret positions for @glyph.
377
+ *
378
+ **/
379
+ unsigned int
380
+ hb_ot_layout_get_ligature_carets (hb_font_t *font,
381
+ hb_direction_t direction,
382
+ hb_codepoint_t glyph,
383
+ unsigned int start_offset,
384
+ unsigned int *caret_count /* IN/OUT */,
385
+ hb_position_t *caret_array /* OUT */)
386
+ {
387
+ return font->face->table.GDEF->table->get_lig_carets (font, direction, glyph, start_offset, caret_count, caret_array);
388
+ }
389
+ #endif
390
+
391
+
392
+ /*
393
+ * GSUB/GPOS
394
+ */
395
+
396
+ bool
397
+ GSUB::is_blocklisted (hb_blob_t *blob HB_UNUSED,
398
+ hb_face_t *face) const
399
+ {
400
+ #ifdef HB_NO_OT_LAYOUT_BLOCKLIST
401
+ return false;
402
+ #endif
403
+ return false;
404
+ }
405
+
406
+ bool
407
+ GPOS::is_blocklisted (hb_blob_t *blob HB_UNUSED,
408
+ hb_face_t *face HB_UNUSED) const
409
+ {
410
+ #ifdef HB_NO_OT_LAYOUT_BLOCKLIST
411
+ return false;
412
+ #endif
413
+ return false;
414
+ }
415
+
416
+ static const OT::GSUBGPOS&
417
+ get_gsubgpos_table (hb_face_t *face,
418
+ hb_tag_t table_tag)
419
+ {
420
+ switch (table_tag) {
421
+ case HB_OT_TAG_GSUB: return *face->table.GSUB->table;
422
+ case HB_OT_TAG_GPOS: return *face->table.GPOS->table;
423
+ default: return Null (OT::GSUBGPOS);
424
+ }
425
+ }
426
+
427
+
428
+ /**
429
+ * hb_ot_layout_table_get_script_tags:
430
+ * @face: #hb_face_t to work upon
431
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
432
+ * @start_offset: offset of the first script tag to retrieve
433
+ * @script_count: (inout) (optional): Input = the maximum number of script tags to return;
434
+ * Output = the actual number of script tags returned (may be zero)
435
+ * @script_tags: (out) (array length=script_count): The array of #hb_tag_t script tags found for the query
436
+ *
437
+ * Fetches a list of all scripts enumerated in the specified face's GSUB table
438
+ * or GPOS table. The list returned will begin at the offset provided.
439
+ *
440
+ * Return value: Total number of script tags.
441
+ *
442
+ **/
443
+ unsigned int
444
+ hb_ot_layout_table_get_script_tags (hb_face_t *face,
445
+ hb_tag_t table_tag,
446
+ unsigned int start_offset,
447
+ unsigned int *script_count /* IN/OUT */,
448
+ hb_tag_t *script_tags /* OUT */)
449
+ {
450
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
451
+
452
+ return g.get_script_tags (start_offset, script_count, script_tags);
453
+ }
454
+
455
+ #define HB_OT_TAG_LATIN_SCRIPT HB_TAG ('l', 'a', 't', 'n')
456
+
457
+ /**
458
+ * hb_ot_layout_table_find_script:
459
+ * @face: #hb_face_t to work upon
460
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
461
+ * @script_tag: #hb_tag_t of the script tag requested
462
+ * @script_index: (out): The index of the requested script tag
463
+ *
464
+ * Fetches the index if a given script tag in the specified face's GSUB table
465
+ * or GPOS table.
466
+ *
467
+ * Return value: `true` if the script is found, `false` otherwise
468
+ *
469
+ **/
470
+ hb_bool_t
471
+ hb_ot_layout_table_find_script (hb_face_t *face,
472
+ hb_tag_t table_tag,
473
+ hb_tag_t script_tag,
474
+ unsigned int *script_index /* OUT */)
475
+ {
476
+ static_assert ((OT::Index::NOT_FOUND_INDEX == HB_OT_LAYOUT_NO_SCRIPT_INDEX), "");
477
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
478
+
479
+ if (g.find_script_index (script_tag, script_index))
480
+ return true;
481
+
482
+ /* try finding 'DFLT' */
483
+ if (g.find_script_index (HB_OT_TAG_DEFAULT_SCRIPT, script_index))
484
+ return false;
485
+
486
+ /* try with 'dflt'; MS site has had typos and many fonts use it now :(.
487
+ * including many versions of DejaVu Sans Mono! */
488
+ if (g.find_script_index (HB_OT_TAG_DEFAULT_LANGUAGE, script_index))
489
+ return false;
490
+
491
+ /* try with 'latn'; some old fonts put their features there even though
492
+ they're really trying to support Thai, for example :( */
493
+ if (g.find_script_index (HB_OT_TAG_LATIN_SCRIPT, script_index))
494
+ return false;
495
+
496
+ if (script_index) *script_index = HB_OT_LAYOUT_NO_SCRIPT_INDEX;
497
+ return false;
498
+ }
499
+
500
+ #ifndef HB_DISABLE_DEPRECATED
501
+ /**
502
+ * hb_ot_layout_table_choose_script:
503
+ * @face: #hb_face_t to work upon
504
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
505
+ * @script_tags: Array of #hb_tag_t script tags
506
+ * @script_index: (out): The index of the chosen script
507
+ * @chosen_script: (out): #hb_tag_t of the chosen script
508
+ *
509
+ * Deprecated since 2.0.0
510
+ **/
511
+ hb_bool_t
512
+ hb_ot_layout_table_choose_script (hb_face_t *face,
513
+ hb_tag_t table_tag,
514
+ const hb_tag_t *script_tags,
515
+ unsigned int *script_index /* OUT */,
516
+ hb_tag_t *chosen_script /* OUT */)
517
+ {
518
+ const hb_tag_t *t;
519
+ for (t = script_tags; *t; t++);
520
+ return hb_ot_layout_table_select_script (face, table_tag, t - script_tags, script_tags, script_index, chosen_script);
521
+ }
522
+ #endif
523
+
524
+ /**
525
+ * hb_ot_layout_table_select_script:
526
+ * @face: #hb_face_t to work upon
527
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
528
+ * @script_count: Number of script tags in the array
529
+ * @script_tags: Array of #hb_tag_t script tags
530
+ * @script_index: (out) (optional): The index of the requested script
531
+ * @chosen_script: (out) (optional): #hb_tag_t of the requested script
532
+ *
533
+ * Selects an OpenType script for @table_tag from the @script_tags array.
534
+ *
535
+ * If the table does not have any of the requested scripts, then `DFLT`,
536
+ * `dflt`, and `latn` tags are tried in that order. If the table still does not
537
+ * have any of these scripts, @script_index is set to
538
+ * #HB_OT_LAYOUT_NO_SCRIPT_INDEX and @chosen_script is set to #HB_TAG_NONE.
539
+ *
540
+ * Return value:
541
+ * `true` if one of the requested scripts is selected, `false` if a fallback
542
+ * script is selected or if no scripts are selected.
543
+ *
544
+ * Since: 2.0.0
545
+ **/
546
+ hb_bool_t
547
+ hb_ot_layout_table_select_script (hb_face_t *face,
548
+ hb_tag_t table_tag,
549
+ unsigned int script_count,
550
+ const hb_tag_t *script_tags,
551
+ unsigned int *script_index /* OUT */,
552
+ hb_tag_t *chosen_script /* OUT */)
553
+ {
554
+ static_assert ((OT::Index::NOT_FOUND_INDEX == HB_OT_LAYOUT_NO_SCRIPT_INDEX), "");
555
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
556
+ unsigned int i;
557
+
558
+ for (i = 0; i < script_count; i++)
559
+ {
560
+ if (g.find_script_index (script_tags[i], script_index))
561
+ {
562
+ if (chosen_script)
563
+ *chosen_script = script_tags[i];
564
+ return true;
565
+ }
566
+ }
567
+
568
+ /* try finding 'DFLT' */
569
+ if (g.find_script_index (HB_OT_TAG_DEFAULT_SCRIPT, script_index)) {
570
+ if (chosen_script)
571
+ *chosen_script = HB_OT_TAG_DEFAULT_SCRIPT;
572
+ return false;
573
+ }
574
+
575
+ /* try with 'dflt'; MS site has had typos and many fonts use it now :( */
576
+ if (g.find_script_index (HB_OT_TAG_DEFAULT_LANGUAGE, script_index)) {
577
+ if (chosen_script)
578
+ *chosen_script = HB_OT_TAG_DEFAULT_LANGUAGE;
579
+ return false;
580
+ }
581
+
582
+ /* try with 'latn'; some old fonts put their features there even though
583
+ they're really trying to support Thai, for example :( */
584
+ if (g.find_script_index (HB_OT_TAG_LATIN_SCRIPT, script_index)) {
585
+ if (chosen_script)
586
+ *chosen_script = HB_OT_TAG_LATIN_SCRIPT;
587
+ return false;
588
+ }
589
+
590
+ if (script_index) *script_index = HB_OT_LAYOUT_NO_SCRIPT_INDEX;
591
+ if (chosen_script)
592
+ *chosen_script = HB_TAG_NONE;
593
+ return false;
594
+ }
595
+
596
+
597
+ /**
598
+ * hb_ot_layout_table_get_feature_tags:
599
+ * @face: #hb_face_t to work upon
600
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
601
+ * @start_offset: offset of the first feature tag to retrieve
602
+ * @feature_count: (inout) (optional): Input = the maximum number of feature tags to return;
603
+ * Output = the actual number of feature tags returned (may be zero)
604
+ * @feature_tags: (out) (array length=feature_count): Array of feature tags found in the table
605
+ *
606
+ * Fetches a list of all feature tags in the given face's GSUB or GPOS table.
607
+ * Note that there might be duplicate feature tags, belonging to different
608
+ * script/language-system pairs of the table.
609
+ *
610
+ * Return value: Total number of feature tags.
611
+ *
612
+ * Since: 0.6.0
613
+ *
614
+ **/
615
+ unsigned int
616
+ hb_ot_layout_table_get_feature_tags (hb_face_t *face,
617
+ hb_tag_t table_tag,
618
+ unsigned int start_offset,
619
+ unsigned int *feature_count /* IN/OUT */,
620
+ hb_tag_t *feature_tags /* OUT */)
621
+ {
622
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
623
+
624
+ return g.get_feature_tags (start_offset, feature_count, feature_tags);
625
+ }
626
+
627
+
628
+ /**
629
+ * hb_ot_layout_table_find_feature:
630
+ * @face: #hb_face_t to work upon
631
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
632
+ * @feature_tag: The #hb_tag_t of the requested feature tag
633
+ * @feature_index: (out): The index of the requested feature
634
+ *
635
+ * Fetches the index for a given feature tag in the specified face's GSUB table
636
+ * or GPOS table.
637
+ *
638
+ * Return value: `true` if the feature is found, `false` otherwise
639
+ *
640
+ * Since: 0.6.0
641
+ *
642
+ **/
643
+ bool
644
+ hb_ot_layout_table_find_feature (hb_face_t *face,
645
+ hb_tag_t table_tag,
646
+ hb_tag_t feature_tag,
647
+ unsigned int *feature_index /* OUT */)
648
+ {
649
+ static_assert ((OT::Index::NOT_FOUND_INDEX == HB_OT_LAYOUT_NO_FEATURE_INDEX), "");
650
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
651
+
652
+ unsigned int num_features = g.get_feature_count ();
653
+ for (unsigned int i = 0; i < num_features; i++)
654
+ {
655
+ if (feature_tag == g.get_feature_tag (i)) {
656
+ if (feature_index) *feature_index = i;
657
+ return true;
658
+ }
659
+ }
660
+
661
+ if (feature_index) *feature_index = HB_OT_LAYOUT_NO_FEATURE_INDEX;
662
+ return false;
663
+ }
664
+
665
+
666
+ /**
667
+ * hb_ot_layout_script_get_language_tags:
668
+ * @face: #hb_face_t to work upon
669
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
670
+ * @script_index: The index of the requested script tag
671
+ * @start_offset: offset of the first language tag to retrieve
672
+ * @language_count: (inout) (optional): Input = the maximum number of language tags to return;
673
+ * Output = the actual number of language tags returned (may be zero)
674
+ * @language_tags: (out) (array length=language_count): Array of language tags found in the table
675
+ *
676
+ * Fetches a list of language tags in the given face's GSUB or GPOS table, underneath
677
+ * the specified script index. The list returned will begin at the offset provided.
678
+ *
679
+ * Return value: Total number of language tags.
680
+ *
681
+ * Since: 0.6.0
682
+ *
683
+ **/
684
+ unsigned int
685
+ hb_ot_layout_script_get_language_tags (hb_face_t *face,
686
+ hb_tag_t table_tag,
687
+ unsigned int script_index,
688
+ unsigned int start_offset,
689
+ unsigned int *language_count /* IN/OUT */,
690
+ hb_tag_t *language_tags /* OUT */)
691
+ {
692
+ const OT::Script &s = get_gsubgpos_table (face, table_tag).get_script (script_index);
693
+
694
+ return s.get_lang_sys_tags (start_offset, language_count, language_tags);
695
+ }
696
+
697
+
698
+ #ifndef HB_DISABLE_DEPRECATED
699
+ /**
700
+ * hb_ot_layout_script_find_language:
701
+ * @face: #hb_face_t to work upon
702
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
703
+ * @script_index: The index of the requested script tag
704
+ * @language_tag: The #hb_tag_t of the requested language
705
+ * @language_index: The index of the requested language
706
+ *
707
+ * Fetches the index of a given language tag in the specified face's GSUB table
708
+ * or GPOS table, underneath the specified script tag.
709
+ *
710
+ * Return value: `true` if the language tag is found, `false` otherwise
711
+ *
712
+ * Since: 0.6.0
713
+ * Deprecated: 2.0.0
714
+ **/
715
+ hb_bool_t
716
+ hb_ot_layout_script_find_language (hb_face_t *face,
717
+ hb_tag_t table_tag,
718
+ unsigned int script_index,
719
+ hb_tag_t language_tag,
720
+ unsigned int *language_index)
721
+ {
722
+ return hb_ot_layout_script_select_language (face,
723
+ table_tag,
724
+ script_index,
725
+ 1,
726
+ &language_tag,
727
+ language_index);
728
+ }
729
+ #endif
730
+
731
+
732
+ /**
733
+ * hb_ot_layout_script_select_language2:
734
+ * @face: #hb_face_t to work upon
735
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
736
+ * @script_index: The index of the requested script tag
737
+ * @language_count: The number of languages in the specified script
738
+ * @language_tags: The array of language tags
739
+ * @language_index: (out): The index of the chosen language
740
+ * @chosen_language: (out): #hb_tag_t of the chosen language
741
+ *
742
+ * Fetches the index of the first language tag fom @language_tags that is present
743
+ * in the specified face's GSUB or GPOS table, underneath the specified script
744
+ * index.
745
+ *
746
+ * If none of the given language tags is found, `false` is returned and
747
+ * @language_index is set to #HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX and
748
+ * @chosen_language is set to #HB_TAG_NONE.
749
+ *
750
+ * Return value: `true` if one of the given language tags is found, `false` otherwise
751
+ *
752
+ * Since: 7.0.0
753
+ **/
754
+ hb_bool_t
755
+ hb_ot_layout_script_select_language2 (hb_face_t *face,
756
+ hb_tag_t table_tag,
757
+ unsigned int script_index,
758
+ unsigned int language_count,
759
+ const hb_tag_t *language_tags,
760
+ unsigned int *language_index /* OUT */,
761
+ hb_tag_t *chosen_language /* OUT */)
762
+ {
763
+ static_assert ((OT::Index::NOT_FOUND_INDEX == HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX), "");
764
+ const OT::Script &s = get_gsubgpos_table (face, table_tag).get_script (script_index);
765
+ unsigned int i;
766
+
767
+ for (i = 0; i < language_count; i++)
768
+ {
769
+ if (s.find_lang_sys_index (language_tags[i], language_index))
770
+ {
771
+ if (chosen_language)
772
+ *chosen_language = language_tags[i];
773
+ return true;
774
+ }
775
+ }
776
+
777
+ /* try finding 'dflt' */
778
+ if (s.find_lang_sys_index (HB_OT_TAG_DEFAULT_LANGUAGE, language_index))
779
+ {
780
+ if (chosen_language)
781
+ *chosen_language = HB_OT_TAG_DEFAULT_LANGUAGE;
782
+ return false;
783
+ }
784
+
785
+ if (language_index)
786
+ *language_index = HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX;
787
+ if (chosen_language)
788
+ *chosen_language = HB_TAG_NONE;
789
+ return false;
790
+ }
791
+
792
+ /**
793
+ * hb_ot_layout_script_select_language:
794
+ * @face: #hb_face_t to work upon
795
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
796
+ * @script_index: The index of the requested script tag
797
+ * @language_count: The number of languages in the specified script
798
+ * @language_tags: The array of language tags
799
+ * @language_index: (out): The index of the requested language
800
+ *
801
+ * Fetches the index of the first language tag fom @language_tags that is present
802
+ * in the specified face's GSUB or GPOS table, underneath the specified script
803
+ * index.
804
+ *
805
+ * If none of the given language tags is found, `false` is returned and
806
+ * @language_index is set to the default language index.
807
+ *
808
+ * Return value: `true` if one of the given language tags is found, `false` otherwise
809
+ *
810
+ * Since: 2.0.0
811
+ **/
812
+ hb_bool_t
813
+ hb_ot_layout_script_select_language (hb_face_t *face,
814
+ hb_tag_t table_tag,
815
+ unsigned int script_index,
816
+ unsigned int language_count,
817
+ const hb_tag_t *language_tags,
818
+ unsigned int *language_index /* OUT */)
819
+ {
820
+ return hb_ot_layout_script_select_language2 (face, table_tag,
821
+ script_index,
822
+ language_count, language_tags,
823
+ language_index, nullptr);
824
+ }
825
+
826
+ /**
827
+ * hb_ot_layout_language_get_required_feature_index:
828
+ * @face: #hb_face_t to work upon
829
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
830
+ * @script_index: The index of the requested script tag
831
+ * @language_index: The index of the requested language tag
832
+ * @feature_index: (out): The index of the requested feature
833
+ *
834
+ * Fetches the index of a requested feature in the given face's GSUB or GPOS table,
835
+ * underneath the specified script and language.
836
+ *
837
+ * Return value: `true` if the feature is found, `false` otherwise
838
+ *
839
+ * Since: 0.6.0
840
+ *
841
+ **/
842
+ hb_bool_t
843
+ hb_ot_layout_language_get_required_feature_index (hb_face_t *face,
844
+ hb_tag_t table_tag,
845
+ unsigned int script_index,
846
+ unsigned int language_index,
847
+ unsigned int *feature_index /* OUT */)
848
+ {
849
+ return hb_ot_layout_language_get_required_feature (face,
850
+ table_tag,
851
+ script_index,
852
+ language_index,
853
+ feature_index,
854
+ nullptr);
855
+ }
856
+
857
+
858
+ /**
859
+ * hb_ot_layout_language_get_required_feature:
860
+ * @face: #hb_face_t to work upon
861
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
862
+ * @script_index: The index of the requested script tag
863
+ * @language_index: The index of the requested language tag
864
+ * @feature_index: (out): The index of the requested feature
865
+ * @feature_tag: (out): The #hb_tag_t of the requested feature
866
+ *
867
+ * Fetches the tag of a requested feature index in the given face's GSUB or GPOS table,
868
+ * underneath the specified script and language.
869
+ *
870
+ * Return value: `true` if the feature is found, `false` otherwise
871
+ *
872
+ * Since: 0.9.30
873
+ **/
874
+ hb_bool_t
875
+ hb_ot_layout_language_get_required_feature (hb_face_t *face,
876
+ hb_tag_t table_tag,
877
+ unsigned int script_index,
878
+ unsigned int language_index,
879
+ unsigned int *feature_index /* OUT */,
880
+ hb_tag_t *feature_tag /* OUT */)
881
+ {
882
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
883
+ const OT::LangSys &l = g.get_script (script_index).get_lang_sys (language_index);
884
+
885
+ unsigned int index = l.get_required_feature_index ();
886
+ if (feature_index) *feature_index = index;
887
+ if (feature_tag) *feature_tag = g.get_feature_tag (index);
888
+
889
+ return l.has_required_feature ();
890
+ }
891
+
892
+
893
+ /**
894
+ * hb_ot_layout_language_get_feature_indexes:
895
+ * @face: #hb_face_t to work upon
896
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
897
+ * @script_index: The index of the requested script tag
898
+ * @language_index: The index of the requested language tag
899
+ * @start_offset: offset of the first feature tag to retrieve
900
+ * @feature_count: (inout) (optional): Input = the maximum number of feature tags to return;
901
+ * Output: the actual number of feature tags returned (may be zero)
902
+ * @feature_indexes: (out) (array length=feature_count): The array of feature indexes found for the query
903
+ *
904
+ * Fetches a list of all features in the specified face's GSUB table
905
+ * or GPOS table, underneath the specified script and language. The list
906
+ * returned will begin at the offset provided.
907
+ *
908
+ * Return value: Total number of features.
909
+ *
910
+ * Since: 0.6.0
911
+ *
912
+ **/
913
+ unsigned int
914
+ hb_ot_layout_language_get_feature_indexes (hb_face_t *face,
915
+ hb_tag_t table_tag,
916
+ unsigned int script_index,
917
+ unsigned int language_index,
918
+ unsigned int start_offset,
919
+ unsigned int *feature_count /* IN/OUT */,
920
+ unsigned int *feature_indexes /* OUT */)
921
+ {
922
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
923
+ const OT::LangSys &l = g.get_script (script_index).get_lang_sys (language_index);
924
+
925
+ return l.get_feature_indexes (start_offset, feature_count, feature_indexes);
926
+ }
927
+
928
+
929
+ /**
930
+ * hb_ot_layout_language_get_feature_tags:
931
+ * @face: #hb_face_t to work upon
932
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
933
+ * @script_index: The index of the requested script tag
934
+ * @language_index: The index of the requested language tag
935
+ * @start_offset: offset of the first feature tag to retrieve
936
+ * @feature_count: (inout) (optional): Input = the maximum number of feature tags to return;
937
+ * Output = the actual number of feature tags returned (may be zero)
938
+ * @feature_tags: (out) (array length=feature_count): The array of #hb_tag_t feature tags found for the query
939
+ *
940
+ * Fetches a list of all features in the specified face's GSUB table
941
+ * or GPOS table, underneath the specified script and language. The list
942
+ * returned will begin at the offset provided.
943
+ *
944
+ * Return value: Total number of feature tags.
945
+ *
946
+ * Since: 0.6.0
947
+ *
948
+ **/
949
+ unsigned int
950
+ hb_ot_layout_language_get_feature_tags (hb_face_t *face,
951
+ hb_tag_t table_tag,
952
+ unsigned int script_index,
953
+ unsigned int language_index,
954
+ unsigned int start_offset,
955
+ unsigned int *feature_count /* IN/OUT */,
956
+ hb_tag_t *feature_tags /* OUT */)
957
+ {
958
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
959
+ const OT::LangSys &l = g.get_script (script_index).get_lang_sys (language_index);
960
+
961
+ static_assert ((sizeof (unsigned int) == sizeof (hb_tag_t)), "");
962
+ unsigned int ret = l.get_feature_indexes (start_offset, feature_count, (unsigned int *) feature_tags);
963
+
964
+ if (feature_tags) {
965
+ unsigned int count = *feature_count;
966
+ for (unsigned int i = 0; i < count; i++)
967
+ feature_tags[i] = g.get_feature_tag ((unsigned int) feature_tags[i]);
968
+ }
969
+
970
+ return ret;
971
+ }
972
+
973
+
974
+ /**
975
+ * hb_ot_layout_language_find_feature:
976
+ * @face: #hb_face_t to work upon
977
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
978
+ * @script_index: The index of the requested script tag
979
+ * @language_index: The index of the requested language tag
980
+ * @feature_tag: #hb_tag_t of the feature tag requested
981
+ * @feature_index: (out): The index of the requested feature
982
+ *
983
+ * Fetches the index of a given feature tag in the specified face's GSUB table
984
+ * or GPOS table, underneath the specified script and language.
985
+ *
986
+ * Return value: `true` if the feature is found, `false` otherwise
987
+ *
988
+ * Since: 0.6.0
989
+ *
990
+ **/
991
+ hb_bool_t
992
+ hb_ot_layout_language_find_feature (hb_face_t *face,
993
+ hb_tag_t table_tag,
994
+ unsigned int script_index,
995
+ unsigned int language_index,
996
+ hb_tag_t feature_tag,
997
+ unsigned int *feature_index /* OUT */)
998
+ {
999
+ static_assert ((OT::Index::NOT_FOUND_INDEX == HB_OT_LAYOUT_NO_FEATURE_INDEX), "");
1000
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1001
+ const OT::LangSys &l = g.get_script (script_index).get_lang_sys (language_index);
1002
+
1003
+ unsigned int num_features = l.get_feature_count ();
1004
+ for (unsigned int i = 0; i < num_features; i++) {
1005
+ unsigned int f_index = l.get_feature_index (i);
1006
+
1007
+ if (feature_tag == g.get_feature_tag (f_index)) {
1008
+ if (feature_index) *feature_index = f_index;
1009
+ return true;
1010
+ }
1011
+ }
1012
+
1013
+ if (feature_index) *feature_index = HB_OT_LAYOUT_NO_FEATURE_INDEX;
1014
+ return false;
1015
+ }
1016
+
1017
+
1018
+ /**
1019
+ * hb_ot_layout_feature_get_lookups:
1020
+ * @face: #hb_face_t to work upon
1021
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1022
+ * @feature_index: The index of the requested feature
1023
+ * @start_offset: offset of the first lookup to retrieve
1024
+ * @lookup_count: (inout) (optional): Input = the maximum number of lookups to return;
1025
+ * Output = the actual number of lookups returned (may be zero)
1026
+ * @lookup_indexes: (out) (array length=lookup_count): The array of lookup indexes found for the query
1027
+ *
1028
+ * Fetches a list of all lookups enumerated for the specified feature, in
1029
+ * the specified face's GSUB table or GPOS table. The list returned will
1030
+ * begin at the offset provided.
1031
+ *
1032
+ * Return value: Total number of lookups.
1033
+ *
1034
+ * Since: 0.9.7
1035
+ **/
1036
+ unsigned int
1037
+ hb_ot_layout_feature_get_lookups (hb_face_t *face,
1038
+ hb_tag_t table_tag,
1039
+ unsigned int feature_index,
1040
+ unsigned int start_offset,
1041
+ unsigned int *lookup_count /* IN/OUT */,
1042
+ unsigned int *lookup_indexes /* OUT */)
1043
+ {
1044
+ return hb_ot_layout_feature_with_variations_get_lookups (face,
1045
+ table_tag,
1046
+ feature_index,
1047
+ HB_OT_LAYOUT_NO_VARIATIONS_INDEX,
1048
+ start_offset,
1049
+ lookup_count,
1050
+ lookup_indexes);
1051
+ }
1052
+
1053
+
1054
+ /**
1055
+ * hb_ot_layout_table_get_lookup_count:
1056
+ * @face: #hb_face_t to work upon
1057
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1058
+ *
1059
+ * Fetches the total number of lookups enumerated in the specified
1060
+ * face's GSUB table or GPOS table.
1061
+ *
1062
+ * Return value: Total number of lookups.
1063
+ *
1064
+ * Since: 0.9.22
1065
+ **/
1066
+ unsigned int
1067
+ hb_ot_layout_table_get_lookup_count (hb_face_t *face,
1068
+ hb_tag_t table_tag)
1069
+ {
1070
+ return get_gsubgpos_table (face, table_tag).get_lookup_count ();
1071
+ }
1072
+
1073
+
1074
+ struct hb_collect_features_context_t
1075
+ {
1076
+ hb_collect_features_context_t (hb_face_t *face,
1077
+ hb_tag_t table_tag,
1078
+ hb_set_t *feature_indices_,
1079
+ const hb_tag_t *features)
1080
+
1081
+ : g (get_gsubgpos_table (face, table_tag)),
1082
+ feature_indices (feature_indices_),
1083
+ has_feature_filter (false),
1084
+ script_count (0),langsys_count (0), feature_index_count (0)
1085
+ {
1086
+ compute_feature_filter (features);
1087
+ }
1088
+
1089
+ void compute_feature_filter (const hb_tag_t *features)
1090
+ {
1091
+ if (features == nullptr)
1092
+ {
1093
+ has_feature_filter = false;
1094
+ return;
1095
+ }
1096
+
1097
+ has_feature_filter = true;
1098
+ hb_set_t features_set;
1099
+ for (; *features; features++)
1100
+ features_set.add (*features);
1101
+
1102
+ for (unsigned i = 0; i < g.get_feature_count (); i++)
1103
+ {
1104
+ hb_tag_t tag = g.get_feature_tag (i);
1105
+ if (features_set.has (tag))
1106
+ feature_indices_filter.add(i);
1107
+ }
1108
+ }
1109
+
1110
+ bool visited (const OT::Script &s)
1111
+ {
1112
+ /* We might have Null() object here. Don't want to involve
1113
+ * that in the memoize. So, detect empty objects and return. */
1114
+ if (unlikely (!s.has_default_lang_sys () &&
1115
+ !s.get_lang_sys_count ()))
1116
+ return true;
1117
+
1118
+ if (script_count++ > HB_MAX_SCRIPTS)
1119
+ return true;
1120
+
1121
+ return visited (s, visited_script);
1122
+ }
1123
+ bool visited (const OT::LangSys &l)
1124
+ {
1125
+ /* We might have Null() object here. Don't want to involve
1126
+ * that in the memoize. So, detect empty objects and return. */
1127
+ if (unlikely (!l.has_required_feature () &&
1128
+ !l.get_feature_count ()))
1129
+ return true;
1130
+
1131
+ if (langsys_count++ > HB_MAX_LANGSYS)
1132
+ return true;
1133
+
1134
+ return visited (l, visited_langsys);
1135
+ }
1136
+
1137
+ bool visited_feature_indices (unsigned count)
1138
+ {
1139
+ feature_index_count += count;
1140
+ return feature_index_count > HB_MAX_FEATURE_INDICES;
1141
+ }
1142
+
1143
+ private:
1144
+ template <typename T>
1145
+ bool visited (const T &p, hb_set_t &visited_set)
1146
+ {
1147
+ hb_codepoint_t delta = (hb_codepoint_t) ((uintptr_t) &p - (uintptr_t) &g);
1148
+ if (visited_set.has (delta))
1149
+ return true;
1150
+
1151
+ visited_set.add (delta);
1152
+ return false;
1153
+ }
1154
+
1155
+ public:
1156
+ const OT::GSUBGPOS &g;
1157
+ hb_set_t *feature_indices;
1158
+ hb_set_t feature_indices_filter;
1159
+ bool has_feature_filter;
1160
+
1161
+ private:
1162
+ hb_set_t visited_script;
1163
+ hb_set_t visited_langsys;
1164
+ unsigned int script_count;
1165
+ unsigned int langsys_count;
1166
+ unsigned int feature_index_count;
1167
+ };
1168
+
1169
+ static void
1170
+ langsys_collect_features (hb_collect_features_context_t *c,
1171
+ const OT::LangSys &l)
1172
+ {
1173
+ if (c->visited (l)) return;
1174
+
1175
+ if (!c->has_feature_filter)
1176
+ {
1177
+ /* All features. */
1178
+ if (l.has_required_feature () && !c->visited_feature_indices (1))
1179
+ c->feature_indices->add (l.get_required_feature_index ());
1180
+
1181
+ // TODO(garretrieger): filter out indices >= feature count?
1182
+ if (!c->visited_feature_indices (l.featureIndex.len))
1183
+ l.add_feature_indexes_to (c->feature_indices);
1184
+ }
1185
+ else
1186
+ {
1187
+ if (c->feature_indices_filter.is_empty()) return;
1188
+ unsigned int num_features = l.get_feature_count ();
1189
+ for (unsigned int i = 0; i < num_features; i++)
1190
+ {
1191
+ unsigned int feature_index = l.get_feature_index (i);
1192
+ if (!c->feature_indices_filter.has (feature_index)) continue;
1193
+
1194
+ c->feature_indices->add (feature_index);
1195
+ c->feature_indices_filter.del (feature_index);
1196
+ }
1197
+ }
1198
+ }
1199
+
1200
+ static void
1201
+ script_collect_features (hb_collect_features_context_t *c,
1202
+ const OT::Script &s,
1203
+ const hb_tag_t *languages)
1204
+ {
1205
+ if (c->visited (s)) return;
1206
+
1207
+ if (!languages)
1208
+ {
1209
+ /* All languages. */
1210
+ if (s.has_default_lang_sys ())
1211
+ langsys_collect_features (c,
1212
+ s.get_default_lang_sys ());
1213
+
1214
+
1215
+ unsigned int count = s.get_lang_sys_count ();
1216
+ for (unsigned int language_index = 0; language_index < count; language_index++)
1217
+ langsys_collect_features (c,
1218
+ s.get_lang_sys (language_index));
1219
+ }
1220
+ else
1221
+ {
1222
+ for (; *languages; languages++)
1223
+ {
1224
+ unsigned int language_index;
1225
+ if (s.find_lang_sys_index (*languages, &language_index))
1226
+ langsys_collect_features (c,
1227
+ s.get_lang_sys (language_index));
1228
+
1229
+ }
1230
+ }
1231
+ }
1232
+
1233
+
1234
+ /**
1235
+ * hb_ot_layout_collect_features:
1236
+ * @face: #hb_face_t to work upon
1237
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1238
+ * @scripts: (nullable) (array zero-terminated=1): The array of scripts to collect features for,
1239
+ * terminated by %HB_TAG_NONE
1240
+ * @languages: (nullable) (array zero-terminated=1): The array of languages to collect features for,
1241
+ * terminated by %HB_TAG_NONE
1242
+ * @features: (nullable) (array zero-terminated=1): The array of features to collect,
1243
+ * terminated by %HB_TAG_NONE
1244
+ * @feature_indexes: (out): The set of feature indexes found for the query
1245
+ *
1246
+ * Fetches a list of all feature indexes in the specified face's GSUB table
1247
+ * or GPOS table, underneath the specified scripts, languages, and features.
1248
+ * If no list of scripts is provided, all scripts will be queried. If no list
1249
+ * of languages is provided, all languages will be queried. If no list of
1250
+ * features is provided, all features will be queried.
1251
+ *
1252
+ * Since: 1.8.5
1253
+ **/
1254
+ void
1255
+ hb_ot_layout_collect_features (hb_face_t *face,
1256
+ hb_tag_t table_tag,
1257
+ const hb_tag_t *scripts,
1258
+ const hb_tag_t *languages,
1259
+ const hb_tag_t *features,
1260
+ hb_set_t *feature_indexes /* OUT */)
1261
+ {
1262
+ hb_collect_features_context_t c (face, table_tag, feature_indexes, features);
1263
+ if (!scripts)
1264
+ {
1265
+ /* All scripts. */
1266
+ unsigned int count = c.g.get_script_count ();
1267
+ for (unsigned int script_index = 0; script_index < count; script_index++)
1268
+ script_collect_features (&c,
1269
+ c.g.get_script (script_index),
1270
+ languages);
1271
+ }
1272
+ else
1273
+ {
1274
+ for (; *scripts; scripts++)
1275
+ {
1276
+ unsigned int script_index;
1277
+ if (c.g.find_script_index (*scripts, &script_index))
1278
+ script_collect_features (&c,
1279
+ c.g.get_script (script_index),
1280
+ languages);
1281
+ }
1282
+ }
1283
+ }
1284
+
1285
+ /**
1286
+ * hb_ot_layout_collect_features_map:
1287
+ * @face: #hb_face_t to work upon
1288
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1289
+ * @script_index: The index of the requested script tag
1290
+ * @language_index: The index of the requested language tag
1291
+ * @feature_map: (out): The map of feature tag to feature index.
1292
+ *
1293
+ * Fetches the mapping from feature tags to feature indexes for
1294
+ * the specified script and language.
1295
+ *
1296
+ * Since: 8.1.0
1297
+ **/
1298
+ void
1299
+ hb_ot_layout_collect_features_map (hb_face_t *face,
1300
+ hb_tag_t table_tag,
1301
+ unsigned script_index,
1302
+ unsigned language_index,
1303
+ hb_map_t *feature_map /* OUT */)
1304
+ {
1305
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1306
+ const OT::LangSys &l = g.get_script (script_index).get_lang_sys (language_index);
1307
+
1308
+ unsigned int count = l.get_feature_indexes (0, nullptr, nullptr);
1309
+ feature_map->alloc (count);
1310
+
1311
+ /* Loop in reverse, such that earlier entries win. That emulates
1312
+ * a linear search, which seems to be what other implementations do.
1313
+ * We found that with arialuni_t.ttf, the "ur" language system has
1314
+ * duplicate features, and the earlier ones work but not later ones.
1315
+ */
1316
+ for (unsigned int i = count; i; i--)
1317
+ {
1318
+ unsigned feature_index = 0;
1319
+ unsigned feature_count = 1;
1320
+ l.get_feature_indexes (i - 1, &feature_count, &feature_index);
1321
+ if (!feature_count)
1322
+ break;
1323
+ hb_tag_t feature_tag = g.get_feature_tag (feature_index);
1324
+ feature_map->set (feature_tag, feature_index);
1325
+ }
1326
+ }
1327
+
1328
+
1329
+ /**
1330
+ * hb_ot_layout_collect_lookups:
1331
+ * @face: #hb_face_t to work upon
1332
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1333
+ * @scripts: (nullable) (array zero-terminated=1): The array of scripts to collect lookups for,
1334
+ * terminated by %HB_TAG_NONE
1335
+ * @languages: (nullable) (array zero-terminated=1): The array of languages to collect lookups for,
1336
+ * terminated by %HB_TAG_NONE
1337
+ * @features: (nullable) (array zero-terminated=1): The array of features to collect lookups for,
1338
+ * terminated by %HB_TAG_NONE
1339
+ * @lookup_indexes: (out): The array of lookup indexes found for the query
1340
+ *
1341
+ * Fetches a list of all feature-lookup indexes in the specified face's GSUB
1342
+ * table or GPOS table, underneath the specified scripts, languages, and
1343
+ * features. If no list of scripts is provided, all scripts will be queried.
1344
+ * If no list of languages is provided, all languages will be queried. If no
1345
+ * list of features is provided, all features will be queried.
1346
+ *
1347
+ * Since: 0.9.8
1348
+ **/
1349
+ void
1350
+ hb_ot_layout_collect_lookups (hb_face_t *face,
1351
+ hb_tag_t table_tag,
1352
+ const hb_tag_t *scripts,
1353
+ const hb_tag_t *languages,
1354
+ const hb_tag_t *features,
1355
+ hb_set_t *lookup_indexes /* OUT */)
1356
+ {
1357
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1358
+
1359
+ hb_set_t feature_indexes;
1360
+ hb_ot_layout_collect_features (face, table_tag, scripts, languages, features, &feature_indexes);
1361
+
1362
+ for (auto feature_index : feature_indexes)
1363
+ g.get_feature (feature_index).add_lookup_indexes_to (lookup_indexes);
1364
+
1365
+ g.feature_variation_collect_lookups (&feature_indexes, nullptr, lookup_indexes);
1366
+ }
1367
+
1368
+
1369
+ #ifndef HB_NO_LAYOUT_COLLECT_GLYPHS
1370
+ /**
1371
+ * hb_ot_layout_lookup_collect_glyphs:
1372
+ * @face: #hb_face_t to work upon
1373
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1374
+ * @lookup_index: The index of the feature lookup to query
1375
+ * @glyphs_before: (out): Array of glyphs preceding the substitution range
1376
+ * @glyphs_input: (out): Array of input glyphs that would be substituted by the lookup
1377
+ * @glyphs_after: (out): Array of glyphs following the substitution range
1378
+ * @glyphs_output: (out): Array of glyphs that would be the substituted output of the lookup
1379
+ *
1380
+ * Fetches a list of all glyphs affected by the specified lookup in the
1381
+ * specified face's GSUB table or GPOS table.
1382
+ *
1383
+ * Since: 0.9.7
1384
+ **/
1385
+ void
1386
+ hb_ot_layout_lookup_collect_glyphs (hb_face_t *face,
1387
+ hb_tag_t table_tag,
1388
+ unsigned int lookup_index,
1389
+ hb_set_t *glyphs_before, /* OUT. May be NULL */
1390
+ hb_set_t *glyphs_input, /* OUT. May be NULL */
1391
+ hb_set_t *glyphs_after, /* OUT. May be NULL */
1392
+ hb_set_t *glyphs_output /* OUT. May be NULL */)
1393
+ {
1394
+ OT::hb_collect_glyphs_context_t c (face,
1395
+ glyphs_before,
1396
+ glyphs_input,
1397
+ glyphs_after,
1398
+ glyphs_output);
1399
+
1400
+ switch (table_tag)
1401
+ {
1402
+ case HB_OT_TAG_GSUB:
1403
+ {
1404
+ const OT::SubstLookup& l = face->table.GSUB->table->get_lookup (lookup_index);
1405
+ l.collect_glyphs (&c);
1406
+ return;
1407
+ }
1408
+ case HB_OT_TAG_GPOS:
1409
+ {
1410
+ const OT::PosLookup& l = face->table.GPOS->table->get_lookup (lookup_index);
1411
+ l.collect_glyphs (&c);
1412
+ return;
1413
+ }
1414
+ }
1415
+ }
1416
+ #endif
1417
+
1418
+
1419
+ /* Variations support */
1420
+
1421
+
1422
+ /**
1423
+ * hb_ot_layout_table_find_feature_variations:
1424
+ * @face: #hb_face_t to work upon
1425
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1426
+ * @coords: The variation coordinates to query
1427
+ * @num_coords: The number of variation coordinates
1428
+ * @variations_index: (out): The array of feature variations found for the query
1429
+ *
1430
+ * Fetches a list of feature variations in the specified face's GSUB table
1431
+ * or GPOS table, at the specified variation coordinates.
1432
+ *
1433
+ * Return value: `true` if feature variations were found, `false` otherwise.
1434
+ *
1435
+ * Since: 1.4.0
1436
+ *
1437
+ **/
1438
+ hb_bool_t
1439
+ hb_ot_layout_table_find_feature_variations (hb_face_t *face,
1440
+ hb_tag_t table_tag,
1441
+ const int *coords,
1442
+ unsigned int num_coords,
1443
+ unsigned int *variations_index /* out */)
1444
+ {
1445
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1446
+ const OT::GDEF &gdef = *face->table.GDEF->table;
1447
+
1448
+ auto instancer = OT::ItemVarStoreInstancer(&gdef.get_var_store(), nullptr,
1449
+ hb_array (coords, num_coords));
1450
+
1451
+ return g.find_variations_index (coords, num_coords, variations_index, &instancer);
1452
+ }
1453
+
1454
+
1455
+ /**
1456
+ * hb_ot_layout_feature_with_variations_get_lookups:
1457
+ * @face: #hb_face_t to work upon
1458
+ * @table_tag: #HB_OT_TAG_GSUB or #HB_OT_TAG_GPOS
1459
+ * @feature_index: The index of the feature to query
1460
+ * @variations_index: The index of the feature variation to query
1461
+ * @start_offset: offset of the first lookup to retrieve
1462
+ * @lookup_count: (inout) (optional): Input = the maximum number of lookups to return;
1463
+ * Output = the actual number of lookups returned (may be zero)
1464
+ * @lookup_indexes: (out) (array length=lookup_count): The array of lookups found for the query
1465
+ *
1466
+ * Fetches a list of all lookups enumerated for the specified feature, in
1467
+ * the specified face's GSUB table or GPOS table, enabled at the specified
1468
+ * variations index. The list returned will begin at the offset provided.
1469
+ *
1470
+ * Return value: Total number of lookups.
1471
+ *
1472
+ * Since: 1.4.0
1473
+ *
1474
+ **/
1475
+ unsigned int
1476
+ hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face,
1477
+ hb_tag_t table_tag,
1478
+ unsigned int feature_index,
1479
+ unsigned int variations_index,
1480
+ unsigned int start_offset,
1481
+ unsigned int *lookup_count /* IN/OUT */,
1482
+ unsigned int *lookup_indexes /* OUT */)
1483
+ {
1484
+ static_assert ((OT::FeatureVariations::NOT_FOUND_INDEX == HB_OT_LAYOUT_NO_VARIATIONS_INDEX), "");
1485
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1486
+
1487
+ const OT::Feature &f = g.get_feature_variation (feature_index, variations_index);
1488
+
1489
+ return f.get_lookup_indexes (start_offset, lookup_count, lookup_indexes);
1490
+ }
1491
+
1492
+
1493
+ /*
1494
+ * OT::GSUB
1495
+ */
1496
+
1497
+
1498
+ /**
1499
+ * hb_ot_layout_has_substitution:
1500
+ * @face: #hb_face_t to work upon
1501
+ *
1502
+ * Tests whether the specified face includes any GSUB substitutions.
1503
+ *
1504
+ * Return value: `true` if data found, `false` otherwise
1505
+ *
1506
+ * Since: 0.6.0
1507
+ *
1508
+ **/
1509
+ hb_bool_t
1510
+ hb_ot_layout_has_substitution (hb_face_t *face)
1511
+ {
1512
+ return face->table.GSUB->table->has_data ();
1513
+ }
1514
+
1515
+
1516
+ /**
1517
+ * hb_ot_layout_lookup_would_substitute:
1518
+ * @face: #hb_face_t to work upon
1519
+ * @lookup_index: The index of the lookup to query
1520
+ * @glyphs: The sequence of glyphs to query for substitution
1521
+ * @glyphs_length: The length of the glyph sequence
1522
+ * @zero_context: #hb_bool_t indicating whether pre-/post-context are disallowed
1523
+ * in substitutions
1524
+ *
1525
+ * Tests whether a specified lookup in the specified face would
1526
+ * trigger a substitution on the given glyph sequence.
1527
+ *
1528
+ * Return value: `true` if a substitution would be triggered, `false` otherwise
1529
+ *
1530
+ * Since: 0.9.7
1531
+ **/
1532
+ hb_bool_t
1533
+ hb_ot_layout_lookup_would_substitute (hb_face_t *face,
1534
+ unsigned int lookup_index,
1535
+ const hb_codepoint_t *glyphs,
1536
+ unsigned int glyphs_length,
1537
+ hb_bool_t zero_context)
1538
+ {
1539
+ auto &gsub = face->table.GSUB;
1540
+ if (unlikely (lookup_index >= gsub->lookup_count)) return false;
1541
+ OT::hb_would_apply_context_t c (face, glyphs, glyphs_length, (bool) zero_context);
1542
+
1543
+ const OT::SubstLookup& l = gsub->table->get_lookup (lookup_index);
1544
+ auto *accel = gsub->get_accel (lookup_index);
1545
+ return accel && l.would_apply (&c, accel);
1546
+ }
1547
+
1548
+
1549
+ /**
1550
+ * hb_ot_layout_substitute_start:
1551
+ * @font: #hb_font_t to use
1552
+ * @buffer: #hb_buffer_t buffer to work upon
1553
+ *
1554
+ * Called before substitution lookups are performed, to ensure that glyph
1555
+ * class and other properties are set on the glyphs in the buffer.
1556
+ *
1557
+ **/
1558
+ void
1559
+ hb_ot_layout_substitute_start (hb_font_t *font,
1560
+ hb_buffer_t *buffer)
1561
+ {
1562
+ _hb_ot_layout_set_glyph_props (font, buffer);
1563
+ }
1564
+
1565
+ /**
1566
+ * hb_ot_layout_lookup_substitute_closure:
1567
+ * @face: #hb_face_t to work upon
1568
+ * @lookup_index: index of the feature lookup to query
1569
+ * @glyphs: (out): Array of glyphs comprising the transitive closure of the lookup
1570
+ *
1571
+ * Compute the transitive closure of glyphs needed for a
1572
+ * specified lookup.
1573
+ *
1574
+ * Since: 0.9.7
1575
+ **/
1576
+ void
1577
+ hb_ot_layout_lookup_substitute_closure (hb_face_t *face,
1578
+ unsigned int lookup_index,
1579
+ hb_set_t *glyphs /* OUT */)
1580
+ {
1581
+ hb_map_t done_lookups_glyph_count;
1582
+ hb_hashmap_t<unsigned, hb::unique_ptr<hb_set_t>> done_lookups_glyph_set;
1583
+ OT::hb_closure_context_t c (face, glyphs, &done_lookups_glyph_count, &done_lookups_glyph_set);
1584
+
1585
+ const OT::SubstLookup& l = face->table.GSUB->table->get_lookup (lookup_index);
1586
+
1587
+ l.closure (&c, lookup_index);
1588
+ }
1589
+
1590
+ /**
1591
+ * hb_ot_layout_lookups_substitute_closure:
1592
+ * @face: #hb_face_t to work upon
1593
+ * @lookups: The set of lookups to query
1594
+ * @glyphs: (out): Array of glyphs comprising the transitive closure of the lookups
1595
+ *
1596
+ * Compute the transitive closure of glyphs needed for all of the
1597
+ * provided lookups.
1598
+ *
1599
+ * Since: 1.8.1
1600
+ **/
1601
+ void
1602
+ hb_ot_layout_lookups_substitute_closure (hb_face_t *face,
1603
+ const hb_set_t *lookups,
1604
+ hb_set_t *glyphs /* OUT */)
1605
+ {
1606
+ hb_map_t done_lookups_glyph_count;
1607
+ hb_hashmap_t<unsigned, hb::unique_ptr<hb_set_t>> done_lookups_glyph_set;
1608
+ OT::hb_closure_context_t c (face, glyphs, &done_lookups_glyph_count, &done_lookups_glyph_set);
1609
+ const GSUB& gsub = *face->table.GSUB->table;
1610
+
1611
+ unsigned int iteration_count = 0;
1612
+ unsigned int glyphs_length;
1613
+ do
1614
+ {
1615
+ c.reset_lookup_visit_count ();
1616
+ glyphs_length = glyphs->get_population ();
1617
+ if (lookups)
1618
+ {
1619
+ for (auto lookup_index : *lookups)
1620
+ gsub.get_lookup (lookup_index).closure (&c, lookup_index);
1621
+ }
1622
+ else
1623
+ {
1624
+ for (unsigned int i = 0; i < gsub.get_lookup_count (); i++)
1625
+ gsub.get_lookup (i).closure (&c, i);
1626
+ }
1627
+ } while (iteration_count++ <= HB_CLOSURE_MAX_STAGES &&
1628
+ glyphs_length != glyphs->get_population ());
1629
+ }
1630
+
1631
+ /*
1632
+ * GPOS
1633
+ */
1634
+
1635
+
1636
+ /**
1637
+ * hb_ot_layout_has_positioning:
1638
+ * @face: #hb_face_t to work upon
1639
+ *
1640
+ * Tests whether the specified face includes any GPOS positioning.
1641
+ *
1642
+ * Return value: `true` if the face has GPOS data, `false` otherwise
1643
+ *
1644
+ **/
1645
+ hb_bool_t
1646
+ hb_ot_layout_has_positioning (hb_face_t *face)
1647
+ {
1648
+ return face->table.GPOS->table->has_data ();
1649
+ }
1650
+
1651
+ /**
1652
+ * hb_ot_layout_position_start:
1653
+ * @font: #hb_font_t to use
1654
+ * @buffer: #hb_buffer_t buffer to work upon
1655
+ *
1656
+ * Called before positioning lookups are performed, to ensure that glyph
1657
+ * attachment types and glyph-attachment chains are set for the glyphs in the buffer.
1658
+ *
1659
+ **/
1660
+ void
1661
+ hb_ot_layout_position_start (hb_font_t *font, hb_buffer_t *buffer)
1662
+ {
1663
+ GPOS::position_start (font, buffer);
1664
+ }
1665
+
1666
+
1667
+ /**
1668
+ * hb_ot_layout_position_finish_advances:
1669
+ * @font: #hb_font_t to use
1670
+ * @buffer: #hb_buffer_t buffer to work upon
1671
+ *
1672
+ * Called after positioning lookups are performed, to finish glyph advances.
1673
+ *
1674
+ **/
1675
+ void
1676
+ hb_ot_layout_position_finish_advances (hb_font_t *font, hb_buffer_t *buffer)
1677
+ {
1678
+ GPOS::position_finish_advances (font, buffer);
1679
+ }
1680
+
1681
+ /**
1682
+ * hb_ot_layout_position_finish_offsets:
1683
+ * @font: #hb_font_t to use
1684
+ * @buffer: #hb_buffer_t buffer to work upon
1685
+ *
1686
+ * Called after positioning lookups are performed, to finish glyph offsets.
1687
+ *
1688
+ **/
1689
+ void
1690
+ hb_ot_layout_position_finish_offsets (hb_font_t *font, hb_buffer_t *buffer)
1691
+ {
1692
+ GPOS::position_finish_offsets (font, buffer);
1693
+ }
1694
+
1695
+
1696
+ #ifndef HB_NO_LAYOUT_FEATURE_PARAMS
1697
+ /**
1698
+ * hb_ot_layout_get_size_params:
1699
+ * @face: #hb_face_t to work upon
1700
+ * @design_size: (out): The design size of the face
1701
+ * @subfamily_id: (out): The identifier of the face within the font subfamily
1702
+ * @subfamily_name_id: (out): The ‘name’ table name ID of the face within the font subfamily
1703
+ * @range_start: (out): The minimum size of the recommended size range for the face
1704
+ * @range_end: (out): The maximum size of the recommended size range for the face
1705
+ *
1706
+ * Fetches optical-size feature data (i.e., the `size` feature from GPOS). Note that
1707
+ * the subfamily_id and the subfamily name string (accessible via the subfamily_name_id)
1708
+ * as used here are defined as pertaining only to fonts within a font family that differ
1709
+ * specifically in their respective size ranges; other ways to differentiate fonts within
1710
+ * a subfamily are not covered by the `size` feature.
1711
+ *
1712
+ * For more information on this distinction, see the [`size` feature documentation](
1713
+ * https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#tag-size).
1714
+ *
1715
+ * Return value: `true` if data found, `false` otherwise
1716
+ *
1717
+ * Since: 0.9.10
1718
+ **/
1719
+ hb_bool_t
1720
+ hb_ot_layout_get_size_params (hb_face_t *face,
1721
+ unsigned int *design_size, /* OUT. May be NULL */
1722
+ unsigned int *subfamily_id, /* OUT. May be NULL */
1723
+ hb_ot_name_id_t *subfamily_name_id, /* OUT. May be NULL */
1724
+ unsigned int *range_start, /* OUT. May be NULL */
1725
+ unsigned int *range_end /* OUT. May be NULL */)
1726
+ {
1727
+ const GPOS &gpos = *face->table.GPOS->table;
1728
+ const hb_tag_t tag = HB_TAG ('s','i','z','e');
1729
+
1730
+ unsigned int num_features = gpos.get_feature_count ();
1731
+ for (unsigned int i = 0; i < num_features; i++)
1732
+ {
1733
+ if (tag == gpos.get_feature_tag (i))
1734
+ {
1735
+ const OT::Feature &f = gpos.get_feature (i);
1736
+ const OT::FeatureParamsSize &params = f.get_feature_params ().get_size_params (tag);
1737
+
1738
+ if (params.designSize)
1739
+ {
1740
+ if (design_size) *design_size = params.designSize;
1741
+ if (subfamily_id) *subfamily_id = params.subfamilyID;
1742
+ if (subfamily_name_id) *subfamily_name_id = params.subfamilyNameID;
1743
+ if (range_start) *range_start = params.rangeStart;
1744
+ if (range_end) *range_end = params.rangeEnd;
1745
+
1746
+ return true;
1747
+ }
1748
+ }
1749
+ }
1750
+
1751
+ if (design_size) *design_size = 0;
1752
+ if (subfamily_id) *subfamily_id = 0;
1753
+ if (subfamily_name_id) *subfamily_name_id = HB_OT_NAME_ID_INVALID;
1754
+ if (range_start) *range_start = 0;
1755
+ if (range_end) *range_end = 0;
1756
+
1757
+ return false;
1758
+ }
1759
+
1760
+
1761
+ /**
1762
+ * hb_ot_layout_feature_get_name_ids:
1763
+ * @face: #hb_face_t to work upon
1764
+ * @table_tag: table tag to query, "GSUB" or "GPOS".
1765
+ * @feature_index: index of feature to query.
1766
+ * @label_id: (out) (optional): The ‘name’ table name ID that specifies a string
1767
+ * for a user-interface label for this feature. (May be NULL.)
1768
+ * @tooltip_id: (out) (optional): The ‘name’ table name ID that specifies a string
1769
+ * that an application can use for tooltip text for this
1770
+ * feature. (May be NULL.)
1771
+ * @sample_id: (out) (optional): The ‘name’ table name ID that specifies sample text
1772
+ * that illustrates the effect of this feature. (May be NULL.)
1773
+ * @num_named_parameters: (out) (optional): Number of named parameters. (May be zero.)
1774
+ * @first_param_id: (out) (optional): The first ‘name’ table name ID used to specify
1775
+ * strings for user-interface labels for the feature
1776
+ * parameters. (Must be zero if numParameters is zero.)
1777
+ *
1778
+ * Fetches name indices from feature parameters for "Stylistic Set" ('ssXX') or
1779
+ * "Character Variant" ('cvXX') features.
1780
+ *
1781
+ * Return value: `true` if data found, `false` otherwise
1782
+ *
1783
+ * Since: 2.0.0
1784
+ **/
1785
+ hb_bool_t
1786
+ hb_ot_layout_feature_get_name_ids (hb_face_t *face,
1787
+ hb_tag_t table_tag,
1788
+ unsigned int feature_index,
1789
+ hb_ot_name_id_t *label_id, /* OUT. May be NULL */
1790
+ hb_ot_name_id_t *tooltip_id, /* OUT. May be NULL */
1791
+ hb_ot_name_id_t *sample_id, /* OUT. May be NULL */
1792
+ unsigned int *num_named_parameters, /* OUT. May be NULL */
1793
+ hb_ot_name_id_t *first_param_id /* OUT. May be NULL */)
1794
+ {
1795
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1796
+
1797
+ hb_tag_t feature_tag = g.get_feature_tag (feature_index);
1798
+ const OT::Feature &f = g.get_feature (feature_index);
1799
+
1800
+ const OT::FeatureParams &feature_params = f.get_feature_params ();
1801
+ if (&feature_params != &Null (OT::FeatureParams))
1802
+ {
1803
+ const OT::FeatureParamsStylisticSet& ss_params =
1804
+ feature_params.get_stylistic_set_params (feature_tag);
1805
+ if (&ss_params != &Null (OT::FeatureParamsStylisticSet)) /* ssXX */
1806
+ {
1807
+ if (label_id) *label_id = ss_params.uiNameID;
1808
+ // ssXX features don't have the rest
1809
+ if (tooltip_id) *tooltip_id = HB_OT_NAME_ID_INVALID;
1810
+ if (sample_id) *sample_id = HB_OT_NAME_ID_INVALID;
1811
+ if (num_named_parameters) *num_named_parameters = 0;
1812
+ if (first_param_id) *first_param_id = HB_OT_NAME_ID_INVALID;
1813
+ return true;
1814
+ }
1815
+ const OT::FeatureParamsCharacterVariants& cv_params =
1816
+ feature_params.get_character_variants_params (feature_tag);
1817
+ if (&cv_params != &Null (OT::FeatureParamsCharacterVariants)) /* cvXX */
1818
+ {
1819
+ if (label_id) *label_id = cv_params.featUILableNameID;
1820
+ if (tooltip_id) *tooltip_id = cv_params.featUITooltipTextNameID;
1821
+ if (sample_id) *sample_id = cv_params.sampleTextNameID;
1822
+ if (num_named_parameters) *num_named_parameters = cv_params.numNamedParameters;
1823
+ if (first_param_id) *first_param_id = cv_params.firstParamUILabelNameID;
1824
+ return true;
1825
+ }
1826
+ }
1827
+
1828
+ if (label_id) *label_id = HB_OT_NAME_ID_INVALID;
1829
+ if (tooltip_id) *tooltip_id = HB_OT_NAME_ID_INVALID;
1830
+ if (sample_id) *sample_id = HB_OT_NAME_ID_INVALID;
1831
+ if (num_named_parameters) *num_named_parameters = 0;
1832
+ if (first_param_id) *first_param_id = HB_OT_NAME_ID_INVALID;
1833
+ return false;
1834
+ }
1835
+ /**
1836
+ * hb_ot_layout_feature_get_characters:
1837
+ * @face: #hb_face_t to work upon
1838
+ * @table_tag: table tag to query, "GSUB" or "GPOS".
1839
+ * @feature_index: index of feature to query.
1840
+ * @start_offset: offset of the first character to retrieve
1841
+ * @char_count: (inout) (optional): Input = the maximum number of characters to return;
1842
+ * Output = the actual number of characters returned (may be zero)
1843
+ * @characters: (out caller-allocates) (array length=char_count): A buffer pointer.
1844
+ * The Unicode codepoints of the characters for which this feature provides
1845
+ * glyph variants.
1846
+ *
1847
+ * Fetches a list of the characters defined as having a variant under the specified
1848
+ * "Character Variant" ("cvXX") feature tag.
1849
+ *
1850
+ * Return value: Number of total sample characters in the cvXX feature.
1851
+ *
1852
+ * Since: 2.0.0
1853
+ **/
1854
+ unsigned int
1855
+ hb_ot_layout_feature_get_characters (hb_face_t *face,
1856
+ hb_tag_t table_tag,
1857
+ unsigned int feature_index,
1858
+ unsigned int start_offset,
1859
+ unsigned int *char_count, /* IN/OUT. May be NULL */
1860
+ hb_codepoint_t *characters /* OUT. May be NULL */)
1861
+ {
1862
+ const OT::GSUBGPOS &g = get_gsubgpos_table (face, table_tag);
1863
+ return g.get_feature (feature_index)
1864
+ .get_feature_params ()
1865
+ .get_character_variants_params(g.get_feature_tag (feature_index))
1866
+ .get_characters (start_offset, char_count, characters);
1867
+ }
1868
+ #endif
1869
+
1870
+
1871
+ /*
1872
+ * Parts of different types are implemented here such that they have direct
1873
+ * access to GSUB/GPOS lookups.
1874
+ */
1875
+
1876
+
1877
+ struct GSUBProxy
1878
+ {
1879
+ static constexpr unsigned table_index = 0u;
1880
+ static constexpr bool always_inplace = false;
1881
+ typedef OT::SubstLookup Lookup;
1882
+
1883
+ GSUBProxy (hb_face_t *face) :
1884
+ accel (*face->table.GSUB) {}
1885
+
1886
+ const GSUB::accelerator_t &accel;
1887
+ };
1888
+
1889
+ struct GPOSProxy
1890
+ {
1891
+ static constexpr unsigned table_index = 1u;
1892
+ static constexpr bool always_inplace = true;
1893
+ typedef OT::PosLookup Lookup;
1894
+
1895
+ GPOSProxy (hb_face_t *face) :
1896
+ accel (*face->table.GPOS) {}
1897
+
1898
+ const GPOS::accelerator_t &accel;
1899
+ };
1900
+
1901
+
1902
+ static inline bool
1903
+ apply_forward (OT::hb_ot_apply_context_t *c,
1904
+ const OT::hb_ot_layout_lookup_accelerator_t &accel,
1905
+ unsigned subtable_count)
1906
+ {
1907
+ bool use_cache = accel.cache_enter (c);
1908
+
1909
+ bool ret = false;
1910
+ hb_buffer_t *buffer = c->buffer;
1911
+ while (buffer->idx < buffer->len && buffer->successful)
1912
+ {
1913
+ bool applied = false;
1914
+ if (accel.digest.may_have (buffer->cur().codepoint) &&
1915
+ (buffer->cur().mask & c->lookup_mask) &&
1916
+ c->check_glyph_property (&buffer->cur(), c->lookup_props))
1917
+ {
1918
+ applied = accel.apply (c, subtable_count, use_cache);
1919
+ }
1920
+
1921
+ if (applied)
1922
+ ret = true;
1923
+ else
1924
+ (void) buffer->next_glyph ();
1925
+ }
1926
+
1927
+ if (use_cache)
1928
+ accel.cache_leave (c);
1929
+
1930
+ return ret;
1931
+ }
1932
+
1933
+ static inline bool
1934
+ apply_backward (OT::hb_ot_apply_context_t *c,
1935
+ const OT::hb_ot_layout_lookup_accelerator_t &accel,
1936
+ unsigned subtable_count)
1937
+ {
1938
+ bool ret = false;
1939
+ hb_buffer_t *buffer = c->buffer;
1940
+ do
1941
+ {
1942
+ if (accel.digest.may_have (buffer->cur().codepoint) &&
1943
+ (buffer->cur().mask & c->lookup_mask) &&
1944
+ c->check_glyph_property (&buffer->cur(), c->lookup_props))
1945
+ ret |= accel.apply (c, subtable_count, false);
1946
+
1947
+ /* The reverse lookup doesn't "advance" cursor (for good reason). */
1948
+ buffer->idx--;
1949
+
1950
+ }
1951
+ while ((int) buffer->idx >= 0);
1952
+ return ret;
1953
+ }
1954
+
1955
+ template <typename Proxy>
1956
+ static inline bool
1957
+ apply_string (OT::hb_ot_apply_context_t *c,
1958
+ const typename Proxy::Lookup &lookup,
1959
+ const OT::hb_ot_layout_lookup_accelerator_t &accel)
1960
+ {
1961
+ hb_buffer_t *buffer = c->buffer;
1962
+ unsigned subtable_count = lookup.get_subtable_count ();
1963
+
1964
+ if (unlikely (!buffer->len || !c->lookup_mask))
1965
+ return false;
1966
+
1967
+ bool ret = false;
1968
+
1969
+ c->set_lookup_props (lookup.get_props ());
1970
+
1971
+ if (likely (!lookup.is_reverse ()))
1972
+ {
1973
+ /* in/out forward substitution/positioning */
1974
+ if (!Proxy::always_inplace)
1975
+ buffer->clear_output ();
1976
+
1977
+ buffer->idx = 0;
1978
+ ret = apply_forward (c, accel, subtable_count);
1979
+
1980
+ if (!Proxy::always_inplace)
1981
+ buffer->sync ();
1982
+ }
1983
+ else
1984
+ {
1985
+ /* in-place backward substitution/positioning */
1986
+ assert (!buffer->have_output);
1987
+ buffer->idx = buffer->len - 1;
1988
+ ret = apply_backward (c, accel, subtable_count);
1989
+ }
1990
+
1991
+ return ret;
1992
+ }
1993
+
1994
+ template <typename Proxy>
1995
+ inline void hb_ot_map_t::apply (const Proxy &proxy,
1996
+ const hb_ot_shape_plan_t *plan,
1997
+ hb_font_t *font,
1998
+ hb_buffer_t *buffer) const
1999
+ {
2000
+ const unsigned int table_index = proxy.table_index;
2001
+ unsigned int i = 0;
2002
+ OT::hb_ot_apply_context_t c (table_index, font, buffer, proxy.accel.get_blob ());
2003
+ c.set_recurse_func (Proxy::Lookup::template dispatch_recurse_func<OT::hb_ot_apply_context_t>);
2004
+
2005
+ for (unsigned int stage_index = 0; stage_index < stages[table_index].length; stage_index++)
2006
+ {
2007
+ const stage_map_t *stage = &stages[table_index][stage_index];
2008
+ for (; i < stage->last_lookup; i++)
2009
+ {
2010
+ auto &lookup = lookups[table_index][i];
2011
+
2012
+ unsigned int lookup_index = lookup.index;
2013
+
2014
+ auto *accel = proxy.accel.get_accel (lookup_index);
2015
+ if (unlikely (!accel)) continue;
2016
+
2017
+ if (buffer->messaging () &&
2018
+ !buffer->message (font, "start lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag))) continue;
2019
+
2020
+ /* c.digest is a digest of all the current glyphs in the buffer
2021
+ * (plus some past glyphs).
2022
+ *
2023
+ * Only try applying the lookup if there is any overlap. */
2024
+ if (accel->digest.may_have (c.digest))
2025
+ {
2026
+ c.set_lookup_index (lookup_index);
2027
+ c.set_lookup_mask (lookup.mask, false);
2028
+ c.set_auto_zwj (lookup.auto_zwj, false);
2029
+ c.set_auto_zwnj (lookup.auto_zwnj, false);
2030
+ c.set_random (lookup.random);
2031
+ c.set_per_syllable (lookup.per_syllable, false);
2032
+ /* apply_string's set_lookup_props initializes the iterators. */
2033
+
2034
+ apply_string<Proxy> (&c,
2035
+ proxy.accel.table->get_lookup (lookup_index),
2036
+ *accel);
2037
+ }
2038
+ else if (buffer->messaging ())
2039
+ (void) buffer->message (font, "skipped lookup %u feature '%c%c%c%c' because no glyph matches", lookup_index, HB_UNTAG (lookup.feature_tag));
2040
+
2041
+ if (buffer->messaging ())
2042
+ (void) buffer->message (font, "end lookup %u feature '%c%c%c%c'", lookup_index, HB_UNTAG (lookup.feature_tag));
2043
+ }
2044
+
2045
+ if (stage->pause_func)
2046
+ {
2047
+ if (stage->pause_func (plan, font, buffer))
2048
+ {
2049
+ /* Refresh working buffer digest since buffer changed. */
2050
+ c.digest = buffer->digest ();
2051
+ }
2052
+ }
2053
+ }
2054
+ }
2055
+
2056
+ void hb_ot_map_t::substitute (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer) const
2057
+ {
2058
+ GSUBProxy proxy (font->face);
2059
+ if (buffer->messaging () &&
2060
+ !buffer->message (font, "start table GSUB script tag '%c%c%c%c'", HB_UNTAG (chosen_script[0]))) return;
2061
+ apply (proxy, plan, font, buffer);
2062
+ if (buffer->messaging ())
2063
+ (void) buffer->message (font, "end table GSUB script tag '%c%c%c%c'", HB_UNTAG (chosen_script[0]));
2064
+ }
2065
+
2066
+ void hb_ot_map_t::position (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer) const
2067
+ {
2068
+ GPOSProxy proxy (font->face);
2069
+ if (buffer->messaging () &&
2070
+ !buffer->message (font, "start table GPOS script tag '%c%c%c%c'", HB_UNTAG (chosen_script[1]))) return;
2071
+ apply (proxy, plan, font, buffer);
2072
+ if (buffer->messaging ())
2073
+ (void) buffer->message (font, "end table GPOS script tag '%c%c%c%c'", HB_UNTAG (chosen_script[1]));
2074
+ }
2075
+
2076
+ void
2077
+ hb_ot_layout_substitute_lookup (OT::hb_ot_apply_context_t *c,
2078
+ const OT::SubstLookup &lookup,
2079
+ const OT::hb_ot_layout_lookup_accelerator_t &accel)
2080
+ {
2081
+ apply_string<GSUBProxy> (c, lookup, accel);
2082
+ }
2083
+
2084
+ #ifndef HB_NO_BASE
2085
+
2086
+ static void
2087
+ choose_base_tags (hb_script_t script,
2088
+ hb_language_t language,
2089
+ hb_tag_t *script_tag,
2090
+ hb_tag_t *language_tag)
2091
+ {
2092
+ hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
2093
+ unsigned script_count = ARRAY_LENGTH (script_tags);
2094
+
2095
+ hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
2096
+ unsigned language_count = ARRAY_LENGTH (language_tags);
2097
+
2098
+ hb_ot_tags_from_script_and_language (script, language,
2099
+ &script_count, script_tags,
2100
+ &language_count, language_tags);
2101
+
2102
+ *script_tag = script_count ? script_tags[script_count - 1] : HB_OT_TAG_DEFAULT_SCRIPT;
2103
+ *language_tag = language_count ? language_tags[language_count - 1] : HB_OT_TAG_DEFAULT_LANGUAGE;
2104
+ }
2105
+
2106
+ /**
2107
+ * hb_ot_layout_get_font_extents:
2108
+ * @font: a font
2109
+ * @direction: text direction.
2110
+ * @script_tag: script tag.
2111
+ * @language_tag: language tag.
2112
+ * @extents: (out) (nullable): font extents if found.
2113
+ *
2114
+ * Fetches script/language-specific font extents. These values are
2115
+ * looked up in the `BASE` table's `MinMax` records.
2116
+ *
2117
+ * If no such extents are found, the default extents for the font are
2118
+ * fetched. As such, the return value of this function can for the
2119
+ * most part be ignored. Note that the per-script/language extents
2120
+ * do not have a line-gap value, and the line-gap is set to zero in
2121
+ * that case.
2122
+ *
2123
+ * Return value: `true` if found script/language-specific font extents.
2124
+ *
2125
+ * Since: 8.0.0
2126
+ **/
2127
+ hb_bool_t
2128
+ hb_ot_layout_get_font_extents (hb_font_t *font,
2129
+ hb_direction_t direction,
2130
+ hb_tag_t script_tag,
2131
+ hb_tag_t language_tag,
2132
+ hb_font_extents_t *extents)
2133
+ {
2134
+ hb_position_t min = 0, max = 0;
2135
+ if (font->face->table.BASE->get_min_max (font, direction, script_tag, language_tag, HB_TAG_NONE,
2136
+ &min, &max))
2137
+ {
2138
+ if (extents)
2139
+ {
2140
+ extents->ascender = max;
2141
+ extents->descender = min;
2142
+ extents->line_gap = 0;
2143
+ }
2144
+ return true;
2145
+ }
2146
+
2147
+ hb_font_get_extents_for_direction (font, direction, extents);
2148
+ return false;
2149
+ }
2150
+
2151
+ /**
2152
+ * hb_ot_layout_get_font_extents2:
2153
+ * @font: a font
2154
+ * @direction: text direction.
2155
+ * @script: script.
2156
+ * @language: (nullable): language.
2157
+ * @extents: (out) (nullable): font extents if found.
2158
+ *
2159
+ * Fetches script/language-specific font extents. These values are
2160
+ * looked up in the `BASE` table's `MinMax` records.
2161
+ *
2162
+ * If no such extents are found, the default extents for the font are
2163
+ * fetched. As such, the return value of this function can for the
2164
+ * most part be ignored. Note that the per-script/language extents
2165
+ * do not have a line-gap value, and the line-gap is set to zero in
2166
+ * that case.
2167
+ *
2168
+ * This function is like hb_ot_layout_get_font_extents() but takes
2169
+ * #hb_script_t and #hb_language_t instead of OpenType #hb_tag_t.
2170
+ *
2171
+ * Return value: `true` if found script/language-specific font extents.
2172
+ *
2173
+ * Since: 8.0.0
2174
+ **/
2175
+ hb_bool_t
2176
+ hb_ot_layout_get_font_extents2 (hb_font_t *font,
2177
+ hb_direction_t direction,
2178
+ hb_script_t script,
2179
+ hb_language_t language,
2180
+ hb_font_extents_t *extents)
2181
+ {
2182
+ hb_tag_t script_tag, language_tag;
2183
+ choose_base_tags (script, language, &script_tag, &language_tag);
2184
+ return hb_ot_layout_get_font_extents (font,
2185
+ direction,
2186
+ script_tag,
2187
+ language_tag,
2188
+ extents);
2189
+ }
2190
+
2191
+ /**
2192
+ * hb_ot_layout_get_horizontal_baseline_tag_for_script:
2193
+ * @script: a script tag.
2194
+ *
2195
+ * Fetches the dominant horizontal baseline tag used by @script.
2196
+ *
2197
+ * Return value: dominant baseline tag for the @script.
2198
+ *
2199
+ * Since: 4.0.0
2200
+ **/
2201
+ hb_ot_layout_baseline_tag_t
2202
+ hb_ot_layout_get_horizontal_baseline_tag_for_script (hb_script_t script)
2203
+ {
2204
+ /* Keep in sync with hb_ot_layout_get_baseline_with_fallback */
2205
+ switch ((int) script)
2206
+ {
2207
+ /* Unicode-1.1 additions */
2208
+ case HB_SCRIPT_BENGALI:
2209
+ case HB_SCRIPT_DEVANAGARI:
2210
+ case HB_SCRIPT_GUJARATI:
2211
+ case HB_SCRIPT_GURMUKHI:
2212
+ /* Unicode-2.0 additions */
2213
+ case HB_SCRIPT_TIBETAN:
2214
+ /* Unicode-4.0 additions */
2215
+ case HB_SCRIPT_LIMBU:
2216
+ /* Unicode-4.1 additions */
2217
+ case HB_SCRIPT_SYLOTI_NAGRI:
2218
+ /* Unicode-5.0 additions */
2219
+ case HB_SCRIPT_PHAGS_PA:
2220
+ /* Unicode-5.2 additions */
2221
+ case HB_SCRIPT_MEETEI_MAYEK:
2222
+ /* Unicode-6.1 additions */
2223
+ case HB_SCRIPT_SHARADA:
2224
+ case HB_SCRIPT_TAKRI:
2225
+ /* Unicode-7.0 additions */
2226
+ case HB_SCRIPT_MODI:
2227
+ case HB_SCRIPT_SIDDHAM:
2228
+ case HB_SCRIPT_TIRHUTA:
2229
+ /* Unicode-9.0 additions */
2230
+ case HB_SCRIPT_MARCHEN:
2231
+ case HB_SCRIPT_NEWA:
2232
+ /* Unicode-10.0 additions */
2233
+ case HB_SCRIPT_SOYOMBO:
2234
+ case HB_SCRIPT_ZANABAZAR_SQUARE:
2235
+ /* Unicode-11.0 additions */
2236
+ case HB_SCRIPT_DOGRA:
2237
+ case HB_SCRIPT_GUNJALA_GONDI:
2238
+ /* Unicode-12.0 additions */
2239
+ case HB_SCRIPT_NANDINAGARI:
2240
+ return HB_OT_LAYOUT_BASELINE_TAG_HANGING;
2241
+
2242
+ /* Unicode-1.1 additions */
2243
+ case HB_SCRIPT_HANGUL:
2244
+ case HB_SCRIPT_HAN:
2245
+ case HB_SCRIPT_HIRAGANA:
2246
+ case HB_SCRIPT_KATAKANA:
2247
+ /* Unicode-3.0 additions */
2248
+ case HB_SCRIPT_BOPOMOFO:
2249
+ /* Unicode-9.0 additions */
2250
+ case HB_SCRIPT_TANGUT:
2251
+ /* Unicode-10.0 additions */
2252
+ case HB_SCRIPT_NUSHU:
2253
+ /* Unicode-13.0 additions */
2254
+ case HB_SCRIPT_KHITAN_SMALL_SCRIPT:
2255
+ return HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT;
2256
+
2257
+ default:
2258
+ return HB_OT_LAYOUT_BASELINE_TAG_ROMAN;
2259
+ }
2260
+ }
2261
+
2262
+ /**
2263
+ * hb_ot_layout_get_baseline:
2264
+ * @font: a font
2265
+ * @baseline_tag: a baseline tag
2266
+ * @direction: text direction.
2267
+ * @script_tag: script tag.
2268
+ * @language_tag: language tag, currently unused.
2269
+ * @coord: (out) (nullable): baseline value if found.
2270
+ *
2271
+ * Fetches a baseline value from the face.
2272
+ *
2273
+ * Return value: `true` if found baseline value in the font.
2274
+ *
2275
+ * Since: 2.6.0
2276
+ **/
2277
+ hb_bool_t
2278
+ hb_ot_layout_get_baseline (hb_font_t *font,
2279
+ hb_ot_layout_baseline_tag_t baseline_tag,
2280
+ hb_direction_t direction,
2281
+ hb_tag_t script_tag,
2282
+ hb_tag_t language_tag,
2283
+ hb_position_t *coord /* OUT. May be NULL. */)
2284
+ {
2285
+ return font->face->table.BASE->get_baseline (font, baseline_tag, direction, script_tag, language_tag, coord);
2286
+ }
2287
+
2288
+ /**
2289
+ * hb_ot_layout_get_baseline2:
2290
+ * @font: a font
2291
+ * @baseline_tag: a baseline tag
2292
+ * @direction: text direction.
2293
+ * @script: script.
2294
+ * @language: (nullable): language, currently unused.
2295
+ * @coord: (out) (nullable): baseline value if found.
2296
+ *
2297
+ * Fetches a baseline value from the face.
2298
+ *
2299
+ * This function is like hb_ot_layout_get_baseline() but takes
2300
+ * #hb_script_t and #hb_language_t instead of OpenType #hb_tag_t.
2301
+ *
2302
+ * Return value: `true` if found baseline value in the font.
2303
+ *
2304
+ * Since: 8.0.0
2305
+ **/
2306
+ hb_bool_t
2307
+ hb_ot_layout_get_baseline2 (hb_font_t *font,
2308
+ hb_ot_layout_baseline_tag_t baseline_tag,
2309
+ hb_direction_t direction,
2310
+ hb_script_t script,
2311
+ hb_language_t language,
2312
+ hb_position_t *coord /* OUT. May be NULL. */)
2313
+ {
2314
+ hb_tag_t script_tag, language_tag;
2315
+ choose_base_tags (script, language, &script_tag, &language_tag);
2316
+ return hb_ot_layout_get_baseline (font,
2317
+ baseline_tag,
2318
+ direction,
2319
+ script_tag,
2320
+ language_tag,
2321
+ coord);
2322
+ }
2323
+
2324
+ /**
2325
+ * hb_ot_layout_get_baseline_with_fallback:
2326
+ * @font: a font
2327
+ * @baseline_tag: a baseline tag
2328
+ * @direction: text direction.
2329
+ * @script_tag: script tag.
2330
+ * @language_tag: language tag, currently unused.
2331
+ * @coord: (out): baseline value if found.
2332
+ *
2333
+ * Fetches a baseline value from the face, and synthesizes
2334
+ * it if the font does not have it.
2335
+ *
2336
+ * Since: 4.0.0
2337
+ **/
2338
+ void
2339
+ hb_ot_layout_get_baseline_with_fallback (hb_font_t *font,
2340
+ hb_ot_layout_baseline_tag_t baseline_tag,
2341
+ hb_direction_t direction,
2342
+ hb_tag_t script_tag,
2343
+ hb_tag_t language_tag,
2344
+ hb_position_t *coord /* OUT */)
2345
+ {
2346
+ if (hb_ot_layout_get_baseline (font,
2347
+ baseline_tag,
2348
+ direction,
2349
+ script_tag,
2350
+ language_tag,
2351
+ coord))
2352
+ return;
2353
+
2354
+ /* Synthesize missing baselines.
2355
+ * See https://www.w3.org/TR/css-inline-3/#baseline-synthesis-fonts
2356
+ */
2357
+ switch (baseline_tag)
2358
+ {
2359
+ case HB_OT_LAYOUT_BASELINE_TAG_ROMAN:
2360
+ *coord = 0; // FIXME origin ?
2361
+ break;
2362
+
2363
+ case HB_OT_LAYOUT_BASELINE_TAG_MATH:
2364
+ {
2365
+ hb_codepoint_t glyph;
2366
+ hb_glyph_extents_t extents;
2367
+ if (HB_DIRECTION_IS_HORIZONTAL (direction) &&
2368
+ (hb_font_get_nominal_glyph (font, 0x2212u, &glyph) ||
2369
+ hb_font_get_nominal_glyph (font, '-', &glyph)) &&
2370
+ hb_font_get_glyph_extents (font, glyph, &extents))
2371
+ {
2372
+ *coord = extents.y_bearing + extents.height / 2;
2373
+ }
2374
+ else
2375
+ {
2376
+ hb_position_t x_height = font->y_scale / 2;
2377
+ #ifndef HB_NO_METRICS
2378
+ hb_ot_metrics_get_position_with_fallback (font, HB_OT_METRICS_TAG_X_HEIGHT, &x_height);
2379
+ #endif
2380
+ *coord = x_height / 2;
2381
+ }
2382
+ }
2383
+ break;
2384
+
2385
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT:
2386
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT:
2387
+ {
2388
+ hb_position_t embox_top, embox_bottom;
2389
+
2390
+ hb_ot_layout_get_baseline_with_fallback (font,
2391
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT,
2392
+ direction,
2393
+ script_tag,
2394
+ language_tag,
2395
+ &embox_top);
2396
+ hb_ot_layout_get_baseline_with_fallback (font,
2397
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT,
2398
+ direction,
2399
+ script_tag,
2400
+ language_tag,
2401
+ &embox_bottom);
2402
+
2403
+ if (baseline_tag == HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT)
2404
+ *coord = embox_top + (embox_bottom - embox_top) / 10;
2405
+ else
2406
+ *coord = embox_bottom + (embox_top - embox_bottom) / 10;
2407
+ }
2408
+ break;
2409
+
2410
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT:
2411
+ if (hb_ot_layout_get_baseline (font,
2412
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT,
2413
+ direction,
2414
+ script_tag,
2415
+ language_tag,
2416
+ coord))
2417
+ *coord += HB_DIRECTION_IS_HORIZONTAL (direction) ? font->y_scale : font->x_scale;
2418
+ else
2419
+ {
2420
+ hb_font_extents_t font_extents;
2421
+ hb_font_get_extents_for_direction (font, direction, &font_extents);
2422
+ *coord = font_extents.ascender;
2423
+ }
2424
+ break;
2425
+
2426
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT:
2427
+ if (hb_ot_layout_get_baseline (font,
2428
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT,
2429
+ direction,
2430
+ script_tag,
2431
+ language_tag,
2432
+ coord))
2433
+ *coord -= HB_DIRECTION_IS_HORIZONTAL (direction) ? font->y_scale : font->x_scale;
2434
+ else
2435
+ {
2436
+ hb_font_extents_t font_extents;
2437
+ hb_font_get_extents_for_direction (font, direction, &font_extents);
2438
+ *coord = font_extents.descender;
2439
+ }
2440
+ break;
2441
+
2442
+ case HB_OT_LAYOUT_BASELINE_TAG_HANGING:
2443
+ if (HB_DIRECTION_IS_HORIZONTAL (direction))
2444
+ {
2445
+ hb_codepoint_t ch;
2446
+ hb_codepoint_t glyph;
2447
+ hb_glyph_extents_t extents;
2448
+
2449
+ /* Keep in sync with hb_ot_layout_get_horizontal_baseline_for_script */
2450
+ switch ((int) script_tag)
2451
+ {
2452
+ /* Unicode-1.1 additions */
2453
+ case HB_SCRIPT_BENGALI: ch = 0x0995u; break;
2454
+ case HB_SCRIPT_DEVANAGARI: ch = 0x0915u; break;
2455
+ case HB_SCRIPT_GUJARATI: ch = 0x0a95u; break;
2456
+ case HB_SCRIPT_GURMUKHI: ch = 0x0a15u; break;
2457
+ /* Unicode-2.0 additions */
2458
+ case HB_SCRIPT_TIBETAN: ch = 0x0f40u; break;
2459
+ /* Unicode-4.0 additions */
2460
+ case HB_SCRIPT_LIMBU: ch = 0x1901u; break;
2461
+ /* Unicode-4.1 additions */
2462
+ case HB_SCRIPT_SYLOTI_NAGRI: ch = 0xa807u; break;
2463
+ /* Unicode-5.0 additions */
2464
+ case HB_SCRIPT_PHAGS_PA: ch = 0xa840u; break;
2465
+ /* Unicode-5.2 additions */
2466
+ case HB_SCRIPT_MEETEI_MAYEK: ch = 0xabc0u; break;
2467
+ /* Unicode-6.1 additions */
2468
+ case HB_SCRIPT_SHARADA: ch = 0x11191u; break;
2469
+ case HB_SCRIPT_TAKRI: ch = 0x1168cu; break;
2470
+ /* Unicode-7.0 additions */
2471
+ case HB_SCRIPT_MODI: ch = 0x1160eu;break;
2472
+ case HB_SCRIPT_SIDDHAM: ch = 0x11590u; break;
2473
+ case HB_SCRIPT_TIRHUTA: ch = 0x1148fu; break;
2474
+ /* Unicode-9.0 additions */
2475
+ case HB_SCRIPT_MARCHEN: ch = 0x11c72u; break;
2476
+ case HB_SCRIPT_NEWA: ch = 0x1140eu; break;
2477
+ /* Unicode-10.0 additions */
2478
+ case HB_SCRIPT_SOYOMBO: ch = 0x11a5cu; break;
2479
+ case HB_SCRIPT_ZANABAZAR_SQUARE: ch = 0x11a0bu; break;
2480
+ /* Unicode-11.0 additions */
2481
+ case HB_SCRIPT_DOGRA: ch = 0x1180au; break;
2482
+ case HB_SCRIPT_GUNJALA_GONDI: ch = 0x11d6cu; break;
2483
+ /* Unicode-12.0 additions */
2484
+ case HB_SCRIPT_NANDINAGARI: ch = 0x119b0u; break;
2485
+ default: ch = 0; break;
2486
+ }
2487
+
2488
+ if (ch &&
2489
+ hb_font_get_nominal_glyph (font, ch, &glyph) &&
2490
+ hb_font_get_glyph_extents (font, glyph, &extents))
2491
+ *coord = extents.y_bearing;
2492
+ else
2493
+ *coord = font->y_scale * 6 / 10; // FIXME makes assumptions about origin
2494
+ }
2495
+ else
2496
+ *coord = font->x_scale * 6 / 10; // FIXME makes assumptions about origin
2497
+ break;
2498
+
2499
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL:
2500
+ {
2501
+ hb_position_t top, bottom;
2502
+ hb_ot_layout_get_baseline_with_fallback (font,
2503
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT,
2504
+ direction,
2505
+ script_tag,
2506
+ language_tag,
2507
+ &top);
2508
+ hb_ot_layout_get_baseline_with_fallback (font,
2509
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT,
2510
+ direction,
2511
+ script_tag,
2512
+ language_tag,
2513
+ &bottom);
2514
+ *coord = (top + bottom) / 2;
2515
+
2516
+ }
2517
+ break;
2518
+
2519
+ case HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL:
2520
+ {
2521
+ hb_position_t top, bottom;
2522
+ hb_ot_layout_get_baseline_with_fallback (font,
2523
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT,
2524
+ direction,
2525
+ script_tag,
2526
+ language_tag,
2527
+ &top);
2528
+ hb_ot_layout_get_baseline_with_fallback (font,
2529
+ HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT,
2530
+ direction,
2531
+ script_tag,
2532
+ language_tag,
2533
+ &bottom);
2534
+ *coord = (top + bottom) / 2;
2535
+
2536
+ }
2537
+ break;
2538
+
2539
+ case _HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE:
2540
+ default:
2541
+ *coord = 0;
2542
+ break;
2543
+ }
2544
+ }
2545
+
2546
+ /**
2547
+ * hb_ot_layout_get_baseline_with_fallback2:
2548
+ * @font: a font
2549
+ * @baseline_tag: a baseline tag
2550
+ * @direction: text direction.
2551
+ * @script: script.
2552
+ * @language: (nullable): language, currently unused.
2553
+ * @coord: (out): baseline value if found.
2554
+ *
2555
+ * Fetches a baseline value from the face, and synthesizes
2556
+ * it if the font does not have it.
2557
+ *
2558
+ * This function is like hb_ot_layout_get_baseline_with_fallback() but takes
2559
+ * #hb_script_t and #hb_language_t instead of OpenType #hb_tag_t.
2560
+ *
2561
+ * Since: 8.0.0
2562
+ **/
2563
+ void
2564
+ hb_ot_layout_get_baseline_with_fallback2 (hb_font_t *font,
2565
+ hb_ot_layout_baseline_tag_t baseline_tag,
2566
+ hb_direction_t direction,
2567
+ hb_script_t script,
2568
+ hb_language_t language,
2569
+ hb_position_t *coord /* OUT */)
2570
+ {
2571
+ hb_tag_t script_tag, language_tag;
2572
+ choose_base_tags (script, language, &script_tag, &language_tag);
2573
+ hb_ot_layout_get_baseline_with_fallback (font,
2574
+ baseline_tag,
2575
+ direction,
2576
+ script_tag,
2577
+ language_tag,
2578
+ coord);
2579
+ }
2580
+
2581
+ #endif
2582
+
2583
+
2584
+ struct hb_get_glyph_alternates_dispatch_t :
2585
+ hb_dispatch_context_t<hb_get_glyph_alternates_dispatch_t, unsigned>
2586
+ {
2587
+ static return_t default_return_value () { return 0; }
2588
+ bool stop_sublookup_iteration (return_t r) const { return r; }
2589
+
2590
+ private:
2591
+ template <typename T, typename ...Ts> auto
2592
+ _dispatch (const T &obj, hb_priority<1>, Ts&&... ds) HB_AUTO_RETURN
2593
+ ( obj.get_glyph_alternates (std::forward<Ts> (ds)...) )
2594
+ template <typename T, typename ...Ts> auto
2595
+ _dispatch (const T &obj, hb_priority<0>, Ts&&... ds) HB_AUTO_RETURN
2596
+ ( default_return_value () )
2597
+ public:
2598
+ template <typename T, typename ...Ts> auto
2599
+ dispatch (const T &obj, Ts&&... ds) HB_AUTO_RETURN
2600
+ ( _dispatch (obj, hb_prioritize, std::forward<Ts> (ds)...) )
2601
+ };
2602
+
2603
+ #ifndef HB_NO_LAYOUT_RARELY_USED
2604
+ /**
2605
+ * hb_ot_layout_lookup_get_glyph_alternates:
2606
+ * @face: a face.
2607
+ * @lookup_index: index of the feature lookup to query.
2608
+ * @glyph: a glyph id.
2609
+ * @start_offset: starting offset.
2610
+ * @alternate_count: (inout) (optional): Input = the maximum number of alternate glyphs to return;
2611
+ * Output = the actual number of alternate glyphs returned (may be zero).
2612
+ * @alternate_glyphs: (out caller-allocates) (array length=alternate_count): A glyphs buffer.
2613
+ * Alternate glyphs associated with the glyph id.
2614
+ *
2615
+ * Fetches alternates of a glyph from a given GSUB lookup index.
2616
+ *
2617
+ * Return value: Total number of alternates found in the specific lookup index for the given glyph id.
2618
+ *
2619
+ * Since: 2.6.8
2620
+ **/
2621
+ HB_EXTERN unsigned
2622
+ hb_ot_layout_lookup_get_glyph_alternates (hb_face_t *face,
2623
+ unsigned lookup_index,
2624
+ hb_codepoint_t glyph,
2625
+ unsigned start_offset,
2626
+ unsigned *alternate_count /* IN/OUT. May be NULL. */,
2627
+ hb_codepoint_t *alternate_glyphs /* OUT. May be NULL. */)
2628
+ {
2629
+ hb_get_glyph_alternates_dispatch_t c;
2630
+ const OT::SubstLookup &lookup = face->table.GSUB->table->get_lookup (lookup_index);
2631
+ auto ret = lookup.dispatch (&c, glyph, start_offset, alternate_count, alternate_glyphs);
2632
+ if (!ret && alternate_count) *alternate_count = 0;
2633
+ return ret;
2634
+ }
2635
+
2636
+
2637
+ struct hb_position_single_dispatch_t :
2638
+ hb_dispatch_context_t<hb_position_single_dispatch_t, bool>
2639
+ {
2640
+ static return_t default_return_value () { return false; }
2641
+ bool stop_sublookup_iteration (return_t r) const { return r; }
2642
+
2643
+ private:
2644
+ template <typename T, typename ...Ts> auto
2645
+ _dispatch (const T &obj, hb_priority<1>, Ts&&... ds) HB_AUTO_RETURN
2646
+ ( obj.position_single (std::forward<Ts> (ds)...) )
2647
+ template <typename T, typename ...Ts> auto
2648
+ _dispatch (const T &obj, hb_priority<0>, Ts&&... ds) HB_AUTO_RETURN
2649
+ ( default_return_value () )
2650
+ public:
2651
+ template <typename T, typename ...Ts> auto
2652
+ dispatch (const T &obj, Ts&&... ds) HB_AUTO_RETURN
2653
+ ( _dispatch (obj, hb_prioritize, std::forward<Ts> (ds)...) )
2654
+ };
2655
+
2656
+ /**
2657
+ * hb_ot_layout_lookup_get_optical_bound:
2658
+ * @font: a font.
2659
+ * @lookup_index: index of the feature lookup to query.
2660
+ * @direction: edge of the glyph to query.
2661
+ * @glyph: a glyph id.
2662
+ *
2663
+ * Fetches the optical bound of a glyph positioned at the margin of text.
2664
+ * The direction identifies which edge of the glyph to query.
2665
+ *
2666
+ * Return value: Adjustment value. Negative values mean the glyph will stick out of the margin.
2667
+ *
2668
+ * Since: 5.3.0
2669
+ **/
2670
+ hb_position_t
2671
+ hb_ot_layout_lookup_get_optical_bound (hb_font_t *font,
2672
+ unsigned lookup_index,
2673
+ hb_direction_t direction,
2674
+ hb_codepoint_t glyph)
2675
+ {
2676
+ const OT::PosLookup &lookup = font->face->table.GPOS->table->get_lookup (lookup_index);
2677
+ hb_blob_t *blob = font->face->table.GPOS->get_blob ();
2678
+ hb_glyph_position_t pos = {0};
2679
+ hb_position_single_dispatch_t c;
2680
+ lookup.dispatch (&c, font, blob, direction, glyph, pos);
2681
+ hb_position_t ret = 0;
2682
+ switch (direction)
2683
+ {
2684
+ case HB_DIRECTION_LTR:
2685
+ ret = pos.x_offset;
2686
+ break;
2687
+ case HB_DIRECTION_RTL:
2688
+ ret = pos.x_advance - pos.x_offset;
2689
+ break;
2690
+ case HB_DIRECTION_TTB:
2691
+ ret = pos.y_offset;
2692
+ break;
2693
+ case HB_DIRECTION_BTT:
2694
+ ret = pos.y_advance - pos.y_offset;
2695
+ break;
2696
+ case HB_DIRECTION_INVALID:
2697
+ default:
2698
+ break;
2699
+ }
2700
+ return ret;
2701
+ }
2702
+ #endif
2703
+
2704
+
2705
+ #endif