#ifndef _SPIEL
#define _SPIEL

#include <SDL/SDL.h>
#include <stdio.h>
#include <cmath>
#include <time.h>

#define _SCRNW 320
#define _SCRNH 180
#define _FPS 60
#define _RATE 22050



#include "co.h"
#include "Ge.hpp"
#include "BitMapFlag.hpp"


#define PlasmaRedPixel 0x0000FF
#define PlasmaRedBG 0x000000
#define GreenCrtPixel 0x0007FF04
#define GreenCrtBG 0x00013D00
#define AmberCrtPixel 0x17CEFF
#define AmberCrtBG 0x00133E
#define MacintoshPixel 0x00FFFFFF
#define MacintoshBG 0x00000000
#define PaperWhitePixel 0x00000000
#define PaperWhiteBG 0x00FFFFFF
#define CalculatorLcdPixel 0x00060500
#define CalculatorLcdBG 0x008c906b
#define GrayLcdPixel 0x00f0f3fc
#define GrayLcdBG 0x0026292e

#define DisplayW 640
#define DisplayH 360



class Api
{
	public:
	virtual void Delay(int) {};
	virtual bool Quit() {return false;};
	virtual void Gtfo() {};
	virtual void Lock() {};
	virtual void Unlock() {};
	virtual void Refresh() {};
	virtual Uint32 Color(Uint8,Uint8,Uint8) {return 0;};
	virtual void Plot(Uint16,Uint16,Uint32) {};
	virtual void SetSeq(Gen *) {};
};

typedef Co<Api*> Cunt;

class MapRGB : public Cunt {public: Cunt* Routine(Api*);};
class DrawShit : public Cunt {public: Cunt* Routine(Api*);};
class EveryFrame : public Cunt {public: Cunt* Routine(Api*);};
class AudioFrame : public Cunt {public: Cunt* Routine(Api*);};


#endif
