//===========================================================================// // File: l4audres.hpp // // Project: MUNGA Brick: Audio Renderer Manager // // Contents: // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 05/10/95 ECH Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1994, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(L4AUDRES_HPP) # define L4AUDRES_HPP # if !defined(OBJSTRM_HH) # include # endif # if !defined(ENTITY_HPP) # include # endif # if !defined(AUDIO_HPP) # include # endif 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, AudioHardware *audio_hardware ); // //-------------------------------------------------------------------- // UnloadResources //-------------------------------------------------------------------- // void UnloadResources( AudioHardware *audio_hardware ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // 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 ); }; #endif