﻿<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu"
xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"
CodeTemplate="pdm2pcm_c.ftl;pdm2pcm_h.ftl"
DBVersion="V4.0"
IncludeFile="pdm2pcm_glo.h"
Name="PDM2PCM"
RootFolder="Middlewares/ST/STM32_Audio/Addons/PDM/"
Version="STM32Cube_FW_H7_V1.6.0"
ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Configs.xsd">

  <RefConfig Comment="" Name="PDM2PCM_ENABLE_Init">
    <Component Name="Middleware:PDM2PCM"/>
    <CallLibMethod Name="PDM_Filter_Init" Phase="preOS">
      <MethodArg Name="PDM1_filter_handler" ParameterName="PDM1_filter_handler"/>
    </CallLibMethod>
    <CallLibMethod Name="PDM_Filter_setConfig" Phase="preOS">
      <MethodArg Name="PDM1_filter_handler" ParameterName="PDM1_filter_handler"/>
      <MethodArg Name="PDM1_filter_config" ParameterName="PDM1_filter_config"/>
    </CallLibMethod>
  </RefConfig>

  <RefComponent Cclass="Middleware" Cgroup="PDM2PCM" Cversion="3.3.0">
    <File Category="header" Name="Inc/pdm2pcm_glo.h"/>
    <!-- CM4 libraries -->
    <File Category="library" Condition="GCC_CM4;SIiTcompilerIiGCC &amp; ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM4_GCC_wc32.a" Version=""/>
    <File Category="library" Condition="IAR8_CM4;(SIiTideIiEWARMOoV8| SIiTideIiEWARMOoV8Gg32) &amp; ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM4_IAR_wc32.a" Version=""/>
    <File Category="library" Condition="IAR7_CM4;(SIiTideIiEWARM | SIiTideIiEWARMOoV7) &amp; ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM4_IAR_wc16.a" Version=""/>
    <File Category="library" Condition="KEIL_CM4;SIiTcompilerIiARMCC &amp; ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM4_Keil_wc16.lib" Version=""/>
    <!-- CM7 libraries -->
    <File Category="library" Condition="GCC_CM7;SIiTcompilerIiGCC &amp; !ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM7_GCC_wc32.a" Version=""/>
    <File Category="library" Condition="IAR8_CM7;(SIiTideIiEWARMOoV8| SIiTideIiEWARMOoV8Gg32) &amp; !ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM7_IAR_wc32.a" Version=""/>
    <File Category="library" Condition="IAR7_CM7;(SIiTideIiEWARM | SIiTideIiEWARMOoV7) &amp; !ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM7_IAR_wc16.a" Version=""/>
    <File Category="library" Condition="KEIL_CM7;SIiTcompilerIiARMCC &amp; !ARM_CORTEX_M4" Name="Lib/libPDMFilter_CM7_Keil_wc16.lib" Version=""/>
  </RefComponent>

  <LibMethod Comment="" Name="PDM_Filter_Init">
    <Argument AddressOf="true" Context="global" GenericType="struct" Name="PDM1_filter_handler" TypeName="PDM_Filter_Handler_t">
      <Argument AddressOf="false" GenericType="simple" Name="bit_order" OptimizationCondition="equal" ParamName="CHANNEL1_bit_order"/>
      <Argument AddressOf="false" GenericType="simple" Name="endianness" OptimizationCondition="equal" ParamName="CHANNEL1_endianness"/>
      <Argument AddressOf="false" GenericType="simple" Name="high_pass_tap" OptimizationCondition="equal" ParamName="CHANNEL1_high_pass_tap"/>
      <Argument AddressOf="false" GenericType="simple" Name="in_ptr_channels" OptimizationCondition="equal" ParamName="CHANNEL1_in_ptr_channels"/>
      <Argument AddressOf="false" GenericType="simple" Name="out_ptr_channels" OptimizationCondition="equal" ParamName="CHANNEL1_out_ptr_channels"/>
    </Argument>
  </LibMethod>

  <LibMethod Comment="" Name="PDM_Filter_setConfig">
    <Argument AddressOf="true" Context="global;NOT_INIT" GenericType="struct" Name="PDM1_filter_handler" TypeName="PDM_Filter_Handler_t">
      <Argument AddressOf="false" GenericType="simple" Name="gState" OptimizationCondition="equal" ParamName="CHANNEL1_gState"/>
    </Argument>
    <Argument AddressOf="true" Context="global" GenericType="struct" Name="PDM1_filter_config" TypeName="PDM_Filter_Config_t">
      <Argument AddressOf="false" GenericType="simple" Name="decimation_factor" OptimizationCondition="equal" ParamName="CHANNEL1_decimation_factor"/>
      <Argument AddressOf="false" GenericType="simple" Name="output_samples_number" OptimizationCondition="equal" ParamName="CHANNEL1_output_samples_number"/>
      <Argument AddressOf="false" GenericType="simple" Name="mic_gain" OptimizationCondition="equal" ParamName="CHANNEL1_mic_gain"/>
    </Argument>
  </LibMethod>

</IP>
