Remote control server (RCS)

QNX handsfree telephony includes a remote control server (RCS) that gives access to the QNX acoustic processing library over a network connection.

Overview

The QNX remote control server (RCS) allows you to use the QWALive tuning application to connect to the acoustic processing library over a network connection. When you use the RCS with QWALive you can:

Enabling RCS

To enable RCS in the handsfree telephony module you need to make two changes to the io-acoustic configuration file:

The sample below shows the module section of the configuration file with the parameters set to enable RCS access:

# Single device input and output, RCS enabled

<hf apm-aap-rcs-hf.so>
    inputs 1
    ichannels1 2
    iroute1_1 IOAP_MIC_IN_1
    iroute1_2 IOAP_PHONE_IN_1
    outputs 1
    ochannels1 2
    oroute1_1 IOAP_PHONE_OUT_1
    oroute1_2 IOAP_SPKR_OUT_1
    qcf /etc/acoustic/mono.qcf
    msprime 30
    rcsactive true
</hf>

Tuning file load order

At startup, the handsfree module first sets up the acoustic library with built-in defaults. It then uses information from tuning (.qcf) files to refine the acoustic processing for the given platform and usage scenario. The choice of tuning file depends on whether RCS is enabled.

Normal (RCS not enabled)

If the RCS module isn't enabled, the handsfree module will tune the library in the following order:

  1. Load the built-in defaults and the tuning file at the path set by the qcf parameter in the io-acoustic configuration file (acoustic.conf).
  2. If loading the specified tuning file fails, load the built-in defaults only.

RCS enabled

If the RCS module is enabled and the qcf_rcs field is defined in the io-acoustic configuration file, the handsfree module will tune the library in the following order:

  1. Load the built-in defaults and the tuning file at the path set by the qcf_rcs parameter in the io-acoustic configuration file (acoustic.conf).
  2. If loading the tuning file specifed by the qcf_rcs parameter fails, proceed as for a system without RCS enabled.

Changes to tuning parameters

Each time the handsfree module is started by a call to ioap_hf_go(), the module tunes the acoustic processing library as defined above, unless QWALive is used to restart the target or ioap_hf_config() has been called previously to change the qcf parameter.

Behavior when qcf_rcs is defined

When the qcf_rcs parameter is defined in the io-acoustic configuration file, if the RCS client downloads new tuning parameters to the target (QWALive Push to Target), this download overwrites the contents of the tuning file. All starts made after the download, whether they are initiated through the Restart Target button in QWALive or by a call to ioap_hf_go(), will use the tuning file load order for RCS enabled.

Behavior when qcf_rcs is not defined

If the qcf_rcs parameter isn't defined in the io-acoustic configuration file, the QWALive Push to Target function will overwrite the contents of the tuning file at /tmp/hf_rcs_config.qcf. However, when the handsfree module is restarted, it will always use the tuning file load order for a system that doesn't have RCS enabled. This behavior allows you to save the tuning parameters to a file on the target for later reference.

Behavior when the qcf parameter is changed

If the tuning file defined by the qcf parameter is changed with a call to ioap_hf_config(), all starts after this change (initiated through the Restart Target button in QWALive or by a call to ioap_hf_go()) will use the tuning file load order for RCS not enabled.

Note:
  • To ensure that tuning is consistent across restarts, the handsfree module remembers which method was used to make the most recent change to tuning parameters (QWALive Push to Target or ioap_hf_config()).
  • For more information about QWALive, please refer to your QNX Acoustic Processing documentation.