/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.7
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

#ifndef SWIG_cAudioCSharpWrapper_WRAP_H_
#define SWIG_cAudioCSharpWrapper_WRAP_H_

class SwigDirector_IDataSource : public cAudio::IDataSource, public Swig::Director {

public:
    SwigDirector_IDataSource();
    virtual ~SwigDirector_IDataSource();
    virtual void grab();
    virtual bool drop();
    virtual bool isValid();
    virtual int getCurrentPos();
    virtual int getSize();
    virtual int read(void *output, int size);
    virtual bool seek(int amount, bool relative);

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback4_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback5_t)(void *, int);
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback6_t)(int, unsigned int);
    void swig_connect_director(SWIG_Callback0_t callbackgrab, SWIG_Callback1_t callbackdrop, SWIG_Callback2_t callbackisValid, SWIG_Callback3_t callbackgetCurrentPos, SWIG_Callback4_t callbackgetSize, SWIG_Callback5_t callbackread, SWIG_Callback6_t callbackseek);

private:
    SWIG_Callback0_t swig_callbackgrab;
    SWIG_Callback1_t swig_callbackdrop;
    SWIG_Callback2_t swig_callbackisValid;
    SWIG_Callback3_t swig_callbackgetCurrentPos;
    SWIG_Callback4_t swig_callbackgetSize;
    SWIG_Callback5_t swig_callbackread;
    SWIG_Callback6_t swig_callbackseek;
    void swig_init_callbacks();
};

class SwigDirector_IDataSourceFactory : public cAudio::IDataSourceFactory, public Swig::Director {

public:
    SwigDirector_IDataSourceFactory();
    virtual ~SwigDirector_IDataSourceFactory();
    virtual cAudio::IDataSource *CreateDataSource(char const *filename, bool streamingRequested);

    typedef void * (SWIGSTDCALL* SWIG_Callback0_t)(char *, unsigned int);
    void swig_connect_director(SWIG_Callback0_t callbackCreateDataSource);

private:
    SWIG_Callback0_t swig_callbackCreateDataSource;
    void swig_init_callbacks();
};

class SwigDirector_ILogReceiver : public cAudio::ILogReceiver, public Swig::Director {

public:
    SwigDirector_ILogReceiver();
    virtual bool OnLogMessage(char const *sender, char const *message, cAudio::LogLevel level, float time);

    typedef unsigned int (SWIGSTDCALL* SWIG_Callback0_t)(char *, char *, int, float);
    void swig_connect_director(SWIG_Callback0_t callbackOnLogMessage);

private:
    SWIG_Callback0_t swig_callbackOnLogMessage;
    void swig_init_callbacks();
};

class SwigDirector_IManagerEventHandler : public cAudio::IManagerEventHandler, public Swig::Director {

public:
    SwigDirector_IManagerEventHandler();
    virtual void onInit();
    virtual void onUpdate();
    virtual void onRelease();
    virtual void onSourceCreate();
    virtual void onDecoderRegister();
    virtual void onDataSourceRegister();

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback4_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback5_t)();
    void swig_connect_director(SWIG_Callback0_t callbackonInit, SWIG_Callback1_t callbackonUpdate, SWIG_Callback2_t callbackonRelease, SWIG_Callback3_t callbackonSourceCreate, SWIG_Callback4_t callbackonDecoderRegister, SWIG_Callback5_t callbackonDataSourceRegister);

private:
    SWIG_Callback0_t swig_callbackonInit;
    SWIG_Callback1_t swig_callbackonUpdate;
    SWIG_Callback2_t swig_callbackonRelease;
    SWIG_Callback3_t swig_callbackonSourceCreate;
    SWIG_Callback4_t swig_callbackonDecoderRegister;
    SWIG_Callback5_t swig_callbackonDataSourceRegister;
    void swig_init_callbacks();
};

class SwigDirector_ISourceEventHandler : public cAudio::ISourceEventHandler, public Swig::Director {

public:
    SwigDirector_ISourceEventHandler();
    virtual void onUpdate();
    virtual void onRelease();
    virtual void onPlay();
    virtual void onStop();
    virtual void onPause();

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback4_t)();
    void swig_connect_director(SWIG_Callback0_t callbackonUpdate, SWIG_Callback1_t callbackonRelease, SWIG_Callback2_t callbackonPlay, SWIG_Callback3_t callbackonStop, SWIG_Callback4_t callbackonPause);

private:
    SWIG_Callback0_t swig_callbackonUpdate;
    SWIG_Callback1_t swig_callbackonRelease;
    SWIG_Callback2_t swig_callbackonPlay;
    SWIG_Callback3_t swig_callbackonStop;
    SWIG_Callback4_t swig_callbackonPause;
    void swig_init_callbacks();
};

