Expand description
C ABI for mx_remote.
The whole of this crate is one translation: it holds every unsafe in the
workspace, and adds no protocol logic of its own. Anything a caller can do
here is something the core crate already does; if a rule is not enforced in
mx_remote, it is not enforced at all.
Three conventions run through the header, and knowing them is most of knowing the API:
- A device is addressed by value. There is no handle for a device or a
bay: a device is a
mxr_uid_t, a bay is amxr_bay_uid_t, and state is read by passing one in and having a struct filled out. Nothing hands back a pointer into state that a lock protects. - Every call returns, whatever happens. An unwind across the boundary
is undefined behaviour, so each entry point catches: a panic becomes
mxr_result_t::MXR_ERR_PANICrather than a corrupted stack. - A borrowed pointer lives for one call. Strings and arrays handed to a callback point into memory the library owns and reuses. A caller that needs one afterwards copies it.
Every failure code is negative and mxr_result_t::MXR_OK is zero, so
if (rc < 0) is a complete test, and a code added later cannot turn a
failure into a success.
§From C
#include <mx_remote.h>
/* The client cannot be its own userdata: it does not exist when the table
* is handed over, so it reaches the callbacks through a struct that does. */
struct app { mxr_remote_t *remote; };
static void on_device_update(void *userdata, mxr_uid_t device) {
mxr_device_info_t info;
if (mxr_device(((struct app *)userdata)->remote, device, &info) == MXR_OK)
printf("%s %s\n", info.model, info.name);
}
int main(void) {
struct app app = {0};
mxr_callbacks_t cb = {0};
cb.on_device_update = on_device_update;
/* Zeroing a config asks for every default; NULL does the same. */
app.remote = mxr_remote_new(NULL, &cb, &app);
mxr_remote_start(app.remote);
/* ... */
mxr_remote_free(app.remote);
return 0;
}include/mx_remote.h is generated from this source by cbindgen and checked
into the repository. include/mx_remote.hpp is a hand-written header-only
C++ layer over it, with a move-only mxr::Remote that closes and joins in
its destructor and an mxr::Handler base class carrying a virtual method
per event.
Structs§
- mxr_
action_ transmit_ request_ t - Asks one device to perform a remote-control action.
- mxr_
amp_ zone_ settings_ t - A ProAmp8 zone’s gain, delay, tone and power settings.
- mxr_
audio_ change_ source_ t - Which source endpoint an audio sink endpoint was switched to.
- mxr_
audio_ details_ t - The audio a bay signal report describes.
- mxr_
audio_ endpoint_ t - One node of a device’s audio tree.
- mxr_
audio_ format_ t - A stream’s sample rate and channel count.
- mxr_
bay_ info_ t - What a bay is, and what is connected to it.
- mxr_
bay_ name_ change_ t - Asks a device to rename one of its bays.
- mxr_
bay_ uid_ t - A single bay: the device it is on, and its port number there.
- mxr_
blacklist_ change_ t - Registers or unregisters a device on the source blacklist.
- mxr_
cable_ status_ t - The diagnostic result for one UTP cable pair.
- mxr_
callbacks_ t - What to call when something happens.
- mxr_
config_ t - How a client finds the network.
- mxr_
device_ info_ t - What a device is, and what it is doing.
- mxr_
dolby_ settings_ t - A ProAmp8’s Dolby settings.
- mxr_
edid_ profile_ change_ t - Asks a device to switch its input EDID profile.
- mxr_
edid_ record_ t - One EDID block from a device’s reply.
- mxr_
edid_ request_ t - Asks one device for its EDID.
- mxr_
factory_ reset_ request_ t - Asks peers to factory-reset.
- mxr_
firmware_ version_ t - One firmware component a device reports.
- mxr_
ir_ capture_ t - Raw IR captured on a bay of the sending device.
- mxr_
ir_ meta_ t - The metadata shared by the raw-IR capture and transmit frames.
- mxr_
ir_ transmit_ request_ t - Asks one device to blast raw IR on one of its local bays.
- mxr_
key_ transmit_ request_ t - Asks one device to send a remote-control key on a bay.
- mxr_
multiviewer_ command_ t - A command addressed to a multiviewer.
- mxr_
multiviewer_ status_ t - What a multiviewer reports about itself.
- mxr_
network_ port_ t - The link state and diagnostics of one network port.
- mxr_
pdu_ state_ t - The electrical state a PDU reports.
- mxr_
power_ save_ request_ t - Asks a sink to enter or leave power save.
- mxr_
rc_ settings_ t - The remote-control configuration of a source bay.
- mxr_
remote_ t - A running client. Opaque: everything about it is reached through the functions below.
- mxr_
set_ route_ request_ t - Asks a device, addressed by serial, to switch a sink.
- mxr_
signal_ details_ t - The signal a bay measures, beyond the description in
mxr_bay_info_t::signal_type. - mxr_
stream_ addr_ t - One stream of a route the caller assembles.
- mxr_
stream_ source_ t - One multicast stream address.
- mxr_
stream_ sources_ t - The streams one V2IP source advertises.
- mxr_
tiling_ config_ t - The window a sink is currently told to show.
- mxr_
topology_ entry_ t - One device in a topology report.
- mxr_
uid_ t - The 16-byte identifier of a device on the network.
- mxr_
v2ip_ details_ t - A V2IP device’s own encoder configuration.
- mxr_
v2ip_ route_ t - The three streams a manual route points a V2IP sink at.
- mxr_
v2ip_ rx_ stats_ t - Receiver stream statistics.
- mxr_
v2ip_ sink_ t - The streams a V2IP sink is subscribed to.
- mxr_
v2ip_ stats_ t - A device’s V2IP statistics, cumulative and over the last minute.
- mxr_
v2ip_ tx_ stats_ t - Transmitter stream statistics.
- mxr_
video_ wall_ command_ t - Asks one sink to crop its source to a wall window.
- mxr_
video_ wall_ window_ t - Where a video-wall sink’s window sits, and the picture it was measured against.
Enums§
- mxr_
arc_ status_ t - The audio return channel a bay is carrying.
- mxr_
device_ status_ t - The high-level state of a device on the network.
- mxr_
power_ status_ t - The CEC power state of whatever is connected to a bay.
- mxr_
result_ t - How a call ended.
- mxr_
stream_ kind_ t - Which of a V2IP device’s streams an address describes.
- mxr_
tribool_ t - A flag a device may not have reported.
Constants§
- MXR_
AMP_ EQ_ BANDS - Number of EQ bands an amplifier zone carries.
- MXR_
AUDIO_ AMP_ OUTPUT - Is an amplifier output.
- MXR_
AUDIO_ GAIN_ CONTROL - Has a gain control.
- MXR_
AUDIO_ HDMI - Carries HDMI audio.
- MXR_
AUDIO_ INPUT - Accepts audio.
- MXR_
AUDIO_ MUTE - Can be muted.
- MXR_
AUDIO_ OUTPUT - Produces audio.
- MXR_
AUDIO_ RCA - Is an analogue RCA connector.
- MXR_
AUDIO_ ROUTE_ INPUT - Can be routed to as an input.
- MXR_
AUDIO_ ROUTE_ IN_ NONE - Accepts “no input” as a route.
- MXR_
AUDIO_ ROUTE_ OUTPUT - Can be routed from as an output.
- MXR_
AUDIO_ SPDIF - Is an S/PDIF connector.
- MXR_
AUDIO_ TRIGGER - Drives a trigger output.
- MXR_
AUDIO_ V2IP_ RX - Receives a V2IP audio stream.
- MXR_
AUDIO_ V2IP_ TX - Sends a V2IP audio stream.
- MXR_
AUDIO_ VOLUME_ CONTROL - Has a volume control.
- MXR_
BAY_ AUDIO_ AMP_ OUT - Amplified audio output.
- MXR_
BAY_ AUDIO_ ANA_ IN - Analogue audio input.
- MXR_
BAY_ AUDIO_ ANA_ OUT - Analogue audio output.
- MXR_
BAY_ AUDIO_ DIG_ IN - Digital audio input.
- MXR_
BAY_ AUDIO_ DIG_ OUT - Digital audio output.
- MXR_
BAY_ AUTO_ OFF - Switches itself off when idle.
- MXR_
BAY_ DOLBY - Dolby decoding.
- MXR_
BAY_ HDMI_ IN - HDMI input.
- MXR_
BAY_ HDMI_ OUT - HDMI output.
- MXR_
BAY_ IR_ IN - Infrared input.
- MXR_
BAY_ IR_ OUT - Infrared output.
- MXR_
BAY_ RC_ IN - Remote-control input.
- MXR_
BAY_ RC_ OUT - Remote-control output.
- MXR_
BAY_ STATUS_ AUDIO_ ARC_ ANALOG - Audio return over analogue is active.
- MXR_
BAY_ STATUS_ AUDIO_ ARC_ HDMI - Audio return over HDMI is active.
- MXR_
BAY_ STATUS_ AUDIO_ ARC_ OPTIC - Audio return over optical is active.
- MXR_
BAY_ STATUS_ CEC_ DETECTED - A CEC device answered.
- MXR_
BAY_ STATUS_ CEC_ DISABLED - CEC is switched off for this bay.
- MXR_
BAY_ STATUS_ DECODER_ DISABLE - The V2IP decoder is disabled.
- MXR_
BAY_ STATUS_ ENCODER_ DISABLE - The V2IP encoder is disabled.
- MXR_
BAY_ STATUS_ ENCODER_ ERROR - The V2IP encoder reports an error.
- MXR_
BAY_ STATUS_ FAULT - The bay reports a fault.
- MXR_
BAY_ STATUS_ HDBT_ CONNECTED - An HDBaseT link is up.
- MXR_
BAY_ STATUS_ HIDDEN - The bay is hidden from the user interface.
- MXR_
BAY_ STATUS_ HPD_ DETECTED - Hot-plug detect is asserted.
- MXR_
BAY_ STATUS_ OFFLINE - The bay is offline.
- MXR_
BAY_ STATUS_ POWERED - The bay has power.
- MXR_
BAY_ STATUS_ POWERED_ OFF - The attached device was powered off.
- MXR_
BAY_ STATUS_ POWERED_ ON - The attached device was powered on.
- MXR_
BAY_ STATUS_ SIGNAL_ DETECTED - A signal is present.
- MXR_
BAY_ STATUS_ SIGNAL_ SCRAMBLE - The signal is scrambled.
- MXR_
BAY_ V2IP_ SINK_ LOCAL - Is a local V2IP sink.
- MXR_
BAY_ V2IP_ SINK_ REMOTE - Is a remote V2IP sink.
- MXR_
BAY_ V2IP_ SOURCE_ LOCAL - Is a local V2IP source.
- MXR_
BAY_ V2IP_ SOURCE_ REMOTE - Is a remote V2IP source.
- MXR_
EDID_ LEN - Bytes in one EDID: a base block and exactly one extension block.
- MXR_
FEATURE_ AUDIO_ AMPLIFIER - Is an audio amplifier.
- MXR_
FEATURE_ AUDIO_ RETURN - Supports audio return.
- MXR_
FEATURE_ AUDIO_ ROUTING - Routes audio.
- MXR_
FEATURE_ BOOTING - Is still booting.
- MXR_
FEATURE_ BOOT_ BIT - Set while the device is in its boot loader.
- MXR_
FEATURE_ CEC - Speaks CEC.
- MXR_
FEATURE_ CONFIG_ INITIALISED - Initialises the configuration it broadcasts.
- MXR_
FEATURE_ IR_ RX - Receives infrared.
- MXR_
FEATURE_ IR_ TX - Transmits infrared.
- MXR_
FEATURE_ MANAGER - Is a management client rather than a device.
- MXR_
FEATURE_ MESH - Supports meshing.
- MXR_
FEATURE_ MESH_ MASTER - Is the master of its mesh.
- MXR_
FEATURE_ MESH_ MEMBER - Is a member of a mesh.
- MXR_
FEATURE_ MULTIVIEWER - Is a multiviewer.
- MXR_
FEATURE_ REMOTE_ CONTROL - Passes remote-control commands through.
- MXR_
FEATURE_ SETUP_ COMPLETED - Installer setup has been completed.
- MXR_
FEATURE_ STATUS_ CRASHED - Has crashed since it last booted.
- MXR_
FEATURE_ STATUS_ ERROR - Has an error pending.
- MXR_
FEATURE_ STATUS_ NOTIFY - Has a notification pending.
- MXR_
FEATURE_ STATUS_ POWER_ SAVE - Is in power-save mode.
- MXR_
FEATURE_ STATUS_ REBOOT - Is about to reboot.
- MXR_
FEATURE_ STATUS_ WARNING - Has a warning pending.
- MXR_
FEATURE_ V2IP_ SINK - Acts as a V2IP stream sink.
- MXR_
FEATURE_ V2IP_ SOURCE - Acts as a V2IP stream source.
- MXR_
FEATURE_ VIDEO_ ROUTING - Routes video.
- MXR_
FEATURE_ VIDEO_ WALL - Supports video walls.
- MXR_
FEATURE_ VOLUME_ CONTROL - Controls volume.
- MXR_
IP_ STRING_ LEN - Bytes an IPv4 address needs when written as text, the terminator included.
- MXR_
KEY_ BACK - Go back one step.
- MXR_
KEY_ BLUE - Blue colour key.
- MXR_
KEY_ CHANNEL_ DOWN - Previous channel.
- MXR_
KEY_ CHANNEL_ UP - Next channel.
- MXR_
KEY_ CONTENT_ MENU - Open the content menu.
- MXR_
KEY_ CUSTOM_ CEC - Base of the range carrying a raw CEC user-control code.
- MXR_
KEY_ CUSTOM_ SKY - Base of the range carrying a raw Sky key code.
- MXR_
KEY_ DOWN - Navigate down.
- MXR_
KEY_ EJECT - Eject the medium.
- MXR_
KEY_ FAST_ FORWARD - Fast forward.
- MXR_
KEY_ GREEN - Green colour key.
- MXR_
KEY_ GUIDE - Open the programme guide.
- MXR_
KEY_ HELP - Open help.
- MXR_
KEY_ INFORMATION - Show information.
- MXR_
KEY_ INPUT_ SELECT - Select an input.
- MXR_
KEY_ INTERACTIVE - Open interactive services.
- MXR_
KEY_ LEFT - Navigate left.
- MXR_
KEY_ MENU - Open the main menu.
- MXR_
KEY_ MODE_ 3D - Toggle 3D mode.
- MXR_
KEY_ NEXT_ CHAPTER - Next chapter.
- MXR_
KEY_ NUM0 - Digit 0.
- MXR_
KEY_ NUM1 - Digit 1.
- MXR_
KEY_ NUM2 - Digit 2.
- MXR_
KEY_ NUM3 - Digit 3.
- MXR_
KEY_ NUM4 - Digit 4.
- MXR_
KEY_ NUM5 - Digit 5.
- MXR_
KEY_ NUM6 - Digit 6.
- MXR_
KEY_ NUM7 - Digit 7.
- MXR_
KEY_ NUM8 - Digit 8.
- MXR_
KEY_ NUM9 - Digit 9.
- MXR_
KEY_ PAUSE - Pause playback.
- MXR_
KEY_ PLAY - Start playback.
- MXR_
KEY_ PREVIOUS_ CHANNEL - Return to the previous channel.
- MXR_
KEY_ PREV_ CHAPTER - Previous chapter.
- MXR_
KEY_ RECORD - Start recording.
- MXR_
KEY_ RED - Red colour key.
- MXR_
KEY_ REWIND - Rewind.
- MXR_
KEY_ RIGHT - Navigate right.
- MXR_
KEY_ SEARCH - Open search.
- MXR_
KEY_ SELECT - Confirm the highlighted item.
- MXR_
KEY_ SKY - Sky home key.
- MXR_
KEY_ SOUND_ SELECT - Select an audio track.
- MXR_
KEY_ STOP - Stop playback.
- MXR_
KEY_ SUBTITLE - Toggle subtitles.
- MXR_
KEY_ TEXT - Open teletext.
- MXR_
KEY_ UP - Navigate up.
- MXR_
KEY_ VIDEO_ ON_ DEMAND - Open video on demand.
- MXR_
KEY_ YELLOW - Yellow colour key.
- MXR_
MESSAGE_ LEN - Bytes a device’s system-status message needs, the terminator included.
- MXR_
MODEL_ LEN - Bytes a model name needs, the terminator included.
- MXR_
MULTIVIEWER_ INPUTS - How many inputs a multiviewer has.
- MXR_
MV_ ASPECT_ FULL - Fill the window.
- MXR_
MV_ ASPECT_ RATIO_ 16_ 9 - 16:9.
- MXR_
MV_ ASPECT_ UNKNOWN - The multiviewer reports no aspect ratio.
- MXR_
MV_ BOOL_ OFF - Off.
- MXR_
MV_ BOOL_ ON - On.
- MXR_
MV_ BOOL_ UNKNOWN - The multiviewer reports no value.
- MXR_
MV_ EDID_ 4K2K30_ 444_ DOLBY_ DTS_ 51 - 4K2K30 4:4:4, Dolby/DTS 5.1.
- MXR_
MV_ EDID_ 4K2K30_ 444_ HD_ AUDIO_ 71 - 4K2K30 4:4:4, HD audio 7.1.
- MXR_
MV_ EDID_ 4K2K30_ 444_ STEREO - 4K2K30 4:4:4, stereo 2.0.
- MXR_
MV_ EDID_ 4K2K60_ 444_ DOLBY_ DTS_ 51 - 4K2K60 4:4:4, Dolby/DTS 5.1.
- MXR_
MV_ EDID_ 4K2K60_ 444_ HD_ AUDIO_ 71 - 4K2K60 4:4:4, HD audio 7.1.
- MXR_
MV_ EDID_ 4K2K60_ 444_ STEREO - 4K2K60 4:4:4, stereo 2.0.
- MXR_
MV_ EDID_ 720P_ STEREO - 720p, stereo 2.0.
- MXR_
MV_ EDID_ 1024 X768_ STEREO - 1024x768, stereo 2.0.
- MXR_
MV_ EDID_ 1080P_ DOLBY_ DTS_ 51 - 1080p, Dolby/DTS 5.1.
- MXR_
MV_ EDID_ 1080P_ HD_ AUDIO_ 71 - 1080p, HD audio 7.1.
- MXR_
MV_ EDID_ 1080P_ STEREO - 1080p, stereo 2.0.
- MXR_
MV_ EDID_ 1280 X1024_ STEREO - 1280x1024, stereo 2.0.
- MXR_
MV_ EDID_ 1360 X768_ STEREO - 1360x768, stereo 2.0.
- MXR_
MV_ EDID_ 1440 X900_ STEREO - 1440x900, stereo 2.0.
- MXR_
MV_ EDID_ 1600 X1200_ STEREO - 1600x1200, stereo 2.0.
- MXR_
MV_ EDID_ 1680 X1050_ STEREO - 1680x1050, stereo 2.0.
- MXR_
MV_ EDID_ 1920 X1200_ STEREO - 1920x1200, stereo 2.0.
- MXR_
MV_ EDID_ COPY_ OUTPUT - Whatever the display connected to the HDMI output presents. The template a multiviewer leaves the factory with.
- MXR_
MV_ EDID_ CUSTOM - The EDID loaded onto the device.
- MXR_
MV_ EDID_ UNKNOWN - The multiviewer reports no EDID template.
- MXR_
MV_ HDCP_ OFF - Content protection off.
- MXR_
MV_ HDCP_ UNKNOWN - The multiviewer reports no HDCP mode.
- MXR_
MV_ HDCP_ V14 - HDCP 1.4.
- MXR_
MV_ HDCP_ V22 - HDCP 2.2.
- MXR_
MV_ ITC_ PC - PC content.
- MXR_
MV_ ITC_ UNKNOWN - The multiviewer reports no IT-content mode.
- MXR_
MV_ ITC_ VIDEO - Video content.
- MXR_
MV_ OUTPUT_ DCI4K_ P50 - 4096x2160p50.
- MXR_
MV_ OUTPUT_ DCI4K_ P60 - 4096x2160p60.
- MXR_
MV_ OUTPUT_ HD720_ P50 - 1280x720p50.
- MXR_
MV_ OUTPUT_ HD720_ P60 - 1280x720p60.
- MXR_
MV_ OUTPUT_ HD1080_ P50 - 1920x1080p50.
- MXR_
MV_ OUTPUT_ HD1080_ P60 - 1920x1080p60.
- MXR_
MV_ OUTPUT_ UHD_ P25 - 3840x2160p25.
- MXR_
MV_ OUTPUT_ UHD_ P30 - 3840x2160p30.
- MXR_
MV_ OUTPUT_ UHD_ P50 - 3840x2160p50.
- MXR_
MV_ OUTPUT_ UHD_ P60 - 3840x2160p60.
- MXR_
MV_ OUTPUT_ UNKNOWN - The multiviewer reports no output mode.
- MXR_
MV_ OUTPUT_ WUXGA_ P60_ RB - 1920x1200p60, reduced blanking.
- MXR_
MV_ OUTPUT_ WXGA800_ P60 - 1280x800p60.
- MXR_
MV_ OUTPUT_ WXGA_ P60 - 1360x768p60.
- MXR_
MV_ OUTPUT_ XGA_ P60 - 1024x768p60.
- MXR_
MV_ PIP_ POSITION_ LEFT_ BOTTOM - Bottom left.
- MXR_
MV_ PIP_ POSITION_ LEFT_ TOP - Top left.
- MXR_
MV_ PIP_ POSITION_ RIGHT_ BOTTOM - Bottom right.
- MXR_
MV_ PIP_ POSITION_ RIGHT_ TOP - Top right.
- MXR_
MV_ PIP_ POSITION_ UNKNOWN - The multiviewer reports no picture-in-picture position.
- MXR_
MV_ PIP_ SIZE_ LARGE - Large.
- MXR_
MV_ PIP_ SIZE_ MEDIUM - Medium.
- MXR_
MV_ PIP_ SIZE_ SMALL - Small.
- MXR_
MV_ PIP_ SIZE_ UNKNOWN - The multiviewer reports no picture-in-picture size.
- MXR_
MV_ SOURCE_ INPUT_ 1 - Input 1.
- MXR_
MV_ SOURCE_ INPUT_ 2 - Input 2.
- MXR_
MV_ SOURCE_ INPUT_ 3 - Input 3.
- MXR_
MV_ SOURCE_ INPUT_ 4 - Input 4.
- MXR_
MV_ SOURCE_ UNKNOWN - The multiviewer reports no source.
- MXR_
MV_ VIEW_ MODE_ FOUR_ SCREEN_ EQUAL - Four windows, equal size.
- MXR_
MV_ VIEW_ MODE_ FOUR_ SCREEN_ SMALL - Four windows, small.
- MXR_
MV_ VIEW_ MODE_ PIP - Picture in picture.
- MXR_
MV_ VIEW_ MODE_ SINGLE - One full-screen window.
- MXR_
MV_ VIEW_ MODE_ THREE_ SCREEN_ LARGE - Three windows, large.
- MXR_
MV_ VIEW_ MODE_ THREE_ SCREEN_ SMALL - Three windows, small.
- MXR_
MV_ VIEW_ MODE_ TWO_ SCREEN_ LARGE - Two windows, large.
- MXR_
MV_ VIEW_ MODE_ TWO_ SCREEN_ SMALL - Two windows, small.
- MXR_
MV_ VIEW_ MODE_ UNKNOWN - The multiviewer reports no window layout.
- MXR_
NAME_ LEN - Bytes a device, bay or port name needs, the terminator included.
- MXR_
PDU_ OUTLETS - How many outlets a PDU reports.
- MXR_
SCALING_ FLAG_ AUTO_ SCALING - Set when the output scales automatically.
- MXR_
SCALING_ FLAG_ MODE_ VALID - Set when the frame carries a scaling mode and refresh rate.
- MXR_
SCALING_ FLAG_ OPTIONS_ VALID - Set when the frame carries the scaling options.
- MXR_
SERIAL_ LEN - Bytes a serial number needs, the terminator included.
- MXR_
SIGNAL_ TYPE_ LEN - Bytes a signal description such as
1080p60 444 8needs, the terminator included. - MXR_
UID_ STRING_ LEN - Bytes a
mxr_uid_tneeds when written as text, the terminator included. - MXR_
UTP_ PAIRS - How many pairs a UTP cable diagnostic covers.
- MXR_
VERSION_ LEN - Bytes a firmware version string needs, the terminator included.
- MXR_
VIDEO_ WALL_ MIN_ SIZE - Neither side of a window may be smaller than this.
- MXR_
VIDEO_ WALL_ POS_ ALIGN - A window’s horizontal origin must be a multiple of this.
- MXR_
VIDEO_ WALL_ WIDTH_ ALIGN - A window’s width must be a multiple of this.
Functions§
- mxr_
audio_ ⚠endpoint_ children - Writes the endpoints hanging off one audio endpoint, and returns how many there are.
- mxr_
audio_ ⚠endpoints - Writes a device’s audio endpoints, in the order it reported them, and returns how many there are.
- mxr_bay⚠
- Fills
outwith what is known about a bay. - mxr_
bay_ ⚠amp_ settings - Fills
outwith an amplifier zone’s settings. - mxr_
bay_ ⚠audio_ details - Fills
outwith the audio a bay’s signal report describes. - mxr_
bay_ ⚠by_ name - Finds a bay on a device by the name the device gives its port.
- mxr_
bay_ ⚠by_ stream_ ip - Finds the source bay advertising a multicast group.
- mxr_
bay_ ⚠filtered - Writes the devices whose signals a bay refuses, and returns how many there are.
- mxr_
bay_ ⚠signal_ details - Fills
outwith the signal a bay measures. - mxr_
bay_ status_ hdcp - The HDCP version a bay status word carries in bits 22-23.
- mxr_
bay_ status_ rc_ type - The remote-control type a bay status word carries in bits 16-19.
- mxr_
device ⚠ - Fills
outwith what is known about a device. - mxr_
device_ ⚠bays - Writes a device’s bays in port order, and returns how many there are.
- mxr_
device_ ⚠by_ serial - Finds a device by its serial number.
- mxr_
device_ ⚠edid - Copies the EDID a device last reported into
out. - mxr_
device_ ⚠firmware - Writes the firmware versions a device reports, and returns how many there are.
- mxr_
device_ ⚠temperatures - Writes the temperatures a device reports, in its own order, in degrees Celsius, and returns how many there are.
- mxr_
devices ⚠ - Writes every device heard from, and returns how many there are.
- mxr_
discover ⚠ - Asks every device on the network to announce itself.
- mxr_
dolby_ ⚠settings - Fills
outwith a ProAmp8’s Dolby settings. - mxr_
frames_ ⚠received - Writes how many frames from other senders have parsed since
mxr_remote_start(). - mxr_
last_ error - Why the last call on this thread failed, or an empty string.
- mxr_
multiviewer_ ⚠auto_ route - Asks a multiviewer to map its inputs to the sources it can see.
- mxr_
multiviewer_ ⚠status - Fills
outwith what a multiviewer reports about itself. - mxr_
network_ ⚠status - Writes a device’s network ports, and returns how many there are.
- mxr_
pdu_ ⚠state - Fills
outwith the electrical state a PDU reports. - mxr_
power_ ⚠off - Powers off what is attached to a bay.
- mxr_
power_ ⚠on - Powers on what is attached to a bay.
- mxr_
preview_ ⚠video_ wall - Shows a window on a sink’s video wall without storing it.
- mxr_
rc_ ⚠settings - Fills
outwith a source bay’s remote-control configuration. - mxr_
reboot ⚠ - Reboots a device.
- mxr_
remote_ ⚠close - Stops the threads and closes the socket. Idempotent.
- mxr_
remote_ ⚠free - Closes the client and releases it. Null is ignored.
- mxr_
remote_ ⚠name - Writes the name this client advertises.
- mxr_
remote_ ⚠new - Creates a client, without opening a socket yet.
- mxr_
remote_ ⚠start - Opens the socket and starts the receive and timer threads.
- mxr_
remote_ ⚠target - Writes the address this client sends to.
- mxr_
remote_ ⚠uid - Writes this client’s own identifier.
- mxr_
remote_ ⚠update_ config - Reopens the socket on a different interface, or in the other mode.
- mxr_
request_ ⚠edid - Asks a device for an EDID: the one the display on its output publishes, or the one the device presents to the source on its input.
- mxr_
request_ ⚠signal_ status - Asks for a detailed signal report from every bay of one device, or - with the zero uid - from every bay on the network.
- mxr_
resolve_ ⚠device - Finds a device by serial number, name or identifier, in that order.
- mxr_
revert_ ⚠video_ wall - Restores the window a sink has stored, discarding a preview.
- mxr_
select_ ⚠audio_ endpoint_ input - Points one device’s audio endpoint at another device’s.
- mxr_
select_ ⚠audio_ source - Routes a V2IP sink’s audio to the stream a source port advertises, leaving its video where it is.
- mxr_
select_ ⚠audio_ source_ addr - Routes a V2IP sink’s audio to a multicast group directly, for a source this client has not heard advertise it.
- mxr_
select_ ⚠audio_ source_ by_ name - Routes a V2IP sink’s audio to the source bay with this user-assigned name.
- mxr_
select_ ⚠edid_ profile - Switches an input bay’s EDID profile.
- mxr_
select_ ⚠source_ addr - Routes a V2IP sink’s video, audio and ancillary streams to multicast groups the caller names.
- mxr_
select_ ⚠video_ source - Routes a V2IP sink’s video to the stream a source port advertises.
- mxr_
select_ ⚠video_ source_ by_ name - Routes a V2IP sink’s video to the source bay with this user-assigned name.
- mxr_
send_ ⚠action - Sends a remote-control action to whatever is attached to a bay.
- mxr_
send_ ⚠key - Sends a remote-control key press to whatever is attached to a bay.
- mxr_
send_ ⚠monitoring_ pulse - Sends the monitoring pulse that tells devices this client is watching.
- mxr_
set_ ⚠amp_ zone_ settings - Writes an amplifier zone’s gain, delay, tone and power settings.
- mxr_
set_ ⚠audio_ endpoint_ muted - Mutes or unmutes one of a device’s audio endpoints.
- mxr_
set_ ⚠audio_ endpoint_ trigger - Activates or clears an audio endpoint’s trigger.
- mxr_
set_ ⚠audio_ endpoint_ volume - Sets an audio endpoint’s volume.
- mxr_
set_ ⚠bay_ hidden - Hides a bay from the installation’s user interface, or shows it again.
- mxr_
set_ ⚠bay_ name - Renames a bay. The device stores the first 16 bytes.
- mxr_
set_ ⚠multiviewer_ aspect_ ratio - Sets how a multiviewer fits a source into its window.
- mxr_
set_ ⚠multiviewer_ audio_ source - Chooses which window a multiviewer takes its audio from.
- mxr_
set_ ⚠multiviewer_ audio_ volume - Sets a multiviewer’s output volume and mute state.
- mxr_
set_ ⚠multiviewer_ auto_ switch - Turns a multiviewer’s automatic source switching on or off.
- mxr_
set_ ⚠multiviewer_ edid_ template - Switches the EDID a multiviewer presents to its sources.
- mxr_
set_ ⚠multiviewer_ hdcp_ mode - Switches a multiviewer’s HDCP mode.
- mxr_
set_ ⚠multiviewer_ input_ source - Maps one of a multiviewer’s inputs to a source device.
- mxr_
set_ ⚠multiviewer_ output_ itc - Sets a multiviewer’s IT content flag.
- mxr_
set_ ⚠multiviewer_ output_ mode - Switches a multiviewer’s output resolution.
- mxr_
set_ ⚠multiviewer_ pip_ position - Sets which corner a multiviewer’s picture-in-picture window sits in.
- mxr_
set_ ⚠multiviewer_ pip_ size - Sets the size of a multiviewer’s picture-in-picture window.
- mxr_
set_ ⚠multiviewer_ remote_ control - Chooses which window a multiviewer forwards remote control to.
- mxr_
set_ ⚠multiviewer_ video_ source - Puts a source in one of a multiviewer’s windows.
- mxr_
set_ ⚠multiviewer_ view_ mode - Switches a multiviewer’s window layout.
- mxr_
set_ ⚠muted - Mutes or unmutes a bay, leaving its volume alone.
- mxr_
set_ ⚠volume - Sets a bay’s volume percentage, and its mute state when
mutedis notMXR_UNKNOWN. - mxr_
signal_ type_ bpp - The bit depth in bits per component, zero where the word names none.
- mxr_
signal_ type_ bpp_ index - The raw bit-depth index, for a caller that wants the wire value.
- mxr_
signal_ type_ colour_ space - The colour space: 0 RGB, 1 4:4:4, 2 4:2:2, 3 4:2:0.
- mxr_
signal_ type_ is_ set - Whether the word names a signal format at all.
- mxr_
signal_ type_ non_ integer - Whether the frame rate carries a 1000/1001 clock.
- mxr_
signal_ type_ svd - The CTA-861 short video descriptor, zero when the signal is not HDMI.
- mxr_
store_ ⚠video_ wall - Stores a window as a sink’s video wall.
- mxr_
subscribe_ ⚠v2ip_ stats - Subscribes to, or unsubscribes from, a device’s V2IP statistics.
- mxr_
topology ⚠ - Writes a device’s view of the mesh topology, and returns how many entries there are.
- mxr_
uid_ ⚠from_ string - Reads the dotted-hex form
mxr_uid_to_string()writes. - mxr_
uid_ is_ zero - Reports whether
uidis the empty identifier. - mxr_
uid_ ⚠to_ string - Writes
uidas dotted hex intoout, which needsMXR_UID_STRING_LENbytes. - mxr_
v2ip_ ⚠details - Fills
outwith a V2IP device’s own encoder configuration. - mxr_
v2ip_ ⚠sink - Fills
outwith the streams a V2IP sink is subscribed to. - mxr_
v2ip_ ⚠sources - Writes the streams a device’s source bays advertise, and returns how many there are.
- mxr_
v2ip_ ⚠stats - Fills
outwith a device’s V2IP statistics. - mxr_
v2ip_ ⚠tiling - Fills
outwith the window a sink is told to show. - mxr_
version - This library’s version, as
MAJOR.MINOR.PATCH. - mxr_
volume_ ⚠down - Asks a bay to step its volume down.
- mxr_
volume_ ⚠up - Asks a bay to step its volume up.
Type Aliases§
- mxr_
action_ transmit_ cb - Carries a request to perform a remote-control action.
- mxr_
arc_ cb - Names a bay and its audio return channel.
- mxr_
audio_ select_ cb - Carries an audio input selection.
- mxr_
bay_ bay_ cb - Names a bay and another bay, the zero device standing for none.
- mxr_
bay_ bool_ cb - Names a bay and a flag.
- mxr_
bay_ cb - Names only the bay the event concerns.
- mxr_
bay_ linked_ cb - Names a bay and the link that was made to it.
- mxr_
bay_ name_ change_ cb - Carries a request to rename a bay.
- mxr_
bay_ str_ cb - Names a bay and a string, borrowed for the call.
- mxr_
bay_ u8_ cb - Names a bay and an 8-bit value.
- mxr_
bay_ u16_ cb - Names a bay and a 16-bit value.
- mxr_
bay_ unlinked_ cb - Names a bay and the link that was removed from it.
- mxr_
blacklist_ cb - Carries a blacklist change.
- mxr_
device_ bool_ cb - Names a device and a flag.
- mxr_
device_ cb - Names only the device the event concerns.
- mxr_
device_ u16_ cb - Names a device and a 16-bit value.
- mxr_
device_ uid_ cb - Names a device and a second device.
- mxr_
edid_ profile_ change_ cb - Carries a request to switch an EDID profile.
- mxr_
edid_ record_ cb - Carries one EDID block a device replied with.
- mxr_
edid_ request_ cb - Carries a request for a device’s EDID.
- mxr_
endpoint_ bool_ cb - Names a device, one of its audio endpoints, and a flag.
- mxr_
endpoint_ u32_ cb - Names a device, one of its audio endpoints, and a 32-bit value.
- mxr_
factory_ reset_ cb - Carries a factory-reset request.
- mxr_
ir_ capture_ cb - Carries raw infrared captured on a bay.
- mxr_
ir_ transmit_ cb - Carries a request to blast raw infrared.
- mxr_
key_ transmit_ cb - Carries a request to send a remote-control key.
- mxr_
multiviewer_ command_ cb - Carries a multiviewer command.
- mxr_
power_ cb - Names a bay and the power state of what is connected to it.
- mxr_
power_ save_ cb - Carries a power-save request.
- mxr_
set_ route_ cb - Carries a request addressed to a device.
- mxr_
signal_ type_ t - The signal format a device reports, packed into one 16-bit word.
- mxr_
system_ status_ cb - Names a device, a status code and a message.
- mxr_
video_ wall_ cb - Carries a video wall command.
- mxr_
volume_ cb - Names a bay, its combined volume percentage and its mute state.