ENUM SDCA_CHANNEL_RELATIONSHIP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

enum sdca_channel_relationship β€” the SDCA Channel Relationship code, bestie. That's it, that's the name. It lives in the Kernel API Manual, section (9), so like... kernel-adjacent vibes, iykyk πŸ’…


✨ SYNOPSIS ✨

enum sdca_channel_relationship {
    SDCA_CHAN_REL_UNDEFINED ,
    SDCA_CHAN_REL_GENERIC_MONO ,
    SDCA_CHAN_REL_GENERIC_LEFT ,
    SDCA_CHAN_REL_GENERIC_RIGHT ,
    SDCA_CHAN_REL_GENERIC_TOP ,
    SDCA_CHAN_REL_GENERIC_BOTTOM ,
    SDCA_CHAN_REL_CAPTURE_DIRECT ,
    SDCA_CHAN_REL_RENDER_DIRECT ,
    SDCA_CHAN_REL_FRONT_LEFT ,
    SDCA_CHAN_REL_FRONT_RIGHT ,
    SDCA_CHAN_REL_FRONT_CENTER ,
    SDCA_CHAN_REL_SIDE_LEFT ,
    SDCA_CHAN_REL_SIDE_RIGHT ,
    SDCA_CHAN_REL_BACK_LEFT ,
    SDCA_CHAN_REL_BACK_RIGHT ,
    SDCA_CHAN_REL_LOW_FREQUENCY_EFFECTS ,
    SDCA_CHAN_REL_SOUNDWIRE_MIC ,
    SDCA_CHAN_REL_SENSE_TRANSDUCER_1 ,
    SDCA_CHAN_REL_SENSE_TRANSDUCER_2 ,
    SDCA_CHAN_REL_SENSE_TRANSDUCER_12 ,
    SDCA_CHAN_REL_SENSE_TRANSDUCER_21 ,
    SDCA_CHAN_REL_ECHOREF_NONE ,
    SDCA_CHAN_REL_ECHOREF_1 ,
    SDCA_CHAN_REL_ECHOREF_2 ,
    SDCA_CHAN_REL_ECHOREF_3 ,
    SDCA_CHAN_REL_ECHOREF_4 ,
    SDCA_CHAN_REL_ECHOREF_ALL ,
    SDCA_CHAN_REL_ECHOREF_LFE_ALL ,
    SDCA_CHAN_REL_PRIMARY_TRANSDUCER ,
    SDCA_CHAN_REL_SECONDARY_TRANSDUCER ,
    SDCA_CHAN_REL_TERTIARY_TRANSDUCER ,
    SDCA_CHAN_REL_LOWER_LEFT_ALLTRANSDUCER ,
    SDCA_CHAN_REL_LOWER_RIGHT_ALLTRANSDUCER ,
    SDCA_CHAN_REL_UPPER_LEFT_ALLTRANSDUCER ,
    SDCA_CHAN_REL_UPPER_RIGHT_ALLTRANSDUCER ,
    SDCA_CHAN_REL_LOWER_LEFT_PRIMARY ,
    SDCA_CHAN_REL_LOWER_RIGHT_PRIMARY ,
    SDCA_CHAN_REL_UPPER_LEFT_PRIMARY ,
    SDCA_CHAN_REL_UPPER_RIGHT_PRIMARY ,
    SDCA_CHAN_REL_LOWER_LEFT_SECONDARY ,
    SDCA_CHAN_REL_LOWER_RIGHT_SECONDARY ,
    SDCA_CHAN_REL_UPPER_LEFT_SECONDARY ,
    SDCA_CHAN_REL_UPPER_RIGHT_SECONDARY ,
    SDCA_CHAN_REL_LOWER_LEFT_TERTIARY ,
    SDCA_CHAN_REL_LOWER_RIGHT_TERTIARY ,
    SDCA_CHAN_REL_UPPER_LEFT_TERTIARY ,
    SDCA_CHAN_REL_UPPER_RIGHT_TERTIARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_LEFT_PRIMARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_PRIMARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_LEFT_PRIMARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_PRIMARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_LEFT_SECONDARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_SECONDARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_LEFT_SECONDARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_SECONDARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_LEFT_TERTIARY ,
    SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_TERTIARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_LEFT_TERTIARY ,
    SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_TERTIARY ,
    SDCA_CHAN_REL_DERIVED_MONO_PRIMARY ,
    SDCA_CHAN_REL_DERIVED_MONO_SECONDARY ,
    SDCA_CHAN_REL_DERIVED_MONO_TERTIARY ,
    SDCA_CHAN_REL_EQUIPMENT_LEFT ,
    SDCA_CHAN_REL_EQUIPMENT_RIGHT ,
    SDCA_CHAN_REL_EQUIPMENT_COMBINED ,
    SDCA_CHAN_REL_EQUIPMENT_TOP ,
    SDCA_CHAN_REL_EQUIPMENT_BOTTOM ,
    SDCA_CHAN_REL_EQUIPMENT_TOP_LEFT ,
    SDCA_CHAN_REL_EQUIPMENT_BOTTOM_LEFT ,
    SDCA_CHAN_REL_EQUIPMENT_TOP_RIGHT ,
    SDCA_CHAN_REL_EQUIPMENT_BOTTOM_RIGHT ,
    SDCA_CHAN_REL_EQUIPMENT_SILENCED_OUTPUT ,
    SDCA_CHAN_REL_ARRAY ,
    SDCA_CHAN_REL_MIC ,
    SDCA_CHAN_REL_RAW ,
    SDCA_CHAN_REL_SILENCED_MIC ,
    SDCA_CHAN_REL_MULTI_SOURCE_1 ,
    SDCA_CHAN_REL_MULTI_SOURCE_2 ,
    SDCA_CHAN_REL_MULTI_SOURCE_3 ,
    SDCA_CHAN_REL_MULTI_SOURCE_4

};

