* DSP: Implement Pipe 2
Pipe 2 is a DSP pipe that is used to initialize both the DSP hardware (the
application signals to the DSP to initialize) and the application (the DSP
provides the memory location of structures in the shared memory region).
* AudioCore: Implement codecs (DecodeADPCM, DecodePCM8, DecodePCM16)
* DSP Pipes: Implement as FIFO
* AudioCore: File structure
* AudioCore: More structure
* AudioCore: Buffer management
* DSP/Source: Reorganise Source's AdvanceFrame.
* Audio Output
* lolidk
* huh?
* interp
* More interp stuff
* oops
* Zero State
* Don't mix Source frame if it's not enabled
* DSP: Forgot to zero a buffer, adjusted thread synchronisation, adjusted format spec for buffers
* asdf
* Get it to compile and tweak stretching a bit.
* revert stretch test
* deleted accidental partial catch submodule commit
* new audio stretching algorithm
* update .gitmodule
* fix OS X build
* remove getopt from rubberband
* #include <stddef> to audio_core.h
* typo
* -framework Accelerate
* OptionTransientsSmooth -> OptionTransientsCrisp
* tweak stretch tempo smoothing coefficient. also switch back to smooth.
* tweak mroe
* remove printf
* sola
* #include <cmath>
* VERY QUICK MERGE TO GET IT WORKING DOESN'T ACTIVATE AUDIO FILTERS
* Reminder to self
* fix comparison
* common/thread: Correct code style
* Thread: Make Barrier reusable
* fix threading synchonisation code
* add profiling code
* print error to console when audio clips
* fix metallic sound
* reduce logspam
* DSP: Implement Pipe 2
Pipe 2 is a DSP pipe that is used to initialize both the DSP hardware (the
application signals to the DSP to initialize) and the application (the DSP
provides the memory location of structures in the shared memory region).
* AudioCore: Implement codecs (DecodeADPCM, DecodePCM8, DecodePCM16)
* DSP Pipes: Implement as FIFO
* AudioCore: File structure
* AudioCore: More structure
* AudioCore: Buffer management
* DSP/Source: Reorganise Source's AdvanceFrame.
* Audio Output
* lolidk
* huh?
* interp
* More interp stuff
* oops
* Zero State
* Don't mix Source frame if it's not enabled
* DSP: Forgot to zero a buffer, adjusted thread synchronisation, adjusted format spec for buffers
* asdf
* Get it to compile and tweak stretching a bit.
* revert stretch test
* deleted accidental partial catch submodule commit
* new audio stretching algorithm
* update .gitmodule
* fix OS X build
* remove getopt from rubberband
* #include <stddef> to audio_core.h
* typo
* -framework Accelerate
* OptionTransientsSmooth -> OptionTransientsCrisp
* tweak stretch tempo smoothing coefficient. also switch back to smooth.
* tweak mroe
* remove printf
* sola
* #include <cmath>
* VERY QUICK MERGE TO GET IT WORKING DOESN'T ACTIVATE AUDIO FILTERS
* Reminder to self
* fix comparison
* common/thread: Correct code style
* Thread: Make Barrier reusable
* fix threading synchonisation code
* add profiling code
* print error to console when audio clips
* fix metallic sound
* reduce logspam
This commit:
* Adds a new subproject, audio_core.
* Defines structures that exist in DSP shared memory.
* Hooks up various other parts of the emulator into audio core.
This sets the foundation for a later HLE DSP implementation.
Add a case of `Log::Level::Count` to all switch statements that
dispatch on `Log::Level`. The case simply asserts `false` and notes
the invalid log level.
Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R.
Currently only the Y (luma) channel is used, so the results don't
contain color. This will be added in a later PR at some point.
This is enough to get all currently know Moflex videos to decode. (Some
don't display on-screen due to seemingly unrelated reasons.)
Thanks to @archshift for doing the initial implementation which I
cleaned up and then fixed the 8x8 block mode.
It provided a large increase in complexity of the logging system while
having a negligible performance impact: the usage patterns of the ring
buffer meant that each log contended with the logging thread, causing
it to effectively act as a synchronous extra buffering.
Also removed some broken code related to filtering of subclasses which
was broken since it was introduced. (Which means no one ever used that
feature anyway, since, 8 months later, no one ever complained.)
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)
Also removed some GEKKO cruft.
Stubbed CreateMemoryBlock
Using Berkeley sockets, and Winsock2.2 on Windows.
So far ftpony creates the socket and accepts incoming connections
SOC_U: Renamed functions to maintain consistency
Also prevents possible scope errors / conflicts with the actual Berkeley socket functions
SOCU: Close all the opened sockets when cleaning up SOCU