<unit name="ok_vorbisfile">
  <description><abstract>API of vorbisfile library.</abstract><detailed> Usually libvorbisfile.so under Unixes or vorbisfile.dll under Windows. This is just a quick translation of /usr/include/vorbis/vorbisfile.h header.</detailed></description>
  <constant name="NOTOPEN" declaration="NOTOPEN   = 0;">
  </constant>
  <constant name="PARTOPEN" declaration="PARTOPEN  = 1;">
  </constant>
  <constant name="OPENED" declaration="OPENED    = 2;">
  </constant>
  <constant name="STREAMSET" declaration="STREAMSET = 3;">
  </constant>
  <constant name="INITSET" declaration="INITSET   = 4;">
  </constant>
  <variable name="ov_clear" declaration="ov_clear: function(Vf: POggVorbis_File): CInt; cdecl;">
  </variable>
  <variable name="VorbisFileInited" declaration="VorbisFileInited: boolean;">
  </variable>
  <type name="TSizeT" declaration="TSizeT = LongWord;">
    <aliased-name>LongWord</aliased-name>
  </type>
  <type name="TVorbisFileReadFunc" declaration="TVorbisFileReadFunc = function (ptr: Pointer; Size: TSizeT; nmemb: TSizeT; DataSource: Pointer): TSizeT; cdecl;">
  </type>
  <type name="TVorbisFileSeekFunc" declaration="TVorbisFileSeekFunc = function (DataSource: Pointer; offset: Int64; whence: CInt): CInt; cdecl;">
  </type>
  <type name="TVorbisFileCloseFunc" declaration="TVorbisFileCloseFunc = function (DataSource: Pointer): CInt; cdecl;">
  </type>
  <type name="TVorbisFileTellFunc" declaration="TVorbisFileTellFunc = function (DataSource: Pointer): CLong; cdecl;">
  </type>
  <type name="Pov_callbacks" declaration="Pov_callbacks = ^Tov_callbacks;">
  </type>
  <type name="POggVorbis_File" declaration="POggVorbis_File = ^TOggVorbis_File;">
  </type>
  <structure name="Tov_callbacks" name_with_generic="Tov_callbacks" type="record">
    <variable name="read_func" declaration="read_func: TVorbisFileReadFunc;" visibility="public">
    </variable>
    <variable name="seek_func" declaration="seek_func: TVorbisFileSeekFunc;" visibility="public">
    </variable>
    <variable name="close_func" declaration="close_func: TVorbisFileCloseFunc;" visibility="public">
    </variable>
    <variable name="tell_func" declaration="tell_func: TVorbisFileTellFunc;" visibility="public">
    </variable>
  </structure>
  <structure name="TOggVorbis_File" name_with_generic="TOggVorbis_File" type="record">
    <variable name="datasource" declaration="datasource: Pointer;" visibility="public">
    </variable>
    <variable name="seekable" declaration="seekable: Cint;" visibility="public">
      <description><abstract>* Pointer to a FILE *, etc.</abstract><detailed> *</detailed></description>
    </variable>
    <variable name="offset" declaration="offset: Int64;" visibility="public">
    </variable>
    <variable name="_end" declaration="_end: Int64;" visibility="public">
    </variable>
    <variable name="oy" declaration="oy: Togg_sync_state;" visibility="public">
    </variable>
    <variable name="links" declaration="links: Cint;" visibility="public">
    </variable>
    <variable name="offsets" declaration="offsets: PInt64;" visibility="public">
    </variable>
    <variable name="dataoffsets" declaration="dataoffsets: PInt64;" visibility="public">
    </variable>
    <variable name="serialnos" declaration="serialnos: PCLong;" visibility="public">
    </variable>
    <variable name="pcmlengths" declaration="pcmlengths: PInt64;" visibility="public">
    </variable>
    <variable name="vi" declaration="vi: Pvorbis_info;" visibility="public">
      <description><abstract>* overloaded to maintain binary compatability; x2 size, stores both beginning and end values *</abstract></description>
    </variable>
    <variable name="vc" declaration="vc: Pvorbis_comment;" visibility="public">
    </variable>
    <variable name="pcm_offset" declaration="pcm_offset: Int64;" visibility="public">
      <description><abstract>* Decoding working state local storage *</abstract></description>
    </variable>
    <variable name="ready_state" declaration="ready_state: CInt;" visibility="public">
    </variable>
    <variable name="current_serialno" declaration="current_serialno: Clong;" visibility="public">
    </variable>
    <variable name="current_link" declaration="current_link: CInt;" visibility="public">
    </variable>
    <variable name="bittrack" declaration="bittrack: double;" visibility="public">
    </variable>
    <variable name="samptrack" declaration="samptrack: double;" visibility="public">
    </variable>
    <variable name="os" declaration="os: Togg_stream_state;" visibility="public">
    </variable>
    <variable name="vd" declaration="vd: Tvorbis_dsp_state;" visibility="public">
      <description><abstract>* take physical pages, weld into a logical stream of packets *</abstract></description>
    </variable>
    <variable name="vb" declaration="vb: Tvorbis_block;" visibility="public">
      <description><abstract>* central working state for the packet-&gt;PCM decoder *</abstract></description>
    </variable>
    <variable name="callbacks" declaration="callbacks: Tov_callbacks;" visibility="public">
      <description><abstract>* local working space for packet-&gt;PCM decode *</abstract></description>
    </variable>
  </structure>
</unit>
