#ifndef AUDIOTRANSFORMATION_H
#define AUDIOTRANSFORMATION_H

#include <stdint.h>

#include "SDL.h"
#include "sge.h"

#include <vector>
#include <string>
using namespace std;

#define AUDIO_TRANSFORMATION_NONE 0
#define AUDIO_TRANSFORMATION_PANNING 1
#define AUDIO_TRANSFORMATION_FADE_IN 2
#define AUDIO_TRANSFORMATION_FADE_OUT 4
#define AUDIO_TRANSFORMATION_START_TIME 8

class AudioTransformation
{
 public:
  AudioTransformation ();
  ~AudioTransformation ();

  uint8_t getLeftPanning();
  uint8_t getRightPanning();
  void setPanning(uint8_t lef, uint8_t rig);

  int getNumberOfLoops();
  void setNumberOfLoops(int);

  int getFadeInTime ();
  void setFadeInTime (int);

  int getFadeOutTime ();
  void setFadeOutTime (int);

  uint8_t getTransformFlag ();
  void setTransformFlag (uint8_t);

  uint8_t getVolume();
  void setVolume(uint8_t);

  double getStartTime();
  void setStartTime(double);

  void clear();

  void operator=(const AudioTransformation &other);
 private:
  uint8_t transformFlag;
  uint8_t leftPan, rightPan;
  uint8_t volume;
  int loops;
  int fadeInTime, fadeOutTime;
  double starttime;
};

#endif
