0407
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
Vers  Date     Who  What
01.00 22.09.03 RS - first release for production annuncicom ic
01b01 02.10.03 RS - added parameter to set command for IO/1 on/off actions
                  - added command to set/reset talk via command
                  - added command for reset to defaults without network
                  - correct commands for factory defaults
                  - extend length of init sequence to 64 characters
                  - added command r= to send udp commands to other devices
                  - added configuration parameter for udp and tcp cmd rx port
      03.10.03 RS - fixed blocking streams if a client is missed
      06.10.03 RS - added telnet port (default 12303) for telnet <-> serial
                    (default 9600,8,n,1 no flowctrl) with parameter for port,
                    baudrate, data-, stopbits, parity, flowcontrol
                  - send back always with own udp rx port as destination
                  - store last ip of commands for send back
                  - fixed remote commands without protocol
      07.10.03 RS - active open serial gateway (telnet) with destination ip and
                    port. if both set this function is active.
                  - stream udp to addr 0.0.0.0 is broadcasting on the subnet
                  - if udp send stream port is 0 use udp rx port. if the udp rx
                    port is 0 aus default port 3030
                  - added parameter to set command for CTS on/off actions
                  - added command to set/reset cts via command
                  - added parameter preset to store the selected preset
      08.10.03 RS - don't allow sending during streaming
                  - added command for forced talk
                  - added status for talk, in-/exstreaming active and
                    streaming mode and added them in getstate
                  - fixed setup for concatenated command sequences
                  - fixed volume control if loop to output is activated and the
                    volume is temporary changed by user control
      09.10.03 RS - added internet radio support for annuncicom
                  - on active serial gateway test every 30s for a connection. if
                    no answer after 1s activate serial command interface in the
                    mean time
                  - the green led blinks slow if sending and fast if receiveing.
                    it is on if not sending nor recieving
                    the red led blinks together with the green if talk is forced.
                    it blinks every second time if talk is suppressed and it
                    blinks together with the green led if talk is forced
      10.10.03 RS - fixed encoder quality setting
                  - pre play parameter new in msec
      13.10.03 RS - PIO1 used to shoutdown amplifier if 0
      21.10.03 RS - fix for correct value for D OUT (difference web page -> D OUT)
                  - fix for broken streams
      30.10.03 RS - added answer page for dynamic marks
                  - fix for configuration of empty strings
                  - added port and type to command set target and fixed command
                    concatenation after this command
                  - added definitions for inmode configuration for spdif1/2 in
                  - fix for don't stop sending in streaming mode send on receive
      12.11.03 RS - fix commands for html configuration
      28.11.03 RS - fix web app vers in discover 
01.02 08.12.03 RS - don't accept toggle command durning toggle time (discard it)
                  - fix configuration positions of cts commands etc.
      09.12.03 RS - removed telnet setup (available still in the bootloader)
01.03 17.12.03 RS - fix for string2url if character changed to %hh
      08.01.04 RS - wait until streaming buffer empty before rx timeout executed
      09.01.04 RS - stop streaming on buffer underrun, restart after start
                    threshold bytes are received
                  - play buffer default value set to 1024
      06.02.04 RS - added command for set encoding quality
                  - set single channel mode for encoding if mono is set
      09.02.04 RS - activate command RESETTALK for instreamer too
                  - set factory default for instreamer cts close command to
                    RESETTALK and cts open to FORCETALK
                  - fix for set config strings that contain the character &
      17.02.04 RS - fixed streaming breaks on internet radio streams
                  - set default play buffer size to 4096
                  - if rx stream is detected during sending (not forced) stop
                    own tx stream
                  - added parameter name for the device
                  - changed setup and dyn. marks to newest version
                  - added name parameter
                  - added ir out support for instreamer
                  - don't set pio22 as output because it isn't needed
      22.02.04 RS - fixed rts/cts for serial gateway
                  - set param pre start to 0 per default
      24.02.04 RS - added ir gateway
      27.02.04 RS - added no-cache to http response (for all dyn files and
                    commands)
      01.03.04 RS - show lan mac address, add id 6 for active mac (for wireless)
                  - included TFTP
                  - store volume correct if mute
                  - removed balance and stereo out command
01.04 10.03.04 RS - use always stereo/mono from inmode parameter after
                    autodetection of the input
                  - added workaround for codec error (s/pdif)
                  - fixed selection of optic. or coax. s/pdif in
                  - faster sonic ip
      12.03.04 RS - added sync master functionality
