#pragma once #include "..\munga\objstrm.h" #include "..\munga\entity.h" #include "..\munga\audio.h" #include "openal/al.h" ALuint AL_getBuffer(int index); extern ALuint *g_buffers; extern int g_numBuffers; //class AudioHardware; //########################################################################## //###################### AudioObjectStream ########################### //########################################################################## class AudioObjectStream: public PlugStream { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction and testing // public: AudioObjectStream(); AudioObjectStream( ResourceDescription *resource_description, Entity *entity ); ~AudioObjectStream(); Logical TestInstance() const; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Implementations // private: RegisteredClass* MakeObjectImplementation(Enumeration class_ID); void CreatedObjectImplementation( RegisteredClass *object, ObjectID object_ID ); void BuildFromPageImplementation( NameList *entry_list, Enumeration class_ID, ObjectID object_ID ); void BuiltFromPageImplementation( Enumeration class_ID, ObjectID object_ID, const CString &object_name_string ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Private data // private: Entity *entity; }; //########################################################################## //#################### L4AudioResourceManager ######################## //########################################################################## class L4AudioResourceManager: public Node { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction, Testing // public: L4AudioResourceManager(); ~L4AudioResourceManager(); Logical TestInstance() const; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Static audio object methods // public: // //-------------------------------------------------------------------- // PreloadResources //-------------------------------------------------------------------- // void PreloadResources( NotationFile *notation_file ); // //-------------------------------------------------------------------- // UnloadResources //-------------------------------------------------------------------- // void UnloadResources( ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Static audio object methods - tool support // public: // //-------------------------------------------------------------------- // CreateStaticAudioStreamResource //-------------------------------------------------------------------- // static ResourceDescription::ResourceID CreateStaticAudioStreamResource( ResourceFile *resource_file ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Dynamic audio object methods // public: // //-------------------------------------------------------------------- // CreateEntityAudioObjects //-------------------------------------------------------------------- // void CreateEntityAudioObjects( Entity *entity, AudioRepresentation audio_representation ); // //-------------------------------------------------------------------- // DestroyEntityAudioObjects //-------------------------------------------------------------------- // void DestroyEntityAudioObjects(Entity *entity); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Dynamic audio object methods - tool support // public: // //-------------------------------------------------------------------- // CreateModelAudioStreamResource //-------------------------------------------------------------------- // static ResourceDescription::ResourceID CreateModelAudioStreamResource( ResourceFile *resource_file, const char *model_name, NotationFile *model_file, const ResourceDirectories *directories ); };