aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/audio
AgeCommit message (Collapse)Author
2020-04-29marked stubsDavid Marcec
2020-04-29Audin:u ListAudioIns, OpenAudioIn, ListAudioInsAuto, OpenAudioInAuto, ↵David Marcec
ListAudioInsAutoFiltered, OpenAudioInProtocolSpecified Closes #2874
2020-04-26Merge pull request #3744 from lioncash/table2bunnei
service: Update function tables
2020-04-20audio_renderer: Preliminary BehaviorInfo (#3736)David
* audio_renderer: Preliminary BehaviorInfo * clang format * Fixed IsRevisionSupported * fixed IsValidRevision * Fixed logic error & spelling errors & crash * Addressed issues
2020-04-20service: Update function tablesLioncash
Keeps the service function tables up to date. Updated based off information on SwitchBrew.
2020-04-20audren: Lower log level for RequestUpdateImpl to DebugFearlessTobi
2020-04-17service: Remove unused RequestParser instancesLioncash
These aren't used, so they should be removed to reduce compilation warnings.
2020-04-17core: memory: Move to Core::Memory namespace.bunnei
- helpful to disambiguate Kernel::Memory namespace.
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
2020-02-11update hwopus DecodeInterleaved for FW 7.0.0+makigumo
trivial change, see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
2019-11-26core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classLioncash
With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
2019-11-26core: Prepare various classes for memory read/write migrationLioncash
Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.
2019-11-24Merge pull request #3094 from lioncash/tablesbunnei
service: Update function tables
2019-11-12service: Update function tablesLioncash
Keeps the function tables up to date. Updated based off information from Switchbrew.
2019-11-12service: Resolve sign conversion errorsLioncash
These are fairly trivial to resolve and most of the changes entail using RESULT_UNKNOWN over ResultCode(-1).
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-10-04audio/audout_u: Change formatting for old clang-format versionsReinUsesLisp
2019-10-04service/audio: Silence -WunusedReinUsesLisp
2019-09-05Merge pull request #2834 from Morph1984/audrenu_QueryAudioDeviceInputEventDavid
audren_u: Stub IAudioDevice::QueryAudioDeviceInputEvent
2019-09-03Add Kernel::EventPair audio_input_device_switch_event;Morph1984
2019-09-03remove <f32>Morph1984
We can remove this since its already a f32 value
2019-09-03audren_u: Stub IAudioDevice::QueryAudioDeviceInputEventMorph1984
2019-09-03explicitly represent 1 as a float (1.0f instead of 1)Morph1984
2019-09-03Change u32 -> f32Morph1984
Volume is a f32 value. (SwIPC describes it as a u32, but it is actually f32 as corroborated by switchbrew docs and SetAudioDeviceOutputVolume) ```cpp const f32 volume = rp.Pop<f32>(); ```
2019-09-03service/audio/audren_u: Stub IAudioDevice::GetAudioDeviceOutputVolumeMorph1984
2019-07-19service/audren_u: Handle audio USB output revision queries in ↵Lioncash
ListAudioDeviceName() Audio devices use the supplied revision information in order to determine if USB audio output is able to be supported. In this case, we can only really handle using this revision information in ListAudioDeviceName(), where it checks if USB audio output is supported before supplying it as a device name. A few other scenarios exist where the revision info is checked, such as: - Early exiting from SetAudioDeviceOutputVolume if USB audio is attempted to be set when that device is unsupported. - Early exiting and returning 0.0f in GetAudioDeviceOutputVolume when USB output volume is queried and it's an unsupported device. - Falling back to AHUB headphones in GetActiveAudioDeviceName when the device type is USB output, but is unsupported based off the revision info. In order for these changes to also be implemented, a few other changes to the interface need to be made. Given we now properly handle everything about ListAudioDeviceName(), we no longer need to describe it as a stubbed function.
2019-07-19service/audren_u: Move revision testing code out of AudRenULioncash
The revision querying facilities are used by more than just audren. e.g. audio devices can use this to test whether or not USB audio output is supported. This will be used within the following change.
2019-07-19service/audio: Remove global system accessorsLioncash
Trims out the lingering reliance on global state out of the audio code.
2019-07-19service/audren_u: Remove unnecessary return value from ↵Lioncash
GetActiveAudioDeviceName() This service function only ever returns a result and nothing more.
2019-07-19service/audren_u: Report proper device namesLioncash
AudioDevice and AudioInterface aren't valid device names on the Switch. We should also be returning consistent names in GetActiveAudioDeviceName(). While we're at it, we can also handle proper name output in ListAudioDeviceName, by returning all the available devices on the Switch.
2019-07-13Clang formatDavid Marcec
2019-07-13"AudioRenderer" thread should have a unique nameDavid Marcec
Creating multiple "AudioRenderer" threads cause the previous thread to be overwritten. The thread will name be renamed to AudioRenderer-InstanceX, where X is the current instance number.
2019-07-01IAudioDevice::QueryAudioDeviceOutputEventDavid Marcec
The event should only be signaled when an output audio device gets changed. Example, Speaker to USB headset. We don't identify different devices internally yet so there's no need to signal the event yet.
2019-06-19Revert PR 2590.Fernando Sahmkow
Even though it has been proven that IAudioRenderer:SystemEvent is actually an automatic event. The current implementation of such event is all thought to be manual. Thus it's implementation needs to be corrected when doing such change. As it is right now this PR introduced a series of regressions on softlocks on multiple games. Therefore, this pr reverts such change until a correct implementation is made.
2019-06-19Merge pull request #2590 from lioncash/eventbunnei
service/audio/audren_u: Correct event reset type for the system event
2019-06-18service/audio/audren_u: Correct event reset type for the system eventLioncash
This is actually an auto-reset event in the audio service itself, not a manual one.
2019-06-16CleanupDavid Marcec
2019-06-16Impl'd IsUserAccountSwitchLocked, SetAudioOutVolume, GetAudioOutVolume & ↵David Marcec
Partial impl of GetAccumulatedSuspendedTickChangedEvent IPC-100 was changed to InitializeApplicationInfoOld instead of InitializeApplicationInfo. IPC-150 makes an indentical call to IPC-100 however does extra processing. They should not have the same name as it's quite confusing to debug.
2019-05-19Merge pull request #2439 from lioncash/audrenHexagon12
service/audren_u: Get rid of magic values within GetAudioRendererWorkBufferSize
2019-05-18core/kernel/object: Rename ResetType enum membersLioncash
Renames the members to more accurately indicate what they signify. "OneShot" and "Sticky" are kind of ambiguous identifiers for the reset types, and can be kind of misleading. Automatic and Manual communicate the kind of reset type in a clearer manner. Either the event is automatically reset, or it isn't and must be manually cleared. The "OneShot" and "Sticky" terminology is just a hold-over from Citra where the kernel had a third type of event reset type known as "Pulse". Given the Switch kernel only has two forms of event reset types, we don't need to keep the old terminology around anymore.
2019-04-30service/audren_u: Handle variadic command buffers in GetWorkBufferSize()Lioncash
Also introduced in REV5 was a variable-size audio command buffer. This also affects how the size of the work buffer should be determined, so we can add handling for this as well. Thankfully, no other alterations were made to how the work buffer size is calculated in 7.0.0-8.0.0. There were indeed changes made to to how some of the actual audio commands are generated though (particularly in REV7), however they don't apply here.
2019-04-30service/audren_u: Handle version 2 of performance frame info in ↵Lioncash
GetWorkBufferSize() Introduced in REV5. This is trivial to add support for, now that everything isn't a mess of random magic constant values. All this is, is a change in data type sizes as far as this function cares.
2019-04-30service/audren_u: Clean up work buffer calculationsLioncash
"Unmagics" quite a few magic constants within this code, making it much easier to understand. Particularly given this factors out specific sections into their own self-contained lambda functions.
2019-04-27service/audctl: Update documentation comments to be relative to 8.0.0Lioncash
The state of these service calls are still the same in version 8.0.0.
2019-04-18service/audctl: Implement GetTargetVolumeMin() and GetTargetVolumeMax()Lioncash
These two service functions are literally hardcoded to always return these values without any other error checking.
2019-04-11service: Update service function tablesLioncash
Updates function tables based off information from SwitchBrew.
2019-04-05Merge pull request #2334 from lioncash/overridebunnei
core: Add missing override specifiers where applicable
2019-04-04hle/service: Resolve unused variable warningsLioncash
In several places, we have request parsers where there's nothing to really parse, simply because the HLE function in question operates on buffers. In these cases we can just remove these instances altogether. In the other cases, we can retrieve the relevant members from the parser and at least log them out, giving them some use.
2019-04-04core: Add missing override specifiers where applicableLioncash
Applies the override specifier where applicable. In the case of destructors that are defaulted in their definition, they can simply be removed. This also removes the unnecessary inclusions being done in audin_u and audrec_u, given their close proximity.
2019-03-11hwopus: Leverage multistream API for decoding regular Opus packetsLioncash
After doing a little more reading up on the Opus codec, it turns out that the multistream API that is part of libopus can handle regular packets. Regular packets are just a degenerate case of multistream Opus packets, and all that's necessary is to pass the number of streams as 1 and provide a basic channel mapping, then everything works fine for that case. This allows us to get rid of the need to use both APIs in the future when implementing multistream variants in a follow-up PR, greatly simplifying the code that needs to be written.