Admiral H. Curtiss
64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction.
2022-11-27 03:58:50 +01:00
Admiral H. Curtiss
e085bf14f9
Core: Use extra thread for Cubeb on Windows to not disturb the CoInitialize state of whatever thread happens to call a Cubeb function.
2022-11-26 05:05:57 +01:00
Admiral H. Curtiss
ca10e92ab9
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
...
Co-authored-by: Michael M <mchtly@gmail.com>
2022-11-26 05:05:56 +01:00
Admiral H. Curtiss
59b1419a8e
Externals: Update cubeb to mozilla/cubeb@773f16b7ea and make it a submodule.
...
CMakeLists.txt has been extracted and modified a bit to work with Dolphin's typical build settings.
2022-11-26 05:05:52 +01:00
Admiral H. Curtiss
1c63349984
AudioCommon: Pass Core::System to AudioCommon functions.
2022-11-06 02:13:58 +01:00
Pokechu22
6de55e416b
WaveFile: Fix size check
...
`count` is the number of stereo samples to write (where each stereo sample is two shorts), while `BUFFER_SIZE` is the size of the buffer in shorts. So `count` needs to be multiplied by `2`, not `BUFFER_SIZE`. Also, when this check was failed, the previous code just clobbered whatever was past the end of the buffer after logging the warning, which corrupted `basename`, eventually resulting in Dolphin crashing.
This affected Datel's Wii-compatible Action Replay, which uses a block size of 2298, or 18384 stereo samples, which is 36768 shorts, which is bigger than the buffer size of 32768. (However, the previous commit means that only one block is transfered at a time, eliminating this issue; fixing the bounds check is just a general safety thing instead of an actual bugfix now.)
2022-10-22 11:44:38 -07:00
Pokechu22
72de74d4fc
Mixer: Add assertions regarding num_samples versus buffer length
2022-09-08 12:10:10 -07:00
Pokechu22
abb59a781a
Mixer: Use smaller array for PushWiimoteSpeakerSamples
2022-09-08 12:10:02 -07:00
Admiral H. Curtiss
c310e504cb
AudioCommon: Move sound stream variables to Core::System.
2022-08-31 21:44:21 +02:00
Shawn Hoffman
f92541fbd9
StripSpaces: only strip spaces
...
StripWhitespace maintains old behavior
2022-07-25 18:40:12 -07:00
Shawn Hoffman
0a15d2fcec
cubeb: fix logged source file paths
2022-07-18 09:52:54 -07:00
CasualPokePlayer
4234b25682
Do not directly store input sample rate, rather just store a divisor for that sample rate, with it using a fixed dividend of 54000000 * 2.
...
This should reduce (but not completely eliminate) gradual audio desyncs in dumps. This also allows for accurate sample rates for the GameCube.
Completely eliminating gradual audio desyncs will require resampling to an integer sample rate, as nothing seems to support a non-integer sample rate.
2022-07-03 15:07:06 -07:00
CasualPokePlayer
ad892176d0
have audio dumps apply volume (fixes cases of audio dumps being "too loud" and in game audio controls having no effect)
2022-06-10 21:27:10 -07:00
Admiral H. Curtiss
580c721c82
cmake: Don't use PCH with Qt6.
2022-05-22 01:19:44 +02:00
Admiral H. Curtiss
36cfcb530f
IOFile: Make origin parameter to Seek() an enum class.
2022-01-29 06:49:21 +01:00
Pokechu22
ca9bf3174f
Use HRWrap in remaining locations
...
Note that D3DCommon can't use DX11HRWrap or DX12HRWrap since it's shared between them.
2022-01-09 12:44:55 -08:00
Admiral H. Curtiss
eb5bb2993e
Core/AudioCommon: Add config caching to Mixer.
2022-01-06 16:43:43 +01:00
Admiral H. Curtiss
2aa44b10ba
Config: Port TimingVariance setting to new config system.
2022-01-06 16:13:56 +01:00
Admiral H. Curtiss
fb47035f97
Config: Port emulation speed setting to new config system.
2022-01-06 16:13:54 +01:00
Pokechu22
2025763420
Treewide: Adjust order of includes
2021-12-10 14:49:57 -08:00
Mai M
6c72e6814d
Merge pull request #10169 from leoetlino/fmt-localtime
...
Use fmt::localtime instead of thread-unsafe std::localtime
2021-11-07 00:08:14 -04:00
Pokechu22
04d8cdfe88
Convert LOG_TYPE and LOG_LEVELS to enum class
2021-10-24 11:48:36 -07:00
Léo Lam
8195d0bda1
Merge pull request #10144 from malleoz/dsp-onion
...
Port Main.DSP to MainSettings
2021-10-16 11:32:38 +02:00
sowens99
8ea6bef98f
Port Main.DSP to MainSettings
...
While trying to work on adding audiodump support for CLI, I was alerted that it was important to first try moving the DSP configs to the new config before continuing, as that makes it substantially easier to write clean code to add such a feature.
This commit aims to allow for Dolphin to only rely on the new config for DSP-related settings.
2021-10-15 23:24:46 -04:00
Léo Lam
fd7df2ccae
Use fmt::localtime instead of thread-unsafe std::localtime
...
fmt::localtime is also less awkward to use compared to std::localtime.
2021-10-15 22:49:13 +02:00
Léo Lam
6bf10e0276
Merge pull request #10149 from malleoz/audiodump-add-timecode
...
Add Game ID, timecode to dspdump and dtkdump filenames
2021-10-15 19:42:30 +02:00
Pokechu22
78bfd25964
Fix all uninitialized variable warnings (C26495)
2021-10-13 12:32:16 -07:00
sowens99
1d5d896eaa
Add timecode to dspdump and dtkdump
...
Match the same formatting present in framedump filenames.
2021-10-03 18:20:01 -04:00
Tillmann Karras
eda2035874
AudioCommon: rename isValid() to IsValid()
2021-08-08 03:05:03 +01:00
Tillmann Karras
b6d8c111bc
AudioCommon: make SoundLoop() non-virtual and private
2021-08-08 00:15:05 +01:00
Tillmann Karras
d14b9a73b2
AudioCommon: get rid of Update(), it never does anything
2021-08-08 00:14:49 +01:00
Tillmann Karras
c2d396526b
AudioCommon: fix "Error stopping stream" when emulation is paused
2021-08-08 00:14:24 +01:00
Bonta
d0f0b4c0e0
SI: Implement GBAEmu device
2021-07-13 16:42:57 +02:00
Bonta
502def7f71
Mixer: Support GBA samples mixing
2021-07-13 16:40:07 +02:00
Pierre Bourdon
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
...
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Pokechu22
004dfd1586
Replace uses of cassert with Common/Assert.h
2021-04-02 10:18:18 -07:00
Bonta-kun
66e39de1ab
AudioCommon: Initialize before HW
2021-03-24 14:11:49 +01:00
JosJuice
18d95dfcca
Merge pull request #8316 from CookiePLMonster/wasapi-code-improvements
...
WASAPI code improvements
2021-03-11 21:18:16 +01:00
Shawn Hoffman
500a694ca8
msbuild: bundle all dolphin "core" code into single library
2021-01-27 14:29:49 -08:00
Shawn Hoffman
84128d9532
rename Common/File to Common/IOFile
2021-01-27 14:29:48 -08:00
Silent
cb854d7832
AudioCommon/WASAPI: Construct std::thread with invoke semantics instead of a lambda
2021-01-12 19:25:40 +01:00
Silent
11c5150c16
AudioCommon/WASAPI: Factorize device enumeration logic into a function to greatly reduce code duplication
2021-01-12 19:25:38 +01:00
Silent
c373890505
AudioCommon/WASAPI: Do volume adjustment only when really needed
...
This skips a potentially costly loop if volume is 100% or 0%,
as for former there is no need for volume adjustment,
while latter can be solved by specifying a AUDCLNT_BUFFERFLAGS_SILENT flag
2021-01-12 19:24:49 +01:00
Silent
991b3ba8c2
AudioCommon/WASAPI: Remove thread unsafe nullptr checks giving a false sense of safety
2021-01-12 19:24:49 +01:00
Silent
5dbbf36563
AudioCommon/WASAPI: Use std::string_view where applicable
2021-01-12 19:24:46 +01:00
Silent
7d59ad262f
AudioCommon/WASAPI: Use leaner memory model on m_running, no need for a full barrier
2021-01-12 19:21:54 +01:00
Silent
ee60be4501
AudioCommon/WASAPI: Simplify thread synchronization model by not detaching WASAPI handler thread
2021-01-12 19:21:54 +01:00
Silent
c5a372ab2a
AudioCommon/WASAPI: Use WRL/WIL whenever possible
...
This fixes numerous resource leaks, as not every return path cleaned every created resource
Now they are all managed automatically and "commited" to WASAPIStream class fields only
after it's certain they initialized properly
2021-01-12 19:21:22 +01:00
Silent
374629ef30
AudioCommon: Make HandleWinAPI handle all success return values properly, not just S_OK
2021-01-12 19:18:48 +01:00
Lioncash
56d233c47c
AudioCommon: Convert alerts over to fmt-based variants
...
Continues the migration over to fmt
Converts two panic alerts into error logs, since they aren't really
things a user can do anything about.
2020-11-27 10:10:11 -05:00