Commit Graph

59 Commits

Author SHA1 Message Date
Piotr Tański
1d2f5cf7a4 [EGD-7754] Dates bumped in disclaimers
Dates bumped from 2020 to 2021.
2021-10-11 19:08:26 +02:00
Alek Rudnik
1490158034 [EGD-7725] Tune up file system io access
Increasd io stream buffers:
- 64kB for big files with short lifetime scope
- 16kB for big files with long lifetime scope
- 1kB - dont changes default forr the rest
2021-10-08 10:28:38 +02: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
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
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
bc0a168d80 [EGD-7145] Fix mp3 tags fetch
Fixed problem with some mp3 files which wasn't available in the list
of tracks. Issue was occuring due to the large buffer allocation.
2021-07-13 16:47:25 +02:00
Lukasz Skrzypczak
7fee0d9cfb [BH-378] Utils move log to library
Moved log to separate library
2021-06-08 12:24:29 +02:00
DariuszSabala
6fe90d4bef [BH-461] Move TPLIB minimp3 to separate dir
Moved minimp3 to third-party directory,
added our CMakeLists.txt with interface
library defined and upgraded include paths
2021-05-28 12:39:40 +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
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
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
Marcin Smoczyński
77178548f3 [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>
2021-03-25 01:01:35 +01:00
Marcin Smoczyński
cf75cfc012 [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>
2021-03-19 09:55:06 +01:00
Marcin Smoczyński
f1fc9df152 [EGD-4977] Reduce audio lag during voice call
Reduce audio delay by reducing audio buffer size in router operation.
Audio streams are now created directly in the operations, not in the
audio service, which gives more flexibility.

Audio Buffer size is calculated based on endpoints (source, sink) and
operation capabilities. This commit also enables allocations in a
non-cacheable region of OCRAM for endpoints that use DMA for data
transport.

Introduce power-of-two operations that use built-in functions and
possibly dedicated hardware instructions of an MCU. These operations
are required by the audio stream buffer size calculation algorithm.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-02-01 22:22:12 +01:00
Radoslaw Wicik
d14e40d378 [EGD-4831] Add license headers to c, h and sql files
Add license headers to `h`, `c` and `sql` files as this files haven't
been checked previously, script now to automatically updates current
year in existing licenses.
2021-01-28 14:41:33 +01:00
Marcin Smoczyński
40bf381eca [EGD-5086] Fix voice not starting when calling
Due to a race condition between source and sink voice is not always
starting when calling. Introduce audio stream connections to avoid
race condition and improve handling of audio start and stop operations.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-01-14 11:03:47 +01:00
Hubert Chrzaniuk
1bdc829588 [EGD-5086] Change audio device switching logic
Upon hardware change event, audio profile had been switched multiple
times forcing redundant initializations of all related objects. Logic
has been optimized and prepared for further refactor. Now upon hardware
event objects are initialized exactly once.
2021-01-11 09:48:52 +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
Hubert Chrzaniuk
f69384525a [EGD-4332][EGD-4482] Fix playback of mono sound in headphones (#1080)
Addressed problem - when playing files containing only one
audio channel the sound could be heard in only one speaker.
2020-11-26 09:46:30 +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
Lucjan Bryndza
0a407135e5 [EGD-4181] move taglib from audio (#932)
* [EGD-4181] Move submodule taglib to utils

* [EGD-4181] LibTag moved to util lib.

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-30 12:41:46 +01:00
Hubert Chrzaniuk
4c22ef5107 [EGD-4099] BT set stream (#846) 2020-10-20 13:43:53 +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
8c748a39b2 [EGD-4100] Fix playback restart on audio profile change (#848) 2020-10-16 13:53:57 +02:00
Hubert Chrzaniuk
ebcef7a692 [EGD-4054] Audio API for setting stream parameters (#826) 2020-10-15 09:27:15 +02:00
Bartek Cichocki
305d43a176 [EGD-3773] added A2DP playback backend 2020-10-14 09:23:53 +02:00
Adam Dobrowolski
7b4a706cd6 EGD-4036 Application windows - added register mechanism
* Moved ApplicationLauncher to separate files - declutering
* WindowsStore renamed to WindowsFactory - Store needs to be splitted toavoid antipattern
* Options window build dynamically onBeforeShow
* Dialog windows dynamically built
2020-10-13 17:46:10 +02:00
Lucjan Bryndza
0014dae259 [EGD-3854] Removing goto's from the code (#797)
It is generic cleanup task for removing all goto files

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-08 08:58:49 +02:00
Adam
f5f27d642f EGD-2955 EGD-3588 Timers fully refactored & updated (#721)
* Timers now are Application thread safe
* Timers now have consistent API independend of Application (no more c style timers)
* Timers can have either: callback or override onTimer() method - this
  way we can create more complicated timers or just use existing ones
* gui::Timer added via adapter class GuiTimer to decouple sys::Timer
  with gui::Timer
* Fixed race in wrapper
* Updated docs
* fixed using std and cpp_freertos and DataReceivedHandler hidden in Application.hpp
2020-10-02 14:04:57 +02:00
pawpMudita
9311e33aa5 EGD-3808 Scrolling contacts list with a particular letter - part 2 2020-10-02 10:09:36 +02:00
SP2FET
ca03073cc4 [EGD-3643] added BT dedicated bonding (simple pairing) 2020-10-01 17:19:41 +02:00
Marcin Smoczyński
af85469c26 [EGD-3864] main file cleanup (#761)
Remove dead code; cleanup and sort include list. Introduce config file.
2020-10-01 14:47:53 +02:00
hubert-chrzaniuk
ea88f765a9 [EGD-3468] Bump taglib repo (#752) 2020-09-30 09:12:05 +02:00
kkleczkowski
06e3bb0f3f Egd 3709 - Application antenna - added parameter history window. (#713)
* [EGD-3709] Applicatgion antenna switch parameters window.

* [EGD-3709] Changelog + service-antenna disabled.

* [EGD-3709] PR suggestions + missing antenna rquest.

Co-authored-by: Kuba Kleczkowski <dd>
2020-09-22 14:35:00 +02:00
Hubert Chrzaniuk
f66212e28a [EGD-3468] Bump taglib repo
* newer commit adds third_party_source_optimization support
2020-09-17 12:36:21 +02:00
Hubert Chrzaniuk
6e9bdb3dc1 [EGD-3468] Fix metadata of audio files 2020-09-14 16:55:17 +02:00
alek
9821cd77c6 [EGD-3558] remove memalloc 2020-09-04 11:45:50 +02:00
alek
da8f35c2c6 [EGD-3464] fix playaback of mp3 files 2020-08-28 09:46:00 +02:00
Marcin Smoczyński
a61de1a5dc audio: fix build warnings 2020-05-22 16:15:15 +02:00
Adam Dobrowolski
6c6d9208df EGD-3055 Added misssing break in dr_flac.c 2020-04-08 12:23:53 +02:00
Adam Dobrowolski
09adf35eb5 EGD-3026 Database record unified ID field name 2020-03-24 14:17:12 +01:00
Adam Dobrowolski
abe6813ce6 EGD-3026 Wall Werror and Wextra added to project 2020-03-24 14:17:12 +01:00
Radoslaw Wicik
a8573a404c Apply new style 2020-03-17 10:03:16 +01:00
rkubiak01
e721aed271 [FIX] warning fixes
this alsow fixes the release build warnings for the audio decoder
those did not pop-up when building in debug mode
2020-01-28 06:41:43 -05:00
Mateusz
dd4474f3c3 WiP: Massive refactor in module-bsp, cleaned up include paths and compilation warnings/errors 2019-08-08 10:27:45 +02:00
Mateusz
fce0de53ef WiP: routing tests 2019-08-05 08:05:40 +02:00
Mateusz
0df92c22c7 WiP: Fixed error handling in decoder/encoder/Operation layer 2019-08-02 13:55:25 +02:00
Mateusz
16c5965d10 WiP: changes in drflac decoder in order to save on stack usage 2019-08-01 21:47:49 +02:00