text: #ifndef MHSOUNDFILEWRAPPER_HPP
  #define MHSOUNDFILEWRAPPER_HPP
  #include "../../Io/FIO.hpp"
  #include "AudioPacket.hpp"
  
  namespace MH33 {
  namespace Audio {
  
      enum class SoundFormat : int {
          AIFF_ALAC_16 = ( 0x020000 | 0x0070 ),
          AIFF_ALAC_20 = ( 0x020000 | 0x0071 ),
          AIFF_ALAC_24 = ( 0x020000 | 0x0072 ),
          AIFF_ALAC_32 = ( 0x020000 | 0x0073 ),
          AIFF_ALAW = ( 0x020000 | 0x0011 ),
          AIFF_DOUBLE = ( 0x020000 | 0x0007 ),
          AIFF_DPCM_16 = ( 0x020000 | 0x0051 ),
          AIFF_DPCM_8 = ( 0x020000 | 0x0050 ),
          AIFF_DWVW_12 = ( 0x020000 | 0x0040 ),
          AIFF_DWVW_16 = ( 0x020000 | 0x0041 ),
          AIFF_DWVW_24 = ( 0x020000 | 0x0042 ),
          AIFF_DWVW_N = ( 0x020000 | 0x0043 ),
          AIFF_FLOAT = ( 0x020000 | 0x0006 ),
          AIFF_G721_32 = ( 0x020000 | 0x0030 ),
          AIFF_G723_24 = ( 0x020000 | 0x0031 ),
          AIFF_G723_40 = ( 0x020000 | 0x0032 ),
          AIFF_GSM610 = ( 0x020000 | 0x0020 ),
          AIFF_IMA_ADPCM = ( 0x020000 | 0x0012 ),
          AIFF_MS_ADPCM = ( 0x020000 | 0x0013 ),
          AIFF_NMS_ADPCM_16 = ( 0x020000 | 0x0022 ),
          AIFF_NMS_ADPCM_24 = ( 0x020000 | 0x0023 ),
          AIFF_NMS_ADPCM_32 = ( 0x020000 | 0x0024 ),
          AIFF_OPUS = ( 0x020000 | 0x0064 ),
          AIFF_PCM_16 = ( 0x020000 | 0x0002 ),
          AIFF_PCM_24 = ( 0x020000 | 0x0003 ),
          AIFF_PCM_32 = ( 0x020000 | 0x0004 ),
          AIFF_PCM_S8 = ( 0x020000 | 0x0001 ),
          AIFF_PCM_U8 = ( 0x020000 | 0x0005 ),
          AIFF_ULAW = ( 0x020000 | 0x0010 ),
          AIFF_VORBIS = ( 0x020000 | 0x0060 ),
          AIFF_VOX_ADPCM = ( 0x020000 | 0x0021 ),
          AU_ALAC_16 = ( 0x030000 | 0x0070 ),
          AU_ALAC_20 = ( 0x030000 | 0x0071 ),
          AU_ALAC_24 = ( 0x030000 | 0x0072 ),
          AU_ALAC_32 = ( 0x030000 | 0x0073 ),
          AU_ALAW = ( 0x030000 | 0x0011 ),
          AU_DOUBLE = ( 0x030000 | 0x0007 ),
          AU_DPCM_16 = ( 0x030000 | 0x0051 ),
          AU_DPCM_8 = ( 0x030000 | 0x0050 ),
          AU_DWVW_12 = ( 0x030000 | 0x0040 ),
          AU_DWVW_16 = ( 0x030000 | 0x0041 ),
          AU_DWVW_24 = ( 0x030000 | 0x0042 ),
          AU_DWVW_N = ( 0x030000 | 0x0043 ),
          AU_FLOAT = ( 0x030000 | 0x0006 ),
          AU_G721_32 = ( 0x030000 | 0x0030 ),
          AU_G723_24 = ( 0x030000 | 0x0031 ),
          AU_G723_40 = ( 0x030000 | 0x0032 ),
          AU_GSM610 = ( 0x030000 | 0x0020 ),
          AU_IMA_ADPCM = ( 0x030000 | 0x0012 ),
          AU_MS_ADPCM = ( 0x030000 | 0x0013 ),
          AU_NMS_ADPCM_16 = ( 0x030000 | 0x0022 ),
          AU_NMS_ADPCM_24 = ( 0x030000 | 0x0023 ),
          AU_NMS_ADPCM_32 = ( 0x030000 | 0x0024 ),
          AU_OPUS = ( 0x030000 | 0x0064 ),
          AU_PCM_16 = ( 0x030000 | 0x0002 ),
          AU_PCM_24 = ( 0x030000 | 0x0003 ),
          AU_PCM_32 = ( 0x030000 | 0x0004 ),
          AU_PCM_S8 = ( 0x030000 | 0x0001 ),
          AU_PCM_U8 = ( 0x030000 | 0x0005 ),
          AU_ULAW = ( 0x030000 | 0x0010 ),
          AU_VORBIS = ( 0x030000 | 0x0060 ),
          AU_VOX_ADPCM = ( 0x030000 | 0x0021 ),
          AVR_ALAC_16 = ( 0x120000 | 0x0070 ),
          AVR_ALAC_20 = ( 0x120000 | 0x0071 ),
          AVR_ALAC_24 = ( 0x120000 | 0x0072 ),
          AVR_ALAC_32 = ( 0x120000 | 0x0073 ),
          AVR_ALAW = ( 0x120000 | 0x0011 ),
          AVR_DOUBLE = ( 0x120000 | 0x0007 ),
          AVR_DPCM_16 = ( 0x120000 | 0x0051 ),
          AVR_DPCM_8 = ( 0x120000 | 0x0050 ),
          AVR_DWVW_12 = ( 0x120000 | 0x0040 ),
          AVR_DWVW_16 = ( 0x120000 | 0x0041 ),
          AVR_DWVW_24 = ( 0x120000 | 0x0042 ),
          AVR_DWVW_N = ( 0x120000 | 0x0043 ),
          AVR_FLOAT = ( 0x120000 | 0x0006 ),
          AVR_G721_32 = ( 0x120000 | 0x0030 ),
          AVR_G723_24 = ( 0x120000 | 0x0031 ),
          AVR_G723_40 = ( 0x120000 | 0x0032 ),
          AVR_GSM610 = ( 0x120000 | 0x0020 ),
          AVR_IMA_ADPCM = ( 0x120000 | 0x0012 ),
          AVR_MS_ADPCM = ( 0x120000 | 0x0013 ),
          AVR_NMS_ADPCM_16 = ( 0x120000 | 0x0022 ),
          AVR_NMS_ADPCM_24 = ( 0x120000 | 0x0023 ),
          AVR_NMS_ADPCM_32 = ( 0x120000 | 0x0024 ),
          AVR_OPUS = ( 0x120000 | 0x0064 ),
          AVR_PCM_16 = ( 0x120000 | 0x0002 ),
          AVR_PCM_24 = ( 0x120000 | 0x0003 ),
          AVR_PCM_32 = ( 0x120000 | 0x0004 ),
          AVR_PCM_S8 = ( 0x120000 | 0x0001 ),
          AVR_PCM_U8 = ( 0x120000 | 0x0005 ),
          AVR_ULAW = ( 0x120000 | 0x0010 ),
          AVR_VORBIS = ( 0x120000 | 0x0060 ),
          AVR_VOX_ADPCM = ( 0x120000 | 0x0021 ),
          CAF_ALAC_16 = ( 0x180000 | 0x0070 ),
          CAF_ALAC_20 = ( 0x180000 | 0x0071 ),
          CAF_ALAC_24 = ( 0x180000 | 0x0072 ),
          CAF_ALAC_32 = ( 0x180000 | 0x0073 ),
          CAF_ALAW = ( 0x180000 | 0x0011 ),
          CAF_DOUBLE = ( 0x180000 | 0x0007 ),
          CAF_DPCM_16 = ( 0x180000 | 0x0051 ),
          CAF_DPCM_8 = ( 0x180000 | 0x0050 ),
          CAF_DWVW_12 = ( 0x180000 | 0x0040 ),
          CAF_DWVW_16 = ( 0x180000 | 0x0041 ),
          CAF_DWVW_24 = ( 0x180000 | 0x0042 ),
          CAF_DWVW_N = ( 0x180000 | 0x0043 ),
          CAF_FLOAT = ( 0x180000 | 0x0006 ),
          CAF_G721_32 = ( 0x180000 | 0x0030 ),
          CAF_G723_24 = ( 0x180000 | 0x0031 ),
          CAF_G723_40 = ( 0x180000 | 0x0032 ),
          CAF_GSM610 = ( 0x180000 | 0x0020 ),
          CAF_IMA_ADPCM = ( 0x180000 | 0x0012 ),
          CAF_MS_ADPCM = ( 0x180000 | 0x0013 ),
          CAF_NMS_ADPCM_16 = ( 0x180000 | 0x0022 ),
          CAF_NMS_ADPCM_24 = ( 0x180000 | 0x0023 ),
          CAF_NMS_ADPCM_32 = ( 0x180000 | 0x0024 ),
          CAF_OPUS = ( 0x180000 | 0x0064 ),
          CAF_PCM_16 = ( 0x180000 | 0x0002 ),
          CAF_PCM_24 = ( 0x180000 | 0x0003 ),
          CAF_PCM_32 = ( 0x180000 | 0x0004 ),
          CAF_PCM_S8 = ( 0x180000 | 0x0001 ),
          CAF_PCM_U8 = ( 0x180000 | 0x0005 ),
          CAF_ULAW = ( 0x180000 | 0x0010 ),
          CAF_VORBIS = ( 0x180000 | 0x0060 ),
          CAF_VOX_ADPCM = ( 0x180000 | 0x0021 ),
          FLAC_ALAC_16 = ( 0x170000 ),
          HTK_ALAC_16 = ( 0x100000 | 0x0070 ),
          HTK_ALAC_20 = ( 0x100000 | 0x0071 ),
          HTK_ALAC_24 = ( 0x100000 | 0x0072 ),
          HTK_ALAC_32 = ( 0x100000 | 0x0073 ),
          HTK_ALAW = ( 0x100000 | 0x0011 ),
          HTK_DOUBLE = ( 0x100000 | 0x0007 ),
          HTK_DPCM_16 = ( 0x100000 | 0x0051 ),
          HTK_DPCM_8 = ( 0x100000 | 0x0050 ),
          HTK_DWVW_12 = ( 0x100000 | 0x0040 ),
          HTK_DWVW_16 = ( 0x100000 | 0x0041 ),
          HTK_DWVW_24 = ( 0x100000 | 0x0042 ),
          HTK_DWVW_N = ( 0x100000 | 0x0043 ),
          HTK_FLOAT = ( 0x100000 | 0x0006 ),
          HTK_G721_32 = ( 0x100000 | 0x0030 ),
          HTK_G723_24 = ( 0x100000 | 0x0031 ),
          HTK_G723_40 = ( 0x100000 | 0x0032 ),
          HTK_GSM610 = ( 0x100000 | 0x0020 ),
          HTK_IMA_ADPCM = ( 0x100000 | 0x0012 ),
          HTK_MS_ADPCM = ( 0x100000 | 0x0013 ),
          HTK_NMS_ADPCM_16 = ( 0x100000 | 0x0022 ),
          HTK_NMS_ADPCM_24 = ( 0x100000 | 0x0023 ),
          HTK_NMS_ADPCM_32 = ( 0x100000 | 0x0024 ),
          HTK_OPUS = ( 0x100000 | 0x0064 ),
          HTK_PCM_16 = ( 0x100000 | 0x0002 ),
          HTK_PCM_24 = ( 0x100000 | 0x0003 ),
          HTK_PCM_32 = ( 0x100000 | 0x0004 ),
          HTK_PCM_S8 = ( 0x100000 | 0x0001 ),
          HTK_PCM_U8 = ( 0x100000 | 0x0005 ),
          HTK_ULAW = ( 0x100000 | 0x0010 ),
          HTK_VORBIS = ( 0x100000 | 0x0060 ),
          HTK_VOX_ADPCM = ( 0x100000 | 0x0021 ),
          IRCAM_ALAC_16 = ( 0x0A0000 | 0x0070 ),
          IRCAM_ALAC_20 = ( 0x0A0000 | 0x0071 ),
          IRCAM_ALAC_24 = ( 0x0A0000 | 0x0072 ),
          IRCAM_ALAC_32 = ( 0x0A0000 | 0x0073 ),
          IRCAM_ALAW = ( 0x0A0000 | 0x0011 ),
          IRCAM_DOUBLE = ( 0x0A0000 | 0x0007 ),
          IRCAM_DPCM_16 = ( 0x0A0000 | 0x0051 ),
          IRCAM_DPCM_8 = ( 0x0A0000 | 0x0050 ),
          IRCAM_DWVW_12 = ( 0x0A0000 | 0x0040 ),
          IRCAM_DWVW_16 = ( 0x0A0000 | 0x0041 ),
          IRCAM_DWVW_24 = ( 0x0A0000 | 0x0042 ),
          IRCAM_DWVW_N = ( 0x0A0000 | 0x0043 ),
          IRCAM_FLOAT = ( 0x0A0000 | 0x0006 ),
          IRCAM_G721_32 = ( 0x0A0000 | 0x0030 ),
          IRCAM_G723_24 = ( 0x0A0000 | 0x0031 ),
          IRCAM_G723_40 = ( 0x0A0000 | 0x0032 ),
          IRCAM_GSM610 = ( 0x0A0000 | 0x0020 ),
          IRCAM_IMA_ADPCM = ( 0x0A0000 | 0x0012 ),
          IRCAM_MS_ADPCM = ( 0x0A0000 | 0x0013 ),
          IRCAM_NMS_ADPCM_16 = ( 0x0A0000 | 0x0022 ),
          IRCAM_NMS_ADPCM_24 = ( 0x0A0000 | 0x0023 ),
          IRCAM_NMS_ADPCM_32 = ( 0x0A0000 | 0x0024 ),
          IRCAM_OPUS = ( 0x0A0000 | 0x0064 ),
          IRCAM_PCM_16 = ( 0x0A0000 | 0x0002 ),
          IRCAM_PCM_24 = ( 0x0A0000 | 0x0003 ),
          IRCAM_PCM_32 = ( 0x0A0000 | 0x0004 ),
          IRCAM_PCM_S8 = ( 0x0A0000 | 0x0001 ),
          IRCAM_PCM_U8 = ( 0x0A0000 | 0x0005 ),
          IRCAM_ULAW = ( 0x0A0000 | 0x0010 ),
          IRCAM_VORBIS = ( 0x0A0000 | 0x0060 ),
          IRCAM_VOX_ADPCM = ( 0x0A0000 | 0x0021 ),
          MAT4_ALAC_16 = ( 0x0C0000 | 0x0070 ),
          MAT4_ALAC_20 = ( 0x0C0000 | 0x0071 ),
          MAT4_ALAC_24 = ( 0x0C0000 | 0x0072 ),
          MAT4_ALAC_32 = ( 0x0C0000 | 0x0073 ),
          MAT4_ALAW = ( 0x0C0000 | 0x0011 ),
          MAT4_DOUBLE = ( 0x0C0000 | 0x0007 ),
          MAT4_DPCM_16 = ( 0x0C0000 | 0x0051 ),
          MAT4_DPCM_8 = ( 0x0C0000 | 0x0050 ),
          MAT4_DWVW_12 = ( 0x0C0000 | 0x0040 ),
          MAT4_DWVW_16 = ( 0x0C0000 | 0x0041 ),
          MAT4_DWVW_24 = ( 0x0C0000 | 0x0042 ),
          MAT4_DWVW_N = ( 0x0C0000 | 0x0043 ),
          MAT4_FLOAT = ( 0x0C0000 | 0x0006 ),
          MAT4_G721_32 = ( 0x0C0000 | 0x0030 ),
          MAT4_G723_24 = ( 0x0C0000 | 0x0031 ),
          MAT4_G723_40 = ( 0x0C0000 | 0x0032 ),
          MAT4_GSM610 = ( 0x0C0000 | 0x0020 ),
          MAT4_IMA_ADPCM = ( 0x0C0000 | 0x0012 ),
          MAT4_MS_ADPCM = ( 0x0C0000 | 0x0013 ),
          MAT4_NMS_ADPCM_16 = ( 0x0C0000 | 0x0022 ),
          MAT4_NMS_ADPCM_24 = ( 0x0C0000 | 0x0023 ),
          MAT4_NMS_ADPCM_32 = ( 0x0C0000 | 0x0024 ),
          MAT4_OPUS = ( 0x0C0000 | 0x0064 ),
          MAT4_PCM_16 = ( 0x0C0000 | 0x0002 ),
          MAT4_PCM_24 = ( 0x0C0000 | 0x0003 ),
          MAT4_PCM_32 = ( 0x0C0000 | 0x0004 ),
          MAT4_PCM_S8 = ( 0x0C0000 | 0x0001 ),
          MAT4_PCM_U8 = ( 0x0C0000 | 0x0005 ),
          MAT4_ULAW = ( 0x0C0000 | 0x0010 ),
          MAT4_VORBIS = ( 0x0C0000 | 0x0060 ),
          MAT4_VOX_ADPCM = ( 0x0C0000 | 0x0021 ),
          MAT5_ALAC_16 = ( 0x0D0000 | 0x0070 ),
          MAT5_ALAC_20 = ( 0x0D0000 | 0x0071 ),
          MAT5_ALAC_24 = ( 0x0D0000 | 0x0072 ),
          MAT5_ALAC_32 = ( 0x0D0000 | 0x0073 ),
          MAT5_ALAW = ( 0x0D0000 | 0x0011 ),
          MAT5_DOUBLE = ( 0x0D0000 | 0x0007 ),
          MAT5_DPCM_16 = ( 0x0D0000 | 0x0051 ),
          MAT5_DPCM_8 = ( 0x0D0000 | 0x0050 ),
          MAT5_DWVW_12 = ( 0x0D0000 | 0x0040 ),
          MAT5_DWVW_16 = ( 0x0D0000 | 0x0041 ),
          MAT5_DWVW_24 = ( 0x0D0000 | 0x0042 ),
          MAT5_DWVW_N = ( 0x0D0000 | 0x0043 ),
          MAT5_FLOAT = ( 0x0D0000 | 0x0006 ),
          MAT5_G721_32 = ( 0x0D0000 | 0x0030 ),
          MAT5_G723_24 = ( 0x0D0000 | 0x0031 ),
          MAT5_G723_40 = ( 0x0D0000 | 0x0032 ),
          MAT5_GSM610 = ( 0x0D0000 | 0x0020 ),
          MAT5_IMA_ADPCM = ( 0x0D0000 | 0x0012 ),
          MAT5_MS_ADPCM = ( 0x0D0000 | 0x0013 ),
          MAT5_NMS_ADPCM_16 = ( 0x0D0000 | 0x0022 ),
          MAT5_NMS_ADPCM_24 = ( 0x0D0000 | 0x0023 ),
          MAT5_NMS_ADPCM_32 = ( 0x0D0000 | 0x0024 ),
          MAT5_OPUS = ( 0x0D0000 | 0x0064 ),
          MAT5_PCM_16 = ( 0x0D0000 | 0x0002 ),
          MAT5_PCM_24 = ( 0x0D0000 | 0x0003 ),
          MAT5_PCM_32 = ( 0x0D0000 | 0x0004 ),
          MAT5_PCM_S8 = ( 0x0D0000 | 0x0001 ),
          MAT5_PCM_U8 = ( 0x0D0000 | 0x0005 ),
          MAT5_ULAW = ( 0x0D0000 | 0x0010 ),
          MAT5_VORBIS = ( 0x0D0000 | 0x0060 ),
          MAT5_VOX_ADPCM = ( 0x0D0000 | 0x0021 ),
          MPC2K_ALAC_16 = ( 0x210000 | 0x0070 ),
          MPC2K_ALAC_20 = ( 0x210000 | 0x0071 ),
          MPC2K_ALAC_24 = ( 0x210000 | 0x0072 ),
          MPC2K_ALAC_32 = ( 0x210000 | 0x0073 ),
          MPC2K_ALAW = ( 0x210000 | 0x0011 ),
          MPC2K_DOUBLE = ( 0x210000 | 0x0007 ),
          MPC2K_DPCM_16 = ( 0x210000 | 0x0051 ),
          MPC2K_DPCM_8 = ( 0x210000 | 0x0050 ),
          MPC2K_DWVW_12 = ( 0x210000 | 0x0040 ),
          MPC2K_DWVW_16 = ( 0x210000 | 0x0041 ),
          MPC2K_DWVW_24 = ( 0x210000 | 0x0042 ),
          MPC2K_DWVW_N = ( 0x210000 | 0x0043 ),
          MPC2K_FLOAT = ( 0x210000 | 0x0006 ),
          MPC2K_G721_32 = ( 0x210000 | 0x0030 ),
          MPC2K_G723_24 = ( 0x210000 | 0x0031 ),
          MPC2K_G723_40 = ( 0x210000 | 0x0032 ),
          MPC2K_GSM610 = ( 0x210000 | 0x0020 ),
          MPC2K_IMA_ADPCM = ( 0x210000 | 0x0012 ),
          MPC2K_MS_ADPCM = ( 0x210000 | 0x0013 ),
          MPC2K_NMS_ADPCM_16 = ( 0x210000 | 0x0022 ),
          MPC2K_NMS_ADPCM_24 = ( 0x210000 | 0x0023 ),
          MPC2K_NMS_ADPCM_32 = ( 0x210000 | 0x0024 ),
          MPC2K_OPUS = ( 0x210000 | 0x0064 ),
          MPC2K_PCM_16 = ( 0x210000 | 0x0002 ),
          MPC2K_PCM_24 = ( 0x210000 | 0x0003 ),
          MPC2K_PCM_32 = ( 0x210000 | 0x0004 ),
          MPC2K_PCM_S8 = ( 0x210000 | 0x0001 ),
          MPC2K_PCM_U8 = ( 0x210000 | 0x0005 ),
          MPC2K_ULAW = ( 0x210000 | 0x0010 ),
          MPC2K_VORBIS = ( 0x210000 | 0x0060 ),
          MPC2K_VOX_ADPCM = ( 0x210000 | 0x0021 ),
          NIST_ALAC_16 = ( 0x070000 | 0x0070 ),
          NIST_ALAC_20 = ( 0x070000 | 0x0071 ),
          NIST_ALAC_24 = ( 0x070000 | 0x0072 ),
          NIST_ALAC_32 = ( 0x070000 | 0x0073 ),
          NIST_ALAW = ( 0x070000 | 0x0011 ),
          NIST_DOUBLE = ( 0x070000 | 0x0007 ),
          NIST_DPCM_16 = ( 0x070000 | 0x0051 ),
          NIST_DPCM_8 = ( 0x070000 | 0x0050 ),
          NIST_DWVW_12 = ( 0x070000 | 0x0040 ),
          NIST_DWVW_16 = ( 0x070000 | 0x0041 ),
          NIST_DWVW_24 = ( 0x070000 | 0x0042 ),
          NIST_DWVW_N = ( 0x070000 | 0x0043 ),
          NIST_FLOAT = ( 0x070000 | 0x0006 ),
          NIST_G721_32 = ( 0x070000 | 0x0030 ),
          NIST_G723_24 = ( 0x070000 | 0x0031 ),
          NIST_G723_40 = ( 0x070000 | 0x0032 ),
          NIST_GSM610 = ( 0x070000 | 0x0020 ),
          NIST_IMA_ADPCM = ( 0x070000 | 0x0012 ),
          NIST_MS_ADPCM = ( 0x070000 | 0x0013 ),
          NIST_NMS_ADPCM_16 = ( 0x070000 | 0x0022 ),
          NIST_NMS_ADPCM_24 = ( 0x070000 | 0x0023 ),
          NIST_NMS_ADPCM_32 = ( 0x070000 | 0x0024 ),
          NIST_OPUS = ( 0x070000 | 0x0064 ),
          NIST_PCM_16 = ( 0x070000 | 0x0002 ),
          NIST_PCM_24 = ( 0x070000 | 0x0003 ),
          NIST_PCM_32 = ( 0x070000 | 0x0004 ),
          NIST_PCM_S8 = ( 0x070000 | 0x0001 ),
          NIST_PCM_U8 = ( 0x070000 | 0x0005 ),
          NIST_ULAW = ( 0x070000 | 0x0010 ),
          NIST_VORBIS = ( 0x070000 | 0x0060 ),
          NIST_VOX_ADPCM = ( 0x070000 | 0x0021 ),
          OGG_ALAC_16 = ( 0x200000 | 0x0070 ),
          OGG_ALAC_20 = ( 0x200000 | 0x0071 ),
          OGG_ALAC_24 = ( 0x200000 | 0x0072 ),
          OGG_ALAC_32 = ( 0x200000 | 0x0073 ),
          OGG_ALAW = ( 0x200000 | 0x0011 ),
          OGG_DOUBLE = ( 0x200000 | 0x0007 ),
          OGG_DPCM_16 = ( 0x200000 | 0x0051 ),
          OGG_DPCM_8 = ( 0x200000 | 0x0050 ),
          OGG_DWVW_12 = ( 0x200000 | 0x0040 ),
          OGG_DWVW_16 = ( 0x200000 | 0x0041 ),
          OGG_DWVW_24 = ( 0x200000 | 0x0042 ),
          OGG_DWVW_N = ( 0x200000 | 0x0043 ),
          OGG_FLOAT = ( 0x200000 | 0x0006 ),
          OGG_G721_32 = ( 0x200000 | 0x0030 ),
          OGG_G723_24 = ( 0x200000 | 0x0031 ),
          OGG_G723_40 = ( 0x200000 | 0x0032 ),
          OGG_GSM610 = ( 0x200000 | 0x0020 ),
          OGG_IMA_ADPCM = ( 0x200000 | 0x0012 ),
          OGG_MS_ADPCM = ( 0x200000 | 0x0013 ),
          OGG_NMS_ADPCM_16 = ( 0x200000 | 0x0022 ),
          OGG_NMS_ADPCM_24 = ( 0x200000 | 0x0023 ),
          OGG_NMS_ADPCM_32 = ( 0x200000 | 0x0024 ),
          OGG_OPUS = ( 0x200000 | 0x0064 ),
          OGG_PCM_16 = ( 0x200000 | 0x0002 ),
          OGG_PCM_24 = ( 0x200000 | 0x0003 ),
          OGG_PCM_32 = ( 0x200000 | 0x0004 ),
          OGG_PCM_S8 = ( 0x200000 | 0x0001 ),
          OGG_PCM_U8 = ( 0x200000 | 0x0005 ),
          OGG_ULAW = ( 0x200000 | 0x0010 ),
          OGG_VORBIS = ( 0x200000 | 0x0060 ),
          OGG_VOX_ADPCM = ( 0x200000 | 0x0021 ),
          PAF_ALAC_16 = ( 0x050000 | 0x0070 ),
          PAF_ALAC_20 = ( 0x050000 | 0x0071 ),
          PAF_ALAC_24 = ( 0x050000 | 0x0072 ),
          PAF_ALAC_32 = ( 0x050000 | 0x0073 ),
          PAF_ALAW = ( 0x050000 | 0x0011 ),
          PAF_DOUBLE = ( 0x050000 | 0x0007 ),
          PAF_DPCM_16 = ( 0x050000 | 0x0051 ),
          PAF_DPCM_8 = ( 0x050000 | 0x0050 ),
          PAF_DWVW_12 = ( 0x050000 | 0x0040 ),
          PAF_DWVW_16 = ( 0x050000 | 0x0041 ),
          PAF_DWVW_24 = ( 0x050000 | 0x0042 ),
          PAF_DWVW_N = ( 0x050000 | 0x0043 ),
          PAF_FLOAT = ( 0x050000 | 0x0006 ),
          PAF_G721_32 = ( 0x050000 | 0x0030 ),
          PAF_G723_24 = ( 0x050000 | 0x0031 ),
          PAF_G723_40 = ( 0x050000 | 0x0032 ),
          PAF_GSM610 = ( 0x050000 | 0x0020 ),
          PAF_IMA_ADPCM = ( 0x050000 | 0x0012 ),
          PAF_MS_ADPCM = ( 0x050000 | 0x0013 ),
          PAF_NMS_ADPCM_16 = ( 0x050000 | 0x0022 ),
          PAF_NMS_ADPCM_24 = ( 0x050000 | 0x0023 ),
          PAF_NMS_ADPCM_32 = ( 0x050000 | 0x0024 ),
          PAF_OPUS = ( 0x050000 | 0x0064 ),
          PAF_PCM_16 = ( 0x050000 | 0x0002 ),
          PAF_PCM_24 = ( 0x050000 | 0x0003 ),
          PAF_PCM_32 = ( 0x050000 | 0x0004 ),
          PAF_PCM_S8 = ( 0x050000 | 0x0001 ),
          PAF_PCM_U8 = ( 0x050000 | 0x0005 ),
          PAF_ULAW = ( 0x050000 | 0x0010 ),
          PAF_VORBIS = ( 0x050000 | 0x0060 ),
          PAF_VOX_ADPCM = ( 0x050000 | 0x0021 ),
          PVF_ALAC_16 = ( 0x0E0000 | 0x0070 ),
          PVF_ALAC_20 = ( 0x0E0000 | 0x0071 ),
          PVF_ALAC_24 = ( 0x0E0000 | 0x0072 ),
          PVF_ALAC_32 = ( 0x0E0000 | 0x0073 ),
          PVF_ALAW = ( 0x0E0000 | 0x0011 ),
          PVF_DOUBLE = ( 0x0E0000 | 0x0007 ),
          PVF_DPCM_16 = ( 0x0E0000 | 0x0051 ),
          PVF_DPCM_8 = ( 0x0E0000 | 0x0050 ),
          PVF_DWVW_12 = ( 0x0E0000 | 0x0040 ),
          PVF_DWVW_16 = ( 0x0E0000 | 0x0041 ),
          PVF_DWVW_24 = ( 0x0E0000 | 0x0042 ),
          PVF_DWVW_N = ( 0x0E0000 | 0x0043 ),
          PVF_FLOAT = ( 0x0E0000 | 0x0006 ),
          PVF_G721_32 = ( 0x0E0000 | 0x0030 ),
          PVF_G723_24 = ( 0x0E0000 | 0x0031 ),
          PVF_G723_40 = ( 0x0E0000 | 0x0032 ),
          PVF_GSM610 = ( 0x0E0000 | 0x0020 ),
          PVF_IMA_ADPCM = ( 0x0E0000 | 0x0012 ),
          PVF_MS_ADPCM = ( 0x0E0000 | 0x0013 ),
          PVF_NMS_ADPCM_16 = ( 0x0E0000 | 0x0022 ),
          PVF_NMS_ADPCM_24 = ( 0x0E0000 | 0x0023 ),
          PVF_NMS_ADPCM_32 = ( 0x0E0000 | 0x0024 ),
          PVF_OPUS = ( 0x0E0000 | 0x0064 ),
          PVF_PCM_16 = ( 0x0E0000 | 0x0002 ),
          PVF_PCM_24 = ( 0x0E0000 | 0x0003 ),
          PVF_PCM_32 = ( 0x0E0000 | 0x0004 ),
          PVF_PCM_S8 = ( 0x0E0000 | 0x0001 ),
          PVF_PCM_U8 = ( 0x0E0000 | 0x0005 ),
          PVF_ULAW = ( 0x0E0000 | 0x0010 ),
          PVF_VORBIS = ( 0x0E0000 | 0x0060 ),
          PVF_VOX_ADPCM = ( 0x0E0000 | 0x0021 ),
          RAW_ALAC_16 = ( 0x040000 | 0x0070 ),
          RAW_ALAC_20 = ( 0x040000 | 0x0071 ),
          RAW_ALAC_24 = ( 0x040000 | 0x0072 ),
          RAW_ALAC_32 = ( 0x040000 | 0x0073 ),
          RAW_ALAW = ( 0x040000 | 0x0011 ),
          RAW_DOUBLE = ( 0x040000 | 0x0007 ),
          RAW_DPCM_16 = ( 0x040000 | 0x0051 ),
          RAW_DPCM_8 = ( 0x040000 | 0x0050 ),
          RAW_DWVW_12 = ( 0x040000 | 0x0040 ),
          RAW_DWVW_16 = ( 0x040000 | 0x0041 ),
          RAW_DWVW_24 = ( 0x040000 | 0x0042 ),
          RAW_DWVW_N = ( 0x040000 | 0x0043 ),
          RAW_FLOAT = ( 0x040000 | 0x0006 ),
          RAW_G721_32 = ( 0x040000 | 0x0030 ),
          RAW_G723_24 = ( 0x040000 | 0x0031 ),
          RAW_G723_40 = ( 0x040000 | 0x0032 ),
          RAW_GSM610 = ( 0x040000 | 0x0020 ),
          RAW_IMA_ADPCM = ( 0x040000 | 0x0012 ),
          RAW_MS_ADPCM = ( 0x040000 | 0x0013 ),
          RAW_NMS_ADPCM_16 = ( 0x040000 | 0x0022 ),
          RAW_NMS_ADPCM_24 = ( 0x040000 | 0x0023 ),
          RAW_NMS_ADPCM_32 = ( 0x040000 | 0x0024 ),
          RAW_OPUS = ( 0x040000 | 0x0064 ),
          RAW_PCM_16 = ( 0x040000 | 0x0002 ),
          RAW_PCM_24 = ( 0x040000 | 0x0003 ),
          RAW_PCM_32 = ( 0x040000 | 0x0004 ),
          RAW_PCM_S8 = ( 0x040000 | 0x0001 ),
          RAW_PCM_U8 = ( 0x040000 | 0x0005 ),
          RAW_ULAW = ( 0x040000 | 0x0010 ),
          RAW_VORBIS = ( 0x040000 | 0x0060 ),
          RAW_VOX_ADPCM = ( 0x040000 | 0x0021 ),
          RF64_ALAC_16 = ( 0x220000 | 0x0070 ),
          RF64_ALAC_20 = ( 0x220000 | 0x0071 ),
          RF64_ALAC_24 = ( 0x220000 | 0x0072 ),
          RF64_ALAC_32 = ( 0x220000 | 0x0073 ),
          RF64_ALAW = ( 0x220000 | 0x0011 ),
          RF64_DOUBLE = ( 0x220000 | 0x0007 ),
          RF64_DPCM_16 = ( 0x220000 | 0x0051 ),
          RF64_DPCM_8 = ( 0x220000 | 0x0050 ),
          RF64_DWVW_12 = ( 0x220000 | 0x0040 ),
          RF64_DWVW_16 = ( 0x220000 | 0x0041 ),
          RF64_DWVW_24 = ( 0x220000 | 0x0042 ),
          RF64_DWVW_N = ( 0x220000 | 0x0043 ),
          RF64_FLOAT = ( 0x220000 | 0x0006 ),
          RF64_G721_32 = ( 0x220000 | 0x0030 ),
          RF64_G723_24 = ( 0x220000 | 0x0031 ),
          RF64_G723_40 = ( 0x220000 | 0x0032 ),
          RF64_GSM610 = ( 0x220000 | 0x0020 ),
          RF64_IMA_ADPCM = ( 0x220000 | 0x0012 ),
          RF64_MS_ADPCM = ( 0x220000 | 0x0013 ),
          RF64_NMS_ADPCM_16 = ( 0x220000 | 0x0022 ),
          RF64_NMS_ADPCM_24 = ( 0x220000 | 0x0023 ),
          RF64_NMS_ADPCM_32 = ( 0x220000 | 0x0024 ),
          RF64_OPUS = ( 0x220000 | 0x0064 ),
          RF64_PCM_16 = ( 0x220000 | 0x0002 ),
          RF64_PCM_24 = ( 0x220000 | 0x0003 ),
          RF64_PCM_32 = ( 0x220000 | 0x0004 ),
          RF64_PCM_S8 = ( 0x220000 | 0x0001 ),
          RF64_PCM_U8 = ( 0x220000 | 0x0005 ),
          RF64_ULAW = ( 0x220000 | 0x0010 ),
          RF64_VORBIS = ( 0x220000 | 0x0060 ),
          RF64_VOX_ADPCM = ( 0x220000 | 0x0021 ),
          SD2_ALAC_16 = ( 0x160000 | 0x0070 ),
          SD2_ALAC_20 = ( 0x160000 | 0x0071 ),
          SD2_ALAC_24 = ( 0x160000 | 0x0072 ),
          SD2_ALAC_32 = ( 0x160000 | 0x0073 ),
          SD2_ALAW = ( 0x160000 | 0x0011 ),
          SD2_DOUBLE = ( 0x160000 | 0x0007 ),
          SD2_DPCM_16 = ( 0x160000 | 0x0051 ),
          SD2_DPCM_8 = ( 0x160000 | 0x0050 ),
          SD2_DWVW_12 = ( 0x160000 | 0x0040 ),
          SD2_DWVW_16 = ( 0x160000 | 0x0041 ),
          SD2_DWVW_24 = ( 0x160000 | 0x0042 ),
          SD2_DWVW_N = ( 0x160000 | 0x0043 ),
          SD2_FLOAT = ( 0x160000 | 0x0006 ),
          SD2_G721_32 = ( 0x160000 | 0x0030 ),
          SD2_G723_24 = ( 0x160000 | 0x0031 ),
          SD2_G723_40 = ( 0x160000 | 0x0032 ),
          SD2_GSM610 = ( 0x160000 | 0x0020 ),
          SD2_IMA_ADPCM = ( 0x160000 | 0x0012 ),
          SD2_MS_ADPCM = ( 0x160000 | 0x0013 ),
          SD2_NMS_ADPCM_16 = ( 0x160000 | 0x0022 ),
          SD2_NMS_ADPCM_24 = ( 0x160000 | 0x0023 ),
          SD2_NMS_ADPCM_32 = ( 0x160000 | 0x0024 ),
          SD2_OPUS = ( 0x160000 | 0x0064 ),
          SD2_PCM_16 = ( 0x160000 | 0x0002 ),
          SD2_PCM_24 = ( 0x160000 | 0x0003 ),
          SD2_PCM_32 = ( 0x160000 | 0x0004 ),
          SD2_PCM_S8 = ( 0x160000 | 0x0001 ),
          SD2_PCM_U8 = ( 0x160000 | 0x0005 ),
          SD2_ULAW = ( 0x160000 | 0x0010 ),
          SD2_VORBIS = ( 0x160000 | 0x0060 ),
          SD2_VOX_ADPCM = ( 0x160000 | 0x0021 ),
          SDS_ALAC_16 = ( 0x110000 | 0x0070 ),
          SDS_ALAC_20 = ( 0x110000 | 0x0071 ),
          SDS_ALAC_24 = ( 0x110000 | 0x0072 ),
          SDS_ALAC_32 = ( 0x110000 | 0x0073 ),
          SDS_ALAW = ( 0x110000 | 0x0011 ),
          SDS_DOUBLE = ( 0x110000 | 0x0007 ),
          SDS_DPCM_16 = ( 0x110000 | 0x0051 ),
          SDS_DPCM_8 = ( 0x110000 | 0x0050 ),
          SDS_DWVW_12 = ( 0x110000 | 0x0040 ),
          SDS_DWVW_16 = ( 0x110000 | 0x0041 ),
          SDS_DWVW_24 = ( 0x110000 | 0x0042 ),
          SDS_DWVW_N = ( 0x110000 | 0x0043 ),
          SDS_FLOAT = ( 0x110000 | 0x0006 ),
          SDS_G721_32 = ( 0x110000 | 0x0030 ),
          SDS_G723_24 = ( 0x110000 | 0x0031 ),
          SDS_G723_40 = ( 0x110000 | 0x0032 ),
          SDS_GSM610 = ( 0x110000 | 0x0020 ),
          SDS_IMA_ADPCM = ( 0x110000 | 0x0012 ),
          SDS_MS_ADPCM = ( 0x110000 | 0x0013 ),
          SDS_NMS_ADPCM_16 = ( 0x110000 | 0x0022 ),
          SDS_NMS_ADPCM_24 = ( 0x110000 | 0x0023 ),
          SDS_NMS_ADPCM_32 = ( 0x110000 | 0x0024 ),
          SDS_OPUS = ( 0x110000 | 0x0064 ),
          SDS_PCM_16 = ( 0x110000 | 0x0002 ),
          SDS_PCM_24 = ( 0x110000 | 0x0003 ),
          SDS_PCM_32 = ( 0x110000 | 0x0004 ),
          SDS_PCM_S8 = ( 0x110000 | 0x0001 ),
          SDS_PCM_U8 = ( 0x110000 | 0x0005 ),
          SDS_ULAW = ( 0x110000 | 0x0010 ),
          SDS_VORBIS = ( 0x110000 | 0x0060 ),
          SDS_VOX_ADPCM = ( 0x110000 | 0x0021 ),
          SVX_ALAC_16 = ( 0x060000 | 0x0070 ),
          SVX_ALAC_20 = ( 0x060000 | 0x0071 ),
          SVX_ALAC_24 = ( 0x060000 | 0x0072 ),
          SVX_ALAC_32 = ( 0x060000 | 0x0073 ),
          SVX_ALAW = ( 0x060000 | 0x0011 ),
          SVX_DOUBLE = ( 0x060000 | 0x0007 ),
          SVX_DPCM_16 = ( 0x060000 | 0x0051 ),
          SVX_DPCM_8 = ( 0x060000 | 0x0050 ),
          SVX_DWVW_12 = ( 0x060000 | 0x0040 ),
          SVX_DWVW_16 = ( 0x060000 | 0x0041 ),
          SVX_DWVW_24 = ( 0x060000 | 0x0042 ),
          SVX_DWVW_N = ( 0x060000 | 0x0043 ),
          SVX_FLOAT = ( 0x060000 | 0x0006 ),
          SVX_G721_32 = ( 0x060000 | 0x0030 ),
          SVX_G723_24 = ( 0x060000 | 0x0031 ),
          SVX_G723_40 = ( 0x060000 | 0x0032 ),
          SVX_GSM610 = ( 0x060000 | 0x0020 ),
          SVX_IMA_ADPCM = ( 0x060000 | 0x0012 ),
          SVX_MS_ADPCM = ( 0x060000 | 0x0013 ),
          SVX_NMS_ADPCM_16 = ( 0x060000 | 0x0022 ),
          SVX_NMS_ADPCM_24 = ( 0x060000 | 0x0023 ),
          SVX_NMS_ADPCM_32 = ( 0x060000 | 0x0024 ),
          SVX_OPUS = ( 0x060000 | 0x0064 ),
          SVX_PCM_16 = ( 0x060000 | 0x0002 ),
          SVX_PCM_24 = ( 0x060000 | 0x0003 ),
          SVX_PCM_32 = ( 0x060000 | 0x0004 ),
          SVX_PCM_S8 = ( 0x060000 | 0x0001 ),
          SVX_PCM_U8 = ( 0x060000 | 0x0005 ),
          SVX_ULAW = ( 0x060000 | 0x0010 ),
          SVX_VORBIS = ( 0x060000 | 0x0060 ),
          SVX_VOX_ADPCM = ( 0x060000 | 0x0021 ),
          VOC_ALAC_16 = ( 0x080000 | 0x0070 ),
          VOC_ALAC_20 = ( 0x080000 | 0x0071 ),
          VOC_ALAC_24 = ( 0x080000 | 0x0072 ),
          VOC_ALAC_32 = ( 0x080000 | 0x0073 ),
          VOC_ALAW = ( 0x080000 | 0x0011 ),
          VOC_DOUBLE = ( 0x080000 | 0x0007 ),
          VOC_DPCM_16 = ( 0x080000 | 0x0051 ),
          VOC_DPCM_8 = ( 0x080000 | 0x0050 ),
          VOC_DWVW_12 = ( 0x080000 | 0x0040 ),
          VOC_DWVW_16 = ( 0x080000 | 0x0041 ),
          VOC_DWVW_24 = ( 0x080000 | 0x0042 ),
          VOC_DWVW_N = ( 0x080000 | 0x0043 ),
          VOC_FLOAT = ( 0x080000 | 0x0006 ),
          VOC_G721_32 = ( 0x080000 | 0x0030 ),
          VOC_G723_24 = ( 0x080000 | 0x0031 ),
          VOC_G723_40 = ( 0x080000 | 0x0032 ),
          VOC_GSM610 = ( 0x080000 | 0x0020 ),
          VOC_IMA_ADPCM = ( 0x080000 | 0x0012 ),
          VOC_MS_ADPCM = ( 0x080000 | 0x0013 ),
          VOC_NMS_ADPCM_16 = ( 0x080000 | 0x0022 ),
          VOC_NMS_ADPCM_24 = ( 0x080000 | 0x0023 ),
          VOC_NMS_ADPCM_32 = ( 0x080000 | 0x0024 ),
          VOC_OPUS = ( 0x080000 | 0x0064 ),
          VOC_PCM_16 = ( 0x080000 | 0x0002 ),
          VOC_PCM_24 = ( 0x080000 | 0x0003 ),
          VOC_PCM_32 = ( 0x080000 | 0x0004 ),
          VOC_PCM_S8 = ( 0x080000 | 0x0001 ),
          VOC_PCM_U8 = ( 0x080000 | 0x0005 ),
          VOC_ULAW = ( 0x080000 | 0x0010 ),
          VOC_VORBIS = ( 0x080000 | 0x0060 ),
          VOC_VOX_ADPCM = ( 0x080000 | 0x0021 ),
          W64_ALAC_16 = ( 0x0B0000 | 0x0070 ),
          W64_ALAC_20 = ( 0x0B0000 | 0x0071 ),
          W64_ALAC_24 = ( 0x0B0000 | 0x0072 ),
          W64_ALAC_32 = ( 0x0B0000 | 0x0073 ),
          W64_ALAW = ( 0x0B0000 | 0x0011 ),
          W64_DOUBLE = ( 0x0B0000 | 0x0007 ),
          W64_DPCM_16 = ( 0x0B0000 | 0x0051 ),
          W64_DPCM_8 = ( 0x0B0000 | 0x0050 ),
          W64_DWVW_12 = ( 0x0B0000 | 0x0040 ),
          W64_DWVW_16 = ( 0x0B0000 | 0x0041 ),
          W64_DWVW_24 = ( 0x0B0000 | 0x0042 ),
          W64_DWVW_N = ( 0x0B0000 | 0x0043 ),
          W64_FLOAT = ( 0x0B0000 | 0x0006 ),
          W64_G721_32 = ( 0x0B0000 | 0x0030 ),
          W64_G723_24 = ( 0x0B0000 | 0x0031 ),
          W64_G723_40 = ( 0x0B0000 | 0x0032 ),
          W64_GSM610 = ( 0x0B0000 | 0x0020 ),
          W64_IMA_ADPCM = ( 0x0B0000 | 0x0012 ),
          W64_MS_ADPCM = ( 0x0B0000 | 0x0013 ),
          W64_NMS_ADPCM_16 = ( 0x0B0000 | 0x0022 ),
          W64_NMS_ADPCM_24 = ( 0x0B0000 | 0x0023 ),
          W64_NMS_ADPCM_32 = ( 0x0B0000 | 0x0024 ),
          W64_OPUS = ( 0x0B0000 | 0x0064 ),
          W64_PCM_16 = ( 0x0B0000 | 0x0002 ),
          W64_PCM_24 = ( 0x0B0000 | 0x0003 ),
          W64_PCM_32 = ( 0x0B0000 | 0x0004 ),
          W64_PCM_S8 = ( 0x0B0000 | 0x0001 ),
          W64_PCM_U8 = ( 0x0B0000 | 0x0005 ),
          W64_ULAW = ( 0x0B0000 | 0x0010 ),
          W64_VORBIS = ( 0x0B0000 | 0x0060 ),
          W64_VOX_ADPCM = ( 0x0B0000 | 0x0021 ),
          WAV_ALAC_16 = ( 0x010000 | 0x0070 ),
          WAV_ALAC_20 = ( 0x010000 | 0x0071 ),
          WAV_ALAC_24 = ( 0x010000 | 0x0072 ),
          WAV_ALAC_32 = ( 0x010000 | 0x0073 ),
          WAV_ALAW = ( 0x010000 | 0x0011 ),
          WAV_DOUBLE = ( 0x010000 | 0x0007 ),
          WAV_DPCM_16 = ( 0x010000 | 0x0051 ),
          WAV_DPCM_8 = ( 0x010000 | 0x0050 ),
          WAV_DWVW_12 = ( 0x010000 | 0x0040 ),
          WAV_DWVW_16 = ( 0x010000 | 0x0041 ),
          WAV_DWVW_24 = ( 0x010000 | 0x0042 ),
          WAV_DWVW_N = ( 0x010000 | 0x0043 ),
          WAV_FLOAT = ( 0x010000 | 0x0006 ),
          WAV_G721_32 = ( 0x010000 | 0x0030 ),
          WAV_G723_24 = ( 0x010000 | 0x0031 ),
          WAV_G723_40 = ( 0x010000 | 0x0032 ),
          WAV_GSM610 = ( 0x010000 | 0x0020 ),
          WAV_IMA_ADPCM = ( 0x010000 | 0x0012 ),
          WAV_MS_ADPCM = ( 0x010000 | 0x0013 ),
          WAV_NMS_ADPCM_16 = ( 0x010000 | 0x0022 ),
          WAV_NMS_ADPCM_24 = ( 0x010000 | 0x0023 ),
          WAV_NMS_ADPCM_32 = ( 0x010000 | 0x0024 ),
          WAV_OPUS = ( 0x010000 | 0x0064 ),
          WAV_PCM_16 = ( 0x010000 | 0x0002 ),
          WAV_PCM_24 = ( 0x010000 | 0x0003 ),
          WAV_PCM_32 = ( 0x010000 | 0x0004 ),
          WAV_PCM_S8 = ( 0x010000 | 0x0001 ),
          WAV_PCM_U8 = ( 0x010000 | 0x0005 ),
          WAV_ULAW = ( 0x010000 | 0x0010 ),
          WAV_VORBIS = ( 0x010000 | 0x0060 ),
          WAV_VOX_ADPCM = ( 0x010000 | 0x0021 ),
          WAVEX_ALAC_16 = ( 0x130000 | 0x0070 ),
          WAVEX_ALAC_20 = ( 0x130000 | 0x0071 ),
          WAVEX_ALAC_24 = ( 0x130000 | 0x0072 ),
          WAVEX_ALAC_32 = ( 0x130000 | 0x0073 ),
          WAVEX_ALAW = ( 0x130000 | 0x0011 ),
          WAVEX_DOUBLE = ( 0x130000 | 0x0007 ),
          WAVEX_DPCM_16 = ( 0x130000 | 0x0051 ),
          WAVEX_DPCM_8 = ( 0x130000 | 0x0050 ),
          WAVEX_DWVW_12 = ( 0x130000 | 0x0040 ),
          WAVEX_DWVW_16 = ( 0x130000 | 0x0041 ),
          WAVEX_DWVW_24 = ( 0x130000 | 0x0042 ),
          WAVEX_DWVW_N = ( 0x130000 | 0x0043 ),
          WAVEX_FLOAT = ( 0x130000 | 0x0006 ),
          WAVEX_G721_32 = ( 0x130000 | 0x0030 ),
          WAVEX_G723_24 = ( 0x130000 | 0x0031 ),
          WAVEX_G723_40 = ( 0x130000 | 0x0032 ),
          WAVEX_GSM610 = ( 0x130000 | 0x0020 ),
          WAVEX_IMA_ADPCM = ( 0x130000 | 0x0012 ),
          WAVEX_MS_ADPCM = ( 0x130000 | 0x0013 ),
          WAVEX_NMS_ADPCM_16 = ( 0x130000 | 0x0022 ),
          WAVEX_NMS_ADPCM_24 = ( 0x130000 | 0x0023 ),
          WAVEX_NMS_ADPCM_32 = ( 0x130000 | 0x0024 ),
          WAVEX_OPUS = ( 0x130000 | 0x0064 ),
          WAVEX_PCM_16 = ( 0x130000 | 0x0002 ),
          WAVEX_PCM_24 = ( 0x130000 | 0x0003 ),
          WAVEX_PCM_32 = ( 0x130000 | 0x0004 ),
          WAVEX_PCM_S8 = ( 0x130000 | 0x0001 ),
          WAVEX_PCM_U8 = ( 0x130000 | 0x0005 ),
          WAVEX_ULAW = ( 0x130000 | 0x0010 ),
          WAVEX_VORBIS = ( 0x130000 | 0x0060 ),
          WAVEX_VOX_ADPCM = ( 0x130000 | 0x0021 ),
          WVE_ALAC_16 = ( 0x190000 | 0x0070 ),
          WVE_ALAC_20 = ( 0x190000 | 0x0071 ),
          WVE_ALAC_24 = ( 0x190000 | 0x0072 ),
          WVE_ALAC_32 = ( 0x190000 | 0x0073 ),
          WVE_ALAW = ( 0x190000 | 0x0011 ),
          WVE_DOUBLE = ( 0x190000 | 0x0007 ),
          WVE_DPCM_16 = ( 0x190000 | 0x0051 ),
          WVE_DPCM_8 = ( 0x190000 | 0x0050 ),
          WVE_DWVW_12 = ( 0x190000 | 0x0040 ),
          WVE_DWVW_16 = ( 0x190000 | 0x0041 ),
          WVE_DWVW_24 = ( 0x190000 | 0x0042 ),
          WVE_DWVW_N = ( 0x190000 | 0x0043 ),
          WVE_FLOAT = ( 0x190000 | 0x0006 ),
          WVE_G721_32 = ( 0x190000 | 0x0030 ),
          WVE_G723_24 = ( 0x190000 | 0x0031 ),
          WVE_G723_40 = ( 0x190000 | 0x0032 ),
          WVE_GSM610 = ( 0x190000 | 0x0020 ),
          WVE_IMA_ADPCM = ( 0x190000 | 0x0012 ),
          WVE_MS_ADPCM = ( 0x190000 | 0x0013 ),
          WVE_NMS_ADPCM_16 = ( 0x190000 | 0x0022 ),
          WVE_NMS_ADPCM_24 = ( 0x190000 | 0x0023 ),
          WVE_NMS_ADPCM_32 = ( 0x190000 | 0x0024 ),
          WVE_OPUS = ( 0x190000 | 0x0064 ),
          WVE_PCM_16 = ( 0x190000 | 0x0002 ),
          WVE_PCM_24 = ( 0x190000 | 0x0003 ),
          WVE_PCM_32 = ( 0x190000 | 0x0004 ),
          WVE_PCM_S8 = ( 0x190000 | 0x0001 ),
          WVE_PCM_U8 = ( 0x190000 | 0x0005 ),
          WVE_ULAW = ( 0x190000 | 0x0010 ),
          WVE_VORBIS = ( 0x190000 | 0x0060 ),
          WVE_VOX_ADPCM = ( 0x190000 | 0x0021 ),
          XI_ALAC_16 = ( 0x0F0000 | 0x0070 ),
          XI_ALAC_20 = ( 0x0F0000 | 0x0071 ),
          XI_ALAC_24 = ( 0x0F0000 | 0x0072 ),
          XI_ALAC_32 = ( 0x0F0000 | 0x0073 ),
          XI_ALAW = ( 0x0F0000 | 0x0011 ),
          XI_DOUBLE = ( 0x0F0000 | 0x0007 ),
          XI_DPCM_16 = ( 0x0F0000 | 0x0051 ),
          XI_DPCM_8 = ( 0x0F0000 | 0x0050 ),
          XI_DWVW_12 = ( 0x0F0000 | 0x0040 ),
          XI_DWVW_16 = ( 0x0F0000 | 0x0041 ),
          XI_DWVW_24 = ( 0x0F0000 | 0x0042 ),
          XI_DWVW_N = ( 0x0F0000 | 0x0043 ),
          XI_FLOAT = ( 0x0F0000 | 0x0006 ),
          XI_G721_32 = ( 0x0F0000 | 0x0030 ),
          XI_G723_24 = ( 0x0F0000 | 0x0031 ),
          XI_G723_40 = ( 0x0F0000 | 0x0032 ),
          XI_GSM610 = ( 0x0F0000 | 0x0020 ),
          XI_IMA_ADPCM = ( 0x0F0000 | 0x0012 ),
          XI_MS_ADPCM = ( 0x0F0000 | 0x0013 ),
          XI_NMS_ADPCM_16 = ( 0x0F0000 | 0x0022 ),
          XI_NMS_ADPCM_24 = ( 0x0F0000 | 0x0023 ),
          XI_NMS_ADPCM_32 = ( 0x0F0000 | 0x0024 ),
          XI_OPUS = ( 0x0F0000 | 0x0064 ),
          XI_PCM_16 = ( 0x0F0000 | 0x0002 ),
          XI_PCM_24 = ( 0x0F0000 | 0x0003 ),
          XI_PCM_32 = ( 0x0F0000 | 0x0004 ),
          XI_PCM_S8 = ( 0x0F0000 | 0x0001 ),
          XI_PCM_U8 = ( 0x0F0000 | 0x0005 ),
          XI_ULAW = ( 0x0F0000 | 0x0010 ),
          XI_VORBIS = ( 0x0F0000 | 0x0060 ),
          XI_VOX_ADPCM = ( 0x0F0000 | 0x0021 )
      };
  
      class SoundfileWrapper {
        private:
          DEFINE_STRUCT( SoundfileWrapper_imp )
          uSoundfileWrapper_imp pimpl;
          SoundfileWrapper( const SoundfileWrapper &cpy ) =
              delete; // Disallow copying
          void
          operator=( const SoundfileWrapper &cpy ) = delete; // Disallow copying
        public:
          ~SoundfileWrapper( );
          SoundfileWrapper( );
          SoundfileWrapper( SoundfileWrapper &&mov ); // Move constructor
          void operator=( SoundfileWrapper &&mov );   // Move assignment operator
          SoundfileWrapper( const char *path, bool readOnly = true );
          SoundfileWrapper( const char *path, SoundFormat format, int samplerate,
                            int channelCount, int mode );
          SoundfileWrapper( Abstract::sFIO fio, bool readOnly = true );
          SoundfileWrapper( Abstract::sFIO fio, SoundFormat format,
                            int samplerate, int channelCount, int mode );
          // IO
          long seekSet( long frames ) const;
          long seekCur( long frames ) const;
          long seekEnd( long frames ) const;
          long read( short *ptr, long items ) const;
          long read( int *ptr, long items ) const;
          long read( float *ptr, long items ) const;
          long read( double *ptr, long items ) const;
          long readf( short *ptr, long frames ) const;
          long readf( int *ptr, long frames ) const;
          long readf( float *ptr, long frames ) const;
          long readf( double *ptr, long frames ) const;
          long write( short *ptr, long items ) const;
          long write( int *ptr, long items ) const;
          long write( float *ptr, long items ) const;
          long write( double *ptr, long items ) const;
          long writef( short *ptr, long frames ) const;
          long writef( int *ptr, long frames ) const;
          long writef( float *ptr, long frames ) const;
          long writef( double *ptr, long frames ) const;
          long read_raw( void *ptr, long bytes ) const;
          long write_raw( void *ptr, long bytes ) const;
          void write_sync( ) const;
  
  		// Getters of non-text data
  		Audio::FrameCount getFrameNum( ) const;
  		Audio::Framerate getSamplerate( ) const;
  		Audio::ChannelCount getChannels( ) const;
          int getFormat( ) const;
          int getSections( ) const;
          int getSeekable( ) const;
  
          // Text getters
          const char *getTitle( ) const;
          const char *getCopyright( ) const;
          const char *getSoftware( ) const;
          const char *getArtist( ) const;
          const char *getComment( ) const;
          const char *getDate( ) const;
          const char *getAlbum( ) const;
          const char *getLicense( ) const;
          const char *getTrackNumber( ) const;
          const char *getGenre( ) const;
  
          // Text getters - C string
          int setTitle( const char *str ) const;
          int setCopyright( const char *str ) const;
          int setSoftware( const char *str ) const;
          int setArtist( const char *str ) const;
          int setComment( const char *str ) const;
          int setDate( const char *str ) const;
          int getAlbum( const char *str ) const;
          int setTrackNumber( const char *str ) const;
          int setLicense( const char *str ) const;
          int setGenre( const char *str ) const;
  
          // Text getters - C++ string
          int setTitle( const std::string &str ) const;
          int setCopyright( const std::string &str ) const;
          int setSoftware( const std::string &str ) const;
          int setArtist( const std::string &str ) const;
          int setComment( const std::string &str ) const;
          int setDate( const std::string &str ) const;
          int getAlbum( const std::string &str ) const;
          int setTrackNumber( const std::string &str ) const;
          int setLicense( const std::string &str ) const;
          int setGenre( const std::string &str ) const;
      };
  
  } // Namespace Audio
  } // namespace Mh
  #endif // MHSOUNDFILEWRAPPER_HPP
  