Skip to content

sco_ui_v1.normalize_chord

Writes chord’s normalized form, NUL-terminated, with the raw-handler size handshake (*inout_size: capacity in; bytes written, or needed with SCO_TOO_MANY, out). SCO_BAD_ARG: not a chord. No plugin handle needed; any thread.

sco_result (*)(const char *, char *, uint32_t *)

Service index

Property Value
Symbol sco_ui_v1.normalize_chord
Record ID sco-ui-v1-normalize-chord
Service sco.ui
Table sco_ui_v1
Version macro SCO_UI_VERSION_1_0
Packed table version 65536
Since / availability size >= 72; 1.0
Complete member extent (x64 bytes) 72
Table size (x64 bytes) 80

Header source

sco_result (*normalize_chord)(const char* chord, char* out, uint32_t* inout_size);
Writes chord’s normalized form, NUL-terminated, with the raw-handler size handshake (*inout_size: capacity in; bytes written, or needed with SCO_TOO_MANY, out). SCO_BAD_ARG: not a chord. No plugin handle needed; any thread.

BAD_ARG invalid chord/buffer; TOO_MANY required bytes/allocation. Pure normalization needs no self; stopped-service refusal unspecified (implementation does not test started).

unspecified

Strings/arguments copied; draw/ctx borrowed until unregister/unload. Host owns registry; no allocation transfer.

Any thread; draw callbacks game thread. Other recursive reentrancy unspecified.

draw callbacks game thread.

unspecified

No in-flight cancellation API; unregister/unbind removes registration; ordinary unload/non-retained crash cleanup withdraws all UI. Retained-provider faults skip owner resource-release hooks and require restart; backing resources remain retained, not safe for cached calls. Guarded draws stop, but snapshots and chord reservations remain.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sco_ui.h
(*normalize_chord)
cpp typed-wrapper include/scosdk/ui.hpp
const sco_result r = t_->normalize_chord(chord, buf, &size);
csharp typed-wrapper sdk/csharp/Sco.Sdk/Ui.cs
ScoResult r = Storage.Sized((buf, size) => { fixed (byte* cp = c) return _t->normalize_chord(cp, buf, size); }, out byte[] b);
lua unsupported docs/ui.md
Scripts bind hotkeys; tabs and overlays need draw callbacks from Lua

None identified in the catalogue; this is not proof none can exist.

ABI pins prove layout, not semantic behavior or a live game session.