AuElementNotifyEvent(3)

✨ NAME ✨

okay so bestie, welcome to the AuElementNotifyEvent(3) page from the audiolib manual πŸ’– β€” it's all about the element notify event structure. No cap, this is your guide to knowing when audio elements are like β€œhey, I got bytes” or β€œhey, I changed state.” πŸ‘‘


πŸŽ€ STRUCTURES πŸŽ€

First, include this:

#include <audio/audiolib.h>

Then the union and the struct, exactly like this:

       #include <audio/audiolib.h>

       typedef union _AuEvent
       {
           . . .
           AuElementNotifyEvent auelementnotify;
           . . .
       }AuEvent;

       typedef struct _AuElementNotifyEvent
       {
           int type;
           AuUint32 serial;
           AuBool send_event;
           AuServer *server;
           AuTime time;
           AuFlowID flow;
           unsigned char element_num;
           unsigned char kind;
           unsigned char prev_state;
           unsigned char cur_state;
           unsigned char reason;
           AuUint32 num_bytes;
       }AuElementNotifyEvent;

So AuEvent is a union, and one of its members is AuElementNotifyEvent auelementnotify; β€” that’s the one we’re obsessed with. πŸ’…


πŸ’… MEMBERS πŸ’…

  • type β€” the event type, bestie. ElementNotify events are type AuEventTypeElementNotify. πŸ’–
  • serial β€” the serial ID of the event expanded from the 16 bit value sent by the server. 🧚
  • send_event β€” AuTrue if the event came from a SendEvent protocol request. ✨
  • server β€” the connection to the audio server that the event was read from. 🫢
  • time β€” the server time in milliseconds when the event was generated. ⏰
  • flow β€” the ID of the flow that caused the event. 🌊
  • element_num β€” the index of the element that caused the event, or AuElementAll to indicate the flow. 🎯
  • kind β€” the kind of notify event. This will be one of these constants: AuElementNotifyKindLowWater, AuElementNotifyKindHighWater, or AuElementNotifyKindState. πŸ”₯
  • prev_state β€” the previous state of the element indexed by element_num. This will be one of these constants: AuStateStop, AuStateStart, or AuStatePause. πŸ¦‹
  • cur_state β€” the current state of the element indexed by element_num. This will be one of these constants: AuStateStop, AuStateStart, or AuStatePause. 🌈
  • reason β€” the reason for the notify event. This will be one of these constants: AuReasonUser, AuReasonUnderrun, AuReasonOverrun, AuReasonEOF, AuReasonWatermark, or AuReasonHardware. πŸ’€
  • num_bytes β€” the number of bytes to send or receive. Only valid if the element indexed by element_num is an ImportClient or ExportClient. πŸ“¦

🌈 DESCRIPTION 🌈

ElementNotify events are sent to client applications to notify them of a watermark condition or state change. That’s the whole vibe. πŸ’«

If kind is AuElementNotifyKindLowWater, the ImportClient element indexed by element_num in flow is ready to receive num_bytes of audio data from the client application. 🎧

If kind is AuElementNotifyKindHighWater, the ExportClient element indexed by element_num in flow is ready to send num_bytes of audio data to the client application. πŸ“€

If kind is AuElementNotifyKindState, the element indexed by element_num (or flow if element_num is AuElementAll) has made a state transition from prev_state to cur_state triggering the event. ✨

Reguardless of kind, prev_state and cur_state contain the old and new states, and reason contains the reason for the event. πŸ‘‘


πŸ”— SEE ALSO πŸ”—

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

Mwah πŸ’‹ this has been the AuElementNotifyEvent(3) page, from audiolib - events, version 1.9.4. The footer didn’t give a date, bestie πŸ™ˆ β€” so no date, just vibes, version 1.9.4, and the manual name AuElementNotifyEvent(3). Stay hydrated and check your watermarks. πŸ’–βœ¨

πŸ“¦ where this page comes from