9#include <compy/priv/compiler_attrs.h>
46 const Compy_SdpLine *restrict self, Compy_Writer w) COMPY_PRIV_MUST_USE;
62 ...) COMPY_PRIV_MUST_USE COMPY_PRIV_GCC_ATTR(format(printf, 3, 4));
112#define COMPY_SDP_DESCRIBE(ret, w, ...) \
113 COMPY_PRIV_SDP_DESCRIBE(ret, w, __VA_ARGS__)
115#ifndef DOXYGEN_IGNORE
117#include <metalang99.h>
119#define COMPY_PRIV_SDP_DESCRIBE(ret, w, ...) \
121 ssize_t compy_priv_sdp_ret = 0; \
122 ML99_EVAL(ML99_variadicsForEach( \
124 ML99_appl(v(COMPY_PRIV_genSdpPrintf), v(ret, w)), \
129#define COMPY_PRIV_genSdpPrintf_IMPL(ret, w, ty, ...) \
131 compy_priv_sdp_ret = compy_sdp_printf(w, ty, __VA_ARGS__); \
132 if (compy_priv_sdp_ret < 0) { \
135 ret += compy_priv_sdp_ret; \
138#define COMPY_PRIV_genSdpPrintf_ARITY 2
145#define COMPY_SDP_VERSION 'v'
150#define COMPY_SDP_ORIGIN 'o'
155#define COMPY_SDP_SESSION_NAME 's'
160#define COMPY_SDP_INFO 'i'
165#define COMPY_SDP_URI 'u'
170#define COMPY_SDP_EMAIL 'e'
175#define COMPY_SDP_PHONE 'p'
180#define COMPY_SDP_CONNECTION 'c'
185#define COMPY_SDP_BANDWIDTH 'b'
190#define COMPY_SDP_TIME 't'
195#define COMPY_SDP_REPEAT 'r'
200#define COMPY_SDP_TIME_ZONES 'z'
205#define COMPY_SDP_ENCRYPTION_KEYS 'k'
210#define COMPY_SDP_ATTR 'a'
215#define COMPY_SDP_MEDIA 'm'
ssize_t Compy_SdpLine_serialize(const Compy_SdpLine *restrict self, Compy_Writer w) COMPY_PRIV_MUST_USE
Serialises self into w.
Definition sdp.c:12
char Compy_SdpType
An SDP type (one character).
Definition sdp.h:17
ssize_t compy_sdp_printf(Compy_Writer w, Compy_SdpType ty, const char *restrict fmt,...) COMPY_PRIV_MUST_USE COMPY_PRIV_GCC_ATTR(format(printf
Printfs a single SDP line to w.
An SDP line.
Definition sdp.h:22
Compy_SdpType ty
The type of this line.
Definition sdp.h:26
CharSlice99 value
The value of this line.
Definition sdp.h:31