Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

104 lines
3.1 KiB
C++

//===========================================================================//
// File: audiorenderer.hpp //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 03/22/99 SMJ Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1999, Microsoft Corporation //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#pragma once
#include "Adept.hpp"
namespace Adept {
class AudioChannel;
class AudioSample;
//##########################################################################
//############################ AudioCommand ##########################
//##########################################################################
class AudioCommand:
public Stuff::Plug
{
friend class AudioRenderer;
friend class AudioChannel;
public:
typedef Stuff::Plug BaseClass;
static void InitializeClass(size_t block_count = 20, size_t block_delta = 10);
static void TerminateClass();
static ClassData *DefaultData;
void TestInstance() const;
void Play(gosAudio_PlayMode mode=gosAudio_PlayOnce);
void Stop();
static AudioCommand *Create(
int type,
const ResourceID &hint_ID,
Stuff::Scalar priority,
Stuff::Scalar volume,
Stuff::Scalar min_restart = 0.5f,
Stuff::Scalar min_replace = 0.8f
);
static AudioCommand *Create(
int type,
const char* name,
Stuff::Scalar priority,
Stuff::Scalar volume,
Stuff::Scalar min_restart = 0.5f,
Stuff::Scalar min_replace = 0.8f
);
gosAudio_PlayMode GetPlayMode()
{Check_Object(this); return m_playMode;}
void SetChannel(AudioChannel *channel)
{Check_Object(this); Check_Object(channel); m_channel = channel;}
virtual bool ConnectToChannel(AudioSample* sample);
virtual bool AddLoop();
virtual Stuff::Scalar ComputeEnergy(AudioChannel *channel);
Stuff::Scalar m_priority, m_volume, m_energy;
Stuff::Scalar m_minRestartDelay, m_minReplaceDelay;
protected:
AudioCommand(
ClassData *class_data,
int type,
const ResourceID &hint_ID,
Stuff::Scalar priority,
Stuff::Scalar volume,
Stuff::Scalar min_restart,
Stuff::Scalar min_replace
);
~AudioCommand();
void*
operator new(size_t size)
{Verify(size == sizeof(AudioCommand)); return s_AllocatedMemory->New();}
void
operator delete(void *where)
{s_AllocatedMemory->Delete(where);}
ResourceID m_handleResourceID;
int m_type;
AudioChannel* m_channel;
gosAudio_PlayMode m_playMode;
private:
static Stuff::MemoryBlock *s_AllocatedMemory;
};
}