mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-16 16:21:02 +00:00
cellAudioOut: Always add Linear PCM 2 Ch., also add 5.1 when 7.1 is selected
This commit is contained in:
parent
95a3ce68ce
commit
a86e7eeba0
@ -70,7 +70,8 @@ audio_out_configuration::audio_out_configuration()
|
|||||||
add_sound_mode(secondary_modes, type, channel, fs, layout);
|
add_sound_mode(secondary_modes, type, channel, fs, layout);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool add_fallback = false;
|
// Always add Linear PCM 2 Ch.
|
||||||
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_2, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH);
|
||||||
|
|
||||||
// TODO: audio_format should be a bitmap, but we'll keep it simple for now (Linear PCM 2 Ch. 48 kHz should always exist)
|
// TODO: audio_format should be a bitmap, but we'll keep it simple for now (Linear PCM 2 Ch. 48 kHz should always exist)
|
||||||
// TODO: more formats:
|
// TODO: more formats:
|
||||||
@ -85,11 +86,6 @@ audio_out_configuration::audio_out_configuration()
|
|||||||
{
|
{
|
||||||
case audio_format::automatic: // Automatic based on supported formats
|
case audio_format::automatic: // Automatic based on supported formats
|
||||||
{
|
{
|
||||||
if (supports_lpcm_2) // Linear PCM 2 Ch.
|
|
||||||
{
|
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_2, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supports_lpcm_5_1) // Linear PCM 5.1 Ch.
|
if (supports_lpcm_5_1) // Linear PCM 5.1 Ch.
|
||||||
{
|
{
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
||||||
@ -114,47 +110,35 @@ audio_out_configuration::audio_out_configuration()
|
|||||||
}
|
}
|
||||||
case audio_format::lpcm_2_48khz: // Linear PCM 2 Ch. 48 kHz
|
case audio_format::lpcm_2_48khz: // Linear PCM 2 Ch. 48 kHz
|
||||||
{
|
{
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_2, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH);
|
// Already added by default
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case audio_format::lpcm_5_1_48khz: // Linear PCM 5.1 Ch. 48 kHz
|
case audio_format::lpcm_5_1_48khz: // Linear PCM 5.1 Ch. 48 kHz
|
||||||
{
|
{
|
||||||
add_fallback = !supports_lpcm_5_1;
|
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case audio_format::lpcm_7_1_48khz: // Linear PCM 7.1 Ch. 48 kHz
|
case audio_format::lpcm_7_1_48khz: // Linear PCM 7.1 Ch. 48 kHz
|
||||||
{
|
{
|
||||||
add_fallback = !supports_lpcm_7_1;
|
// Also add 5.1 in case 7.1 is not supported
|
||||||
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_8, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_8CH_LREClrxy);
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_8, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_8CH_LREClrxy);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case audio_format::ac3: // Dolby Digital 5.1 Ch.
|
case audio_format::ac3: // Dolby Digital 5.1 Ch.
|
||||||
{
|
{
|
||||||
add_fallback = !supports_ac3;
|
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_AC3, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_AC3, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case audio_format::dts: // DTS 5.1 Ch.
|
case audio_format::dts: // DTS 5.1 Ch.
|
||||||
{
|
{
|
||||||
add_fallback = !supports_dts;
|
|
||||||
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_DTS, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
add_sound_mode_to_both_outputs(CELL_AUDIO_OUT_CODING_TYPE_DTS, CELL_AUDIO_OUT_CHNUM_6, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_6CH_LREClr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback to default sound mode if none was found
|
ensure(!primary_modes.empty());
|
||||||
if (primary_modes.empty() || add_fallback)
|
ensure(!secondary_modes.empty());
|
||||||
{
|
|
||||||
add_sound_mode(primary_modes, CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_2, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH);
|
|
||||||
cellSysutil.warning("cellAudioOut: adding Linear PCM 2 Ch. fallback sound mode for primary output");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (secondary_modes.empty() || add_fallback)
|
|
||||||
{
|
|
||||||
add_sound_mode(secondary_modes, CELL_AUDIO_OUT_CODING_TYPE_LPCM, CELL_AUDIO_OUT_CHNUM_2, CELL_AUDIO_OUT_FS_48KHZ, CELL_AUDIO_OUT_SPEAKER_LAYOUT_2CH);
|
|
||||||
cellSysutil.warning("cellAudioOut: adding Linear PCM 2 Ch. fallback sound mode for secondary output");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pre-select the first available sound mode
|
// Pre-select the first available sound mode
|
||||||
primary_output.channels = primary_modes.front().channel;
|
primary_output.channels = primary_modes.front().channel;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user