Add OpenAL AL_SOFT_source_spatialize extension support for stereo spatial audio playback
Add `AllowSpatialization` option to `AudioSource`
This commit is contained in:
@@ -17,9 +17,9 @@ class AudioSource;
|
||||
/// <seealso cref="BinaryAsset" />
|
||||
API_CLASS(NoSpawn) class FLAXENGINE_API AudioClip : public BinaryAsset, public StreamableResource
|
||||
{
|
||||
DECLARE_BINARY_ASSET_HEADER(AudioClip, 2);
|
||||
public:
|
||||
DECLARE_BINARY_ASSET_HEADER(AudioClip, 2);
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
/// Audio Clip resource header structure, version 2. Added on 08.08.2019.
|
||||
/// </summary>
|
||||
@@ -40,12 +40,10 @@ public:
|
||||
class StreamingTask : public ThreadPoolTask
|
||||
{
|
||||
private:
|
||||
|
||||
WeakAssetReference<AudioClip> _asset;
|
||||
FlaxStorage::LockData _dataLock;
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// Init
|
||||
/// </summary>
|
||||
@@ -57,7 +55,6 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
// [ThreadPoolTask]
|
||||
bool HasReference(Object* resource) const override
|
||||
{
|
||||
@@ -65,28 +62,24 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
// [ThreadPoolTask]
|
||||
bool Run() override;
|
||||
void OnEnd() override;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
int32 _totalChunks;
|
||||
int32 _totalChunksSize;
|
||||
StreamingTask* _streamingTask;
|
||||
float _buffersStartTimes[ASSET_FILE_DATA_CHUNKS + 1];
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// Finalizes an instance of the <see cref="AudioClip"/> class.
|
||||
/// </summary>
|
||||
~AudioClip();
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// The audio clip header data.
|
||||
/// </summary>
|
||||
@@ -103,7 +96,6 @@ public:
|
||||
Array<int32, FixedAllocation<ASSET_FILE_DATA_CHUNKS>> StreamingQueue;
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// Gets the audio data format.
|
||||
/// </summary>
|
||||
@@ -153,7 +145,6 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// Gets the buffer start time (in seconds).
|
||||
/// </summary>
|
||||
@@ -170,7 +161,6 @@ public:
|
||||
int32 GetFirstBufferIndex(float time, float& offset) const;
|
||||
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// Extracts the source audio data from the asset storage. Loads the whole asset. The result data is in an asset format.
|
||||
/// </summary>
|
||||
@@ -196,10 +186,9 @@ public:
|
||||
API_FUNCTION() bool ExtractDataRaw(API_PARAM(Out) Array<byte>& resultData, API_PARAM(Out) AudioDataInfo& resultDataInfo);
|
||||
|
||||
public:
|
||||
|
||||
// [BinaryAsset]
|
||||
void CancelStreaming() override;
|
||||
|
||||
|
||||
// [StreamableResource]
|
||||
int32 GetMaxResidency() const override;
|
||||
int32 GetCurrentResidency() const override;
|
||||
@@ -210,9 +199,12 @@ public:
|
||||
void CancelStreamingTasks() override;
|
||||
|
||||
protected:
|
||||
|
||||
// [BinaryAsset]
|
||||
bool init(AssetInitData& initData) override;
|
||||
LoadResult load() override;
|
||||
void unload(bool isReloading) override;
|
||||
|
||||
private:
|
||||
// Writes audio samples into Audio Backend buffer and handles automatic decompression or format conversion for runtime playback.
|
||||
bool WriteBuffer(int32 chunkIndex);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user