#pragma once

#include "blitz/game/Listeners.h"
#include "client/audio/AudioListener.h"
#include "client/audio/AudioSource.h"

namespace blitz {

class Client;

namespace audio {

class AudioManager : public game::ClientListener {
  private:
	Client* m_Client;
	AudioListener m_Listener;
	AudioSourcePtr m_MenuMusic;
	std::vector<AudioSourcePtr> m_Sources;

  public:
	AudioManager(Client* client);
	~AudioManager();

	virtual void OnGameJoin() override;
	virtual void OnGameLeave() override;

  private:
	void InitMainMenuMusic();
};

}  // namespace audio

}  // namespace blitz
