Commit Graph

51 Commits

Author SHA1 Message Date
Lukasz Mastalerz
75b531f7e2 [MOS-871] Loudspeaker icon is not updated when audio routing has changed
Fix for the loudspeaker becomes active again when a headset is unplugged
if it was on while the headset was connected to the phone.
Fix typo in Bluetooth in EventType enum.
2023-02-21 15:40:39 +01:00
Lefucjusz
1d807644c9 [MOS-882] Fix heap fragmentation issue during playback
Fix of the heap fragmentation issue that caused
phone crash when trying to play music files
while connecting USB cable in a certain order.
Audio stream buffering length was slightly
reduced, so that smaller contiguous block of
heap is required to store audio buffer.
2023-01-25 13:24:36 +01:00
Lefucjusz
9b7d5be07a [MOS-779] Fix music files extensions case sensitivity
Fix of the issue that only files with
extension in lowercase were detected
and listed in the music player's
library.
Additionally code cleanup.
2022-10-25 09:53:24 +02:00
Lefucjusz
72b06448e1 [MOS-647][MOS-671] BT volume control fixes
Set of fixes for Bluetooth volume control issues:

* split OS volume from A2DP device volume;
* added translations for additional popup required
to indicate what volume is being set;
* fixed issue that on some devices setting the lowest
volume level would set the highest in reality;
* fixed Bluetooth auto-turnoff functionality;
* minor code cleanup.
2022-08-22 14:11:24 +02:00
Mateusz Piesta
2c08432049 [BH-1453] Fix audio on the simulator
Replaced PortAudio library with PulseAudio.
Fixed minor issues with the WorkerQueue module.
2022-04-14 14:20:26 +02:00
Lefucjusz
dd3eeaf1e2 [MOS-240] PVS Studio analysis bugs fix
Fixes to major part of issues found
by PVS Studio static analysis
mainly micro-optimisations
2022-03-28 13:57:08 +02:00
Marcin Lyda
6f257d38db [MOS-303] Add playback path gain params to json
Additional pair of parameters has been added
to current implementation of equalizer to
enable changing playback path gain during
audio path fine-tuning
2022-03-22 09:13:25 +01:00
Maciej Janicki
2b2bb13a49 [MOS-296] Merge remote-tracking branch 'origin/stable'
Merge stable Harmony branch into merge wip branch
2022-03-09 19:27:50 +01:00
Bartosz Cichocki
81052bbcb1 [EGD-8162] Allow importing audio profile settings from json file
This allows for imporing the audio profile setitngs, including
EQ settings from the json file, thus allowing modification of
those setitngs without the need of recompiling the source code.
2022-01-28 10:32:12 +01:00
Mateusz Piesta
c1391090c6 [BH-1389] Catch2 unit tests optimization
Removed redundant recompilation of catch2 main
resulted in over 20% speed up of unit tests compilation.
2022-01-26 15:04:23 +01:00
Alek Rudnik
055bc5e065 [EGD-8081] Bump up dr_flac version
Bumped up version of dr_flac library to recent version.
Unified decoder API and made sure it is working as expected.
2021-12-10 17:25:22 +01:00
Marcin Smoczyński
e993a0b928 [EGD-6857] Fix HSP audio quality
Fixed HSP sound quality issues:
 - fixed HF caused by invalid output block size during interpolation of
   the bluetooth input,
 - increased block size to increase time send interval to 8ms

