#include "kmedia2.idl"
#include "artsflow.idl"

/* the interfaces below are not kept binary compatible */

interface DecoderBaseObject :
    Arts::StreamPlayObject,
    Arts::SynthModule,
    Arts::PitchablePlayObject
{

  async in byte stream indata;
  /**
   * blocking flag - defaults to false - when set to true, mpeglib will not
   * try to minimize latencies by generating answers (i.e. empty blocks)
   * when the thread producing the data wasn't ready
   */
  attribute boolean blocking;
};


interface MP3PlayObject : DecoderBaseObject
{
  out audio stream left,right;
};


interface WAVPlayObject : DecoderBaseObject
{
  out audio stream left,right;
};


interface MPGPlayObject : DecoderBaseObject
{
  out audio stream left,right;
};


interface OGGPlayObject : DecoderBaseObject
{
  out audio stream left,right;
};

interface CDDAPlayObject : DecoderBaseObject
{
  out audio stream left,right;
};

interface VCDPlayObject : DecoderBaseObject
{
  out audio stream left,right;
};

interface NULLPlayObject : Arts::PlayObject , Arts::SynthModule
{
  out audio stream left,right;
};
