summaryrefslogtreecommitdiff
path: root/AudioManagerUtilities
Commit message (Collapse)AuthorAgeFilesLines
* AM: add handle type for use in transferConnection() family of functionsMartin Koch2020-07-011-1/+2
| | | | Signed-off-by: Martin Koch <martin.koch@ese.de>
* Update CAmSerializer.hDaeduek Cho2020-05-151-2/+6
| | | | inline redirection for getListDelegatePoiters on V1
* Update CAmSerializer.hDaeduek Cho2020-05-151-25/+29
| | | | | | | CAmDelegagePtr > CAmDelegatePtr mListDelegatePoiters > mListDelegatePointers getListDelegatePoiters > getListDelegatePointersSize (for getListDelegatePoiters inline redirection is added for downward compatibility)
* AM: Reorganize daemon, core, utilities and tests to make use of the new ↵Martin Koch2020-01-147-7/+8
| | | | | | | | | | | | logging architecture. - Known side-effect: CAmSerializer.h and TAmPluginTemplate.h no longer indirectly include dlt_user.h. Thus macros like DLT_DECLARE_CONTEXT and DLT_IMPORT_CONTEXT may be undefined in application code unless CAmDltWrapper.h or dlt_user.h is included explicitly. - Since the DLT functionality is now encapsulated inside a dedicated class, such declaration is usually superfluous and can be dropped. Signed-off-by: Martin Koch <mkoch@de.adit-jv.com>
* AM-Test: exclude AmSocketHandlerTest from build if WITH_DLT is not enabledMartin Koch2020-01-141-1/+7
| | | | Signed-off-by: Martin Koch <mkoch@de.adit-jv.com>
* AM_Utils: reduce CAmDltWrapper to legacy wrapper around new logging architectureMartin Koch2020-01-143-1021/+90
| | | | Signed-off-by: Martin Koch <mkoch@de.adit-jv.com>
* AM-Utils: Introduce new logging architecture, providing separate classes for ↵Martin Koch2020-01-1411-0/+1694
| | | | | | each logging channel (DLT, file or stdout) and a channel-independent wrapper class. (first preparation step of AM for build without strong dependency to DLT library) Signed-off-by: Martin Koch <mkoch@de.adit-jv.com>
* Notifying observers of sound properties only by value changes.genivi_impJacqueline Molz2018-08-222-28/+33
| | | | | | | | | Fix infinite loop in CAmDltWrapper by logging out enum values exceeding the boundaries. Minor changes: Pull request 36 changed implementation to database macros (review comments) added option "WITH_DATABASE_CHANGE_CHECK" to audiomanagerconfig.h.in whitespace cleanup in test/AmMapHandlerTest/CAmMapHandlerTest.cpp additional cast to uint in DB_UPDATE call in function removeMainConnectionDB to solve error in macro expansion
* FOO: Issue #26 fix white space issues and apply new coding styleJens Lorenz2018-07-0314-3035/+3443
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* codestyle: Remove empty single line c++ comments in ctor initializersJens Lorenz2018-06-206-44/+44
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Fix inconsistent fdPollingArrayJens Lorenz2018-06-123-116/+110
| | | | | | | | | | | | | | | | In case someone removed a fd and closed it opened a new one and added it to the socket handler the container state of the object in map was changed from either REMOVE/CLOSE to UNINIT. This leads to the emplace call in the fdPollingArray vector and the fd is maintained twice. Over the entire runtime there will be zombie fds provided to ppoll functions which will race a POLLERR revent leading to 100% cpu load. Also the CLOSE state is now removed because only the application is aware if a fd has to be closed. For instance calling add/remove in a loop were start_listenting is not running will turn to a system issue were no fds can be provided by the operation system. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Return in threads with NULLJens Lorenz2018-04-231-0/+6
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: No check callback needed for eventfd and signalfdJens Lorenz2018-04-091-5/+2
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Change log level of removeFDPoll from error to warningJens Lorenz2018-04-091-1/+1
| | | | | | | It is not an error in case the requested fdpoll is not part of the internal database. I just worth to print a warning here. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Store signalfd as file descriptor instead of pollfd handleJens Lorenz2018-04-092-46/+21
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Wakeup of ppoll is now also triggered on addFdPollJens Lorenz2018-04-092-16/+17
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Fix startup sequence addFdPoll and removeFdPollJens Lorenz2018-04-092-4/+87
| | | | | | | | | | In case plugins add new fdpoll elements and directly removing them afterwards the state inside the structure will be changed to REMOVE. REMOVE will lead all the time to an erase which will not work in case the pointer is at .end() of vector or the element itself is not the correct one. Both cases will be fixed just by checking if the fd is the same. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Cleanup indents and whitespacesJens Lorenz2018-04-093-33/+34
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Rework of exception debug messagesJens Lorenz2018-04-091-13/+15
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: ONLY timers will be closed in worker threadJens Lorenz2018-04-092-9/+18
| | | | | | | The removeFDPoll API is extended to allow applications to close the fd by the central worker thread. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Rework of socketHandler to avoid calls of invalidated objectsJens Lorenz2018-04-094-219/+505
| | | | | | | | | | | | | | | | | | | This patch tries to follow the idea raised in PR26. Following two patches have been reworked: commit: cfe0e77aaf87a0590ceea42f6afa62b0c7d95e80 commit: bc33226f59910a960f62d419ba10d4ea761e3724 The biggest change applies to the internal database. Instead of having a vector for all items which will be copied inside the worker thread the new approach aims a central map which allows to store the sh_poll elements in containers. By this a container is valid until it is remove from map. The remove of items inside a map is now centralized within the worker and only the worker is responsible to keep the ppoll list and the map in sync. This patch also extends the unit tests to stress different timer scenarios. Signed-off-by: Aleksandar Donchev <Aleksander.Donchev@partner.bmw.de> Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Change from mPipe to eventfdJens Lorenz2018-04-092-20/+41
| | | | | | This commit is the first commit of a rework of the CAmSochetHandler class. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Improve timer implementation and ensure that no fd leak happensJens Lorenz2018-04-092-48/+50
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Rework of listenToSignal and minor improvementsJens Lorenz2018-04-091-17/+15
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Improve actionPoll lambda implementation for signal and timerJens Lorenz2018-04-091-27/+45
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Ensure that revents are tested in fire callbackJens Lorenz2018-04-091-2/+2
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Lets check the return value of addTimerJens Lorenz2018-04-091-13/+14
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Remove off-by-one problem for timer meas. and socket testsJens Lorenz2018-04-091-45/+39
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Fix mExpected value range for 32-bitJens Lorenz2018-04-092-2/+2
| | | | | | | The duration calculation for mExpected is not working. The playWithTimers oneshot test reported all times warnings. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* AMUtil: Test: Add macro to increase the loop count of serializer testsAleksandar Donchev2018-03-271-2/+5
| | | | Signed-off-by: Christian Linke <christian.linke@bmw.de>
* AMUtil: Common API WrapperAleksandar Donchev2018-03-272-106/+124
| | | | | | | | | All methods in CAPI wrapper with connectionID parameter are deprecated because CAPI creates new filedescriptor per connection which isn't needed. * revents flag is passed to the CommonAPI watcher instead events * revents set to 0 in Sockethandler Signed-off-by: Christian Linke <christian.linke@bmw.de>
* AMUtil: Dlt init function returns now correctlyAleksandar Donchev2018-03-271-2/+3
| | | | Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* Revert "Utility updates capi fixes"revert-26-utilityUpdates_CAPI_fixesJens Lorenz2018-03-138-929/+427
|
* Remainning fixes from utility updateutilityUpdates_CAPI_fixesDon Al2018-02-273-104/+114
| | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I3c8a2b474bc8fac62c76a46545a231c718edb2a9
* The real-time scheduler removed.Aleksandar Donchev2018-02-134-42/+3
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I7c8a2c474bc8fac62c76a46545a231c518edb2a8
* Cmake parameters for real-time scheduler's priority and policy and throw ↵Aleksandar Donchev2018-02-134-55/+97
| | | | | | | | runtime error if read fails. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I6a7a2c424bc8fac62c76a66545a231c518edb2e1
* FIx for CAPI timeouts and support for more than one CAPI watchAleksandar Donchev2018-02-132-116/+198
| | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9a9d2c424bc8fac62c76a66545a531c518edb2e3
* Real time scheduler added, capi wrapper timeout return value considered in ↵Aleksandar Donchev2018-02-134-67/+82
| | | | | | | registerTimeout, only requested revent passed from within the camsockethandler instead of all Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I2d9d2c424ac3fac62c76a66545a531c518edb2e8
* * All methods in CAPI wrapper with connectionID parameter are deprecated ↵Aleksandar Donchev2018-02-134-121/+119
| | | | | | | | | | | because CommonAPI creates new filedescriptor per connection which isn't needed. * revents flag is passed to the CommonAPI watcher instead events * revents set to 0 in Sockethandler Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9d9d2c424ac9fad62c76a66545c731c518adb2e4
* Runtime check for calls to the sockethandler from other threadsAleksandar Donchev2018-02-133-56/+99
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9d9d3c424ac9fad62c76a76545c731b518bdb1e2
* A filedescriptor removal will set an invalidation flag which will prevent ↵Aleksandar Donchev2018-02-133-44/+61
| | | | | | | | | | | calls on the invalidated objects in the current iteration. Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I9d5d3c434ac9fad62c76a76145c731b538aeb1e3 # Conflicts: # AudioManagerUtilities/src/CAmSocketHandler.cpp
* Timer fd is closed at the beginning of the next iteration + some unit tests. ↵Aleksandar Donchev2018-02-135-44/+378
| | | | | | Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I8c5d3c436ac9fad62c76a26145c731b538abb1e7
* Merge pull request #23 from JensLorenz/cmake_and_dlt_endless_loop_fixGENIVI Audio Manager Maintainer2018-02-072-191/+194
|\ | | | | Cmake and dlt endless loop fix
| * AmUtil: Check for valid timer handles to fix callback exceptionJens Lorenz2018-02-051-7/+11
| | | | | | | | | | | | | | | | | | In case plugins remove dbus timer callbacks at runtime a race might happen between the deletion of timer and the callback invocation. Now the timer callback function checks if the timer is valid before proceeding with the restart. Signed-off-by: Kapildev Patel <kpatel@jp.adit-jv.com>
| * AMUtil: Fixes infinite loop in dlt wrapper for out of range values of ↵Jens Lorenz2018-02-051-184/+183
| | | | | | | | | | | | enumerations. Signed-off-by: Kapildev Patel <kpatel@jp.adit-jv.com>
* | AMUtil: fix missed copy in list PollGuerra Mattia2017-09-291-13/+18
| | | | | | | | | | | | | | | | | | When copying the list of Poll fd, also the revents have to be copied. This is very important for AM Plugins which rely on revents in order to consume data. Without updating the revents, there's concrete risk of endless poll and general stuck situation. Signed-off-by: Guerra Mattia <mguerra@de.adit-jv.com>
* | AMUtil: use DLT API only when DLT is selectedGuerra Mattia2017-09-291-2/+5
| | | | | | | | | | | | | | | | Protecting access to DLT API dlt_user_is_logLevel_enabled by checking if destination is really meant to be DLT daemon. Otherwise, invalid DLT Context could be accessed. Signed-off-by: Guerra Mattia <mguerra@de.adit-jv.com>
* | CMake: Add pthread supportJens Lorenz2017-09-293-3/+5
| | | | | | | | | | | | | | If DLT is turned off, CAmDltWrapper needs linkage to pthread. Furthermore, CAmSerializer doesn't need to #include pthread. Signed-off-by: Guerra Mattia <mguerra@de.adit-jv.com>
* | AMUtil: Fix for destroy controller on rundownJens Lorenz2017-09-291-0/+6
| | | | | | | | | | | | | | | | | | On rundown the controller will be unloaded. In case the controller wasn't loaded successfully or the controller doesn't implement the destroy function the rundown of AudioManager crashed. Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
* | AM: Destroy plugin implementation.Kapildev Patel2017-09-291-0/+34
|/ | | | | | | With these changes AudioManager would call destroy function of the controller plugin at the time of shutdown. Signed-off-by: Kapildev Patel <kpatel@jp.adit-jv.com>