Fixed issue with error handling when writing to overflowed stream.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-11-15 20:20:45 +01:00
Przemyslaw Brudny
9455ea9b5d [EGD-7759] Alarm audio duration fix
Alarm audio duration fix. Changed Alarm audio priority.
Fixed SpinBox bottomBar modes.
2021-10-07 18:42:51 +03:00
Przemyslaw Brudny
289316b32d [EGD-7730] Alarm audio calls fixes
Added system sound setting. Refactored Alarm sound settings.
Fixed linux audio device initial volume level. Fixed Alarm
vibrations.
2021-10-06 19:36:02 +03:00
Marcin Smoczyński
bd90e57516 [BH-907] Split utils module into components
Split module-utils into smaller components for better dependency
management. Fix many dependencies throughout the project.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-23 15:14:40 +02:00
Alek Rudnik
c9a41b4477 [EGD-7335] Integartion of file indexer with database
Integrated core file indexer with its database.
Modfied necessary queries.
Moved service file indexer to pure product specific
folder
2021-09-10 10:59:40 +02:00
Jakub Pyszczak
200c9b949d [EGD-7432] Tags fetcher
Added tags fetcher as universal audio utility
which can be used without bus overhead
2021-09-03 16:35:59 +02:00
Piotr Tański
90e7a48198 [EGD-7362] Merge release/0.76.1 into master
Merge release/0.76.1 into master.
2021-09-02 11:12:59 +02:00
Jakub Pyszczak
fa79a8cc33 [EGD-7246] Fixed audio tags decoding
Fixed wrong tags decoding if there was any special
utf8 character contained in metadata.
2021-08-03 08:59:46 +02:00
Jakub Pyszczak
689bd3069d [EGD-7206] Fix audio profiles priorities
Audio profiles priorities should be set as stated below:
1. Jack
2. Bluetooth
3. Earspeaker.
Added UT's to cover those requirements.
2021-07-28 13:49:04 +02:00
Jakub Pyszczak
3df2492be3 [EGD-7100] Fix shuttered audio
Fix shuttered audio on wav playback.
2021-07-07 10:24:27 +02:00
Jakub Pyszczak
6d61aabbec [EGD-6514] HSP volume control
Bluetooth headset profile volume control
introduced. Small refactor on A2DP volume control
done.
2021-06-25 18:05:01 +02:00
Radoslaw Wicik
943fef9643 [BH-353] Add Documentation for main targets
* clean up mimimu required cmake version
* fixes for release workflow