πŸ’… Constants πŸ’…

Okay so real talk: every single one of these is listed in the source as literally -- undescribed --. No blurb, no notes, nothing. The docs just did not show up for this one 😭 So below is the full roster, exactly as written, with the placeholder being the whole personality. No cap.

  • SDCA_CHAN_REL_UNDEFINED β€” -- undescribed -- in the source, that's all we get πŸ™ˆ
  • SDCA_CHAN_REL_GENERIC_MONO β€” -- undescribed --, blank in the source.
  • SDCA_CHAN_REL_GENERIC_LEFT β€” -- undescribed --, no notes provided.
  • SDCA_CHAN_REL_GENERIC_RIGHT β€” -- undescribed -- and nothing else πŸ’€
  • SDCA_CHAN_REL_GENERIC_TOP β€” -- undescribed --, the placeholder is doing all the work here.
  • SDCA_CHAN_REL_GENERIC_BOTTOM β€” -- undescribed --, nobody wrote the blurb.
  • SDCA_CHAN_REL_CAPTURE_DIRECT β€” -- undescribed --, still just the placeholder ✨
  • SDCA_CHAN_REL_RENDER_DIRECT β€” -- undescribed -- in the source, fr fr.
  • SDCA_CHAN_REL_FRONT_LEFT β€” -- undescribed --, no description attached.
  • SDCA_CHAN_REL_FRONT_RIGHT β€” -- undescribed --, left blank 🫢
  • SDCA_CHAN_REL_FRONT_CENTER β€” -- undescribed --, that's genuinely it.
  • SDCA_CHAN_REL_SIDE_LEFT β€” -- undescribed --, the docs said nothing πŸ’œ
  • SDCA_CHAN_REL_SIDE_RIGHT β€” -- undescribed --, placeholder only.
  • SDCA_CHAN_REL_BACK_LEFT β€” -- undescribed --, no writeup exists.
  • SDCA_CHAN_REL_BACK_RIGHT β€” -- undescribed --, same story.
  • SDCA_CHAN_REL_LOW_FREQUENCY_EFFECTS β€” -- undescribed --, oddly iconic, still blank πŸŽ€
  • SDCA_CHAN_REL_SOUNDWIRE_MIC β€” -- undescribed --, nothing documented.
  • SDCA_CHAN_REL_SENSE_TRANSDUCER_1 β€” -- undescribed --, no commentary in the source.
  • SDCA_CHAN_REL_SENSE_TRANSDUCER_2 β€” -- undescribed --, blank again.
  • SDCA_CHAN_REL_SENSE_TRANSDUCER_12 β€” -- undescribed --, left as a placeholder 🌸
  • SDCA_CHAN_REL_SENSE_TRANSDUCER_21 β€” -- undescribed --, not a single word more.
  • SDCA_CHAN_REL_ECHOREF_NONE β€” -- undescribed --, the source left it empty.
  • SDCA_CHAN_REL_ECHOREF_1 β€” -- undescribed --, no details given.
  • SDCA_CHAN_REL_ECHOREF_2 β€” -- undescribed --, placeholder status: unchanged.
  • SDCA_CHAN_REL_ECHOREF_3 β€” -- undescribed --, still nothing ✨
  • SDCA_CHAN_REL_ECHOREF_4 β€” -- undescribed --, no blurb written.
  • SDCA_CHAN_REL_ECHOREF_ALL β€” -- undescribed --, blank as ever.
  • SDCA_CHAN_REL_ECHOREF_LFE_ALL β€” -- undescribed --, no description provided 😭
  • SDCA_CHAN_REL_PRIMARY_TRANSDUCER β€” -- undescribed --, that's the whole entry.
  • SDCA_CHAN_REL_SECONDARY_TRANSDUCER β€” -- undescribed --, untouched placeholder.
  • SDCA_CHAN_REL_TERTIARY_TRANSDUCER β€” -- undescribed --, no writeup, no notes.
  • SDCA_CHAN_REL_LOWER_LEFT_ALLTRANSDUCER β€” -- undescribed --, left blank by the docs πŸ¦‹
  • SDCA_CHAN_REL_LOWER_RIGHT_ALLTRANSDUCER β€” -- undescribed --, nothing attached.
  • SDCA_CHAN_REL_UPPER_LEFT_ALLTRANSDUCER β€” -- undescribed --, placeholder only.
  • SDCA_CHAN_REL_UPPER_RIGHT_ALLTRANSDUCER β€” -- undescribed --, no elaboration πŸ’…
  • SDCA_CHAN_REL_LOWER_LEFT_PRIMARY β€” -- undescribed --, still waiting on a description.
  • SDCA_CHAN_REL_LOWER_RIGHT_PRIMARY β€” -- undescribed --, blank in the source.
  • SDCA_CHAN_REL_UPPER_LEFT_PRIMARY β€” -- undescribed --, that's all there is.
  • SDCA_CHAN_REL_UPPER_RIGHT_PRIMARY β€” -- undescribed --, no explanation given.
  • SDCA_CHAN_REL_LOWER_LEFT_SECONDARY β€” -- undescribed --, the placeholder persists πŸ’€
  • SDCA_CHAN_REL_LOWER_RIGHT_SECONDARY β€” -- undescribed --, nothing more.
  • SDCA_CHAN_REL_UPPER_LEFT_SECONDARY β€” -- undescribed --, left undescribed.
  • SDCA_CHAN_REL_UPPER_RIGHT_SECONDARY β€” -- undescribed --, no notes anywhere.
  • SDCA_CHAN_REL_LOWER_LEFT_TERTIARY β€” -- undescribed --, empty blurb zone.
  • SDCA_CHAN_REL_LOWER_RIGHT_TERTIARY β€” -- undescribed --, still just that πŸ“
  • SDCA_CHAN_REL_UPPER_LEFT_TERTIARY β€” -- undescribed --, no details, bestie.
  • SDCA_CHAN_REL_UPPER_RIGHT_TERTIARY β€” -- undescribed --, placeholder city.
  • SDCA_CHAN_REL_DERIVED_LOWER_LEFT_PRIMARY β€” -- undescribed --, blank and proud.
  • SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_PRIMARY β€” -- undescribed --, no writeup at all.
  • SDCA_CHAN_REL_DERIVED_UPPER_LEFT_PRIMARY β€” -- undescribed --, nothing documented 🌈
  • SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_PRIMARY β€” -- undescribed --, same placeholder energy.
  • SDCA_CHAN_REL_DERIVED_LOWER_LEFT_SECONDARY β€” -- undescribed --, docs left it empty.
  • SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_SECONDARY β€” -- undescribed --, no explanation.
  • SDCA_CHAN_REL_DERIVED_UPPER_LEFT_SECONDARY β€” -- undescribed --, one hundred percent blank.
  • SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_SECONDARY β€” -- undescribed --, placeholder, periodt.
  • SDCA_CHAN_REL_DERIVED_LOWER_LEFT_TERTIARY β€” -- undescribed --, no notes given.
  • SDCA_CHAN_REL_DERIVED_LOWER_RIGHT_TERTIARY β€” -- undescribed --, still undescribed 🧚
  • SDCA_CHAN_REL_DERIVED_UPPER_LEFT_TERTIARY β€” -- undescribed --, untouched in the source.
  • SDCA_CHAN_REL_DERIVED_UPPER_RIGHT_TERTIARY β€” -- undescribed --, nothing to add.
  • SDCA_CHAN_REL_DERIVED_MONO_PRIMARY β€” -- undescribed --, blank by design-ish.
  • SDCA_CHAN_REL_DERIVED_MONO_SECONDARY β€” -- undescribed --, no blurb exists.
  • SDCA_CHAN_REL_DERIVED_MONO_TERTIARY β€” -- undescribed --, that's the vibe 🌟
  • SDCA_CHAN_REL_EQUIPMENT_LEFT β€” -- undescribed --, placeholder only, no cap.
  • SDCA_CHAN_REL_EQUIPMENT_RIGHT β€” -- undescribed --, left hanging.
  • SDCA_CHAN_REL_EQUIPMENT_COMBINED β€” -- undescribed --, no description in the source.
  • SDCA_CHAN_REL_EQUIPMENT_TOP β€” -- undescribed --, blank, sorry bestie.
  • SDCA_CHAN_REL_EQUIPMENT_BOTTOM β€” -- undescribed --, nothing written.
  • SDCA_CHAN_REL_EQUIPMENT_TOP_LEFT β€” -- undescribed --, placeholder stays undefeated πŸ”₯
  • SDCA_CHAN_REL_EQUIPMENT_BOTTOM_LEFT β€” -- undescribed --, no notes.
  • SDCA_CHAN_REL_EQUIPMENT_TOP_RIGHT β€” -- undescribed --, left undescribed, literally.
  • SDCA_CHAN_REL_EQUIPMENT_BOTTOM_RIGHT β€” -- undescribed --, that's it, that's the entry.
  • SDCA_CHAN_REL_EQUIPMENT_SILENCED_OUTPUT β€” -- undescribed --, no explanation provided 🀐
  • SDCA_CHAN_REL_ARRAY β€” -- undescribed --, blank in the source.
  • SDCA_CHAN_REL_MIC β€” -- undescribed --, no blurb attached.
  • SDCA_CHAN_REL_RAW β€” -- undescribed --, placeholder and nothing else.
  • SDCA_CHAN_REL_SILENCED_MIC β€” -- undescribed --, still empty πŸ’œ
  • SDCA_CHAN_REL_MULTI_SOURCE_1 β€” -- undescribed --, docs left it blank.
  • SDCA_CHAN_REL_MULTI_SOURCE_2 β€” -- undescribed --, no description here either.
  • SDCA_CHAN_REL_MULTI_SOURCE_3 β€” -- undescribed --, untouched placeholder.
  • SDCA_CHAN_REL_MULTI_SOURCE_4 β€” -- undescribed --, last one in the list and still blank πŸŽ€

