edi-28 - first implementation

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: edi-28 - first implementation
From: Kai Vehmanen (kai.vehmanen_AT_wakkanet.fi)
Date: Wed Oct 02 2002 - 01:28:33 EEST


I've just committed the first implementation of edi-28, "Extending the
EIAM command set to allow writing standalone ECI implementations", to
ecasound's CVS-tree.

1. Enabling the well-formed mode

The new log message mode can be enabled with the new
"int-output-mode-wellformed" EIAM command.

2. Syntax of well-format log messages

I've added the below documentation to Ecasound Programmer's Guide:

--cut--
By issuing the EIAM command ``int-output-mode-wellformed'',
ecasound will start printing all messages using the following
format:

<message> = <loglevel><sp><msgsize>(<genmsg> | <returnmsg>)

<loglevel> = <integer> ; loglevel number
<msgsize = <integer> ; size of content in octets
<genmsg> = <contentblock> ; generic log message
<returnmsg> = <sp><returntype><contentblock>
                            ; EIAM return value message
<contentblock> = <crlf><content><crlf><crlf>
                            ; actual content of the message
<returntype> = ``i'' | ``li'' | ``f'' | ``s'' | ``S'' | ``e''
                            ; type of the return value (see ECI/EIAM docs)
<content> = *<octet> ; zero or more octets of message content

<sp> = 0x20 ; space
<octet> = 0x00-0xff ; 8bits of data
<crlf> = <cr><lf> ; new line
<cr> = 0x0d ; carriage return
<lf> = 0x0a ; line feed
<integer> = +<digit> ; one or more digits
<digit> = 0x30-0x39 ; digits 0-9
--cut--

3. Loglevel for ECI/EIAM return values

I've assigned value 256 (0x100) for the return value messages. As an
example:

--cut--
ecasound ('h' for help)> int-output-mode-wellformed
ecasound ('h' for help)> cs-is-valid
256 1 i
1

ecasound ('h' for help)> cs-selected
256 18 s
command-line-setup

--cut--

256 = loglevel for the return-type messages
1 = length of content is 1 octet
i = return value is an integer
1 = the content (boolean one, ie. cs-is-valid returned true)
<crlf> = an empty line ends the message
... and so on.

That's about it I think. Now it should be possible to write a native,
standalone ECI implementation in any language that supports launching
external apps (ie. forking) and using pipes to communicate with the
executed process.

PS If this turns out to work ok, I might also add this functionality
   to the 2.x tree (-> 2.0.5 release).

-- 
 http://www.eca.cx
 Audio software for Linux!


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Oct 02 2002 - 01:27:43 EEST