#define ENUM(E,F) StaticValue(#E,Napi::Number::New(env,F))

#define SOCKET_OPTIONS \
  ENUM(SRTO_MSS, 0), \
  ENUM(SRTO_SNDSYN, 1), \
  ENUM(SRTO_RCVSYN, 2), \
  ENUM(SRTO_ISN, 3), \
  ENUM(SRTO_FC, 4), \
  ENUM(SRTO_SNDBUF, 5), \
  ENUM(SRTO_RCVBUF, 6), \
  ENUM(SRTO_LINGER, 7), \
  ENUM(SRTO_UDP_SNDBUF, 8), \
  ENUM(SRTO_UDP_RCVBUF, 9), \
  ENUM(SRTO_RENDEZVOUS, 12), \
  ENUM(SRTO_SNDTIMEO, 13), \
  ENUM(SRTO_RCVTIMEO, 14), \
  ENUM(SRTO_REUSEADDR, 15), \
  ENUM(SRTO_MAXBW, 16), \
  ENUM(SRTO_STATE, 17), \
  ENUM(SRTO_EVENT, 18), \
  ENUM(SRTO_SNDDATA, 19), \
  ENUM(SRTO_RCVDATA, 20), \
  ENUM(SRTO_SENDER, 21), \
  ENUM(SRTO_TSBPDMODE, 22), \
  ENUM(SRTO_LATENCY, 23), \
  ENUM(SRTO_INPUTBW, 24), \
  ENUM(SRTO_OHEADBW, 25), \
  ENUM(SRTO_PASSPHRASE, 26), \
  ENUM(SRTO_PBKEYLEN, 27), \
  ENUM(SRTO_KMSTATE, 28), \
  ENUM(SRTO_IPTTL, 29), \
  ENUM(SRTO_IPTOS, 30), \
  ENUM(SRTO_TLPKTDROP, 31), \
  ENUM(SRTO_SNDDROPDELAY, 32), \
  ENUM(SRTO_NAKREPORT, 33), \
  ENUM(SRTO_VERSION, 34), \
  ENUM(SRTO_PEERVERSION, 35), \
  ENUM(SRTO_CONNTIMEO, 36), \
  ENUM(SRTO_DRIFTTRACER, 37), \
  ENUM(SRTO_MININPUTBW, 38), \
  ENUM(SRTO_SNDKMSTATE, 40), \
  ENUM(SRTO_RCVKMSTATE, 41), \
  ENUM(SRTO_LOSSMAXTTL, 42), \
  ENUM(SRTO_RCVLATENCY, 43), \
  ENUM(SRTO_PEERLATENCY, 44), \
  ENUM(SRTO_MINVERSION, 45), \
  ENUM(SRTO_STREAMID, 46), \
  ENUM(SRTO_CONGESTION, 47), \
  ENUM(SRTO_MESSAGEAPI, 48), \
  ENUM(SRTO_PAYLOADSIZE, 49), \
  ENUM(SRTO_TRANSTYPE, 50), \
  ENUM(SRTO_KMREFRESHRATE, 51), \
  ENUM(SRTO_KMPREANNOUNCE, 52), \
  ENUM(SRTO_ENFORCEDENCRYPTION, 53), \
  ENUM(SRTO_IPV6ONLY, 54), \
  ENUM(SRTO_PEERIDLETIMEO, 55), \
  ENUM(SRTO_BINDTODEVICE, 56), \
  ENUM(SRTO_GROUPCONNECT, 57), \
  ENUM(SRTO_GROUPMINSTABLETIMEO, 58), \
  ENUM(SRTO_GROUPTYPE, 59), \
  ENUM(SRTO_PACKETFILTER, 60), \
  ENUM(SRTO_RETRANSMITALGO, 61)

#define SOCKET_STATUS \
  ENUM(SRTS_INIT, 1), \
  ENUM(SRTS_OPENED, 2), \
  ENUM(SRTS_LISTENING, 3), \
  ENUM(SRTS_CONNECTING, 4), \
  ENUM(SRTS_CONNECTED, 5), \
  ENUM(SRTS_BROKEN, 6), \
  ENUM(SRTS_CLOSING, 7), \
  ENUM(SRTS_CLOSED, 8), \
  ENUM(SRTS_NONEXIST, 9)
