tree 7ebf31bbef023ea699e938a8cffdb1272d6f23f6
parent a14272a4bd0604e6e08633d03d8f8276000a3b7c
author Richard Fitzgerald <rf@opensource.wolfsonmicro.com> 1384515563 +0000
committer Richard Fitzgerald <rf@opensource.wolfsonmicro.com> 1384516492 +0000

Upgrade to Jellybean version of TinyHAL

This brings in the Jellybean version of TinyHAL. This is a
significant update compared to the Ice Cream Sandwich version.

- The audio_hw.c has been replaced by code based on asus/grouper
    so it is useful in real devices

- The config file parser + routing control has been completely
    rewritten and now builds to a separate library so that it can
    be used by alternative HALs without having to branch the source

- There are now more capabilities in the audio routing configuration:
    - Support for setting binary controls
    - Support for defining compressed streams
    - Support for defining custom streams for hardware-hardware links
    - You can now define a stream-specific set of control values for
        each device, in addition to the basic device enable/disable
        settings that were supported by the ICS version. This means
        that when a stream is connected to or disconnected from a
        device you can invoke control settings that are specific to
        that {stream:device} combination.
    - You can now define custom usecases within each stream, which
        the audio HAL can invoke by name. This allows custom use-cases
        without having to hardcode knowledge of all types of hardware
        into TinyHAL. The audio_hw.c file supplied with TinyHAL passes
        set_parameter() strings to this to allow you to define special
        control settings to apply when a parameter string has a certain
        value.
    - The file audio.example.xml contains documentation of the
        configuration file format and how to use the features.

The configuration file format has changed slightly to accommodate the
new features, and also to make it more regular and expandable. The
effort to convert an old config file to the new format is minimal.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