01.05 22.03.04 RS - added SNMP private tree and traps
      23.03.04 RS - SPDIFOPT_EN (pio23) fix to 1 for always connect SPDIR to AGND
      30.03.04 RS - sync output ptr is directly the input of the encoder, this
                    moves the sync nearer to the original source
      16.04.04 RS - don't stop reader for encoded data on buffer overrun
      13.05.04 RS - buffer underrun mode disconnect or skip (incl. param)
      14.05.04 RS - improved speed for web pages (read quasi peak only every 0.5s)
                  - fixed and optimized encoder reading
                  - fix for dyn. marks where string params are after 2. par
                  - busy wait before testing command password
                  - support for escape sequences in dyn. marks (without \o)
                  - new dyn. mark for web application versions
                  - support for set config cmd C= via serial, tcp and udp
                  - check max. length of a serial command
                  - added recursive dyn. marks (dyn. marks in dyn. marks)
                  - added dyn. mark for !=, >, <
                  - added dyn. marks for build date
                  - don't wait on udp commands but send nothing back if something
                    else currently is executed
                  - fixed cmd blocking on an error
                  - fixed file handle leak in web server
                  - fixed file handle leak in read file for factory defaults
      17.05.04 RS - send encoded data as soon as possible (2ms after last packet
                    received)
      18.05.04 RS - if stream connection type is tcp raw a port is set but no
                    ip selected (0.0.0.0) use this as tcp listener
                  - open tcp connection only actively if ip and port is set
                  - fixed streaming status for status page
                  - added dyn. mark for syncstate
      01.06.04 RS - don't blink red led during instreaming
      02.06.04 RS - fix passiv serial gateway disconnection from other partner
                    (ex. power loss, network down, etc)
      03.06.04 RS - send always full length sync packets (minimized bandwith)
      07.06.04 RS - fixed encoder interrupt timing
      08.06.04 RS - added talk commands with timeouts for keypads
      09.06.04 RS - fixed tcp sending mode (tcpopts = 1) for serial gateway
                    (immediate sending)
                  - added functionality serial keypad (qtronix qx-022) including
                    command send to selectable target s= for sending to a target
                    out of a file, to one of the 8 targets in the config and
                    directly to a specific ip/port (udp based)
      10.06.04 RS - fixed fragmentation of tcp command answers
                  - command e=255 reinitializes the encoder without change cfg
                  - new faster encoder reading isp routine (bytewise in ram) 
      11.06.04 RS - fixed tcp stream sending over the buffer wrap
                  - fixed optimized package length
      14.06.04 RS - added monitor (only for instreamer)
                  - fix/add (micronas) workaround for s/pdif on coaxial input
      15.06.04 RS - return nosupport tag if c=<nr> is unknown
                  - monitor encoded stream on headphone (not the original one)
      16.06.04 RS - added a/d amplifier gain with parameter (default 0)
                  - fixed setting for encoder clock
      18.06.04 RS - added workaround for gargling sound (restart codec if crc
                    is wrong) -> permanent serial debug output and syslog on
                    restart codec)
                  - added mp3 crc disable/enable parameter
      21.06.04 RS - reset crc error counter on restart encoder workaround
                  - added parameter bitreservoir used (default)/kept empty
                  - added parameter channel mode extension (default enabled), 
                    copyright protection (default protected),
                    copy (default)/original stream and emphasis (default none)
                  - changed snmp mib number from 7777 to real barix id 17491
                  - added parameter for web server port
      22.06.04 RS - added 'stream type' 'internet radio' and use the port as
                    radio port (removed parameter 'radio port'). max. 6 streams
                    are supported.
      23.06.04 RS - fixed send status picture on send always
      24.06.04 RS - fixed answer for commands that execute command sequences
                  - use get_ticks and get_time instead of ticks and time
                  - use telnet port as source port for active serial gateway
      28.06.04 RS - restart encoder after 1 sec if no more encoded data received
                  - added command toggle rts including toggle timeout parameter
      01.07.04 RS - improved workaround for micronas encoder error (gargling)
                    mp3 crc must be enabled!
      12.07.04 RS - improved workaround for less but faster encoder restarts
      13.07.04 RS - added dyn. mark for last caller ip address
      14.07.04 RS - restart encoder after 1 sec if no more mp3 frame crc received
                  - added command g= for open serial gateway to specific ip:port,
                    if command executed from serial cmd interface the connection
                    will be closed 1 sec after the last transmitted byte
      15.07.04 RS - restart encoder every hour (workaround)
