You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.7 KiB
C++

#ifndef GUARD_QUICK_AS_A_FLASH_NONTABBED_GAMBO_BRAIRDS_7643
#define GUARD_QUICK_AS_A_FLASH_NONTABBED_GAMBO_BRAIRDS_7643
#pragma once
// Freesurround note from https://hydrogenaud.io/index.php/topic,52235.0.html
// There is one little catch with the more exotic channels: foobar2000 (or
// Windows) do not expose some of the rarely used positions but instead allow to
// connect "top" speakers (meant for the ceiling). Therefore there is a bit of
// remapping going on for these positions: If you have 'side front left'/'side
// front right' speakers, connect them to the 'top front left'/'top front right'
// channels, if you have 'side back left/right' connect them to 'top back
// left/right', and if you have 'back center left/right' speakers you need to
// connect them to the 'top front center' and 'top back center' channels,
// respectively.
namespace Channel
{
enum E // same order as pipewire
{
FRONT_LEFT, FRONT_RIGHT,
FRONT_CENTER, LFE,
SIDE_LEFT, SIDE_RIGHT,
FRONT_LEFT_CENTER, FRONT_RIGHT_CENTER,
REAR_CENTER,
REAR_LEFT, REAR_RIGHT,
// TOP_*
REAR_LEFT_CENTER, REAR_RIGHT_CENTER,
// Not in Pipewire:
SIDE_FRONT_LEFT, SIDE_FRONT_RIGHT,
SIDE_BACK_LEFT, SIDE_BACK_RIGHT,
N_CHANNELS
};
constexpr inline const char* NAMES_PIPEWIRE[N_CHANNELS] = {
[FRONT_LEFT] = "FL", [FRONT_RIGHT] = "FR",
[FRONT_CENTER] = "FC", [LFE] = "LFE",
[SIDE_LEFT] = "SL", [SIDE_RIGHT] = "SR",
[FRONT_LEFT_CENTER] = "FLC", [FRONT_RIGHT_CENTER] = "FRC",
[REAR_CENTER] = "RC",
[REAR_LEFT] = "RL", [REAR_RIGHT] = "RR",
[REAR_LEFT_CENTER] = "RLC", [REAR_RIGHT_CENTER] = "RRC",
[SIDE_FRONT_LEFT] = "SFL", [SIDE_FRONT_RIGHT] = "SFR",
[SIDE_BACK_LEFT] = "SBL", [SIDE_BACK_RIGHT] = "SBR",
};
}
#endif