class SwigDirector_ICaptureEventHandler : public cAudio::ICaptureEventHandler, public Swig::Director {

public:
    SwigDirector_ICaptureEventHandler();
    virtual void onInit();
    virtual void onUpdate();
    virtual void onRelease();
    virtual void onBeginCapture();
    virtual void onEndCapture();
    virtual void onUserRequestBuffer();

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback4_t)();
    typedef void (SWIGSTDCALL* SWIG_Callback5_t)();
    void swig_connect_director(SWIG_Callback0_t callbackonInit, SWIG_Callback1_t callbackonUpdate, SWIG_Callback2_t callbackonRelease, SWIG_Callback3_t callbackonBeginCapture, SWIG_Callback4_t callbackonEndCapture, SWIG_Callback5_t callbackonUserRequestBuffer);

private:
    SWIG_Callback0_t swig_callbackonInit;
    SWIG_Callback1_t swig_callbackonUpdate;
    SWIG_Callback2_t swig_callbackonRelease;
    SWIG_Callback3_t swig_callbackonBeginCapture;
    SWIG_Callback4_t swig_callbackonEndCapture;
    SWIG_Callback5_t swig_callbackonUserRequestBuffer;
    void swig_init_callbacks();
};

class SwigDirector_IAudioDecoder : public cAudio::IAudioDecoder, public Swig::Director {

public:
    SwigDirector_IAudioDecoder(cAudio::IDataSource *stream);
    virtual ~SwigDirector_IAudioDecoder();
    virtual void grab();
    virtual bool drop();
    virtual cAudio::AudioFormats getFormat();
    virtual int getFrequency();
    virtual bool isSeekingSupported();
    virtual bool isValid();
    virtual int readAudioData(void *output, int amount);
    virtual bool setPosition(int position, bool relative);
    virtual bool seek(float seconds, bool relative);
    virtual float getTotalTime();
    virtual int getTotalSize();
    virtual int getCompressedSize();
    virtual float getCurrentTime();
    virtual int getCurrentPosition();
    virtual int getCurrentCompressedPosition();
    virtual cAudio::cAudioString getType() const;

    typedef void (SWIGSTDCALL* SWIG_Callback0_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback1_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback2_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback3_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback4_t)();
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback5_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback6_t)(void *, int);
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback7_t)(int, unsigned int);
    typedef unsigned int (SWIGSTDCALL* SWIG_Callback8_t)(float, unsigned int);
    typedef float (SWIGSTDCALL* SWIG_Callback9_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback10_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback11_t)();
    typedef float (SWIGSTDCALL* SWIG_Callback12_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback13_t)();
    typedef int (SWIGSTDCALL* SWIG_Callback14_t)();
    typedef char * (SWIGSTDCALL* SWIG_Callback15_t)();
    void swig_connect_director(SWIG_Callback0_t callbackgrab, SWIG_Callback1_t callbackdrop, SWIG_Callback2_t callbackgetFormat, SWIG_Callback3_t callbackgetFrequency, SWIG_Callback4_t callbackisSeekingSupported, SWIG_Callback5_t callbackisValid, SWIG_Callback6_t callbackreadAudioData, SWIG_Callback7_t callbacksetPosition, SWIG_Callback8_t callbackseek, SWIG_Callback9_t callbackgetTotalTime, SWIG_Callback10_t callbackgetTotalSize, SWIG_Callback11_t callbackgetCompressedSize, SWIG_Callback12_t callbackgetCurrentTime, SWIG_Callback13_t callbackgetCurrentPosition, SWIG_Callback14_t callbackgetCurrentCompressedPosition, SWIG_Callback15_t callbackgetType);

private:
    SWIG_Callback0_t swig_callbackgrab;
    SWIG_Callback1_t swig_callbackdrop;
    SWIG_Callback2_t swig_callbackgetFormat;
    SWIG_Callback3_t swig_callbackgetFrequency;
    SWIG_Callback4_t swig_callbackisSeekingSupported;
    SWIG_Callback5_t swig_callbackisValid;
    SWIG_Callback6_t swig_callbackreadAudioData;
    SWIG_Callback7_t swig_callbacksetPosition;
    SWIG_Callback8_t swig_callbackseek;
    SWIG_Callback9_t swig_callbackgetTotalTime;
    SWIG_Callback10_t swig_callbackgetTotalSize;
    SWIG_Callback11_t swig_callbackgetCompressedSize;
    SWIG_Callback12_t swig_callbackgetCurrentTime;
    SWIG_Callback13_t swig_callbackgetCurrentPosition;
    SWIG_Callback14_t swig_callbackgetCurrentCompressedPosition;
    SWIG_Callback15_t swig_callbackgetType;
    void swig_init_callbacks();
};

class SwigDirector_IAudioDecoderFactory : public cAudio::IAudioDecoderFactory, public Swig::Director {

public:
    SwigDirector_IAudioDecoderFactory();
    virtual ~SwigDirector_IAudioDecoderFactory();
    virtual cAudio::IAudioDecoder *CreateAudioDecoder(cAudio::IDataSource *stream);

    typedef void * (SWIGSTDCALL* SWIG_Callback0_t)(void *);
    void swig_connect_director(SWIG_Callback0_t callbackCreateAudioDecoder);

private:
    SWIG_Callback0_t swig_callbackCreateAudioDecoder;
    void swig_init_callbacks();
};


#endif