01.06 21.07.04 RS - removed restart encoder every hour (workaround)
                  - restart sync on restart encoder workaround
      05.08.04 RS - added parameter for sync port (0 for fix algorithm)
                  - removed crc workaround and use easier workaround from
                    micronas (read out every second D1:$9d8, restart codec if
                    (bit[15:14] == 0) && (bit[0] == bit[16]) is false)
      12.08.04 RS - removed tcp rx stream port. use 'stream to' for listeners
                  - restart encoder if no data for 4s from encoder (workaround)
      13.08.04 RS - fixed codec handling, locked access
      23.08.04 RS - fixed streaming rom song (m=) during encoding
      28.08.04 RS - fixed concatenated command seqeunces in configuration
                  - don't discard udp commands during execution of another cmd
                  - scan io's every 50ms (before 20ms)
      31.08.04 RS - fixed timeout waiting for end of execution (5 sec)
      11.09.04 RS - s/pdif workaround also if mono input is selected
01.07 21.09.04 RS - added * to ir cmd j=
                  - fixed command b=, j=, l=, L=, r=, t=, T=, v= not terminated with 0x00
                  - fixed bug udp answer not always sent
      22.09.04 RS - added volume with inc/dec, balance with inc/dec, bass with
                    inc/dec, treble with inc/dec, loudness with on/off and
                    inc/dec, mute with force, volumelock, mono out and T=
                    commands for the instreamer
                  - if no udp command port is set use the default udp command
                    port for the command r
                  - fixed crash if ir sent during sonic ip
      08.11.04 RS - fixed corrputed html/tcp output
                  - calc bitrate for sync every 50ms instead of 100ms
      09.11.04 RS - send sync response not as broadcast
                  - fixed crash if udp stream received during startup
                  - if no ip is given for r= cmd (annuncciom ic only) and not
                    yet received an ip then send it as broadcast
      11.11.04 RS - fixed neg. values for balance, bass, treble
                    (add c for dyn. mark 'print string if equal')
                  - send back busy.ack on a udp command if currently a command
                    is executed, fix udp and tcp packet loss
      18.11.04 RS - fixed blocked listening caused by a underrun if the streaming
                    buffer isn't filled up again by the sender and the rx tout
                    occurs during this time
                  - fixed blocking first command after execution of a
                    parametrized command
      02.12.04 RS - no timeout on active gateway cmd g= if executed from tcp
                  - send ack immediately after g= cmd if exectued from serial
B1.08 09.12.04 RS - increased primary receiving buffer for tcp listener to 2k
                    fixes stuttering of high bitrate streams
                  - added dyn. mark for streamingmode as value
      07.01.05 RS - fixed reentrant bug in dyn. mark for resource version
                  - added ulaw/alaw/uncompressed en/decoding audio formats
                    including parameter non mp3 packet size
      10.01.05 RS - added udp and tcp priority port
                  - added command queue to fix missing cmd after short press of
                    I0 or I1
      13.01.05 RS - added 8 destination tables including new command s=tab://n,
                    where n is 1..8 (1 is default). on a changetable cmd all
                    current connections will be closed.
      14.01.05 RS - added new command loop rom song (M=)
                  - cut rx buf if too many bytes are in because this causes a 
                    big delay.
      20.01.05 RS - fixed web page garbage bug
                  - last 2 entries in table also can be used as internet radio
                    (still max. 6 stations)
      21.01.05 RS - fixed not answering on web interface
                  - correct content-type audio/mpeg for internet radio
                  - all http header changed to version 1.1
      25.01.05 RS - fixed cmd m= and M= if concatenated
                  - M= stopps after file played, m= stops immediately, M=*.mp3
                    loops a file, M=*.mp3 during loop changes the file to the
                    new one after the loop, m=*.mp3 will stop the loop at the
                    end and plays the the file, m=*.mp3 during playing a file
                    will play the new one after the current
                    loop and stops the loop
      28.01.05 RS - fixed speed and intersection of sonic ip
      10.02.05 RS - fixed factory reset for instreamer
      17.02.05 RS - fixed ulaw/alaw streaming (bug because of new M= cmd)
B1.09 31.03.05 PK - special version for PowerCorp
                  - commands not broadcasted if no origin source is known
                  - origin source IP expires after 30 seconds
B1.10 05.04.05 PK - command queue bug fixed
B1.11 13.05.05 KS - Content-type changed to Content-Type for both audio and text
                    Media streaming replies with HTTP/1.0 instead HTTP/1.1 & no Connection: close
                    Bug 1. Security error on logout (D=) corrected
      20.05.05 PK - SNMP MIB updated - using 17491 instead of 7777
                  - Temporarily fixed bug with broken sysDescr
