//
// Tools_SoundResource.h
//
// Created by Richard Rice - 30/04/03
// 
// Copyright (C) 2003 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLS_SOUNDRESOURCE_H__
#define __TOOLS_SOUNDRESOURCE_H__

#include "Core/Asura_Hash.h"


template< typename T > class List;
struct Asura_SoundMapping;
struct Tools_SoundProperties;

class Tools_SoundResource
{
public :
	static int GetSoundMappingResourceSize(const char* pszResourceName,const List<Asura_SoundMapping>& xMappingList);
	static void CreateSoundMappingResource(const char* pszResourceName,const List<Asura_SoundMapping>& xMappingList,char* pcBuffer);

	static int GetSoundPropertiesResourceSize(const char* pszResourceName,const List<Tools_SoundProperties>& xPropertiesList);
	static void CreateSoundPropertiesResource(const char* pszResourceName,const List<Tools_SoundProperties>& xPropertiesList,char* pcBuffer);

};


struct Asura_SoundMapping
{
	Asura_SoundMapping()
	{
		m_iNewSoundID = 0;
		m_iExistingSoundID = 0;
		m_uExistingSoundHash = 0;
	}

	int m_iNewSoundID;
	int	m_iExistingSoundID;
	Asura_Hash_ID m_uExistingSoundHash;
};

struct Tools_SoundProperties
{
	int m_iSoundID;

	float m_fPitchScale;
	float m_fVolumeScale;
	float m_fDefaultInnerRadius;
	float m_fDefaultOuterRadius;
};



#endif // __TOOLS_SOUNDRESOURCE_H__
