//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: sound2D.hpp
//      Краткое описание: статичный или потоковый 2-d звук
//

#ifndef DSE_AS_SOUND_SOUND2D_HPP
#define DSE_AS_SOUND_SOUND2D_HPP

#include <Darkstar/common.hpp>
#include <Darkstar/Audio System/Sound/baseSoundResource.hpp>
#include <Darkstar/Audio System/Sound/sounddriver.hpp>

namespace as
{
	class Sound2D : public BaseSoundResource
	{
	private:
		unsigned int ctrl;
		LPDIRECTSOUNDBUFFER8 buffer;
		unsigned int samples_rate;
		unsigned int bytes_per_sample;
		unsigned int num_chanels;
		bool is_streaming_use;
	public:
		Sound2D();
		~Sound2D();

		bool play(bool is_looping);
		bool reset();
		bool stop();

		bool load(const std::string& filename, bool is_streaming_use = true);

		bool create(bool is_streaming_use, const unsigned int size, const unsigned int ctrl, const unsigned int sample_rate, const unsigned int bits_per_sample, const unsigned int num_chanels);
		bool update(const unsigned int ofset, const unsigned int size, const void* data);

		bool getIsSoundPlaying() const;
	};
};

#include <Darkstar/Audio System/Sound/sound2D.inl>

#endif
