AuMonitorNotifyEvent(3)

πŸ“¦ version 1.9.5, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

AuMonitorNotifyEvent β€” it's the monitor notify event structure, bestie. That's the whole thing. Short, sweet, iconic. πŸ’…


✨ STRUCTURES ✨

okay so first things first, you gotta have the header pulled in:

#include <audio/audiolib.h>

then there's this union called _AuEvent, and our girl aumonitornotify is just sitting in there as one of the members, living her best life:

typedef union _AuEvent
{
    . . .
    AuMonitorNotifyEvent aumonitornotify;
    . . .
}AuEvent;

and here's the actual struct β€” the main character herself:

typedef struct _AuMonitorNotifyEvent
{
    int type;
    AuUint32 serial;
    AuBool send_event;
    AuServer *server;
    AuTime time;
    AuFlowID flow;
    unsigned char element_num;
    unsigned char format;
    unsigned char num_tracks;
    unsigned short count;
    unsigned short num_fields;
    AuUint32 data;
    AuUint32 data1;
    AuUint32 data2;
}AuMonitorNotifyEvent;

πŸ¦‹ MEMBERS πŸ¦‹

okay so let's go field by field, no skipping, we're doing the whole tour:

  • type β€” the event type, duh. MonitorNotify events are type AuEventTypeMonitorNotify. that's the whole personality.
  • serial β€” the serial ID of the event, expanded from the 16 bit value the server sent you. glow-up from 16 bits, we love to see it. ✨
  • send_event β€” AuTrue if the event came from a SendEvent protocol request. so if it's AuTrue, it's a SendEvent baby, no cap.
  • server β€” the connection to the audio server that this event was read from. your link to the mothership. 🫢
  • time β€” the server time in milliseconds for when the event was generated. timestamped, periodt.
  • flow β€” specifies the ID of the flow that caused the event. yes, that flow. she did this. πŸ‘‘
  • element_num β€” the index of the ExportMonitor element that generated this event.
  • format β€” the format of the monitor data. rn, the following formats are defined: AuFormatULAW8, AuFormatLinearUnsigned8, AuFormatLinearSigned8, AuFormatLinearSigned16MSB, AuFormatLinearUnsigned16MSB, AuFormatSignedLinear16LSB, and AuFormatLinearUnsigned16LSB. taken from the ExportMonitor element, so like, that's where she got it from. πŸ’
  • num_tracks β€” the number of tracks in the monitor data. also taken from the ExportMonitor element. matching energy. πŸŽ€
  • count β€” always 0. like, literally always. don't ask, she's just built that way.
  • num_fields β€” always 2. same deal, it is what it is. 🀷
  • data β€” monitor data. yes, that's the whole description. slay.
  • data1 β€” monitor data. again. iconic.
  • data2 β€” monitor data. three of them. we been knew. πŸ’œ

🌸 DESCRIPTION 🌸

so here's the tea: MonitorNotify events will be sent to clients with flows containing ExportMonitor elements. that's it, that's the whole deal β€” if you got an ExportMonitor element in your flow, the server is gonna come find you. iykyk. 🌈


πŸ”₯ SEE ALSO πŸ”₯

go read these next, bestie, they're all in the same friend group:

  • AuAnyEvent
  • AuElementNotifyEvent
  • AuErrorEvent
  • AuGrabNotifyEvent
  • audiolib β€” Network Audio System C Language Interface

and that's the page!! this was audiolib - events, version 1.9.5, and yeah β€” it's giving manual page, it's giving networking audio, it's giving everything. go forth and monitor those events. mwah. πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from