#($Revision$) !SECTION: Commands +DEVCTL = 33 +:version (uint8) +:type (uint8) +DEVCTL_TYPE_GET = 0x01 +DEVCTL_TYPE_SET = 0x02 +DEVCTL_TYPE_RUN = 0x03 +DEVCTL_TYPE_SYSCONF = 0x04 #(System config) +DEVCTL_TYPE_SYSCONF_GET = DEVCTL_TYPE_SYSCONF + DEVCTL_TYPE_GET +DEVCTL_TYPE_SYSCONF_SET = DEVCTL_TYPE_SYSCONF + DEVCTL_TYPE_SET +DEVCTL_TYPE_SYSCONF_RUN = DEVCTL_TYPE_SYSCONF + DEVCTL_TYPE_RUN +DEVCTL_TYPE_CONFIG = 0x08 #(Application config) +DEVCTL_TYPE_CONFIG_GET = DEVCTL_TYPE_CONFIG + DEVCTL_TYPE_GET +DEVCTL_TYPE_CONFIG_SET = DEVCTL_TYPE_CONFIG + DEVCTL_TYPE_SET +DEVCTL_TYPE_CONFIG_RUN = DEVCTL_TYPE_CONFIG + DEVCTL_TYPE_RUN +DEVCTL_TYPE_OPMODE = 0x0c #(Mode of operation) +DEVCTL_TYPE_OPMODE_GET = DEVCTL_TYPE_OPMODE + DEVCTL_TYPE_GET +DEVCTL_TYPE_OPMODE_SET = DEVCTL_TYPE_OPMODE + DEVCTL_TYPE_SET +DEVCTL_TYPE_OPMODE_RUN = DEVCTL_TYPE_OPMODE + DEVCTL_TYPE_RUN +DEVCTL_TYPE_UI = 0x10 #(User Interface) +DEVCTL_TYPE_UI_GET = DEVCTL_TYPE_UI + DEVCTL_TYPE_GET +DEVCTL_TYPE_UI_SET = DEVCTL_TYPE_UI + DEVCTL_TYPE_SET +DEVCTL_TYPE_UI_RUN = DEVCTL_TYPE_UI + DEVCTL_TYPE_RUN +DEVCTL_TYPE_POWER = 0x14 #(Power management) +DEVCTL_TYPE_POWER_GET = DEVCTL_TYPE_POWER + DEVCTL_TYPE_GET +DEVCTL_TYPE_POWER_SET = DEVCTL_TYPE_POWER + DEVCTL_TYPE_SET +DEVCTL_TYPE_POWER_RUN = DEVCTL_TYPE_POWER + DEVCTL_TYPE_RUN +DEVCTL_TYPE_DATA = 0x18 #(Runtime data) +DEVCTL_TYPE_DATA_GET = DEVCTL_TYPE_DATA + DEVCTL_TYPE_GET +DEVCTL_TYPE_DATA_SET = DEVCTL_TYPE_DATA + DEVCTL_TYPE_SET +DEVCTL_TYPE_DATA_RUN = DEVCTL_TYPE_DATA + DEVCTL_TYPE_RUN +DEVCTL_TYPE_USER0 = 0xf0 #(User defined commands Assigned by DeviceVendor) +DEVCTL_TYPE_USER0_GET = DEVCTL_TYPE_USER0 + DEVCTL_TYPE_GET +DEVCTL_TYPE_USER0_SET = DEVCTL_TYPE_USER0 + DEVCTL_TYPE_SET +DEVCTL_TYPE_USER0_RUN = DEVCTL_TYPE_USER0 + DEVCTL_TYPE_RUN +DEVCTL_TYPE_USER1 = 0xf4 #(User defined commands Assigned by DeviceVendor) +DEVCTL_TYPE_USER1_GET = DEVCTL_TYPE_USER1 + DEVCTL_TYPE_GET +DEVCTL_TYPE_USER1_SET = DEVCTL_TYPE_USER1 + DEVCTL_TYPE_SET +DEVCTL_TYPE_USER1_RUN = DEVCTL_TYPE_USER1 + DEVCTL_TYPE_RUN +DEVCTL_TYPE_USER2 = 0xf8 #(User defined commands Assigned by DeviceVendor) +DEVCTL_TYPE_USER2_GET = DEVCTL_TYPE_USER2 + DEVCTL_TYPE_GET +DEVCTL_TYPE_USER2_SET = DEVCTL_TYPE_USER2 + DEVCTL_TYPE_SET +DEVCTL_TYPE_USER2_RUN = DEVCTL_TYPE_USER2 + DEVCTL_TYPE_RUN +DEVCTL_TYPE_USER3 = 0xfc #(User defined commands Assigned by DeviceVendor) +DEVCTL_TYPE_USER3_GET = DEVCTL_TYPE_USER3 + DEVCTL_TYPE_GET +DEVCTL_TYPE_USER3_SET = DEVCTL_TYPE_USER3 + DEVCTL_TYPE_SET +DEVCTL_TYPE_USER3_RUN = DEVCTL_TYPE_USER3 + DEVCTL_TYPE_RUN +:vendor (uint8) +VENDOR_ROARAUDIO = 0 +VENDOR_BASICDEV = 1 +:subtype (uint8) +:flags (uint8) +:ot (uint8) +:(id) (uint16) #(if not UNIID or SID) +:data... (vardata) +CAPS = 34 +:version (uint8) +:type (uint8) +:flags (uint16) +CF_REQUEST = 0x0001 +CT_CAPS = 0 +::data... (dataarray) +:::captype (TODO) +:::... (TODO) +CT_STANDARDS = 1 +::data... (dataarray) +:::stdvendor (uint8) +STDV_ROARAUDIO = 0 +STDV_PROTO = 1 +STDV_RFC = 2 +:::standard (uint16) +:::stdversion (uint8) +WAIT = 35 +:version (TODO) +:flags (TODO) :(TODO) +NOTIFY = 36 #(+=structof(WAIT)) #(Notify Types) +NT_PROTO = NEEDS_CONST +NT_SOCKET = NEEDS_CONST +NT_SIGNAL = NEEDS_CONST +NT_MSGQUEUE = NEEDS_CONST +NT_FLOCK = NEEDS_CONST +NT_FUTEX = NEEDS_CONST +SEEK = 37 +:version (TODO) +:flags (TODO) +:destination position (TODO) +:destination position whence (TODO) +:destination position quality (TODO) +:hint pos (TODO) +:hint whence (TODO) +:hint quality (TODO) +:seek at (TODO) +:seek to (TODO) +:seek whence (TODO) +SF_CONT_WHILE_SEEK = 0x01 +SF_CONT_ON_ERROR = 0x02 +SF_HINT = 0x04 +SF_SEEK = 0x08 +HQ_BAD = 0 +HQ_BAD_NB = 1 #(bad, not before this position) +HQ_NEAR = 2 +HQ_NEAR_NB = 3 #(Near, not before this position) +HQ_GOOD = 4 +HQ_GOOD_NB = 5 #(good, not before this position) +HQ_EXACT = HQ_EXACT_NB #(ID 6 is skiped here) +HQ_EXACT_NB = 7 +WHENCE_BEGIN = 0 +WHENCE_CUR = 1 +WHENCE_END = 2 +CLIENTCTL = 38 +:version (uint8) +:subcmd (uint8) +:flags (uint16) +:data (vardata) +CC_HASHTABLE = PARA_HASHTABLE +CC_WININFO = PARA_WININFO +CC_PROPTABLE = PARA_PROPTABLE +LOOKUP = 39 +:version (uint8) +:flags (uint8) +:extflags (uint8) +:ot (uint8) +:ht (uint32) #(hash type) +:hash... (vardata) +CONCTL = 40 +:version (uint8) +:flags (uint8) +:session (uint8) +:type (uint8) +:stdvendor (uint8) +:standard (uint16) +:stdversion (uint8) +CCT_NONE = 0 #(This is the same like a NOOP-Command) +CCT_CRYPTMSG = 1 #(This request contains zero or more crypto packages according to given standard) +CCT_OPENSESS = 2 #(This opens a crypto session) +:hash (uint32) +:comp (uint16) +COMPT_NONE = 0 +COMPT_ZLIB = 1 +COMPT_GZIP = 2 +COMPT_BZIP2 = 3 +:complevel (uint8) +:compflags (uint8) +:data... (dataarray) +CCT_CLOSESESS = 3 #(This closes a opend cryto session) +:hashlen (uint16) +:hash (dataarray(:hashlen)) +:data... (dataarray) +CCT_SESSDATA = 4 #(This is some kind of data used in the session) +:data... (dataarray) +LIST = NEEDS_CONST +GET_OBJ = NEEDS_CONST +OBJCTL = NEEDS_CONST *SERVER_INFO +IT_SERVER = 1 +:version (uint8) +:reserved (uint8) +:indexlen (uint16) +::reserved (uint8) +::type (uint8) +ITST_VERSION = 0 #(Format: Product/Version (comments)) #(Example: roard/0.4 <0/RoarAudio> (Debian build)) +ITST_LOCATION = 1 #(freeform) +ITST_DESCRIPTION = 2 #(freeform) +ITST_CONTACT = 3 #(Format: first ["']nick["'] last (comment) /OpenPGPkey/Phone/Room) +ITST_UN_SYSNAME = 4 #(uname -s) +ITST_UN_NODENAME = 5 #(uname -n) +ITST_UN_RELEASE = 6 #(uname -r) +ITST_UN_MACHINE = 7 #(uname -m) +ITST_SERIAL = 8 +ITST_ADDRESS = 9 +ITST_UIURL = 10 +ITST_HOSTID = 11 #(UNIX hostid in hex (%.8x), with leading zeros (8 or 16 hex-digits), This is returned by gethostid()) +ITST_LICENSE = 12 #(Format: LicenseName-Version (options)) #(Example: GPL-3.0, LGPL-2.1, LGPL-3.0 (or later)) +ITST_BUILD = 13 #(Manufacturing/compiling date and worker, all times in UTC) #(Format: YYYY-MM-DD HH:MM:SS (worker)) #(Example: 2011-12-01 (build cluster 3)) +::len (uint16) +:strings (dataarray) +IT_COUNTERS = 2 +:version (uint8) +:reserved (uint24) +:data... (dataarray) +::type (uint8) +::flags (uint8) +::reserved (uint16) +::counter (uint32) +CF_CURRENT = 0x01 #(Current value if set, sum if unset) +CF_OTTYPE = 0x02 #(Type is a OT_* type if set, or other if unset) +IT_LISTEN = 3 +:version (uint8) +:reserved (uint24) +:listensocks... (dataarray) +::id (uint16) +::flags (uint8) +::socktype (uint8) +::proto (uint16) +::byteorder (uint16) +::dir (uint32) +::auinfo (packed-audioinfo) #(4*4*8 = 128bit) +::addrlen (uint16) +::addr (padded-string(:addrlen)) +LF_HAVEDIR = 0x01 +LF_HAVEAI = 0x02 *[GS]ET_STREAM_PARA *PARA_INFO +STREAMSTATE_ERROR = 5 #(Stream is in some error condition, parent client should close or kick it) +STREAMSTATE_NEEDSEEK = 6 #(like Error but stream can become usable again if you do a seek) *PARA_FLAGS +FLAG_SINGLESINK = 0x00040000 +TOGGLE_FLAG = 2 +NOOP_FLAG = 3 +PROTECT_FLAG = 0x8000 #(flag to mark flags in changed by this protected) +PARA_HASHTABLE = 6 #(GTN, UUID, ...) +:htsettertype (uint32) +:htsettersize (uint16) +:htsetterdata (vardata) +:hashtable... (dataarray) +::httype (uint32) +::htsize (uint16) +::htfunction (uint16) +::htdata (vardata) +HT_NONE = 0 +HT_MD5 = 1 +HT_SHA1 = 2 +HT_RIPEMD160 = 3 +HT_MD2 = 5 +HT_TIGER = 6 +HT_HAVAL = 7 +HT_SHA256 = 8 +HT_SHA384 = 9 +HT_SHA512 = 10 +HT_SHA224 = 11 +HT_MD4 = 301 +HT_CRC32 = 302 #(ISO 3309, ITU-T V.42, IEEE 802.3) +HT_RFC1510 = 303 #(HT_CRC32 as modified by RFC 1510) +HT_RFC2440 = 304 #(poly=0x1864CFBL, init=0xB704CEL, OpenPGP) +HT_WHIRLPOOL = 305 +HT_UUID = 70000 #(GTN is the Global Track Number as used by for example the RoarAudio PlayList Daemon (rpld)) #(It is a creator-runtime-unique number to identify the object.) +HT_GTN8 = 70001 +HT_GTN16 = 70002 +HT_GTN32 = 70004 #("Short Global Track Number") +HT_GTN64 = 70008 #("Long Global Track Number") +HT_CLIENTID = 71000 + OT_CLIENT = 71001 +HT_STREAMID = 71000 + OT_STREAM = 71002 +HT_SOURCEID = 71000 + OT_SOURCE = 71003 +HT_SAMPLEID = 71000 + OT_SAMPLE = 71004 +HT_MIXERID = 71000 + OT_MIXER = 71005 +HT_BRIDGEID = 71000 + OT_BRIDGE = 71006 +HT_LISTENID = 71000 + OT_LISTEN = 71007 +HT_ACTIONID = 71000 + OT_ACTION = 71008 +HT_MSGQUEUEID = 71000 + OT_MSGQUEUE = 71009 +HT_MSGBUSID = 71000 + OT_MSGBUS = 71010 #(Next are article and book numers. They may be ued with HF_DISK and HF_WORK) +HT_GTIN8 = 72001 +HT_GTIN13 = 72002 +HT_ISBN10 = 72003 +HT_ISBN13 = HT_GTIN13 #(ISBN-13 and GTIN/EAN-13 are the same) +HT_ADLER32 = 73001 #(RFC1950) +HF_NONE = 0 #(This entry does not have anything to do with the object...) +HF_OBJECT = 1 #(This is an entry for exacltly this object) +HF_PARENT = 2 #(This is the parent object) +HF_LOGIC = 3 #(This is a logic group of this object) +HF_PERMANENT = 4 #(This can be used to acces exactly this object with a premanent address) +HF_DEVICE = 5 #(The device this is on or the device itself if this is a device) +HF_DISK = 6 #(The disk this is on, if this is a disk the same as HF_DEVICE) +HF_SONG = 7 #(This identifys the Song. This may for example be used with Tantalos) +HF_APP = 8 #(The application, device or other source generating this object) +HF_FILE = 9 #(The source file for this object) +HF_ARTIST = 10 #(This identifies any kind of artist/composer/interpret, to be used with Tantalos) +HF_WORK = 11 #(This identifies any kind of work/album/compilation, to be used with Tantalos) +PARA_WININFO = 7 +:wsystype (uint8) +:socktype (uint8) +:display (uint8) +:screen (uint8) +:addrlen (uint16) +:addr (padded-string(:addrlen)) +:wins (dataarray) +::window (uint32) +PARA_PROPTABLE = 8 :(TODO) +PARA_LTM = 9 +PARA_USAGE = 10 #(Used by RAUM) +PARA_RADIO = 11 #(Used by RDTCS) *KICK,... +OT_OUTPUT = 5 +OT_MIXER = 6 +OT_BRIDGE = 7 +OT_LISTEN = 8 +OT_ACTION = 9 +OT_MSGQUEUE = 10 #(Message queue, message is gone as soon as one client took it) +OT_MSGBUS = 11 #(Message bus, message is gone as soon as all listening clients got it) *ATTACH *ATTACH_SOURCE :(TODO) *ATTACH_OUTPUT :(TODO) +ATTACH_MIXER = 4 :(TODO) +ATTACH_BRIDGE = 5 :(TODO) *SET_VOL +SET_VOL_MS = 3 +SET_VOL_UNMAPPED = 4 #(like roarctls mono/stereo...) *AUTHCTL = GET_ACL *ACLCTL = SET_ACL -GET_ACL #(reasignmened) -SET_ACL #(reasignmened) +SHIFT_DATA = 40 #(get data from a stream) +RAUM_PICTURE = 202 #(Used by RAUM to store pictures) +RAUM_SYNC = 203 #(Used by RAUM for raw seeking) !SECTIONEND !SECTION: Codecs +AUTLAW_LE = 0x31 +AUTLAW_BE = 0x32 +AUTLAW = AUTLAW_BE +MUUTLAW_LE = 0x35 +MUUTLAW_BE = 0x36 +MUUTLAW = MUUTLAW_BE +BRR = 0x3c +OGG_OPUS = 0x18 +ROAR_OPUS = 0x19 !SECTIONEND !SECTION: Network +SOCKET_TYPE_LAT_SERVICE = 12 +SOCKET_TYPE_LAT_REVERSE_PORT = 13 !SECTIONEND