Liam
ceda2d280e
general: rename CurrentProcess to ApplicationProcess
2023-02-13 19:03:12 -05:00
Kelebek1
3a90ed99be
Fix biquad filter command's state buffer offset
2023-02-13 16:21:29 +00:00
Kelebek1
2e02ed8bb5
Add fallback for memory read/write in case the address goes over a 4K page
2023-02-11 16:27:43 +00:00
Kelebek1
19e1ea6a02
Fix depop prepare receiving bad mix infos and writing out of bounds, and update aux a bit, may help
2023-02-11 10:21:25 +00:00
Merry
3c60bc36a1
biquad_filter: Clamp f64 in ApplyBiquadFilterFloat
2023-02-10 20:43:34 +00:00
Merry
9bdcb1070f
biquad_filter: Fix rounding in ApplyBiquadFilterInt
2023-02-10 20:34:52 +00:00
Narr the Reg
7c0dcea96c
audio: cubeb: Fix yuzu crashing when it test for latency
2023-02-09 19:38:03 -06:00
Merry
a0e8e5b22e
upsample: Fix coefficient format
2023-01-14 17:09:03 +00:00
Merry
122a8faa38
audio_core: Fix off-by-one error in upsampler
2023-01-14 15:19:11 +00:00
Liam
c18cf05a06
cmake: make cubeb and SDL2 optional
2022-12-28 17:29:32 -05:00
Kelebek1
6a56f42f5d
Signal buffer event on audio in/out system stop, and force remove all registered audio buffers
2022-12-16 16:07:24 +00:00
Liam
e532b74e11
audio_core: remove explicitly defaulted and implicitly deleted constructors
2022-12-10 13:05:15 -05:00
Alexandre Bouvier
e6ae720c33
cmake: use sdl2 imported target
2022-12-06 01:26:30 +01:00
Alexandre Bouvier
8e17b5469f
cmake: prefer system libraries
2022-12-04 17:09:25 +01:00
liamwhite
75e16547f8
Merge pull request #9300 from ameerj/pch
...
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
...
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
ameerj
5b5612c1cc
CMake: Consolidate common PCH headers
2022-11-30 18:30:30 -05:00
Fernando S
4e89979c87
Merge pull request #9320 from yuzu-emu/fix-audio-suspend
...
AudioCore: Take suspend lock when stalling the running process.
2022-11-30 16:41:32 +01:00
bunnei
8fd4e44014
audio_core: sink_stream: Hold the suspend lock when process is stalled.
...
- Prevents us from clashing with other callers trying to un/stall.
2022-11-29 20:32:06 -08:00
ameerj
37bc5118ea
CMake: Use precompiled headers
2022-11-29 18:50:49 -05:00
lat9nq
0941ae0b61
CMake: Directly link to SDL2-static when appropriate
...
Trying to be lazy and alias SDL2 to SDL2-static causes issues in later
versions of CMake. Just use the same condition to tell which one to use.
2022-11-28 23:21:14 -05:00
Liam
9737615948
general: fix compile for Apple Clang
2022-11-22 22:22:28 -05:00
Kelebek1
84d4da89a5
Use the maximum input index for samples buffer span size, not just the input count
2022-11-22 15:32:11 +00:00
Kyle Kienapfel
6fa3faec65
Add break for default cases
...
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.
I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw
R_THROW macro leads towards a return
2022-11-13 16:30:55 -08:00
Liam
cbaf642ffe
Initial ARM64 support
2022-11-09 16:58:49 -05:00
Lioncash
e0ec9ffc36
audio_in/out_system: Pass Initialize members by value where applicable
...
applet_resource_user_id isn't actually modified and is just assigned to
a member variable, so this doesn't need to be a mutable reference.
Similarly, the device name itself isn't modified and is only moved. We
pass by value here, since we can still perform the move, but eliminate a
sneaky set of calls that can unintentionally destroy the original
string. Given how nested the calls are, it's good to get rid of this
potential vector for a use-after-move bug.
2022-10-26 11:21:48 -04:00
Morph
6908ea2284
general: Resolve -Wclass-memaccess
2022-10-22 15:02:04 -04:00
Morph
e6ab1f673b
general: Enforce C4800 everywhere except in video_core
2022-10-22 15:02:04 -04:00
Morph
93297d14d8
CMakeLists: Remove all redundant warnings
...
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22 15:02:04 -04:00
Kelebek1
7bd3930939
Update audio_core for firmware 15.0.0
2022-10-19 06:16:15 +01:00
lat9nq
4b773b15a6
sdl2_sink: Inline variable init into if condition
...
Co-authored-by: Mai <mathew1800@gmail.com>
2022-10-16 21:36:40 -04:00
lat9nq
9fe077635e
sdl2_sink: Distinguish between capture and non-capture device names
...
The function prototype appears to care whether we are loading capture
devices or not, and SDL_GetAudioDeviceName has a parameter to use it,
but for some reason it isn't.
This puts `capture` where it goes.
2022-10-16 03:15:54 -04:00
lat9nq
5c7eef3756
sdl2_sink: Check for null string when loading SDL audio devices
...
Attempting to place a null string into a vector of strings causes an
error that closes the application.
Don't.
2022-10-16 03:14:52 -04:00
liamwhite
ae6dd1143c
Merge pull request #9061 from liamwhite/writable-event
...
kernel: remove KWritableEvent
2022-10-14 17:30:38 -04:00
Narr the Reg
d2170075e6
audio_core: Revert sink name to sdl2
2022-10-14 10:59:33 -05:00
Liam
a9ace6856d
kernel: remove KWritableEvent
2022-10-12 20:29:29 -04:00
Kelebek1
8c9e238a7b
Choose the SDL audio backend when Cubeb reports too high of a latency
2022-10-09 13:47:59 +01:00
Liam
35d3e7db2a
common: remove "yuzu:" prefix from thread names
2022-10-03 18:43:56 -04:00
bunnei
1b1b99fbd5
Merge pull request #8941 from Kelebek1/single_core_sucks
...
Do not try to pause core timing from the audio thread when using single-core
2022-09-23 22:40:30 -07:00
Morph
c2c3f2c3e7
Merge pull request #8939 from lioncash/render
...
audio_renderer: Make GetCommandBuffer() take a u32
2022-09-23 09:07:52 -04:00
Kelebek1
56b8a9ba6e
Do not try to pause core timing from the audio thread when using single-core
2022-09-22 01:23:57 +01:00
Lioncash
c891497b61
audio_renderer: Make GetCommandBuffer() take a u32
...
This function is only ever called with unsigned types, and all of the
other interface functions take session_id as a u32, so this makes the
class a little more consistent.
2022-09-21 10:00:57 -04:00
Lioncash
00616c7ad8
audio_manager: Forward declare result type
...
Moves the include into the cpp file to lessen header dependencies.
2022-09-21 09:43:59 -04:00
Lioncash
75d6fe3669
audio_manager: Remove redundant cast in ThreadFunc()
...
We can just use a local here to get rid of a second cast.
2022-09-21 09:35:22 -04:00
Lioncash
e48e22eb52
audio_manager: move std::functions in SetOutManager/SetInManager
...
Prevents unnecessary reallocations in the event the captured variables
are larger than the internal std::function buffer.
2022-09-21 09:32:15 -04:00
Lioncash
da0fd51642
audio_manager: Remove unused forward declarations
...
Allows us to get rid of some unnecessary forward declarations and
includes.
2022-09-21 09:29:35 -04:00
Lioncash
08d81e0bd8
audio_manager: Remove unused sessions_started member variable
...
This isn't used, so it can be removed.
2022-09-21 09:28:05 -04:00
Lioncash
b59b967280
audio_manager: Remove dependence on system state
...
This isn't used by the class, so this can be removed for the time being.
2022-09-21 09:26:42 -04:00
bunnei
4a7a771340
Merge pull request #8914 from lioncash/audio-const
...
audio_core: Mark several member functions as const
2022-09-16 23:51:31 -07:00
Morph
60aa942210
Merge pull request #8911 from lioncash/cexpr-string
...
audio_device: Make AudioDeviceName constructor constexpr
2022-09-16 10:18:58 -04:00
Lioncash
7e3cdfc453
audio_renderer: Pass command buffer by const reference
...
This is just being copied and isn't modified at all.
2022-09-16 10:06:53 -04:00
Lioncash
d5d6322640
sink_stream: Mark GetQueueSize as const
2022-09-16 10:00:52 -04:00
Lioncash
6b1cb73350
node_states: Mark relevant member functions as const
2022-09-16 09:59:56 -04:00
Lioncash
e4bc7b8611
i3dl2/reverb: Mark relevant member functions as const
...
These two don't modify member state.
2022-09-16 09:58:49 -04:00
Lioncash
b2c2138af7
behavior_info: Mark CopyErrorInfo as const
...
This doesn't modify member state.
We can also mark the parameter of AppendError as const as well, since it
isn't modified.
2022-09-16 09:55:17 -04:00
Lioncash
b862d5d8d8
audio_device: Mark GetDeviceVolume as const
...
This doesn't modify instance state.
2022-09-16 09:52:34 -04:00
Lioncash
36c77761cf
audio_render_manager: Mark several functions as const
2022-09-16 09:50:32 -04:00
Lioncash
7a5d235d94
audio_in: Mark several functions as const
...
These functions don't modify class state, so we can mark them as such
2022-09-16 09:45:54 -04:00
Lioncash
d1f3c121a0
audio_out: Mark several functions as const
...
These don't affect class state, so we can mark them as such.
2022-09-16 09:45:51 -04:00
Lioncash
e9109cb5f2
audio_buffers: Pass by const-ref in AppendBuffers
...
This function doesn't modify the passed in buffer, so we can make that
explicit.
2022-09-16 09:36:03 -04:00
Lioncash
cb2a33babc
device_session: Convert for loop into ranged for in AppendBuffers
...
Simplifies the indexing code a little bit.
2022-09-16 09:32:57 -04:00
Lioncash
a278fa6e2a
device_session: Pass arguments by const-ref in relevant functions
...
These functions don't modify the passed in audio buffers, so we can
signify that in the interface.
2022-09-16 09:31:33 -04:00
bunnei
e85bda5f31
Merge pull request #8878 from Kelebek1/remove_pause
...
Remove pause callbacks from coretiming
2022-09-15 13:50:13 -07:00
liamwhite
b06ef5d530
Merge pull request #8901 from lioncash/docs
...
audio_core: Amend documentation comment tags
2022-09-15 10:36:18 -04:00
Lioncash
2c91fbf7f1
audio_core: Amend documentation tags
...
Resolves a wackload of -Wdocumentation warnings due to mismatching tags
and whatnot.
2022-09-15 09:47:23 -04:00
Lioncash
d55046c5e9
audio_device: Mark member functions as const where applicable
...
These member functions don't modify any internal state.
2022-09-15 09:06:17 -04:00
Lioncash
1c7dae966d
audio_device: Make AudioDeviceName constructor constexpr
...
These are used as read-only arrays, so we can make the data read-only
and available at compile-time.
Now constructing an AudioDevice no longer needs to initialize some
tables
2022-09-15 09:03:40 -04:00
Lioncash
f08046f4d7
compressor: Simplify memset in InitializeCompressorEffect
...
Provides equivalent behavior while being significantly smaller.
2022-09-13 13:34:58 -04:00
Lioncash
fd876f200f
compressor: Mark params parameters as const
...
These functions don't modify the parameters.
2022-09-13 13:33:41 -04:00
Lioncash
bdb866af1d
compressor: Remove unneeded casts in ApplyCompressorEffect
...
Same behavior, but also silences a -Wcast-qual warning, since the second
cast casts away const.
2022-09-13 13:28:54 -04:00
Kelebek1
e93e898df5
Remove pause callbacks from coretiming
2022-09-13 13:20:35 +01:00
Kelebek1
1deecc6f70
Remove a pragma once from a cpp file
2022-09-12 19:27:11 +01:00
Kelebek1
2129d040a5
Don't stall with nvdec
2022-09-04 05:41:06 +01:00
Kelebek1
ea9ff71725
Rework audio output, connecting AudioOut into coretiming to fix desync during heavy loads.
2022-09-02 04:43:04 +01:00
Kelebek1
85c9e31791
Do some log memes to help perceived volume
2022-08-12 19:59:09 +01:00
Liam
73a87edc45
audio_core: fix -Wuninitialized when compiling with ASan
2022-07-29 23:30:01 -04:00
Kelebek1
6c47b43a60
Avoid depop out of bounds
2022-07-27 23:17:18 +01:00
Andrea Pappacoda
cdb240f3d4
chore: make yuzu REUSE compliant
...
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
`.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to 01cf05bc75
2022-07-27 12:53:49 +02:00
Kelebek1
458da8a948
Project Andio
2022-07-22 01:11:32 +01:00
Kelebek1
240650f6a6
Rework CoreTiming
2022-07-10 06:59:40 +01:00
german77
a7d9be1384
core: Replace all instances of ResultCode with Result
2022-06-26 20:21:37 -05:00
Mai
103997ee56
Merge pull request #8383 from Morph1984/shadow-of-the-past
...
yuzu: Make variable shadowing a compile-time error
2022-06-14 21:08:58 -04:00
Liam
084d7d6b01
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
Morph
8671aa8dd0
audio_core: Remove -Werror=unused-parameter
...
Removing this as we don't enforce unused parameter warnings elsewhere in the project, and explicitly specify -Wno-unused-parameter in the main CMakeLists.
2022-06-13 18:19:23 -04:00
Morph
efc89c032b
CMakeLists: Make variable shadowing a compile-time error
...
Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
2022-06-13 18:19:23 -04:00
Morph
eea68eae18
command_generator: Use u8 for tap index lut
...
Using this smaller type saves 1024 bytes in the compiled executable.
2022-05-13 00:50:58 -04:00
Morph
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
Andrea Pappacoda
faf6a9876c
audio_core: remove time stretcher
...
Also drop the SoundTouch dependency
2022-04-01 19:54:58 +02:00
lat9nq
81806603eb
audio_core: Update current process revision
...
Update CURRENT_PROCESS_REVISION from REV9 to REVA.
Used by Nintendo Entertainment System - Nintendo Switch Online 6.0.0 and
Super Nintendo Entertainment System - Nintendo Switch Online 3.0.0.
2022-02-11 00:56:13 -05:00
german77
850896a52b
audio/stream: Adjust volume scale factor
2022-01-15 20:28:37 -06:00
ameerj
41aec2773f
general: Add missing copyright notices
2021-12-05 16:18:53 -05:00
ameerj
5daf3abe65
common/logging: Move Log::Entry declaration to a separate header
...
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-10-01 20:48:49 -04:00
bunnei
7d464f73c9
Merge pull request #6571 from Kelebek1/Mix
...
audio_core: Replace NaN mix volume samples with silence
2021-07-12 22:09:05 -07:00
Ameer J
5edc96f4a4
Merge pull request #6539 from lat9nq/default-setting
...
general: Move most settings' defaults and labels into their definition
2021-07-08 14:46:31 -04:00
Kelebek1
7905eb0254
Replace NaN mix volume samples with silence.
...
Fixes Xenoblade Chronicles 2 blowing out the audio.
2021-07-08 17:42:15 +01:00
Morph
92a3daf029
Merge pull request #6564 from Kelebek1/Audio
...
Support more PCM formats
2021-07-08 12:14:58 -04:00
Kelebek1
7636fefb71
audio_core: Preserve front channel volume after 6 to 2 downmix
...
Many games report 6 channel output while only providing data for 2. We only output 2-channel audio regardless, and in the downmixing, front left/right only provide 36% of their volume. This is done assuming all of the other channels also contain valid data, but in many games they don't. This PR alters the downmixing to preserve front left/right, so volume is not lost.
This improves volume in Link's Awakening, New Super Mario Bros U, Disgaea 6, Super Kirby Clash.
2021-07-08 17:07:23 +01:00
Kelebek1
dbcc093d88
Support more PCM formats. Fixes Ys IX audio.
2021-07-06 18:43:23 +01:00
Morph
ebb82b0b83
CMakeLists: Treat -Wsign-compare as an error on GCC/Clang
...
Treats (un)signed comparison mismatches as errors to be consistent with MSVC
2021-07-06 12:50:09 -04:00
Kelebek1
b455043e45
Fix XC2/VOEZ crashing, add audio looping and a few misc fixes
2021-07-01 06:01:01 +01:00