//===========================================================================// // File: audent.hpp // // Project: MUNGA Brick: Model Manager // // Contents: Interface specification for audio entity class // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 12/20/95 ECH Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(AUDENT_HPP) # define AUDENT_HPP # if !defined(EXPLODE_HPP) # include # endif # if !defined(SEGMENT_HPP) # include # endif # if !defined(SLOT_HPP) # include # endif //########################################################################## //########################## AudioEntity ############################# //########################################################################## class AudioEntity__MakeMessage; class AudioEntity: public Explosion { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Public types // public: typedef AudioEntity__MakeMessage MakeMessage; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: AudioEntity( MakeMessage *creation_message, SharedData &shared_data = DefaultData ); ~AudioEntity(); static AudioEntity* Make(MakeMessage *creation_message); Logical TestInstance() const; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Model Support // public: typedef void (AudioEntity::*Performance)(Scalar time_slice); void SetPerformance(Performance performance) { Check(this); activePerformance = (Simulation::Performance)performance; } void AudioEntitySimulation(Scalar time_slice); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation ClassDerivations; static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Private Data // private: SlotOf parentEntitySocket; EntitySegment *parentEntitySegment; }; //########################################################################## //#################### AudioEntity__MakeMessage ###################### //########################################################################## class AudioEntity__MakeMessage: public Explosion::MakeMessage { public: AudioEntity__MakeMessage( ResourceDescription::ResourceID resource_ID, Entity *parent_entity, EntitySegment *parent_entity_segment ); EntityID parentEntityID; EntitySegment *parentEntitySegment; }; #endif