diff --git a/rpcs3/Emu/Cell/Modules/cellAudioIn.h b/rpcs3/Emu/Cell/Modules/cellAudioIn.h index 126cdac86c..61e0e745a8 100644 --- a/rpcs3/Emu/Cell/Modules/cellAudioIn.h +++ b/rpcs3/Emu/Cell/Modules/cellAudioIn.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #include "Utilities/BEType.h" @@ -15,23 +15,24 @@ enum CellAudioInError CELL_AUDIO_IN_ERROR_CONDITION_BUSY = 0x8002b267, }; -enum +enum CellAudioInDeviceMode { - CELL_AUDIO_IN_SINGLE_DEVICE_MODE = 0, - CELL_AUDIO_IN_MULTI_DEVICE_MODE = 1, - CELL_AUDIO_IN_MULTI_DEVICE_MODE_2 = 2, + CELL_AUDIO_IN_SINGLE_DEVICE_MODE = 0, + CELL_AUDIO_IN_MULTI_DEVICE_MODE = 1, + CELL_AUDIO_IN_MULTI_DEVICE_MODE_2 = 2, + CELL_AUDIO_IN_MULTI_DEVICE_MODE_10 = 10, }; enum CellAudioInPortType { - CELL_AUDIO_IN_PORT_USB = 3, + CELL_AUDIO_IN_PORT_USB = 3, CELL_AUDIO_IN_PORT_BLUETOOTH = 4, }; enum CellAudioInDeviceState { CELL_AUDIO_IN_DEVICE_STATE_UNAVAILABLE = 0, - CELL_AUDIO_IN_DEVICE_STATE_AVAILABLE = 1, + CELL_AUDIO_IN_DEVICE_STATE_AVAILABLE = 1, }; enum CellAudioInCodingType @@ -42,19 +43,19 @@ enum CellAudioInCodingType enum CellAudioInChnum { CELL_AUDIO_IN_CHNUM_NONE = 0, - CELL_AUDIO_IN_CHNUM_1 = 1, - CELL_AUDIO_IN_CHNUM_2 = 2, + CELL_AUDIO_IN_CHNUM_1 = 1, + CELL_AUDIO_IN_CHNUM_2 = 2, }; enum CellAudioInFs { CELL_AUDIO_IN_FS_UNDEFINED = 0x00, - CELL_AUDIO_IN_FS_8KHZ = 0x01, - CELL_AUDIO_IN_FS_12KHZ = 0x02, - CELL_AUDIO_IN_FS_16KHZ = 0x04, - CELL_AUDIO_IN_FS_24KHZ = 0x08, - CELL_AUDIO_IN_FS_32KHZ = 0x10, - CELL_AUDIO_IN_FS_48KHZ = 0x20, + CELL_AUDIO_IN_FS_8KHZ = 0x01, + CELL_AUDIO_IN_FS_12KHZ = 0x02, + CELL_AUDIO_IN_FS_16KHZ = 0x04, + CELL_AUDIO_IN_FS_24KHZ = 0x08, + CELL_AUDIO_IN_FS_32KHZ = 0x10, + CELL_AUDIO_IN_FS_48KHZ = 0x20, }; struct CellAudioInSoundMode @@ -80,7 +81,7 @@ struct CellAudioInDeviceInfo struct CellAudioInRegistrationOption { - //(Omitted) + be_t reserved; }; struct CellAudioInDeviceConfiguration diff --git a/rpcs3/Emu/Cell/Modules/cellAudioOut.h b/rpcs3/Emu/Cell/Modules/cellAudioOut.h index b06940c8e2..7210252a13 100644 --- a/rpcs3/Emu/Cell/Modules/cellAudioOut.h +++ b/rpcs3/Emu/Cell/Modules/cellAudioOut.h @@ -18,58 +18,60 @@ enum CellAudioOutError enum CellAudioOut { - CELL_AUDIO_OUT_PRIMARY = 0, + CELL_AUDIO_OUT_PRIMARY = 0, CELL_AUDIO_OUT_SECONDARY = 1, }; enum CellAudioOutDownMixer { - CELL_AUDIO_OUT_DOWNMIXER_NONE = 0, + CELL_AUDIO_OUT_DOWNMIXER_NONE = 0, CELL_AUDIO_OUT_DOWNMIXER_TYPE_A = 1, CELL_AUDIO_OUT_DOWNMIXER_TYPE_B = 2, }; -enum +enum CellAudioOutDeviceMode { - CELL_AUDIO_OUT_SINGLE_DEVICE_MODE = 0, - CELL_AUDIO_OUT_MULTI_DEVICE_MODE = 1, + CELL_AUDIO_OUT_SINGLE_DEVICE_MODE = 0, + CELL_AUDIO_OUT_MULTI_DEVICE_MODE = 1, CELL_AUDIO_OUT_MULTI_DEVICE_MODE_2 = 2, }; enum CellAudioOutPortType { - CELL_AUDIO_OUT_PORT_HDMI = 0, - CELL_AUDIO_OUT_PORT_SPDIF = 1, - CELL_AUDIO_OUT_PORT_ANALOG = 2, - CELL_AUDIO_OUT_PORT_USB = 3, + CELL_AUDIO_OUT_PORT_HDMI = 0, + CELL_AUDIO_OUT_PORT_SPDIF = 1, + CELL_AUDIO_OUT_PORT_ANALOG = 2, + CELL_AUDIO_OUT_PORT_USB = 3, CELL_AUDIO_OUT_PORT_BLUETOOTH = 4, - CELL_AUDIO_OUT_PORT_NETWORK = 5, + CELL_AUDIO_OUT_PORT_NETWORK = 5, }; enum CellAudioOutDeviceState { CELL_AUDIO_OUT_DEVICE_STATE_UNAVAILABLE = 0, - CELL_AUDIO_OUT_DEVICE_STATE_AVAILABLE = 1, + CELL_AUDIO_OUT_DEVICE_STATE_AVAILABLE = 1, }; enum CellAudioOutOutputState { - CELL_AUDIO_OUT_OUTPUT_STATE_ENABLED = 0, - CELL_AUDIO_OUT_OUTPUT_STATE_DISABLED = 1, + CELL_AUDIO_OUT_OUTPUT_STATE_ENABLED = 0, + CELL_AUDIO_OUT_OUTPUT_STATE_DISABLED = 1, CELL_AUDIO_OUT_OUTPUT_STATE_PREPARING = 2, }; enum CellAudioOutCodingType { - CELL_AUDIO_OUT_CODING_TYPE_LPCM = 0, - CELL_AUDIO_OUT_CODING_TYPE_AC3 = 1, - CELL_AUDIO_OUT_CODING_TYPE_MPEG1 = 2, - CELL_AUDIO_OUT_CODING_TYPE_MP3 = 3, - CELL_AUDIO_OUT_CODING_TYPE_MPEG2 = 4, - CELL_AUDIO_OUT_CODING_TYPE_AAC = 5, - CELL_AUDIO_OUT_CODING_TYPE_DTS = 6, - CELL_AUDIO_OUT_CODING_TYPE_ATRAC = 7, - CELL_AUDIO_OUT_CODING_TYPE_BITSTREAM = 0xff, + CELL_AUDIO_OUT_CODING_TYPE_LPCM = 0, + CELL_AUDIO_OUT_CODING_TYPE_AC3 = 1, + CELL_AUDIO_OUT_CODING_TYPE_MPEG1 = 2, + CELL_AUDIO_OUT_CODING_TYPE_MP3 = 3, + CELL_AUDIO_OUT_CODING_TYPE_MPEG2 = 4, + CELL_AUDIO_OUT_CODING_TYPE_AAC = 5, + CELL_AUDIO_OUT_CODING_TYPE_DTS = 6, + CELL_AUDIO_OUT_CODING_TYPE_ATRAC = 7, + // ... + CELL_AUDIO_OUT_CODING_TYPE_DOLBY_DIGITAL_PLUS = 9, + CELL_AUDIO_OUT_CODING_TYPE_BITSTREAM = 0xff, }; enum CellAudioOutChnum @@ -82,26 +84,36 @@ enum CellAudioOutChnum enum CellAudioOutFs { - CELL_AUDIO_OUT_FS_32KHZ = 0x01, - CELL_AUDIO_OUT_FS_44KHZ = 0x02, - CELL_AUDIO_OUT_FS_48KHZ = 0x04, - CELL_AUDIO_OUT_FS_88KHZ = 0x08, - CELL_AUDIO_OUT_FS_96KHZ = 0x10, + CELL_AUDIO_OUT_FS_32KHZ = 0x01, + CELL_AUDIO_OUT_FS_44KHZ = 0x02, + CELL_AUDIO_OUT_FS_48KHZ = 0x04, + CELL_AUDIO_OUT_FS_88KHZ = 0x08, + CELL_AUDIO_OUT_FS_96KHZ = 0x10, CELL_AUDIO_OUT_FS_176KHZ = 0x20, CELL_AUDIO_OUT_FS_192KHZ = 0x40, }; -enum +enum CellAudioOutSpeakerLayout { - CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH = 0x00000001, - CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr = 0x00010000, + CELL_AUDIO_OUT_SPEAKER_LAYOUT_DEFAULT = 0x00000000, + CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH = 0x00000001, + CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr = 0x00010000, CELL_AUDIO_OUT_SPEAKER_LAYOUT_8CH_LREClrxy = 0x40000000, }; -enum + +enum CellAudioOutEvent { - CELL_AUDIO_OUT_COPY_CONTROL_COPY_FREE = 0, - CELL_AUDIO_OUT_COPY_CONTROL_COPY_ONCE = 1, + CELL_AUDIO_OUT_EVENT_DEVICE_CHANGED = 0, + CELL_AUDIO_OUT_EVENT_OUTPUT_DISABLED = 1, + CELL_AUDIO_OUT_EVENT_DEVICE_AUTHENTICATED = 2, + CELL_AUDIO_OUT_EVENT_OUTPUT_ENABLED = 3, +}; + +enum CellAudioOutCopyControl +{ + CELL_AUDIO_OUT_COPY_CONTROL_COPY_FREE = 0, + CELL_AUDIO_OUT_COPY_CONTROL_COPY_ONCE = 1, CELL_AUDIO_OUT_COPY_CONTROL_COPY_NEVER = 2, }; diff --git a/rpcs3/Emu/Cell/Modules/cellAvconfExt.cpp b/rpcs3/Emu/Cell/Modules/cellAvconfExt.cpp index 7dace7ec9b..f8952bb186 100644 --- a/rpcs3/Emu/Cell/Modules/cellAvconfExt.cpp +++ b/rpcs3/Emu/Cell/Modules/cellAvconfExt.cpp @@ -206,7 +206,7 @@ error_code cellAudioInGetAvailableDeviceInfo(u32 count, vm::ptr 16 || !device_info.addr()) + if (count > 16 || !device_info) { return CELL_AUDIO_IN_ERROR_ILLEGAL_PARAMETER; }