🌈 DESCRIPTION 🌈

So what is this whole thing? Channel Relationship codes, as described in the SDCA specification v1.0, section 11.4.2. That's the actual answer β€” the manpage hands you the spec and points at the section, and honestly? Valid. πŸ‘‘

Like, that's the entire description in the source, bestie. The constants above are all placeholders saying -- undescribed --, and the real semantics live in the spec, section 11.4.2. Not me gatekeeping β€” that's literally what's written. πŸ¦‹
  • enum sdca_function_type(9) β€” the function-type enum, your little starter pack for this whole corner of the header πŸ’–
  • struct sdca_init_write(9) β€” a struct, and honestly the name is giving "setup era" ✨
  • SDCA_CTL_TYPE(9) β€” all caps, zero lowercase, fully iconic 😌
  • SDCA_CTL_TYPE_S(9) β€” the other one, with the _S on the end, and no we're not getting them confused (we are a little) 🫢
  • enum sdca_messageoffset_range(9) β€” a range enum, very "the limits are the moment" of it
  • enum sdca_ump_mode(9) β€” mode enum, slay
  • enum sdca_ump_owner(9) β€” owner enum, also slay
  • enum sdca_it_controls(9) β€” input-terminal controls, noted πŸ“
  • enum sdca_ot_controls(9) β€” output-terminal controls, equally noted πŸ“
  • enum sdca_usage_range(9) β€” a range, bestie, a range 🌈
  • enum sdca_dataport_selector_range(9) β€” long name, big energy, still just a range πŸ’…
  • enum sdca_mu_controls(9) β€” mu controls, go off
  • enum sdca_su_controls(9) β€” su controls, go off again
  • enum sdca_fu_controls(9) β€” fu controls, the trilogy continues πŸ”₯
  • enum sdca_volume_range(9) β€” volume range, turn it up
  • enum sdca_xu_controls(9) β€” xu controls, iconic
  • enum sdca_fdl_set_index_range(9) β€” an index range for fdl sets, say that five times fast 😭
  • enum sdca_cs_controls(9) β€” cs controls, present and accounted for
  • enum sdca_samplerateindex_range(9) β€” samplerate index range, no cap
  • enum sdca_cx_controls(9) β€” cx controls, we love a two-letter abbreviation
  • enum sdca_pde_controls(9) β€” pde controls, hi bestie
  • enum sdca_requested_ps_range(9) β€” requested ps range, the requested one specifically πŸ‘‘
  • enum sdca_ge_controls(9) β€” ge controls, here for it
  • enum sdca_selected_mode_range(9) β€” selected mode range, very main character
  • enum sdca_detected_mode_values(9) β€” detected mode values, note the plural, it matters πŸ’€
  • enum sdca_spe_controls(9) β€” spe controls, gorgeous
  • enum sdca_cru_controls(9) β€” cru controls, also gorgeous
  • enum sdca_udmpu_controls(9) β€” udmpu controls, that's a lot of consonants and yet ✨
  • enum sdca_mfpu_controls(9) β€” mfpu controls, repping the pu family
  • enum sdca_smpu_controls(9) β€” smpu controls, same family, different vibe
  • enum sdca_sapu_controls(9) β€” sapu controls, the pu squad grows
  • enum sdca_ppu_controls(9) β€” ppu controls, completing the lineup πŸŽ€
  • enum sdca_tg_controls(9) β€” tg controls, short and sweet
  • enum sdca_hide_controls(9) β€” hide controls, lowkey mysterious πŸ™ˆ
  • enum sdca_entity0_controls(9) β€” entity zero controls, the most main character of entities ⭐
  • enum sdca_control_datatype(9) β€” control datatype, foundational honestly
  • enum sdca_access_mode(9) β€” access mode, we stan permissions
  • enum sdca_access_layer(9) β€” access layer, the layer under the layer πŸ¦‹
  • struct sdca_control_range(9) β€” control range struct, big "the limits" energy
  • struct sdca_control(9) β€” the control struct itself, the blueprint, the moment πŸ’…
  • enum sdca_terminal_type(9) β€” terminal type enum, terminal rights
  • enum sdca_connector_type(9) β€” connector type enum, connector rights too 🌸
  • struct sdca_entity_iot(9) β€” the iot entity struct, here for the lore
  • enum sdca_clock_type(9) β€” clock type enum, tick tock bestie ⏰
  • struct sdca_entity_cs(9) β€” the cs entity struct, part of the family portrait
  • enum sdca_pde_power_state(9) β€” power state enum, powerful literally πŸ”₯
  • struct sdca_pde_delay(9) β€” delay struct, it'll get there when it gets there 😭
  • struct sdca_entity_pde(9) β€” pde entity struct, assembled from the two above
  • enum sdca_entity_type(9) β€” entity type enum, the classifier of classifiers πŸ‘‘
  • struct sdca_ge_control(9) β€” ge control struct, control but make it a struct
  • struct sdca_ge_mode(9) β€” ge mode struct, mode but make it a struct
  • struct sdca_entity_ge(9) β€” ge entity struct, rounding out the ge trio πŸŽ€
  • struct sdca_entity_hide(9) β€” hide entity struct, hiding in plain sight πŸ™ˆ
  • enum sdca_xu_reset_mechanism(9) β€” reset mechanism enum, reset era πŸ’…
  • struct sdca_entity_xu(9) β€” xu entity struct, big struct energy
  • struct sdca_entity(9) β€” the entity struct, the parent of the whole party πŸ‘‘
  • enum sdca_channel_purpose(9) β€” channel purpose enum, purpose found ✨
  • struct sdca_channel(9) β€” channel struct, the whole point of the channel arc
  • struct sdca_cluster(9) β€” cluster struct, they travel in packs
  • enum sdca_cluster_range(9) β€” cluster range enum, packs but with limits
  • struct sdca_fdl_file(9) β€” fdl file struct, a whole file in a struct, obsessed
  • struct sdca_fdl_set(9) β€” fdl set struct, sets are slaying
  • struct sdca_fdl_data(9) β€” fdl data struct, the payload of the fdl cinematic universe πŸ“
  • struct sdca_function_hid(9) β€” function hid struct, hid is literally right there in the name
  • struct sdca_function_data(9) β€” function data struct, and that's the whole function arc wrapped, periodt 🫢

That's the whole reading list, bestie β€” go click through them whenever, the header will not judge you πŸ’œ

Okay so that's a wrap on this one! It came out of the kernel docs, living in ./include/sound, dated October 2026, and it's titled enum sdca_ch...relationship(9) β€” the truncated-looking name is real, that's genuinely how it's printed, don't come for me 😭 Go be iconic with your enums, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from