95 lines
3.2 KiB
C

/*
** Command & Conquer Generals(tm)
** Copyright 2025 Electronic Arts Inc.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
////////////////////////////////////////////////////////////////////////////////
// //
// (c) 2001-2003 Electronic Arts Inc. //
// //
////////////////////////////////////////////////////////////////////////////////
// EA Pacific
// John McDonald, Jr
// Do not distribute
#pragma once
#ifndef _AUDIOSETTINGS_H_
#define _AUDIOSETTINGS_H_
#include "Common/AsciiString.h"
enum { MAX_HW_PROVIDERS = 4 };
struct AudioSettings
{
AsciiString m_audioRoot;
AsciiString m_soundsFolder;
AsciiString m_musicFolder;
AsciiString m_streamingFolder;
AsciiString m_soundsExtension;
Bool m_useDigital;
Bool m_useMidi;
Int m_outputRate;
Int m_outputBits;
Int m_outputChannels;
Int m_sampleCount2D;
Int m_sampleCount3D;
Int m_streamCount;
Int m_globalMinRange;
Int m_globalMaxRange;
Int m_drawableAmbientFrames;
Int m_fadeAudioFrames;
UnsignedInt m_maxCacheSize;
Real m_minVolume; // At volumes less than this, the sample will be culled.
AsciiString m_preferred3DProvider[MAX_HW_PROVIDERS + 1];
//Defaults actually don't ever get changed!
Real m_relative2DVolume; //2D volume compared to 3D
Real m_defaultSoundVolume;
Real m_default3DSoundVolume;
Real m_defaultSpeechVolume;
Real m_defaultMusicVolume;
UnsignedInt m_defaultSpeakerType2D;
UnsignedInt m_defaultSpeakerType3D;
//If you want to change a value, store it somewhere else (like here)
Real m_preferredSoundVolume;
Real m_preferred3DSoundVolume;
Real m_preferredSpeechVolume;
Real m_preferredMusicVolume;
//The desired altitude of the microphone to improve panning relative to terrain.
Real m_microphoneDesiredHeightAboveTerrain;
//When tracing a line between the ground look-at-point and the camera, we want
//to ensure a maximum percentage, so the microphone never goes behind the camera.
Real m_microphoneMaxPercentageBetweenGroundAndCamera;
//Handles changing sound volume whenever the camera is close to the microphone.
Real m_zoomMinDistance; //If we're closer than the minimum distance, then apply the full bonus no matter how close.
Real m_zoomMaxDistance; //The maximum distance from microphone we need to be before benefiting from any bonus.
//NOTE: The higher this value is, the lower normal sounds will be! If you specify a sound volume value of 25%, then sounds will play
//between 75% and 100%, not 100% to 125%!
Real m_zoomSoundVolumePercentageAmount; //The amount of sound volume dedicated to zooming.
};
#endif // _AUDIOSETTINGS_H_