#ifndef _CAVIFILE_H_
#define _CAVIFILE_H_

#include "../App/EngineH.h"
// Header for Win32
#include <vfw.h>															
#pragma comment( lib, "vfw32.lib" )		

class CAviFile
{
private :
	int					_frame;				// aktualni frame
	AVISTREAMINFO		_stream;			
	PAVISTREAM			_pavi;				// Handle proudu
	PGETFRAME			_pgf;				// Ukazatel na objekt GetFrame
	BITMAPINFOHEADER	_bmih;				// Hlavička pro DrawDibDraw dekódování
	long				_lastframe;			// Poslední snímek proudu
	int					_width;				// Šířka videa
	int					_height;			// Výška videa
	char*				_pdata;				// Ukazatel na data textury
	int					_mpf;				// Doba zobrazení jednoho snímku (Milliseconds Per Frame)
	int					glW, glH;
	uint				_texture_id;
	C_LOG_FILE			_logFile;

	HDRAWDIB _hdd;						// Handle DIBu
	HBITMAP _hBitmap;					// Handle bitmapy závislé na zařízení
	HDC _hdc;							// Kontext zařízení
	unsigned char* _data;				// Ukazatel na bitmapu o změněné velikosti

	void _flipIt(void* buffer);
	void _GrabAVIFrame();
	

public :
	CAviFile();
	~CAviFile();

public :
	bool LoadFile(std::string nameFile, int w=256, int h=256, int qualit=1);
	void Render();
	void BindTexture();
	void Update();
	void CloseAVI();
	long GetLastFrame() {return _frame;}
	bool Konec() 
	{
		if(_frame == _lastframe-1) return TRUE;
		return FALSE;
	}
};

#endif //_CAVIFILE_H_