Add documentation for targets, fixes for cmake
and release workflow.
2021-06-11 09:07:41 +02:00
Marcin Smoczyński
ece6a51e5b [EGD-6800] Enable voice transcoding
Add voice transcoding during phone call with two basic transforms:
 - sample rate downscaling by a factor of 2 with a decimator
 - sample rate upscaling by a factor of 2 with an interpolator (no
low-pass filter)

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-05-21 18:12:57 +02:00
Marcin Smoczyński
f6dd452c41 [EGD-6799] Cleanup audio device interface
This refactoring removes invalid interface dependencies of the original
AudioDevice implementation:
 - move things characteristic to RT1051AudioCodec to audio::codec
 - remove dead methods
 - make start/stop optional and codec configuration independent
 - add more convenient way to get supported formats

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-05-20 19:31:06 +02:00
Marcin Smoczyński
a3e512a89b [EGD-6674] Change negotiation of audio block size
Replace faulty implementation which produced ambiguous results with one
which is suited for both phone calls and music playback requirements,
including A2DP and HSP Bluetooth profiles.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-05-05 21:36:00 +02:00
Marcin Smoczyński
6c52780fdb [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>
2021-04-28 12:44:30 +02:00
Marcin Smoczyński
9cf397d192 [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>
2021-04-23 07:29:18 +02:00
Jakub Pyszczak
49c132c622 [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.
2021-04-22 15:30:02 +02:00
Alek Rudnik
fd935f4179 [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.
2021-04-16 14:50:38 +02:00
Marcin Smoczyński
332aed9365 [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>
2021-04-13 15:16:59 +02:00
Marcin Smoczyński
8b21df135c [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>
2021-04-12 10:00:00 +02:00
Hubert Chrzaniuk
686d5395c7 [EGD-5880] Change mode related volume logic
Volume logic has been changed to make the
values independent from selected mode.
2021-03-02 21:28:03 +01:00
Hubert Chrzaniuk
bb76fe4080 [EGD-5713] Change volume hardware buttons behaviour
The volume button policy has been redesigned to be less
ambiguous for the user.
2021-03-01 13:54:39 +01:00
Hubert Chrzaniuk
4490d0da7f [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.
2021-02-24 13:00:43 +01:00
Hubert Chrzaniuk
18f9227fce [EGD-5716] Change sound priorities
Sound API has been extended with new playback types.
2021-02-19 12:37:45 +01:00
Marcin Smoczyński
e9de840a51 [EGD-5290] Fix on audio on voice call
Due to an error in the stream's block reservation, when the stream was
full, SAI was trying to read data to an unitialized data span randomly
disabling audio channel.

Fix the problem by overwriting data after the peek position, always
returning valid data span.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-02-01 22:01:56 +01:00
Hubert Chrzaniuk
bb6989c2a8 [EGD-4978] Add Bluetooth virtual audio device
Bluetooth audio device requires different handling than other
audio devices. The commit adds proxy device that does not
handle requests itself but instead sends requests too Bluetooth
service.
2020-12-21 13:46:40 +01:00
Hubert Chrzaniuk
6b36d35507 [EGD-5009] Change messy callback logic in audio module
Refactor audio module to use only one callback for communication
with audio service. This also simplifies the logic and removes
necessity to define defaults for audio values in multiple places.
2020-12-18 14:52:57 +01:00
Marcin Smoczyński
871b250d86 [EGD-4534] Change audio data path synchronization
Refactor audio data path to fix several synchronization issues and
excessive copy operations on large memory blocks. Introduce
audio::Stream data structure to allow connecting audio source and sink
with a zero-copy capability.

Introduce system mechanisms:
 - critical section guard lock needed for stream synchronization
 - non-cacheable memory allocator to allocate memory for DMA safe
   buffers

Update the Googletest CMake template to match the capabilities of the
Catch2 template.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@mudita.com>
2020-12-17 12:20:40 +01:00
jimmorrisson
70126e07ac [EGD-4439] New filesystem handling - module audio. (#1037)
[EGD-4439] Taglib revision update
2020-11-19 10:18:24 +01:00
Hubert Chrzaniuk
b7e1a04a12 [EGD-4301] Bluetooth Audio profile support (#984)
- implemented audio sink/source switching
 - reorganized / renamed sound events
 - moved SetBluetoothStreamData and AudioDevice instance to base Operation class
 - added audio profiles RecordingBluetoothHSP, RoutingBluetoothHSP
 - removed unused audio Profiles
 - removed redundant OutputPath and InputPath classes from CodecParamsMAX98090
2020-11-09 17:53:28 +01:00
Lucjan Bryndza
bf2609524c [EGD-4075] Use FATFS in the Linux builds (#843)
* [EGD-4075] Use FAT fs in the emulator

Add script for genrate base phone image

* [EGD-4075] Use FreeRTOS-FAT in emulator initial commit

* [EGD-4075] Thread local storage fix

Fixing thread local storage when running on the
Linux platform in the test mode

* [EGD-4075] Improve image generation

Improve image generation script on the linux platform

* [EGD-4075] Fix all test with FAT fs image

Fix all tests with fatfs image

* [EGD-4075] Fix calculator utility test

* [EGD-4075] Image dependencies fix

* Remove uneeded comments

* Missing headers in CR

* [EGD-4075] Fixed whitespaces

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-22 10:34:12 +02:00
Przemyslaw Brudny
e131dae68f [EGD-3743] Removed old doxygen copyright statements from project. 2020-10-20 12:55:10 +02:00
Radoslaw Wicik
2276ceed67 [EGD-3743] Update copyrights in fies 2020-10-20 12:55:10 +02:00
Hubert Chrzaniuk
78f075712c [EGD-4023] Vibration - get values from DB (#807) 2020-10-15 10:16:58 +02:00
Hubert Chrzaniuk
9c7e4139db [EGD-3784] Add service audio non blocking API (#789) 2020-10-08 10:15:46 +02:00
Jakub Pyszczak
2df98eea48 [EGD-3841] Add audio vibration and enable sound option 2020-10-06 17:06:34 +02:00
Hubert Chrzaniuk
06d9d687bf [EGD-3853] Add AudioMux tests (#751) 2020-10-05 14:44:21 +02:00
jimmorrisson
7b626ce755 [EGD-3098] Add audio volume control per functionality. 2020-09-20 13:41:19 +02:00