diff options
Diffstat (limited to 'al')
-rw-r--r-- | al/source.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/al/source.cpp b/al/source.cpp index ecaf4069..2005d25e 100644 --- a/al/source.cpp +++ b/al/source.cpp @@ -447,6 +447,7 @@ void InitVoice(Voice *voice, ALsource *source, BufferlistItem *BufferList, ALCco ALuint num_channels{buffer->channelsFromFmt()}; voice->mFrequency = buffer->mSampleRate; voice->mFmtChannels = buffer->mChannels; + voice->mFmtType = buffer->mType; voice->mSampleSize = buffer->bytesFromFmt(); voice->mAmbiLayout = buffer->mAmbiLayout; voice->mAmbiScaling = buffer->mAmbiScaling; @@ -1397,6 +1398,8 @@ bool SetSourceiv(ALsource *Source, ALCcontext *Context, SourceProp prop, const a /* Add the selected buffer to a one-item queue */ auto newlist = new BufferlistItem{}; + newlist->mCallback = buffer->mCallback; + newlist->mUserData = buffer->mUserData; newlist->mSampleLen = buffer->mSampleLen; newlist->mLoopStart = buffer->mLoopStart; newlist->mLoopEnd = buffer->mLoopEnd; @@ -3302,7 +3305,6 @@ START_API_FUNC } if(!buffer) continue; BufferList->mSampleLen = buffer->mSampleLen; - BufferList->mLoopStart = 0; BufferList->mLoopEnd = buffer->mSampleLen; BufferList->mSamples = buffer->mData; BufferList->mBuffer = buffer; |