diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 62 |
1 files changed, 61 insertions, 1 deletions
@@ -1 +1,61 @@ -# 4a-softmixer
\ No newline at end of file +# Controller Utilities + +* Object: Generic Controller Utilities to handle Policy, Small Business Logic, Glue in between components, ... +* Status: Release Candidate +* Author: Fulup Ar Foll fulup@iot.bzh +* Date : October-2017 + +## Usage + +0) Dependencies + +* AGL Application Framework + +1) Clone & build from source (temporally from github) + +```bash +git clone --recursive https://github.com/iotbzh/4a-softmixer +cd build +cmake .. +make +``` + +2) Activate ALSA loop driver + +```modprobe snd-aloop enable=1,1 index=4,5 id=loopback,softmix +``` + +3) Declare your controller config section in your binding + +```C +// CtlSectionT syntax: +// key: "section name in config file" +// loadCB: callback to process section +// handle: a void* pass to callback when processing section +static CtlSectionT ctlSections[]= { + {.key="plugins" , .loadCB= PluginConfig, .handle= &halCallbacks}, + {.key="onload" , .loadCB= OnloadConfig}, + {.key="halmap" , .loadCB= MapConfigLoad}, + {.key=NULL} +}; + +``` + +3) Do controller config parsing at binding pre-init + +```C + // check if config file exist + const char *dirList= getenv("CTL_CONFIG_PATH"); + if (!dirList) dirList=CONTROL_CONFIG_PATH; + + ctlConfig = CtlConfigLoad(dirList, ctlSections); + if (!ctlConfig) goto OnErrorExit; +``` + +4) Exec controller config during binding init + +```C + int err = CtlConfigExec (ctlConfig); +``` + +For sample usage look at https://gerrit.automotivelinux.org/gerrit/gitweb?p=apps/app-controller-submodule.git |