Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streaming music - WIP #127

Merged
merged 31 commits into from Aug 16, 2019
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
17314eb
Make vorbis decoder usable for streaming.
and3md Jul 31, 2019
912b122
Added TStreamedSoundFile and TStreamedSoundOggVorbis.
and3md Jul 31, 2019
d372e26
The first draft of streaming sound buffers.
and3md Jul 31, 2019
74dbeda
Draft 2 of streaming sound: Multiple playback at the same time, Don't…
and3md Aug 4, 2019
32a92f9
Fixed checking dangle pointer when setBuffer() with TOpenALSoundBuff…
and3md Aug 4, 2019
75e2895
Proper release stream resources.
and3md Aug 4, 2019
9bc7ab4
Rewind streamed sound file, this is necessary for looping.
and3md Aug 5, 2019
865e0af
Music streaming: Sound looping support
and3md Aug 5, 2019
8571620
Fixed typo Soc -> Sox.
and3md Aug 5, 2019
961aa9c
TSoundBufferType -> TSoundLoading.
and3md Aug 5, 2019
8ec769f
Backward compatibility version of LoadBuffer.
and3md Aug 6, 2019
80c2989
Added CASTLE_SUPPORTS_THREADING, when threads are not available, fall…
and3md Aug 6, 2019
365eec4
Streaming: Code cleaning and minor changes.
and3md Aug 6, 2019
2b66e08
Remove unneeded log.
and3md Aug 11, 2019
b77bd60
Fix LoadBuffer result not assigned, do not introduce new LoadBuffer d…
michaliskambi Aug 12, 2019
f310a85
Whitespace (only one empty line to separate)
michaliskambi Aug 12, 2019
129102d
Wrap OggVorbis loading in TOggVorbisStream
michaliskambi Aug 12, 2019
823af29
Allow testing streaming in examples/audio/play_sounds
michaliskambi Aug 12, 2019
2f08594
Past tense of "read" is "read", not "readed"
michaliskambi Aug 13, 2019
a999ad6
Fix raising exception
michaliskambi Aug 13, 2019
853c13a
Every sound format (OggVorbis, WAV) is now expressed as TSoundReadEvent
michaliskambi Aug 13, 2019
23cf2ba
Remove large and unused TSoundFile.DataStatistics implementation
michaliskambi Aug 13, 2019
d0b8504
Allow loading FMOD dynamically (so we know at runtime when FMOD is no…
michaliskambi Aug 15, 2019
2c965d0
FMOD supports streaming too, and some code cleanups
michaliskambi Aug 15, 2019
71f4b63
Improve comment - Pascal threads for streaming are required by OpenAL…
michaliskambi Aug 15, 2019
8429af5
Fix FMOD dynamic freeing, to work with any finalization order of units
michaliskambi Aug 16, 2019
8ee8042
Get correct Duration for OggVorbis sounds, even when streaming
michaliskambi Aug 16, 2019
5315ea5
Various code cleanups (no functional changes)
michaliskambi Aug 16, 2019
4167622
Small comment improvements and code cleanups
michaliskambi Aug 16, 2019
8a06c75
Fix playing short sounds with slStreaming, we may need less than 4 bu…
michaliskambi Aug 16, 2019
dbf7c90
Improve comments and tiny code cleanups
michaliskambi Aug 16, 2019
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

Backward compatibility version of LoadBuffer.

  • Loading branch information...
and3md committed Aug 6, 2019
commit 8ec769f42dff5719bc666c8df0188f49213da873
@@ -571,6 +571,10 @@ TSoundEngine = class(TSoundAllocator)
@groupBegin }
function LoadBuffer(const URL: string; const SoundLoading: TSoundLoading; const ExceptionOnError: Boolean = true): TSoundBuffer; overload;
function LoadBuffer(const URL: string; const ExceptionOnError: Boolean = true): TSoundBuffer; overload;
function LoadBuffer(const URL: string; out Duration: TFloatTime): TSoundBuffer;
overload;
deprecated 'use LoadBuffer without Duration parameter, and just read TSoundBuffer.Duration after loading';
function LoadBuffer(const URL: string; const SoundLoading: TSoundLoading; out Duration: TFloatTime): TSoundBuffer;
overload;
deprecated 'use LoadBuffer without Duration parameter, and just read TSoundBuffer.Duration after loading';
@@ -2161,6 +2165,16 @@ function TSoundEngine.LoadBuffer(const URL: string; const SoundLoading: TSoundLo
Result.ContextOpen(ExceptionOnError);
end;

function TSoundEngine.LoadBuffer(const URL: string; const ExceptionOnError: Boolean): TSoundBuffer;
begin
LoadBuffer(URL, slComplete, ExceptionOnError);
end;

function TSoundEngine.LoadBuffer(const URL: string; out Duration: TFloatTime): TSoundBuffer;
begin
LoadBuffer(URL, slComplete, Duration);
end;

procedure TSoundEngine.FreeBuffer(var Buffer: TSoundBuffer);
var
I: Integer;
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.