[EGD-6496] Add basic sample rate transcoding Add basic interpolator and decimator to change sample rates by a factor of a prime number. Interpolator repeats samples forming a stair signal, while decimator drops excessive samples. Templates have been used to utilize fast integer operations contrary to byte-by-byte operations for number of bit width vs channel count combinations. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-6612] Remove debug flags in audio Debug flags introduced accidentally with EGD-6497. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-6497] Add audio transcoding framework Add a mechanism to apply a data transform on the stream's input. An example mono to stereo transform is provided. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-6513] Volume control feedback Added volume control feedback during music playback over Bluetooth. Changed volume buttons handler logic in service audio to use actions instead of messages.
[EGD-6499] Fix audio initialization Now the peripherals and the audio clocks will be turned on only when the user is using the audio, which will save energy.
[EGD-6093] Audio settings API Refactored Audio settings API. Moved phone modes logic from serivce audio to service clients level. Removed redundant API. Seprated API for vibration and sound enable/disable. Fixed issues with vibrations logic.
[EGD-6507] Enable per-module testing Add per-module: - test build - test execution - coverage reporting (xml/html). Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-5742] Add audio format checking Check if decoder's file format is supported by the sink audio device before playing the sound. Add list of supported formats to each of audio devices. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-6281] Fix microphone mute Fix microphone mute during the phone call. Previously phone would unmute on: - connecting/disconnecting a jack - turning loudspeaker on/off - switching to the bt device.
[EGD-6066] Removed Message default constructor Forced each message to have declared type as parts of Bus logic depends on it and previously we encountered undefined behaviours. Added tests and messages validators.
[EGD-5260] Mono to stereo software conversion Add workaround for Bluetooth audio to *always* convert mono PCM to stereo. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-5260] Add A2DP playback to audio Add basic playback capability using Bluetooth A2DP profile. Only stereo/44100/16bit files are supported at the moment Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-6304] Popup overall fixes Removed duplicated mode observer from application that was introduced during the rebase in this commit 1860bf210f5f128ee8cf780c0cb332abc918dbd1. Fixed mute logic according to the design. Fixed switching back to the meditation window.
[EGD-5973] Reduce audio stack usage Verify stack usage of: - ServiceAudio - application music player - decoder worker Change if possible to a realistic value keeping a 30% margin. Stack usage reduction is limited due to an extensive stack usage of every call to the filesystem, which uses around 2 kB of stack. Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
[EGD-5880] Change mode related volume logic Volume logic has been changed to make the values independent from selected mode.
[EGD-5713] Change volume hardware buttons behaviour The volume button policy has been redesigned to be less ambiguous for the user.
[EGD-5789] Fix loudspeaker in-call logic In some cases loudspeaker state night have not been passed properly ignoring users choice.
[EGD-5714] Add phone mode handling for Audio Service Added separate set of settings for all phone modes along with basic support for phone mode change.
Merge branch 'EGD-5737-merge-master-to-exp-lbr-fix'
[EGD-5737] Merge master into experimental Synchronize with master before merging