
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__
#define __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__

#pragma interface

#include <javax/sound/sampled/spi/MixerProvider.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace sound
      {
        namespace sampled
        {
          namespace gstreamer
          {
              class GStreamerMixer;
              class GStreamerMixerProvider;
          }
        }
      }
    }
  }
  namespace javax
  {
    namespace sound
    {
      namespace sampled
      {
          class Mixer;
          class Mixer$Info;
      }
    }
  }
}

class gnu::javax::sound::sampled::gstreamer::GStreamerMixerProvider : public ::javax::sound::sampled::spi::MixerProvider
{

public:
  GStreamerMixerProvider();
  virtual ::javax::sound::sampled::Mixer * getMixer(::javax::sound::sampled::Mixer$Info *);
  virtual JArray< ::javax::sound::sampled::Mixer$Info * > * getMixerInfo();
private:
  static ::gnu::javax::sound::sampled::gstreamer::GStreamerMixer * mixer;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__
