- Procedure BuildAudioBuffer(BytesRead,CurAudioBufferLength : Integer; var Cinematic : PCinematic);
- var
- BytesRemaining,ByteCount : Integer;
- begin
- ByteCount := CurAudioBufferLength-BytesRead;
- Move(Cinematic.AudioBuffer2[BytesRead],AudioBuffer[0],ByteCount);
- BytesRemaining := Min(65536,Cinematic.AudioSampleOffset);
- Move(Cinematic.AudioBuffer[0],AudioBuffer[ByteCount],BytesRemaining);
- end;
- {$IfDef ROQ_SOUND_1}
- BytesRead := (FSOUND_GetCurrentPosition(Cinematic.FmodEmitterID));
- If (Cinematic.CurAudioBufferLength-BytesRead > 0) and (BytesRead > 0) then
- begin
- FillChar(AudioBuffer[0], Cinematic.AudioSampleCount * SizeOf(SmallInt), 0);
- BuildAudioBuffer(BytesRead,Cinematic.CurAudioBufferLength,Cinematic);
- FSOUND_Sample_Upload(Sound.FEmitters[Cinematic.FmodEmitterID].SamplePtr,@AudioBuffer[0],FSOUND_SIGNED);
- end
- else {$EndIf}