#ifndef LEVEL_MANAGER_H_INCLUDED
#define LEVEL_MANAGER_H_INCLUDED

#include "config.h"

#include <vlc/vlc.h>

#if _THIS_BUILD==_BUILD_WINDOWS
#include <windows.h>
#endif // _THIS_BUILD

#include "level.h"

class VPlayer {
public:
	VPlayer(const int argc, const char **argv, const std::string &file_path);
	~VPlayer();

	void Start();
	void GoUp();
	void GoDown();
	void GoNext();
	void GoPrev();
	void GoFast();
	void GoSlow();
	void Restart();					//@@@ TODO: implement

private:

	void assign_media(libvlc_media_t *media);
	std::vector<Level *> m_common_levels;
	std::vector<Level *>::iterator m_current_level_it;
	Level *m_current_level;
	Level *m_fast_level;
	Level *m_slow_level;

	libvlc_instance_t *m_instance;
	libvlc_media_player_t *m_player;

	HWND m_window_handle;

};

#endif // LEVEL_MANAGER_H_INCLUDED
