0b529a49608371c52dc3381b592caa4b8ce35530
different rate than the source it's reading from; one second of returned data may correspond to two seconds in the source material. GetStreamToSourceRatio returns the ratio of returned data in the next Read() call to source data. This is propagated upwards in the filter tree, so rate changes by a speed changer in the middle of the tree will be reflected in the final GetStreamToSourceRatio(). This means that whenever the ratio changes, Read() stops returning data; it returns whatever it has, so the caller has an opportunity to call GetStreamToSourceRatio again and notice the change. These semantics can be annoying to implement in some cases, where only the processing of Read() may notice a ratio change. Read() may want to return 0, to say "something changed, call GetStreamToSourceRatio again", but 0 means EOF. Add RageSoundReader::END_OF_FILE. 0 is now no longer a special case; it means "there's more data, I just didn't return any this time". This is functionally equivalent to errno EINTR.
Description
Languages
C++
85.7%
Lua
4.3%
C
4.3%
Rich Text Format
2.3%
CMake
1.1%
Other
2%