/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version: 1.3.21
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */


Class name: Interleaver extends: SwigProxy fields: swigCPtrForInterleaver, swigCMemoryOwn {

  Method [ pvtSetCPtr: newCPtr memoryOwn: newCMemoryOwn
    swigCMemoryOwn := newCMemoryOwn.
    swigCPtrForInterleaver := newCPtr.
  ]

  Method [ getCPtrForInterleaver
    ^swigCPtrForInterleaver
  ]


  Method[ swigFinalize
    super swigFinalize.
    self delete.
  ]

  Method [ delete 
    (swigCMemoryOwn and:[ swigCPtrForInterleaver ~~ 0 ]) ifTrue:[
      swigCMemoryOwn := false.
      CslNI cslNI_delete_Interleaver: swigCPtrForInterleaver.
    ].
    swigCPtrForInterleaver := 0.
  ]

  Function[ getCPtr: obj
     obj isNil ifTrue:[^0].
     ^obj getCPtrForInterleaver
  ]

  Method [ interleave: output samples: samples numFrames: numFrames numChannels: numChannels 
    CslNI cslNI_Interleaver_interleave__SWIG_0: swigCPtrForInterleaver with: (Buffer getCPtr: output) with: (SwigTypePfloat getCPtr: samples) with: numFrames with: numChannels
  ]

  Method [ interleave: output samples: samples numFrames: numFrames numChannels: numChannels 
    CslNI cslNI_Interleaver_interleave__SWIG_1: swigCPtrForInterleaver with: (Buffer getCPtr: output) with: (SwigTypePshort getCPtr: samples) with: numFrames with: numChannels
  ]

  Method [ interleaveAndRemap: output samples: samples numFrames: numFrames numChannels: numChannels channelMap: channelMap 
    CslNI cslNI_Interleaver_interleaveAndRemap: swigCPtrForInterleaver with: (Buffer getCPtr: output) with: (SwigTypePfloat getCPtr: samples) with: numFrames with: numChannels with: (SwigTypePunsignedint getCPtr: channelMap)
  ]

  Method [ deinterleave: output samples: samples numFrames: numFrames numChannels: numChannels 
    CslNI cslNI_Interleaver_deinterleave__SWIG_0: swigCPtrForInterleaver with: (Buffer getCPtr: output) with: (SwigTypePfloat getCPtr: samples) with: numFrames with: numChannels
  ]

  Method [ deinterleave: output samples: samples numFrames: numFrames numChannels: numChannels 
    CslNI cslNI_Interleaver_deinterleave__SWIG_1: swigCPtrForInterleaver with: (Buffer getCPtr: output) with: (SwigTypePshort getCPtr: samples) with: numFrames with: numChannels
  ]

  Function [ new
    ^self fromPointer: (CslNI cslNI_new_Interleaver) memoryOwn: true
  ]

}