B1.12 23.05.05 PK - fixed infinite loop bug when TCP stream is interrupted in PAUSE mode
      26.05.05 PK - fixed "audio interrupted every 30 seconds in TCP mode" bug
                  - fixed "device doesn't play first TCP stream after reboot" bug
B1.13 08.06.05 PK - c=94 (set defaults) does not mute any more
      10.06.05 KK - song and XT version printout added into dynamic marks.
      10.06.05 PK - removed 140ms delay on codec switch-over in G711/PCM mode
                  - temporary fix on buffer start treshold
B1.14 15.06.05 KS - fixed WEB Method authentication support for:
                    http://<ip add>/rc.cgi?L=<html answer file>    and
                    http://<ip add>/setup.cgi?L=<html answer file> 	       
B1.16 28.06.05 PK - rewritten streaming - priority port, TCP, UDP, all encoding
                    including PCM working correctly
               KS - If the control password is set you can now issue control commands from WEB Interface
                    But to use this feature you need to update the WEB UI uistatus.html and skin.html
                    with the control password &L(0,"*",7)(bits 1-3=3)     
               PK - fixed possible command queue bug "source ip address overwritten"
               PK - removed legacy exstreamer commands: PAUSE, PLAY and FORCE_PAUSE (c=3, c=1, c=39)
      29.06.05 PK - added compatibility mode for broadcasting "r=c=" commands
      06.07.05 KK - Added Icecast and Shoutcast source support
                  - Added Listening password
      15.07.05 KS - E29   c=77 command with type=2 (RAW TCP) now disconnects session (which then restarts)
                    SNMP  System OID corrected and new Annuncicom OID added
                          Private MIB now readable
                          Community strings, now checked as password L1-6
      18.07.05 KS - Added command to Setup method for: Default, Reboot and Update
                  - Broadcast as default for backwards compatinility.
      19.07.05 KS - Annuncicom: Set SET_BIT_CHMODEEXT for Mono as default 
                    stdgetEx: fixed default index.html which overwrote hdr so if password set,
                    check always failed
      20.07.05 PK - Fixed streaming bug - receive timeout didn't work when waiting to fill the buffer 
      20.07.05 KS - SET_WebMethWebSetup: Save password now also supported via HTTP hdr authentication  
                    stdgetEx: Added WWW-Authenticate "realm" reply for pop up password window 
      21.07.05 KS - WebMethWebSetup: Added SetupRangeCheck
                  - RC_bRTS invertion corrected to use virtual bits 
      26.07.05 PK - unimportant expression optimization 
      05.08.05 KS - cosmetic change
      09.08.05 KS - Support Syntax: r=[<prot>://][[<ip>][:<port>]/]<cmd_seq> where 
                    <cmd_seq>:= <cmd>|<start bracket>{&<cmd>}<End bracket> 
<==== 12.08.05 KS Version B1.16 Frozen and Released =======>                     
B1.17 24.08.05 KS - 29. Error in c=77 raw tcp. vReOpenTCPConnections now allocs and initializes a
                    TCP structure if none exists.
                    34. Radio listen password. Correct Unauthorized return strings for Basic realm 
      29.08.05 KS - 30. Built with tcp lib that uses max 1200 data bytes. 
      31.08.05 KS - 39. TFTP removed for security and consistency                           
      31.08.05 PK - siospi moved to the song module                
      05.09.05 PK - reboot to update-mode fixed for EX
      12.09.05 KK - Exstreamer and Instreamer hanged when the connection was
                    lost for more than 120s when Instreamer was streaming raw
		    TCP to Exstreamer listening streaming port. Fixed.
<==== 13.09.05 PK Version B1.17 Ended and Version A2.00 Created  =======>                     
A2.00 13.09.05 PK - porting to EX platform finished, initial version for both hardwares created
                  - G711 encoding @96MHz fixed on EX
                  - IOs and RTS ported to EX
		  - known issues: none
<==== 13.09.05 PK Version B1.17 Released  =======>                     
A2.01 14.09.05 KK - Removed the fix from 12.09.05 from Instreamer. It
                    can cause problems because the connection port is not
		    being increased. The fix will be part of the TCP library.
      27.09.05 PK - Temporary fix of "serial commands terminated by LF only are ignored"
      12.10.05 PK - Codec rev. B2 workaround bug fixed ("instreamer suddenly stops sending data and buffer level is 0")
      19.12.05 KK - Added RTP support
      27.01.06 KK - Added missing fields into the Icecast header.
A2.02 03.02.06 KS - Legacy changes added ===============>
      01.09.05 KS - 37. Error streaming "receive mode" fixed
      02.09.05 KS - 42. MUTE command (c=8) fixed
                    38. Modify packet size for 1200 byte tcp library
      07.09.05 KS - 40. Security Header now supported in config.bin
      19.09.05 KS - 44. Built with tcp16.lib which has working keep alive
      19.09.05 KS - 45. Buffer underrun mode (TCP) - disconnect corrected
                        Corrected vCodecEncode leaving Stream disabled. This bug had the side affect the 
                        work around for HW bug in CODEC B2 (EncoderCheck) which calls CodecEncode failed.
      26.09.05 KS - 48. SNMP Input Audio Level added 
      27.09.05 KS       Serial lf and param fixes. 
                        web, startup, printf taken from lib 
      25.10.05 KS -     Serial:RTS Recompile with new bsw lib 
      27.10.05 KS -     RTS initialized with Serial params which are setup only at start  
      31.01.06 KS -     010.10 vPostCProcessing added to re-register UDP receive ports  
      01.02.06 KS -     010.11 s=tab://0 added to stop sreaming 
      <==== End of Legacy changes added 
      09.02.06 KS -     010.11 s=tab://0 corrections 
      20.02.06 KS       010.13 s=tab://n clear radio session bug fixed 
                        FIN,PSH,ACK sent, FIN ignored. This known bug thought to be correted is still 
                        not fixed in current tcp16. So sending data+FIN is avoided.
      03.03.06 KK -     Added IPAM support into the rescue kit.  
<==== 04.03.06 KS -     Version B2.02 Released =======>
B2.03 11.03.06 KS -     Replace in line_code with HW_BootLoader()    
      21.03.06 PK -     added support for the Annuncicom 100
      01.04.06 KS -     Call to HW_BootLoader() 1 sec delay addded to allow http to complete
<==== 06.04.06 KS Version B2.03 Released =======>    
A2.04 01.06.06 KK -     The bootloader version is now displayed correctly for both new and
                        old bootloader.
      22.06.06 KS -     10.21 Set Relay with Exstream                   
      04.07.06 PK -     Second serial port support, passive gateway
<==== 05.07.06 PK Version A2.04 Released =======>    
<==== 20.07.06 KK Version 0205 Frozen and released =======>
      21.07.06 KS -     Updated to use bhw::hware.c::HW_BootLoader instead of local function   
<==== 24.07.06 KK Version 0206 Frozen and released =======>
      22.08.06 KK -     Fixed that the prestart bytes were sometimes chopped
                        out.
      23.08.06 KK -     Added minimum priority message volume.
      23.08.06 KK -     Increased the default Receive Timeout from 100ms to
                        200ms.
      28.08.06 KK -     Hidden the second serial port on the old hardware.
      28.08.06 KK -     Removed the audio input autodetect feature.
      30.08.06 KK -     Added active TCP possibility for the second serial port.
      30.08.06 KK -     Added a configurable passive port for the second serial
                        port.
<==== 19.09.06 KK Version B207 Frozen and released ===>
A208  19.10.06 KK -     Added that if you add start.html it takes priority over
                        the builtin index.html.
      06.11.06 KK -     Added config_raw.bin into the rescue kit which is a
                        version of config.bin without the 13-byte header.
      24.11.06 KK -     When reset was pressed long to restore factory defaults, the SonicIP switch
                        remained in the original position. Changed that it is being overwritten, too.
      02.02.07 KS -     media.c removed TcpGetBuf(void) declaration
      26.03.07 KK -     Fixed choking with Windows or OpenBSD every 5 seconds.
      23.04.07 KS -     Modified to use local song.bin (V4.07) from distfiles
      08.05.07 KK -     28.07 Fixed bug - memory corruption that occured every time
                        a command was received through the web interface.
      11.05.07 KK -     Fixed bug - memory corruption - that occured upon receipt of
                        unterminated or zero-length UDP command.
      23.05.07 KS -     vDetectCommand added check for non zero cmd->w 
      18.06.07 KS -     Builds now include: 019.05 BHW version 1.12 which corrects bug in Ethernet driver (NIC960)  
      19.06.07 KS -     28.08 Added MEDIA_MixerMute for fast mute 
      20.06.07 KS -     28.04 SonicIP: Don't save settings on factory defaults   
      26.06.07 KS -     If SET_PRESTART >0 use minimum audio loss/longer delay strategy 
      12.07.07 KS -     (See Exstr. 24.32) wWriteOutput for all accept WEB add 3 sec timeout on fifo  
                        028.10 Corrected stdgetEx start.hml to start.html
                        Added get.c::MBufGet_persistent
      13.07.07 KS       xt05_version.txt for v0.03 added to dist and used for build    
<==== 13.07.07 KS Version B208 Frozen and released ===>
<==== 13.07.07 KS Version 0208 Frozen and released ===> 
0209  06.08.07 KS       DSTni "Rev C" ready. Modules changed: bhw, bsw.
                        tcpip V5.13 fixes bug 019.07, root.obj update for barionet 2.08 
      07.08.07 KS       major version number incremented to reflect chip change                   
<==== 07.08.07 KS Version 0300 Frozen and released ===> 
A3.01 06.03.08 KS       Split media into mstream, media_new, mediactl, channels                      
      23.04.08 KK       Changed from the old song to the new one.
      23.04.08 KS       main: Added (binary) Discovery initialization
      24.04.08 KS       mstream::init_codec used HW.eerd and removed codecType store
                        setpar: put back debig, syslog and Watch (turn on with C=x=1)
      25.04.08 KS       main: remove  dio_xx inits (new io interface needed) 
      28.04.08 KS       mstream:: defined ee_hw_type;                 
      29.04.08 KK       rewritten the dio_ functions to the new bcl_io interface.
      13.05.08 KK       Fixed the non-working mic input, always took from line in,
                        the song module still needs to be fixed.
      04.06.08 KK       Added support for the Aiphone mic and speaker switching.
      29.08.08 PK       Added support for PYKO IN: input multiplexer set to full-duplex
      09.09.08 JP       Err 028.23 media_new correctd L3 security check for TCP and serial connection
<==== 29.09.08 KS Version 0301 Frozen and released ===>     
A3.02   
	  01.10.08 JP      Fixed CGI command execution bug fixed. 028.27
<==== 29.09.08 JP Version 0302 Frozen and released ===>
A3.03
      09.10.08  JP     BUG Fix: On TCP connection control authentication was not validated.
<==== 09.10.08 JP Version 0303 Frozen and released ===>
A3.04 31.10.08 KS      Setpar.h: Added SET_DELAY_TYPE and SET_RTP_DRIFT (place holder but not used) 
      24.11.08 KK      Fixed an obvious bug in the code with priority minimum
                       volume.
      10.02.09 PK      changed AIphone control
      03.03.09 KS      Err 028.33 mstream::vCodecEncode make sure Loop back is correctly turned off (MP3 enc)
      12.03.09 PK      changes to fit the simplified Aiphone interface in song
      17.03.09 PK      using global HW.ee_hw_type rather than reading it locally
      14.04.09 KS      Bug #039.01 mstream::vCodecEncode Do not turn on Aiphone.
      28.04.09 KS      Bug #010.33 setpar::VersionInit: added load DHCP name from setup
      06.05.09 KS      028.33 mstream: Loop back processing corrected (it turned off MP3 decoding)
<==== 06.05.09 KS Version 0304 Frozen and released ===> 
A3.05 12.05.09 KS      Bug #055.02 mstream:vStreamTxProcess. Re-instate PreStartBytes calculation   
      25.05.09 KK      Fixed a bug: when UDP stream partially filled the buffer below
                       the start threshold and then ceased, the device was stuck in
                       LISTENING mode.
      23.06.09 KK      Fixed a bug. Sometimes the receiving annuncicom stopped
                       playing and stays in idle state. What happened is that it
                       announces zero window and doesn't receive any data more.
      25.06.09 KK      Fixed bug 055.06: doesn't erturn to normal playback
                       after priority message.
      26.06.09 KK      Added remembering values of the last c=77 command. 
<==== 26.06.09 KK Version B305 Frozen and released ===> 
A3.06 23.07.09 PK      removed WEP and licensing from setpar.c
      08.01.10 PK    - #055.18: added supervision for Ann155
                     - added &LState parameters 47 - mic status, 48 and 49 - temperature (supervision)
		             - &LState paremeters 10 and 11 now show 2-bit state of button inputs (supervision)
      18.02.10 KK    - Added option to use speaker as a microphone. Bugreport
                       55.14
      18.02.10 KS    - #028.36 mstream re-instate Aiphone interface
                     - #028.36 setpar.h added INMODE_SUB(0x40) flag to SET_INMODE
                     - #028.36 mstream::MEDIA_SetIN only apply L4 bits to input_source  
                     - #028.36 media_new::vIOHandler added aiphone_and_streaming() to suppress Input 0 
      19.02.10 KS    - #055.17 Makefile.nrec updated for new build structure
      22.02.10 KS    - Makefile.nrec added make boot/blserial.bin, make boot/UNIFULL.SPB,make utils/crlf      
<==== 22.02.10 KS Version B306 Frozen and released ===> 
A3.07  08.03.10 KS    - media_new::MEDIA_vInit removed syslog("SET_vInit complete");
<==== 29.03.10 KK Version B307 Frozen and released ===> 
A3.08 30.07.10 PK    - #055.23: Ann155 speaker supervision
      21.09.11 KS    - IPAM101 changes: dist compound file sg.bin allocated 2 pages for IPAM101 test
A4.00 21.10.11 KS    - IPAM101 changes: media_new merged from head version set to 4.00 for IPAM101 
A4.01 28.10.11 KS    - #055.32 IPAM101 changes: main.c CPU speed increased from 48MHz to 96MHz 
      28.10.11 KS    - #055.32 IPAM101 changes: mstream BE/LE processing. create pcm swap flag and swap for udp_send
      06.01.12 PK    - fixed loopback feature in PCM on IPAM 100 - was permanently on
      06.01.12 KS    - #055.32 IPAM101 changes: mstream::vStreamDecode avoid false underrun by checking zero_count 
      12.01.12 KS    - #055.32 IPAM102 changes: mstream::init_codec: codec type picked up from song and stored for WEB UI display
      26.01.12 KS    - mstream: more debug information added (Loop back still locked on in PCM mode)
      26.01.12 KS    - #055.32 IPAM102 changes: mstream::vCodecEncode:: Corrected:: after SonicIP, loopback always on for PCM
      27.01.12 KS    - #055.32 IPAM102 changes: mstream::fill_in_mixer_out:: only allow loopback setting 0x0040 (encoding only)
<==== 30.01.12 KS Version A401 release in ipam100 branch snapshot 26 January 2012, 14:38:34 (song V9.12)===>        
      01.02.12 KS    - #055.32 IPAM101 changes: mstream: AUDIO_FLAG_REBUFFER removed on audio open
      01.02.12 KS    - #055.32 IPAM101 changes: mstream:vCodecEncode:: fill_in_mixer_out moved to before audio_open (avoid race condition)
<==== 02.02.12 KS Version A401 re-released in ipam100 branch snapshot 26 January 2012, 14:38:34 (song V9.12)===>        
A4.02 23.02.12 KS    - #055.35 media_new::vPrintStateVal,vPrintStateValEqual: offset 35 returns new IPAM type byte
      24.02.12 KS    - #055.32 IPAM101 changes: correction mstream:vStreamDecode, vStoreStream: remove mute on underrun 
      24.02.12 KS    - #055.32 IPAM101 changes: mstream:MEDIA_CodecUnderrun return song zero count
<==== 24.02.12 KS Version B402 Frozen and released ===>
B4.03 13.09.12 KS    - #055.41 Makefile.nrec updated for Multi build, added an_n2: for 2K target
      13.09.12 KS    - #055.41 setpar:SET_vInit dvSetup updated to use HW.f_start flash offset                                                                        
      13.09.12 KS    - distfile/compound extra characters removed from end of file - caused make_gold_unit to return with error
      13.09.12 KS    - mstream::init_codec: MEDIA_Song_Date_String updated (was missing)
<==== 18.09.12 KS Version B403 Frozen and released. For inclusion in multipackage use make an_n2 ===>
A4.04 19.09.12 KS    - #055.41 added dist/annuncicommicapp.sh and Makefile.nrec updated to include tools and sh script
      03.10.12 KS    - #055.35 Makefile.nrec updated to include java script for ASCII HW types, IPAM types, an_cob added  
<==== 03.10.12 KS Version B404 Frozen and released. For inclusion in multipackage use make an_n2 ===>
A4.05                - #055.30 get.c removed html length calculation, wrong anyway causes Chrome not to work (Chrome mis-intepretation)
		     - #055.36 make gen.sh executable when building under cygwin by using ONLY an NTFS formatted disc. 
<==== 10.10.12 KS Version 0405 Frozen and released. For inclusion in multipackage use make an_n2 ===>
A4.06 05.11.12 KS    - #055.42 main: Added SET_WebMethWebSetup POST method.
      05.11.12 KS    - #055.42 setpar: converted SET_WebMethWebSetupQ to use POST method if w provided, removed redundant symmetric pw 
      06.11.12 KS    - #055.42 media_new::vPrintStateValEqual added dynamic mark &LState(1,20) for encoding
      14.11.12 KS    - #055.42 channels::CHAN_SetPeak, media_new::MEDIA_vMain, mstream::vStreamTxProcess Peak values now in dB
      14.11.12 KS    - #055.42 Makefile updated for new WEB UI 
      04.12.12 KS    - #055.19 rc.c To process commands the Telnet port must be zero
      05.12.12 KS    - #055.33 media_new::struct CMDBUFCMD. At least one byte shown be defined for the command
      06.12.12 KS    - #055.11 main: TOS ip.alttos set to *SET_TYPE_OF_SERVICE, added to setpat.h (offset 59)
      06.12.12 KS    - #055.11 mstream::vTcpInitAnnuncicom,MEDIA_vStream,vStreamTxProcess alttos flag set for TCP use in 	ip.alttos field  
      06.12.12 KS    - #055.11 setpar::SET_vPrintVal 'b' updated from 1 bit to multy bits
      04.01.13 KS    - #055.44 main.c: WEB stack too low for config changes increase to 384
      07.01.13 KS    - #055.22 mstream:loop_player: after play audio restored to encoding, vCodecEncode pcm_swap initialized before use
      09.01.13 KS    - #055.05 media_new::MEDIA_wDetectCommand,vDetectCommand removed set_last_ip_address
      10.01.13 KS    - #055.24 no change but retesting shows a re-action time of 30(IPAM100)/110(IPAM102)msecs
      10.01.13 KS    - #055.28 media_new::vIOHandler check for number of digital inputs and relays
      10.01.13 KS    - #055.28 media_new::vPrintStateValEqual, vPrintStateVal provided number of digital IOs (In..33 and Out..34)
      14.01.13 KS    - #055.05 mstream::set_last_ip_address ignore if playing
      14.01.13 KS    - #055.05 media_new::MEDIA_wDetectCommand set_last_ip_address reinstated but only if stream to origin
<==== 07.02.13 KS Version 0406 Frozen and released. For inclusion in multipackage use make an_n2 ===>
      12.03.13 KS    - #055.42 channels:CHAN_SetPeak: Revert to linear 0-32k anis.quasiPeak and export struct as for vPrintStateVal
      18.03.13 KS    - #055.42 media_new:vPrintStateVal: Get dB direct from struct as, in positions 51-54    
      18.03.13 KS    - #055.42 media_new:MEDIA_vMain:: Revert to linear 0-32k anis.quasiPeak test.
      18.03.13 KS    - #055.42 mstream::vStreamTxProcess Revert to linear 0-32k anis.quasiPeak test.
      19.03.13 KS    - #055.46 setpar:SET_vSetFactoryDefaults: DHCP name included when network settings protected
<==== 22.03.13 KS Version 0406 Frozen and re-released. For inclusion in multipackage use make an_n2 ===>
      24.04.13 KS    - #055.45 setpar.h Added Multicast receive address
      24.04.13 KS    - #055.45 main: Added IGMP handlet registration and MULTICAST subscription
      30.04.13 KS    - #055.45 mstream:udp_rx_handler: if multicast reject if not subscribed to this address 
<==== 30.04.13 KS Version Customer alpha version C406 Frozen. Based on V0406_20120410. ===>       
A4.07 12.06.13 KS	 - #055.49 Makefile.nrec Multipackage error: Apply 2 byte target (2K) patch to default config.bin before it is copied
E406  08.10.13 KS Created for Extron with Extron Look and feel WEB UI. Use make an_extron_nd 
<==== 08.10.13 KS Version Customer beta version E406 Frozen. Customised WEB UI, FW is as VC406_20130430 ===> 
A4.07 08.10.13 KS Re-instate V4.07 for next release
      18.10.13 KS    - #055.50 mstream::vStreamTxProcess: pcm_swap for udp now done once (taken out of loop)
<==== 18.10.13 KS Version 0407 Frozen and released. For inclusion in multipackage use make an_n2 ===>
A4.08 Start next version
B4.07 12.03.14 KS 055.56 Re-instate V4.07 wand re-release ith song V09.25
<==== 12.03.14 KS Version 0407 Frozen and re-released. For inclusion in multipackage use make an_n2 ===>
          
*/
